Import upstream version 1.27
authorBdale Garbee <bdale@gag.com>
Tue, 15 Oct 2013 15:50:32 +0000 (09:50 -0600)
committerBdale Garbee <bdale@gag.com>
Tue, 15 Oct 2013 15:50:32 +0000 (09:50 -0600)
933 files changed:
ChangeLog
ChangeLog.1
INSTALL
Make.rules
Makefile.am
Makefile.in
NEWS
README
THANKS
TODO
acinclude.m4
aclocal.m4
build-aux/compile
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/gitlog-to-changelog
build-aux/install-sh
build-aux/mdate-sh
build-aux/missing
build-aux/snippet/_Noreturn.h [new file with mode: 0644]
build-aux/snippet/arg-nonnull.h [new file with mode: 0644]
build-aux/snippet/c++defs.h [new file with mode: 0644]
build-aux/snippet/unused-parameter.h [new file with mode: 0644]
build-aux/snippet/warn-on-use.h [new file with mode: 0644]
build-aux/texinfo.tex
build-aux/ylwrap
config.h.in
configure
configure.ac
doc/Makefile.am
doc/Makefile.in
doc/gendocs_template
doc/genfile.texi
doc/header.texi
doc/mastermenu.el
doc/parse-datetime.texi
doc/rendition.texi
doc/snapshot.texi
doc/stamp-vti
doc/tar-snapshot-edit.texi
doc/tar.info
doc/tar.info-1
doc/tar.info-2
doc/tar.info-3 [new file with mode: 0644]
doc/tar.texi
doc/texify.sed
doc/value.texi
doc/version.texi
gnu/Makefile.am
gnu/Makefile.in
gnu/acl-errno-valid.c [new file with mode: 0644]
gnu/acl-internal.h [new file with mode: 0644]
gnu/acl.h [new file with mode: 0644]
gnu/acl_entries.c [new file with mode: 0644]
gnu/alloca.c
gnu/alloca.in.h
gnu/allocator.c [new file with mode: 0644]
gnu/allocator.h [new file with mode: 0644]
gnu/anytostr.c
gnu/areadlink.c
gnu/areadlink.h
gnu/areadlinkat.c
gnu/argmatch.c
gnu/argmatch.h
gnu/argp-ba.c
gnu/argp-eexst.c
gnu/argp-fmtstream.c
gnu/argp-fmtstream.h
gnu/argp-fs-xinl.c
gnu/argp-help.c
gnu/argp-namefrob.h
gnu/argp-parse.c
gnu/argp-pin.c
gnu/argp-pv.c
gnu/argp-pvh.c
gnu/argp-version-etc.c
gnu/argp-version-etc.h
gnu/argp-xinl.c
gnu/argp.h
gnu/asnprintf.c
gnu/asprintf.c
gnu/at-func.c
gnu/at-func2.c
gnu/backupfile.c
gnu/backupfile.h
gnu/basename-lgpl.c
gnu/basename.c
gnu/bitrotate.c [new file with mode: 0644]
gnu/bitrotate.h
gnu/btowc.c
gnu/c-ctype.c
gnu/c-ctype.h
gnu/c-strcase.h [new file with mode: 0644]
gnu/c-strcasecmp.c [new file with mode: 0644]
gnu/c-strcaseeq.h [new file with mode: 0644]
gnu/c-strncasecmp.c [new file with mode: 0644]
gnu/canonicalize-lgpl.c
gnu/careadlinkat.c [new file with mode: 0644]
gnu/careadlinkat.h [new file with mode: 0644]
gnu/chdir-long.c
gnu/chdir-long.h
gnu/chmodat.c [new file with mode: 0644]
gnu/chown.c
gnu/chownat.c [new file with mode: 0644]
gnu/cloexec.c
gnu/cloexec.h
gnu/close-stream.c
gnu/close.c
gnu/closedir.c [new file with mode: 0644]
gnu/closeout.c
gnu/closeout.h
gnu/config.charset
gnu/copy-acl.c [new file with mode: 0644]
gnu/dirent--.h
gnu/dirent-private.h [new file with mode: 0644]
gnu/dirent-safer.h
gnu/dirent.in.h
gnu/dirfd.c
gnu/dirname-lgpl.c
gnu/dirname.c
gnu/dirname.h
gnu/dosname.h
gnu/dup-safer.c
gnu/dup.c [new file with mode: 0644]
gnu/dup2.c
gnu/errno.in.h
gnu/error.c
gnu/error.h
gnu/exclude.c
gnu/exclude.h
gnu/exitfail.c
gnu/exitfail.h
gnu/fchdir.c
gnu/fchmodat.c
gnu/fchown-stub.c
gnu/fchownat.c
gnu/fcntl.c
gnu/fcntl.in.h
gnu/fd-hook.c [new file with mode: 0644]
gnu/fd-hook.h [new file with mode: 0644]
gnu/fd-safer.c
gnu/fdopendir.c
gnu/fdutimensat.c
gnu/file-has-acl.c [new file with mode: 0644]
gnu/fileblocks.c
gnu/filename.h [new file with mode: 0644]
gnu/filenamecat-lgpl.c
gnu/filenamecat.h
gnu/float+.h
gnu/float.c [new file with mode: 0644]
gnu/float.in.h
gnu/fnmatch.c
gnu/fnmatch.in.h
gnu/fnmatch_loop.c
gnu/fpending.c
gnu/fpending.h
gnu/fseek.c [new file with mode: 0644]
gnu/fseeko.c
gnu/fstat.c [new file with mode: 0644]
gnu/fstatat.c
gnu/full-write.c
gnu/full-write.h
gnu/futimens.c
gnu/getcwd-lgpl.c [new file with mode: 0644]
gnu/getcwd.c
gnu/getdelim.c
gnu/getdtablesize.c
gnu/getfilecon.c [new file with mode: 0644]
gnu/getline.c
gnu/getopt.c
gnu/getopt.in.h
gnu/getopt1.c
gnu/getopt_int.h
gnu/getpagesize.c
gnu/gettext.h
gnu/gettime.c
gnu/gettimeofday.c
gnu/gnulib.mk [new file with mode: 0644]
gnu/hash.c
gnu/hash.h
gnu/human.c
gnu/human.h
gnu/intprops.h
gnu/inttostr.h
gnu/inttypes.in.h
gnu/iswblank.c
gnu/itold.c [new file with mode: 0644]
gnu/langinfo.in.h
gnu/lchown.c
gnu/link.c
gnu/linkat.c
gnu/localcharset.c
gnu/localcharset.h
gnu/locale.in.h [new file with mode: 0644]
gnu/localeconv.c [new file with mode: 0644]
gnu/lseek.c
gnu/lstat.c
gnu/malloc.c
gnu/malloca.c
gnu/malloca.h
gnu/mbchar.c
gnu/mbchar.h
gnu/mbrtowc.c
gnu/mbscasecmp.c
gnu/mbsinit.c
gnu/mbsrtowcs-impl.h
gnu/mbsrtowcs-state.c
gnu/mbsrtowcs.c
gnu/mbtowc-impl.h
gnu/mbtowc.c
gnu/mbuiter.c [new file with mode: 0644]
gnu/mbuiter.h
gnu/memchr.c
gnu/mempcpy.c
gnu/memrchr.c
gnu/mkdir.c
gnu/mkdirat.c
gnu/mkdtemp.c
gnu/mkfifo.c
gnu/mkfifoat.c
gnu/mknod.c
gnu/mknodat.c
gnu/mktime.c
gnu/modechange.c
gnu/modechange.h
gnu/msvc-inval.c [new file with mode: 0644]
gnu/msvc-inval.h [new file with mode: 0644]
gnu/msvc-nothrow.c [new file with mode: 0644]
gnu/msvc-nothrow.h [new file with mode: 0644]
gnu/nl_langinfo.c
gnu/obstack.c
gnu/obstack.h
gnu/open.c
gnu/openat-die.c
gnu/openat-priv.h
gnu/openat-proc.c
gnu/openat.c
gnu/openat.h
gnu/opendir-safer.c
gnu/opendir.c [new file with mode: 0644]
gnu/parse-datetime.c
gnu/parse-datetime.h
gnu/parse-datetime.y
gnu/pathmax.h
gnu/pipe-safer.c
gnu/printf-args.c
gnu/printf-args.h
gnu/printf-parse.c
gnu/printf-parse.h
gnu/priv-set.c
gnu/priv-set.h
gnu/progname.c
gnu/progname.h
gnu/qcopy-acl.c [new file with mode: 0644]
gnu/qset-acl.c [new file with mode: 0644]
gnu/quote.h
gnu/quotearg.c
gnu/quotearg.h
gnu/raise.c [new file with mode: 0644]
gnu/rawmemchr.c
gnu/read.c [new file with mode: 0644]
gnu/readdir.c [new file with mode: 0644]
gnu/readlink.c
gnu/readlinkat.c
gnu/realloc.c
gnu/ref-add.sin
gnu/ref-del.sin
gnu/regcomp.c
gnu/regex.c
gnu/regex.h
gnu/regex_internal.c
gnu/regex_internal.h
gnu/regexec.c
gnu/rename.c
gnu/renameat.c
gnu/rewinddir.c [new file with mode: 0644]
gnu/rmdir.c
gnu/root-uid.h [new file with mode: 0644]
gnu/rpmatch.c
gnu/safe-read.c
gnu/safe-read.h
gnu/safe-write.c
gnu/safe-write.h
gnu/same-inode.h
gnu/save-cwd.c
gnu/save-cwd.h
gnu/savedir.c
gnu/savedir.h
gnu/se-context.c [new file with mode: 0644]
gnu/se-context.in.h [new file with mode: 0644]
gnu/se-selinux.c [new file with mode: 0644]
gnu/se-selinux.in.h [new file with mode: 0644]
gnu/secure_getenv.c [new file with mode: 0644]
gnu/selinux-at.c [new file with mode: 0644]
gnu/selinux-at.h [new file with mode: 0644]
gnu/set-acl.c [new file with mode: 0644]
gnu/setenv.c
gnu/signal.in.h [new file with mode: 0644]
gnu/size_max.h
gnu/sleep.c
gnu/snprintf.c
gnu/stat-time.c [new file with mode: 0644]
gnu/stat-time.h
gnu/stat.c
gnu/statat.c [new file with mode: 0644]
gnu/stdalign.in.h [new file with mode: 0644]
gnu/stdarg.in.h
gnu/stdbool.in.h
gnu/stddef.in.h
gnu/stdint.in.h
gnu/stdio-impl.h
gnu/stdio.in.h
gnu/stdlib.in.h
gnu/stpcpy.c
gnu/strcasecmp.c
gnu/strchrnul.c
gnu/strdup.c
gnu/streq.h
gnu/strerror-override.c [new file with mode: 0644]
gnu/strerror-override.h [new file with mode: 0644]
gnu/strerror.c
gnu/string.in.h
gnu/strings.in.h
gnu/stripslash.c
gnu/strncasecmp.c
gnu/strndup.c
gnu/strnlen.c
gnu/strnlen1.c
gnu/strnlen1.h
gnu/strtoimax.c
gnu/strtol.c
gnu/strtoul.c
gnu/strtoull.c
gnu/symlink.c
gnu/symlinkat.c
gnu/sys_stat.in.h
gnu/sys_time.in.h
gnu/sys_types.in.h [new file with mode: 0644]
gnu/sysexits.in.h
gnu/tempname.c
gnu/tempname.h
gnu/time.in.h
gnu/time_r.c
gnu/timespec.c [new file with mode: 0644]
gnu/timespec.h
gnu/unistd--.h
gnu/unistd-safer.h
gnu/unistd.c [new file with mode: 0644]
gnu/unistd.in.h
gnu/unitypes.in.h
gnu/uniwidth.in.h
gnu/uniwidth/cjk.h
gnu/uniwidth/width.c
gnu/unlink.c
gnu/unlinkat.c
gnu/unlinkdir.c
gnu/unlinkdir.h
gnu/unlocked-io.h
gnu/unsetenv.c
gnu/utimens.c
gnu/utimens.h
gnu/utimensat.c
gnu/vasnprintf.c
gnu/vasnprintf.h
gnu/vasprintf.c
gnu/verify.h
gnu/version-etc-fsf.c
gnu/version-etc.c
gnu/version-etc.h
gnu/vsnprintf.c
gnu/wchar.in.h
gnu/wcrtomb.c
gnu/wctype-h.c [new file with mode: 0644]
gnu/wctype.in.h
gnu/wcwidth.c
gnu/write.c
gnu/xalloc-die.c
gnu/xalloc-oversized.h [new file with mode: 0644]
gnu/xalloc.h
gnu/xasprintf.c
gnu/xgetcwd.c
gnu/xgetcwd.h
gnu/xmalloc.c
gnu/xsize.c [new file with mode: 0644]
gnu/xsize.h
gnu/xstrndup.c
gnu/xstrndup.h
gnu/xstrtol-error.c
gnu/xstrtol.c
gnu/xstrtol.h
gnu/xvasprintf.c
gnu/xvasprintf.h
lib/Makefile.am
lib/Makefile.in
lib/attr-xattr.in.h [new file with mode: 0644]
lib/prepargs.c
lib/rmt.h
lib/rtapelib.c
lib/stdopen.c
lib/system.h
lib/wordsplit.c [new file with mode: 0644]
lib/wordsplit.h [new file with mode: 0644]
lib/xattr-at.c [new file with mode: 0644]
lib/xattr-at.h [new file with mode: 0644]
m4/00gnulib.m4
m4/acl.m4 [new file with mode: 0644]
m4/alloca.m4
m4/argp.m4
m4/backupfile.m4
m4/bison.m4
m4/btowc.m4
m4/canonicalize.m4
m4/chdir-long.m4
m4/chown.m4
m4/clock_time.m4
m4/close-stream.m4
m4/close.m4
m4/closedir.m4 [new file with mode: 0644]
m4/closeout.m4
m4/codeset.m4
m4/configmake.m4
m4/d-ino.m4
m4/dirent-safer.m4
m4/dirent_h.m4
m4/dirfd.m4
m4/dirname.m4
m4/double-slash-root.m4
m4/dup.m4 [new file with mode: 0644]
m4/dup2.m4
m4/eealloc.m4
m4/environ.m4
m4/errno_h.m4
m4/error.m4
m4/exponentd.m4 [new file with mode: 0644]
m4/extensions.m4
m4/extern-inline.m4 [new file with mode: 0644]
m4/fchdir.m4
m4/fchmodat.m4 [new file with mode: 0644]
m4/fchownat.m4 [new file with mode: 0644]
m4/fcntl-o.m4
m4/fcntl.m4
m4/fcntl_h.m4
m4/fdopendir.m4
m4/fileblocks.m4
m4/filenamecat.m4
m4/float_h.m4
m4/fnmatch.m4
m4/fpending.m4
m4/fseek.m4 [new file with mode: 0644]
m4/fseeko.m4
m4/fstat.m4 [new file with mode: 0644]
m4/fstatat.m4 [new file with mode: 0644]
m4/futimens.m4
m4/getcwd-abort-bug.m4
m4/getcwd-path-max.m4
m4/getcwd.m4
m4/getdelim.m4
m4/getdtablesize.m4
m4/getline.m4
m4/getopt.m4
m4/getpagesize.m4
m4/gettext.m4
m4/gettime.m4
m4/gettimeofday.m4
m4/glibc21.m4
m4/gnulib-common.m4
m4/gnulib-comp.m4
m4/human.m4
m4/iconv.m4
m4/include_next.m4
m4/intlmacosx.m4
m4/intmax_t.m4
m4/inttostr.m4
m4/inttypes-pri.m4
m4/inttypes.m4
m4/inttypes_h.m4
m4/iswblank.m4
m4/langinfo_h.m4
m4/largefile.m4 [new file with mode: 0644]
m4/lchown.m4
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
m4/libunistring-base.m4
m4/link-follow.m4
m4/link.m4
m4/linkat.m4
m4/localcharset.m4
m4/locale-fr.m4
m4/locale-ja.m4
m4/locale-zh.m4
m4/locale_h.m4 [new file with mode: 0644]
m4/localeconv.m4 [new file with mode: 0644]
m4/longlong.m4
m4/lseek.m4
m4/lstat.m4
m4/malloc.m4
m4/malloca.m4
m4/manywarnings.m4 [new file with mode: 0644]
m4/mbchar.m4
m4/mbiter.m4
m4/mbrtowc.m4
m4/mbsinit.m4
m4/mbsrtowcs.m4
m4/mbstate_t.m4
m4/mbtowc.m4
m4/memchr.m4
m4/mempcpy.m4
m4/memrchr.m4
m4/mkdir.m4
m4/mkdirat.m4 [new file with mode: 0644]
m4/mkdtemp.m4
m4/mkfifo.m4
m4/mkfifoat.m4
m4/mknod.m4
m4/mktime.m4
m4/mmap-anon.m4
m4/mode_t.m4
m4/modechange.m4
m4/msvc-inval.m4 [new file with mode: 0644]
m4/msvc-nothrow.m4 [new file with mode: 0644]
m4/multiarch.m4
m4/nl_langinfo.m4
m4/nls.m4
m4/nocrash.m4 [new file with mode: 0644]
m4/off_t.m4 [new file with mode: 0644]
m4/open.m4
m4/openat.m4
m4/opendir.m4 [new file with mode: 0644]
m4/parse-datetime.m4
m4/pathmax.m4
m4/po.m4
m4/printf.m4
m4/priv-set.m4
m4/progtest.m4
m4/quote.m4
m4/quotearg.m4
m4/raise.m4 [new file with mode: 0644]
m4/rawmemchr.m4
m4/read.m4 [new file with mode: 0644]
m4/readdir.m4 [new file with mode: 0644]
m4/readlink.m4
m4/readlinkat.m4
m4/realloc.m4
m4/regex.m4
m4/rename.m4
m4/renameat.m4
m4/rewinddir.m4 [new file with mode: 0644]
m4/rmdir.m4
m4/rpmatch.m4
m4/safe-read.m4
m4/safe-write.m4
m4/save-cwd.m4
m4/savedir.m4
m4/secure_getenv.m4 [new file with mode: 0644]
m4/selinux-context-h.m4 [new file with mode: 0644]
m4/selinux-selinux-h.m4 [new file with mode: 0644]
m4/setenv.m4
m4/signal_h.m4 [new file with mode: 0644]
m4/size_max.m4
m4/sleep.m4
m4/snprintf.m4
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/stpcpy.m4
m4/strcase.m4
m4/strchrnul.m4
m4/strdup.m4
m4/strerror.m4
m4/string_h.m4
m4/strings_h.m4
m4/strndup.m4
m4/strnlen.m4
m4/strtol.m4
m4/strtoul.m4
m4/strtoull.m4
m4/strtoumax.m4
m4/symlink.m4
m4/symlinkat.m4
m4/sys_socket_h.m4 [new file with mode: 0644]
m4/sys_stat_h.m4
m4/sys_time_h.m4
m4/sys_types_h.m4 [new file with mode: 0644]
m4/sysexits.m4
m4/tempname.m4
m4/time_h.m4
m4/time_r.m4
m4/timespec.m4
m4/tm_gmtoff.m4
m4/unistd-safer.m4
m4/unistd_h.m4
m4/unlink.m4
m4/unlinkat.m4 [new file with mode: 0644]
m4/unlinkdir.m4
m4/unlocked-io.m4
m4/utimbuf.m4
m4/utimens.m4
m4/utimensat.m4
m4/utimes.m4
m4/vasnprintf.m4
m4/vasprintf.m4
m4/version-etc.m4
m4/vsnprintf.m4
m4/warn-on-use.m4
m4/warnings.m4 [new file with mode: 0644]
m4/wchar_h.m4
m4/wchar_t.m4
m4/wcrtomb.m4
m4/wctype_h.m4
m4/wcwidth.m4
m4/wint_t.m4
m4/write.m4
m4/xalloc.m4
m4/xgetcwd.m4
m4/xsize.m4
m4/xstrndup.m4
m4/xstrtol.m4
m4/xvasprintf.m4
po/LINGUAS
po/POTFILES.in
po/bg.gmo
po/bg.po
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/el.gmo
po/el.po
po/eo.gmo [new file with mode: 0644]
po/eo.po [new file with mode: 0644]
po/es.gmo
po/es.po
po/et.gmo
po/et.po
po/eu.gmo
po/eu.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/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/ko.gmo
po/ko.po
po/ky.gmo
po/ky.po
po/ms.gmo
po/ms.po
po/nb.gmo
po/nb.po
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/pt.gmo
po/pt.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/sk.gmo
po/sk.po
po/sl.gmo
po/sl.po
po/sv.gmo
po/sv.po
po/tar.pot
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
rmt/Makefile.am
rmt/Makefile.in
scripts/Makefile.am
scripts/Makefile.in
scripts/backup-specs
scripts/backup.in
scripts/backup.sh.in
scripts/dump-remind.in
scripts/restore.in
src/Makefile.am
src/Makefile.in
src/arith.h
src/buffer.c
src/checkpoint.c
src/common.h
src/compare.c
src/create.c
src/delete.c
src/exit.c
src/extract.c
src/incremen.c
src/list.c
src/misc.c
src/names.c
src/sparse.c
src/suffix.c
src/system.c
src/tar.c
src/tar.h
src/transform.c
src/unlink.c
src/update.c
src/utf8.c
src/warning.c
src/xattrs.c [new file with mode: 0644]
src/xattrs.h [new file with mode: 0644]
src/xheader.c
tests/Makefile.am
tests/Makefile.in
tests/T-cd.at [new file with mode: 0644]
tests/T-empty.at
tests/T-mult.at [new file with mode: 0644]
tests/T-nest.at [new file with mode: 0644]
tests/T-nonl.at [new file with mode: 0644]
tests/T-null.at
tests/T-rec.at [new file with mode: 0644]
tests/T-zfile.at [new file with mode: 0644]
tests/acls01.at [new file with mode: 0644]
tests/acls02.at [new file with mode: 0644]
tests/append.at
tests/append01.at
tests/append02.at
tests/append03.at
tests/append04.at [new file with mode: 0644]
tests/atlocal.in
tests/backup01.at
tests/capabs_raw01.at [new file with mode: 0644]
tests/chtype.at
tests/comprec.at
tests/delete01.at
tests/delete02.at
tests/delete03.at
tests/delete04.at
tests/delete05.at
tests/exclude.at
tests/exclude01.at
tests/exclude02.at
tests/exclude03.at
tests/exclude04.at
tests/exclude05.at
tests/exclude06.at
tests/exclude07.at [new file with mode: 0644]
tests/exclude08.at [new file with mode: 0644]
tests/exclude09.at [new file with mode: 0644]
tests/exclude10.at [new file with mode: 0644]
tests/exclude11.at [new file with mode: 0644]
tests/exclude12.at [new file with mode: 0644]
tests/exclude13.at [new file with mode: 0644]
tests/exclude14.at [new file with mode: 0644]
tests/exclude15.at [new file with mode: 0644]
tests/exclude16.at [new file with mode: 0644]
tests/extrac01.at
tests/extrac02.at
tests/extrac03.at
tests/extrac04.at
tests/extrac05.at
tests/extrac06.at
tests/extrac07.at
tests/extrac08.at
tests/extrac09.at
tests/extrac10.at
tests/extrac11.at
tests/extrac12.at
tests/extrac13.at
tests/extrac14.at
tests/extrac15.at
tests/extrac16.at
tests/extrac17.at
tests/extrac18.at [new file with mode: 0644]
tests/extrac19.at [new file with mode: 0644]
tests/filerem01.at
tests/filerem02.at
tests/genfile.c
tests/grow.at
tests/gzip.at
tests/ignfail.at
tests/incr01.at
tests/incr02.at
tests/incr03.at
tests/incr04.at
tests/incr05.at
tests/incr06.at
tests/incr07.at [new file with mode: 0644]
tests/incr08.at [new file with mode: 0644]
tests/incr09.at [new file with mode: 0644]
tests/incremental.at
tests/indexfile.at
tests/label01.at
tests/label02.at
tests/label03.at
tests/label04.at
tests/label05.at
tests/link01.at
tests/link02.at
tests/link03.at
tests/link04.at
tests/listed01.at
tests/listed02.at
tests/listed03.at
tests/listed04.at
tests/listed05.at [new file with mode: 0644]
tests/long01.at
tests/longv7.at
tests/lustar01.at
tests/lustar02.at
tests/lustar03.at
tests/multiv01.at
tests/multiv02.at
tests/multiv03.at
tests/multiv04.at
tests/multiv05.at
tests/multiv06.at
tests/multiv07.at
tests/multiv08.at
tests/old.at
tests/opcomp01.at [new file with mode: 0644]
tests/opcomp02.at [new file with mode: 0644]
tests/opcomp03.at [new file with mode: 0644]
tests/opcomp04.at [new file with mode: 0644]
tests/opcomp05.at [new file with mode: 0644]
tests/opcomp06.at [new file with mode: 0644]
tests/options.at
tests/options02.at
tests/owner.at [new file with mode: 0644]
tests/package.m4
tests/pipe.at
tests/recurse.at
tests/remfiles01.at
tests/remfiles02.at
tests/remfiles03.at
tests/remfiles04a.at [new file with mode: 0644]
tests/remfiles04b.at [new file with mode: 0644]
tests/remfiles04c.at [new file with mode: 0644]
tests/remfiles05a.at [new file with mode: 0644]
tests/remfiles05b.at [new file with mode: 0644]
tests/remfiles05c.at [new file with mode: 0644]
tests/remfiles06a.at [new file with mode: 0644]
tests/remfiles06b.at [new file with mode: 0644]
tests/remfiles06c.at [new file with mode: 0644]
tests/remfiles07a.at [new file with mode: 0644]
tests/remfiles07b.at [new file with mode: 0644]
tests/remfiles07c.at [new file with mode: 0644]
tests/remfiles08a.at [new file with mode: 0644]
tests/remfiles08b.at [new file with mode: 0644]
tests/remfiles08c.at [new file with mode: 0644]
tests/remfiles09a.at [new file with mode: 0644]
tests/remfiles09b.at [new file with mode: 0644]
tests/remfiles09c.at [new file with mode: 0644]
tests/rename01.at
tests/rename02.at
tests/rename03.at
tests/rename04.at
tests/rename05.at
tests/same-order01.at
tests/same-order02.at
tests/selacl01.at [new file with mode: 0644]
tests/selnx01.at [new file with mode: 0644]
tests/shortfile.at
tests/shortrec.at
tests/shortupd.at
tests/sigpipe.at
tests/sparse01.at
tests/sparse02.at
tests/sparse03.at
tests/sparse04.at
tests/sparsemv.at
tests/sparsemvp.at
tests/spmvp00.at
tests/spmvp01.at
tests/spmvp10.at
tests/star/README
tests/star/gtarfail.at
tests/star/gtarfail2.at
tests/star/multi-fail.at
tests/star/pax-big-10g.at
tests/star/quicktest.sh
tests/star/ustar-big-2g.at
tests/star/ustar-big-8g.at
tests/testsuite
tests/testsuite.at
tests/time01.at [new file with mode: 0644]
tests/truncate.at
tests/update.at
tests/update01.at
tests/update02.at
tests/verbose.at
tests/verify.at
tests/version.at
tests/volsize.at
tests/volume.at
tests/xattr01.at [new file with mode: 0644]
tests/xattr02.at [new file with mode: 0644]
tests/xattr03.at [new file with mode: 0644]
tests/xattr04.at [new file with mode: 0644]
tests/xattr05.at [new file with mode: 0644]
tests/xform-h.at
tests/xform01.at

index bb3a1013b9b2d5b18b5629c9298e3a7269c93a59..3dbd67a7c62b6e45de5e00e1abb3e07adb2dbda8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Version 1.27
+
+       * NEWS: Update.
+       * configure.ac: Update.
+
+2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor fixes.
+
+       * src/names.c: Include argp.h
+       * tests/testsuite.at (AT_XATTRS_UTILS_PREREQ)
+       (AT_SELINUX_UTILS_PREREQ,AT_ACLS_UTILS_PREREQ)
+       (AT_CAPABILITIES_UTILS_PREREQ)
+       (AT_XATTRS_PREREQ,AT_SELINUX_PREREQ)
+       (AT_ACLS_PREREQ): Use POSIX-compatible syntax for
+       mktemp.
+       * tests/incr08.at: Fix find usage.
+
+2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Xfail the remfiles09b test.
+
+       * tests/remfiles09b.at: Turn into expected failure.
+
+2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Tiny change
+
+       * scripts/tar-snapshot-edit: Mention --show-snapshot-field-ranges
+       option
+
+2013-10-05  Pavel Raiskup  <praiskup@redhat.com>
+
+       Tiny change
+
+       * configure.ac (RSH): Define as AC_ARG_VAR.
+
+2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix namespace contamination in testsuite.
+
+       * tests/append01.at: Use m4_pushdef/m4_popdef to define local
+       macros.
+       * tests/delete03.at: Likewise.
+       * tests/exclude06.at: Likewise.
+       * tests/incr04.at: Likewise.
+       * tests/link03.at: Likewise.
+       * tests/long01.at: Likewise.
+       * tests/longv7.at: Likewise.
+       * tests/lustar01.at: Likewise.
+       * tests/lustar02.at: Likewise.
+       * tests/lustar03.at: Likewise.
+       * tests/multiv05.at: Likewise.
+       * tests/sparse04.at: Likewise.
+
+2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Provide comprehensive testcases for various file removal modes.
+
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+       * tests/incr09.at: Add description.
+       * tests/remfiles04a.at: New file.
+       * tests/remfiles05.at: Rename to ...
+       * tests/remfiles04b.at: ... this.
+       * tests/remfiles04.at: Rename to ...
+       * tests/remfiles04c.at: ... this.
+       * tests/remfiles05a.at: New file.
+       * tests/remfiles05b.at: New file.
+       * tests/remfiles06.at: Rename to ...
+       * tests/remfiles05c.at: ... this.
+       * tests/remfiles06a.at: New file.
+       * tests/remfiles06b.at: New file.
+       * tests/remfiles06c.at: New file.
+       * tests/remfiles07a.at: New file.
+       * tests/remfiles07b.at: New file.
+       * tests/remfiles07c.at: New file.
+       * tests/remfiles08a.at: New file.
+       * tests/remfiles08b.at: New file.
+       * tests/remfiles08c.at: New file.
+       * tests/remfiles08.at: Rename to ...
+       * tests/remfiles09a.at: ... this.
+       * tests/remfiles09b.at: New file.
+       * tests/remfiles07.at: Rename to ...
+       * tests/remfiles09c.at: ... this.
+
+2013-10-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Tiny changes.
+
+       * src/misc.c: Fix comments, rename wd.cwd to wd.abspath (Nathan
+       Stratton
+       Treadway);
+       * src/tar.c (options): Reword description of the --starting-file
+       and
+       --preserve-order options.
+       (decode_options): Both --starting-file and --preserve-order
+       have meaning
+       only when used together with an archive reading command. (Pavel
+       Raiskup).
+
+2013-10-01  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Revamp tar_getcwd/normalize_filename stuff.
+
+       The changes are based on the discussion with Nathan.
+
+       * src/common.h (normalize_filename): Take two arguments. All
+       callers updated.
+       (tar_getcwd): Replaced with ..
+       (tar_getcdpath): New proto.
+       * src/misc.c (normalize_filename): Take two arguments.
+       (chdir_arg): Populate cwd along with creating the
+       structure.
+       (tar_getcwd): Removed.
+       (tar_getcdpath): New function.
+
+       * tests/incr09.at: New test case.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+
+2013-09-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix
+
+       * tests/remfiles08.at: Restore missing find
+
+2013-09-26  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Use relative addressing in deferred unlinks.
+
+       * src/common.h (tar_dirname): New function.
+       * src/misc.c (normalize_filename_x): Make extern.
+       (tar_dirname): New function.
+       (tar_getcwd): Take into account absoulte pathnames.
+       * src/unlink.c (deferred_unlink) <dir_idx>: New member; keeps the
+       value of chdir_current at the moment of structure allocation.
+       (flush_deferred_unlinks): Use chdir_do and relative addressing.
+       (queue_deferred_unlink): Initialize dir_idx.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Add new tests.
+       * tests/remfiles06.at: Fix description.
+       * tests/remfiles07.at: Fix description.
+       * tests/remfiles08.at: New test case.
+
+2013-09-25  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Improve tar-snapshot-edit
+
+       Support architecture-specific field ranges for the "-c" function.
+       Better handle negative or larger-than-32-bit field values even
+       when running in 32-bit Perl (for the default "print a summary"
+       function)
+
+2013-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve tar_getcwd
+
+       * src/common.h (tar_getcwd): Return pointer is const.
+       * src/misc.c (wd) <cwd>: New member.
+       (chdir_arg): Initialize cwd.
+       (tar_getcwd): Use cwd member to cache the result.  Take into
+       account absolute pathnames,
+       (normalize_filename): Don't free the value
+       returned from tar_getcwd.
+       * src/names.c (name_next_elt): Remove leftover call chdir().
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+
+       * tests/incr08.at: New testcase.
+       * tests/remfiles04.at: New testcase.
+       * tests/remfiles05.at: New testcase.
+       * tests/remfiles06.at: New testcase.
+       * tests/remfiles07.at: New testcase.
+
+2013-09-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix normalize_filename.
+
+       The function did not take into account eventual -C options, which
+       in particular led to various problems when using -C and
+       --remove-files
+       together.
+
+       * src/common.h (namebuf_add_dir,namebuf_finish)
+       (tar_getcwd): New prototypes.
+       * src/misc.c (namebuf_add_dir,namebuf_finish)
+       (tar_getcwd): New functions.
+       (normalize_filename): Use tar_getcwd.
+
+2013-09-23  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Changes for compatibility with Slackware installation scripts.
+
+       * src/buffer.c (short_read): the "Record size" message
+       is controlled by the WARN_RECORD_SIZE warning_option bit.
+       * src/common.h (keep_directory_symlink_option): New global.
+       (WARN_RECORD_SIZE): New constant.
+       (WARN_VERBOSE_WARNINGS): Add WARN_RECORD_SIZE.
+       * src/extract.c (extract_dir): If keep_directory_symlink_option is
+       set, follow symlinks to directories.
+       * src/suffix.c (compression_suffixes): Add support for txz
+       suffix.
+       * src/tar.c (KEEP_DIRECTORY_SYMLINK_OPTION): New constant.
+       (options): New option --keep-directory-symlink.
+       (parse_opt): Handle this option.
+       * src/warning.c: Implement "record-size" warning control.
+
+       * NEWS: Update.
+       * doc/tar.texi: Document new features.
+
+2013-09-21  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix error message (complements 0ea6e686)
+
+       * src/tar.c (set_subcommand_option): Mention --delete in the
+       error message.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve the incr07 test
+
+2013-09-15  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Implement the --show-snapshot-field-ranges option
+
+       * src/common.h (show_snapshot_field_ranges): New prototype.
+       * src/incremen.c (show_snapshot_field_ranges): New function.
+       * src/tar.c: New option --show-snapshot-field-ranges.
+       * doc/snapshot.texi: Document the --show-snapshot-field-ranges
+       option.
+       * doc/tar.texi: Likewise.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Take into account chdir_fd when extracting from incremental dumps.
+
+       * src/common.h (tar_savedir): New prototype.
+       * src/misc.c (tar_savedir): New function.
+       (remove_any_file): Use tar_savedir.
+       * src/incremen.c (try_purge_directory): Use tar_savedir.
+       * src/update.c (update_archive): Use tar_savedir.
+       * tests/incr07.at: New testcase.
+       * tests/Makefile.am (TESTSUITE_AT): Add new test.
+       * tests/testsuite.at: Likewise.
+       * THANKS: Updated.
+
+2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor fix
+
+       * src/tar.c (main): Mention --delete in the error message.
+       * THANKS: Update
+
+2013-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/names.c (file_list_name): Properly prototype.
+
+2013-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't warn about zero timestamps
+
+       * src/extract.c (check_time): Suppress warniing when t.tv_sec
+       == 0.
+       Problem reported by Denis Excoffier.
+
+2013-08-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Minor fix in the testsuite.
+
+       * tests/T-cd.at: sort the 'tar cf' output.
+
+2013-08-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve error diagnostics
+
+       * src/names.c (file_list_name): New static function.
+       (add_file_id): If a filelist is being read twice, print the names
+       of the files that caused it.
+       * tests/T-rec.at: New test case.
+       * tests/Makefile.am: Add new file.
+       * tests/testsuite.at: Include new file.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Revamp initial name collection functions to ensure proper
+       argument ordering.
+
+       * src/names.c (NELT_NOOP): New constant
+       (name_elt) <next,prev>: New members.
+       (name_array,allocated_entries,entries,scanned): Remove.
+       (check_name_alloc): Remove function.
+       (name_elt_alloc): New static.
+       (name_list_adjust,name_list_advance): New functions.
+       (name_add_name,name_add_dir)
+       (name_add_file): Use new allocation functions.
+       (read_next_name): Advance list head pointer as necessary
+       before returning.
+       (name_next_elt): Read elements from list.
+       * tests/T-cd.at: New file.
+       * tests/T-mult.at: New file.
+       * tests/T-nest.at: New file.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Don't treat attempts to read an already read file list as
+       fatal errors.
+
+       * src/names.c (add_file_id): Report error and return 1 if the file
+       has already been read.
+       (read_next_name): Don't try to open file if add_file_id returns 1.
+       (name_next_elt): Simplify conditional.
+
+2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor change.
+
+       * src/names.c (name_next_elt): Simplify conditional.
+
+2013-08-15  Pavel Raiskup  <praiskup@redhat.com>
+
+       Fix use of uninitialized memory
+
+       * src/names.c (name_add_file): Initialize the ep->v.file.fp
+       pointer
+       after structure allocation.
+
+2013-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor changes
+
+       * src/names.c (handle_option): Use program_invocation_short_name
+       instead of the constant string.
+       (read_next_name): Remove unused variable.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Update the docs.
+
+       * doc/tar.texi: Parsing of the options found in the file list
+       follows the same rules as for command line.  Remove the obsolete
+       description.  This complements 26538c9b.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix interacton of --verbose and --append.
+
+       * src/buffer.c (_open_archive): don't overwrite existing archive
+       if given the --verify option.
+       * tests/append04.at: New file.
+       * tests/Makefile.am: Add new testcase.
+       * tests/testsuite.at: Add new testcase.
+       * THANKS: Update.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix.
+
+       * src/names.c (read_name_from_file): Fix a typo. Remove
+       unused variable.
+
+2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Reduce memory consuption when handling the -T option.
+
+       The commit cdb27293 made the -T option more flexible, but
+       incurred a very considerable memory overhead by storing
+       all file names in the argument array.  In case of very
+       big file lists this caused tar to run out of memory.  This
+       was reported by Christian Wetzel <wetzel@phoenix-pacs.de>
+       on March 14, 2013
+       (http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00018.html).
+
+       On the other hand, Michal Žeidl discovered that tar misfunctioned
+       when given empty file lists or lists with the trailing newline
+       misssing in the last entry.  This was reported by Pavel Raiskup
+       on July 23
+       (http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html
+       and
+       msg00010.html).
+
+       This change fixes both issues.
+
+       * src/common.h (name_add_file,request_stdin): New prototype.
+       (more_options): New prototype.
+       * src/names.c (NELT_FILE): New entry type.
+       (name_elt) <file>: New union member.
+       (name_add_file): New function.
+       (read_name_from_file): New function, a rewrite of
+       the same function from tar.c
+       (read_next_name,copy_name): New static functions.
+       (name_next_elt): Handle NELT_FILE entries.
+       * src/tar.c (request_stdin): Make extern.
+       (read_name_from_file,add_file_id)
+       (update_argv): Removed.
+       (parse_opt): Change handling of the -T option.
+       (more_options): New function.
+
+       * tests/T-null.at: Rewrite test.
+       * tests/T-zfile.at: New file.
+       * tests/T-nonl.at: New file.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+       * THANKS: Update.
+
+2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the compatibility check for the --occurrence option.
+
+       * src/tar.c (SUBCL_OCCUR): New class.
+       (subcommand_class): Update.
+       (decode_options): Accept the --occurrence option
+       with any subcommand from the SUBCL_OCCUR class.
+
+2013-06-29  Pavel Raiskup  <praiskup@redhat.com>
+
+       testsuite: do not resist on file order in archive
+
+       On my Fedora 19 box, the exclude08 & exclude11 tests failed before
+       this fix.  The reason was that the directory traversing chosen the
+       file order differently than the testsuite expected.
+
+       * tests/exclude08.at: Sort the tarball content output.
+       * tests/exclude09.at: Likewise.
+       * tests/exclude10.at: Likewise.
+       * tests/exclude11.at: Likewise.
+       * tests/exclude12.at: Likewise.
+       * tests/exclude13.at: Likewise.
+       * tests/exclude14.at: Likewise.
+       * tests/exclude15.at: Likewise.
+       * tests/exclude16.at: Likewise.
+
+2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve checks for incompatible options.
+
+       * src/common.h (READ_LIKE_SUBCOMMAND): Remove define.
+       * src/tar.c (IS_SUBCOMMAND_CLASS): New macro.
+       (decode_options): Use IS_SUBCOMMAND_CLASS in checking
+       option compatibility.
+       Accept the --verify option only with subcommands that
+       write to the archive.
+
+       * tests/opcomp01.at: New test case.
+       * tests/opcomp02.at: New test case.
+       * tests/opcomp03.at: New test case.
+       * tests/opcomp04.at: New test case.
+       * tests/opcomp05.at: New test case.
+       * tests/opcomp06.at: New test case.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2013-06-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port to Mingw Shell
+
+       * src/extract.c (extract_symlink) [!HAVE_SYMLINK]:
+       Fix typo by replacing WARN_SYMBOLIC_CAST with WARN_SYMLINK_CAST.
+       Problem reported by kaka in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-06/msg00008.html>.
+
+2013-05-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: revert previous change
+
+       It wasn't actually needed.  Reported by Stefano Lattarini in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00041.html>.
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Decrease from 0.18.2
+       back to 0.16.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: port to bleeding-edge Automake by assuming Gettext 0.18.2
+
+       Reported by Stefano Lattarini in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00009.html>.
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Increase from 0.16
+       to 0.18.2.
+       README-alpha says that we do not make any efforts to accommodate
+       older versions of Gettext.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port to --without-xattrs --enable-gcc-warnings
+
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00029.html>.
+       * src/xattrs.c (xattrs__fd_set) [!HAVE_XATTRS]: Omit.
+
+2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: port to texinfo 5
+
+       * doc/tar.texi (Reports, assumptions, Mixing):
+       Put FIXMEs at line start.
+
+2013-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Continue extracting from a separate volume after skipping a
+       partial member.
+
+       Reported by Göran Udeborg on 2013-03-09.
+
+       * src/extract.c (extract_skip): New function.
+       (prepare_to_extract): Set extractor to extract_skip if starting
+       at a partial member.
+
+2013-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix interaction of various --exclude-tag options with
+       --listed-incremental.
+
+       * src/incremen.c (procdir): Set directory->tagfile in
+       the exclusion_tag_contents case.
+       (makedumpdir): Mark all entries as ignored if directory->tagfile
+       is set.
+       Free new_dump before returning.
+       (maketagdumpdir): New function.
+       (scan_directory): If directory->children is set to
+       NO_CHILDREN and directory->tagfile is set, create a
+       dumpdir consisting of the tagfile only.
+
+       * tests/exclude08.at: New testcase.
+       * tests/exclude09.at: New testcase.
+       * tests/exclude10.at: New testcase.
+       * tests/exclude11.at: New testcase.
+       * tests/exclude12.at: New testcase.
+       * tests/exclude13.at: New testcase.
+       * tests/exclude14.at: New testcase.
+       * tests/exclude15.at: New testcase.
+       * tests/exclude16.at: New testcase.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Include new tests.
+       * tests/atlocal.in (mkexcltest): New function.
+       * tests/chtype.at: Update keywords.
+       * tests/filerem01.at: Likewise.
+       * tests/filerem02.at: Likewise.
+       * tests/incremental.at: Likewise.
+       * tests/multiv04.at: Likewise.
+
+2013-02-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove lint
+
+       * lib/wordsplit.c (_wsplit_error): Mark with printf attribute.
+       (expvar): "Use" defstr to pacify GCC.
+       * src/system.c (xexec): Now _Noreturn, to pacify GCC.
+       (run_decompress_program): Add cast to pacify GCC.
+       (sys_exec_command, sys_exec_info_script,
+       sys_exec_checkpoint_script):
+       Remove unused variables.
+
+2013-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Pass command line arguments to external commands.
+
+       Any option taking a command name as its argument accepts
+       additional arguments as well.
+
+       * lib/wordsplit.c: New file.
+       * lib/wordsplit.h: New file.
+       * lib/Makefile.am: Add new files.
+       * src/system.c (xexec): New function.
+       (run_decompress_program): Use wordsplit.
+       (sys_child_open_for_compress,sys_exec_command)
+       (sys_exec_info_script)
+       (sys_exec_checkpoint_script): Use xexec to invoke external
+       command.
+
+       * NEWS: Update.
+       * doc/tar.texi: Update.
+
+2013-01-29  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       tar: improve compile-time diagnostics
+
+       * src/misc.c (sysinttostr, strtosysint): Improve #error wording.
+
+2013-01-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: improve quality of diagnostics with incrementals
+
+       Inspired by a prototype by Nathan Stratton Treadway in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00000.html>.
+       * src/incremen.c (read_num): Rewrite by merging read_negative_num
+       and read_unsigned_num.  Use strtosysint rather than rolling this
+       stuff ourselves.  Change return type to bool.  All uses changed.
+       (read_negative_num, read_unsigned_num): Remove.
+       (read_num, read_timespec, read_incr_db_2): Improve quality of
+       diagnostics, e.g., by supplying byte offset of error.
+
+2013-01-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: fix bug with sparse files with effective size of 8 GiB
+       or more
+
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html>.
+       * NEWS: Document the fix.
+       * src/sparse.c (pax_start_header): New function.
+       (pax_dump_header_0, pax_dump_header_1): Use it.
+
+2012-12-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: update copyrights for 2013 and as per current GNU standards
+
+2012-12-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: remove unnecessary file
+
+       * src/configure.in: Remove.  This file has been obsolete for
+       a while.
+
+2012-12-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: don't enable warnings by default unless GCC 4.6 or later
+
+       * configure.ac (gl_GCC_VERSION_IFELSE): New macro, from coreutils.
+       (gl_gcc_warnings): By default, disable warnings for GCC versions
+       before 4.6.  This works around a failure when building from git on
+       Ubuntu 10, reported privately by Nathan Stratton Treadway.
+
+2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Handle incremental format 2 with negative numbers, too.
+
+       * src/incremen.c (read_unsigned_num): Last arg is intmax_t *, not
+       uintmax_t, for consistency with other readers.  All callers
+       changed.
+       Avoid signed integer overflow.
+       (read_num):
+
+2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some problems with negative and out-of-range integers.
+
+       Original problem reported for HP-UX LVM v2.2 by Michael White in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-10/msg00000.html>.
+       This patch fixes some other gotchas that I noticed.
+       * gnulib.modules: Add extern-inline.
+       * src/common.h: Use _GL_INLINE_HEADER_BEGIN,
+       _GL_INLINE_HEADER_END.
+       (COMMON_INLINE, max, min): New macros.
+       (represent_uintmax, valid_timespec): New inline functions.
+       (SYSINT_BUFSIZE): New constant.
+       (sysinttostr, strtosysint, decode_timespec): New decls.
+       * src/create.c (start_private_header): Silently bring the time_t
+       value into range; it is now the caller's responsibility to deal
+       with any overflow error.  Use uid 0 and gid 0 rather than the
+       user's uid/gid, since the faked header isn't "owned" by the user
+       and the uid/gid could in theory be out of range.  Leave major and
+       minor zeroed.
+       (FILL): Remove.
+       (write_gnu_long_link): Let start_private_header zero things out.
+       * src/create.c (write_gnu_long_link, write_extended):
+       * src/xheader.c (xheader_write_global):
+       Use start_time, not current time; no point hammering on the clock.
+       * src/compare.c (diff_multivol): Check that offset, size are
+       in range.
+       * src/incremen.c (read_incr_db_01, write_directory_file_entry):
+       Allow negative time_t, dev_t, and ino_t.
+       * src/list.c (max): Remove (moved to common.h).
+       (read_header): Check that size is in range.
+       (from_header): Return intmax_t, not uintmax_t, to allow negative.
+       All callers changed.  At compile time, check assumptions about
+       intmax_t and uintmax_t.  Use bool for booleans.  Avoid overflow
+       hassles on picky hosts.
+       (mode_from_header): Last arg is now bool *, not unsigned *.
+       All callers changed.
+       (simple_print_header): Do not assume UID, GID fit in 'long'.
+       * src/list.c (from_header):
+       * src/xheader.c (out_of_range_header):
+       Arg is now a plain minimum value, not minus minval converted to
+       uintmax_t.  All callers changed.
+       * src/misc.c (COMMON_INLINE): New macro.
+       (sysinttostr, strtosysint, decode_timespec): New functions.
+       * src/sparse.c (oldgnu_add_sparse, oldgnu_fixup_header)
+       (star_fixup_header):
+       Check for offset overflow.
+       (decode_num): Clear errno before calling strtoumax.
+       * src/tar.c (expand_pax_option): Don't discard nanoseconds.
+       * src/xheader.c (assign_time_option): Allow negative time_t.
+       (decode_record): Simplify, since out-of-range string is guaranteed
+       to produce a value exceeding len_max.
+       (xheader_read): Last arg is off_t, not size_t.
+       Caller should diagnose negative arg, as needed.
+       Check that it's in range.
+       (enum decode_time_status): Remove.
+       (_decode_time): Remove, folding into decode_time.
+       (decode_time): Return bool, not enum decode_time_status.
+       Rely on decode_timespec to do most of the work.
+       (code_signed_num): New function.
+       (code_num): Use it.
+       (decode_signed_num): New function.
+       (decode_num): Use it.
+       (gid_coder, gid_decoder, uid_coder, uid_decoder,
+       sparse_map_decoder)
+       (sparse_map_decoder): Code and decode negative values.
+       (sparse_map_decoder): Improve check for out-of-range values.
+       * tests/time01.at: New file.
+       * tests/Makefile.am (TESTSUITE_AT): Add it.
+       * tests/testsuite.at: Include it.
+
+2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port use of mkdirat etc. to Solaris 10.
+
+       * gnulib.modules (fchmodat, fchownat, fstatat, mkdirat, unlinkat):
+       Add.  These were split out in gnulib, so we now need to request
+       them separately.  mkdirat, for example, is not in Solaris 10.
+
+2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port ACL configuration to Solaris 10.
+
+       * configure.ac (with_posix_acls): Fix misspellings.
+       Stop checking at the first failure, to speed up 'configure'.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove unused externs, or make them static
+
+       * src/buffer.c (record_buffer_aligned, flush_write_ptr,
+       flush_read_ptr)
+       (duration):
+       * src/list.c (recent_global_header):
+       * src/unlink.c (deferred_unlink_delay):
+       * src/transform.c (transform_flags):
+       * src/xattrs.c (acl_get_file_at, acl_set_file_at,
+       file_has_acl_at):
+       Now static.
+       * src/common.h (rmt_command_option): Remove; unused.
+       * src/tar.c (check_links_option, allocated_archive_names):
+       Move decls here from common.h; these are now static.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * .gitignore: Regenerate.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: new configure option --enable-gcc-warnings
+
+       This has a similar meaning as in other GNU applications
+       such as coreutils and Emacs.
+       * NEWS: Document it.
+       * .gitignore: Remove redundant build-aux.
+       Remove gnu, since gnu/Makefile.am is now in git.
+       Add gnu/.gitignore, gnu/charset.alias, gnu/*.h, gnu/*/ to cover
+       autogenerated files.
+       * bootstrap.conf (gnulib_mk): Remove.
+       * configure.ac: Add support for --enable-gcc-warnings,
+       taken from coreutils and simplified.
+       * gnu/Makefile.am: New file.  Formerly this was autogenerated,
+       but the autogenerated file has been renamed to gnulib.mk,
+       its usual name when bootstrapping from gnulib.
+       This way, AM_CFLAGS can incorporate warning options.
+       * gnulib.modules: Add manywarnings.
+       * lib/Makefile.am, src/Makefile.am (AM_CFLAGS): New macro,
+       incorporating warning options.
+       * lib/attr-xattr.in.h (ENOATTR): New macro, if not already
+       defined.
+       * src/buffer.c (magic): Don't rely on incomplete initializers.
+       * src/common.h (report_difference): Add printf format attribute.
+       * src/system.c (sys_exec_command, sys_exec_info_script)
+       (sys_exec_checkpoint_script):
+       * src/tar.c (update_argv):
+       Add casts to char * to pacify GCC warnings about using string
+       literals in a char * context.
+       * src/xattrs.c, src/xattrs.h (xattrs_clear_setup):
+       Declare parameters as (void), not ().
+       * src/xheader.c (xheader_format_name): Initialize pptr to null,
+       to pacify GCC.  Remove unnecessary test of nptr versus null.
+
+2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't truncate diagnostic
+
+       * src/list.c (from_header): Fix buffer size calculation when
+       generating a diagnostic.
+
+2012-12-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix.
+
+       * tests/Makefile.am: Fix double AM_CPPFLAGS
+
+2012-12-01  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Use AM_CPPFLAGS instead of INCLUDES.
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Housekeeping.
+
+       * NEWS: Mention the support for POSIX ACLs, extended
+       attributes and SELinux context.
+       * THANKS: List James Antill and Pavel Raiskup.
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix indentation.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Allow to store/extract '=' character in xattr keyword
+
+       * src/xheader.c (xattr_decode_keyword)
+       (xattr_encode_keyword): New functions.
+       (xheader_print_n,xattr_decoder): Use them.
+       * tests/xattr05.at: New test case.
+       * tests/Makefile.am: Add new test case.
+       * tests/testsuite.at: Likewise.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Bugfixes.
+
+       * configure.ac: Avoid linking against -lacl when
+       --without-posix-acls is given.
+       * tests/selacl01.at: Call restorecon
+       * tests/selnx01.at: Likewise.
+       * tests/testsuite.at (AT_SELINUX_UTILS_PREREQ): Likewise.
+       (AT_SELINUX_PREREQ,AT_ACLS_PREREQ): Use the right _PREREQ macros.
+
+2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
+
+       Fix bootstrapping.
+
+       * bootstrap (gnulib_extra_files): Remove $build_aux/missing
+
+2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Various fixes.
+
+       * src/xattrs.c: Don't mix variable declarations and statements.
+       Use proper data types.  Remove improper use of const qualifiers.
+       Use x2nrealloc to reallocate memory buffers.
+
+2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor change.
+
+       * src/xattrs.c: Fix indentation. Fix copyleft statement, promote
+       to GPLv3+.
+       * src/xattrs.h: Likewise
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Add SELinux context store/restore/list support.
+
+       * gnulib.modules: Add selinux-at.
+       * src/Makefile.am (tar_LDADD): Add LIB_SELINUX.
+
+       * src/create.c (start_header, dump_file0): Handle selinux
+       contexts.
+       * src/extract.c (delayed_set_stat) <cntx_name>: New member.
+       (delayed_link) <cntx_name>: New member.
+       (set_stat, delay_set_stat)
+       (apply_nonancestor_delayed_set_stat): Handle selinux contexts.
+       * src/tar.c: New options: "--selinux", "--no-selinux".
+       (tar_stat_destroy): Free cntx_name.
+       * src/tar.h (tar_stat_info) <cntx_name>: New member.
+       * src/xattrs.c (xattrs_selinux_get)
+       (xattrs_selinux_set): New functions.
+       (xattrs_print_char): Honor selinux_context_option.
+       (xattrs_print): Print selinux context.
+       * src/xheader.c: Handle new keyword "RHT.security.selinux".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       * tests/selacl01.at: New test.
+       * tests/selnx01.at: New test.
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Support for POSIX ACLs
+
+       * configure.ac: Check whether ACLs are available on the
+       host system.
+       * gnulib.modules: Add acl
+       * src/create.c (start_header): Store ACLs when creating
+       a POSIX archive.
+       (dump_file0): Handle ACLs.
+       * src/extract.c (delayed_set_stat) <acls_a_ptr, acls_a_len>
+       <acls_d_ptr, acls_d_len>: New members.
+       (delayed_link): Likewise.
+       (set_stat,delay_set_stat)
+       (apply_nonancestor_delayed_set_stat): Set ACLs.
+       * src/tar.c: New options: "--acls", "--no-acls"
+       (tar_stat_destroy): Free acls_a_ptr and acls_d_ptr fields.
+       * src/tar.h (tar_stat_info) <acls_a_ptr, acls_a_len>
+       <acls_d_ptr, acls_d_len>: New members.
+       * src/xattrs.c (xattrs_acls_get, xattrs_acls_set): New functions.
+       * src/xheader.c: Support new keywors: "SCHILY.acl.access" and
+       "SCHILY.acl.default".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       * tests/acls01.at: New test.
+       * tests/acls02.at: New test.
+
+2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
+
+       Add basic suuport for extended attributes.
+
+       * src/Makefile.am: Add xattrs.[ch]
+       * src/xattrs.c: New file.
+       * src/xattrs.h: New file.
+       * src/common.h (READ_LIKE_SUBCOMMAND): New define.
+       (selinux_context_option, acls_option, xattrs_option): New globals.
+       (xheader_xattr_init, xheader_xattr_free)
+       (xheader_xattr_copy, xheader_xattr_add): New protos.
+       (WARN_XATTR_WRITE): New mask.
+       * src/create.c (start_header): Handle xattrs pairs if in POSIX
+       format.
+       (dump_file0): Handle extended attributes.
+       * src/extract.c (delayed_set_stat,delayed_link) <xattr_map_size>
+       <xattr_map>: New members.
+       (set_xattr): New static function.
+       (open_output_file): Accept an additional argument indicating
+       whether the file has already been created.
+       (set_stat,delay_set_stat)
+       (apply_nonancestor_delayed_set_stat)
+       (extract_file): Handle extended attributes.
+       * src/list.c (decode_header, simple_print_header): Display
+       extended attributes.
+       * src/tar.c: New options --xattrs, --no-xattrs, --xattrs-include,
+       --xattrs-exclude
+       (tar_stat_destroy): Free the xattr_map storage.
+       * src/tar.h (xattr_array): New struct.
+       (tar_stat_info) <xattr_map_size, xattr_map>: New members.
+       * src/warning.c: New warning control keyword "xattr-write".
+       * src/xheader.c (xheader_xattr_init)
+       (xheader_xattr_free, xheader_xattr_add)
+       (xheader_xattr_copy): New functions.
+       (struct xhdr_tab) <prefix>: New member.
+       (locate_handler): Permit selecting the keyword based on its
+       prefix.
+       (xheader_protected_pattern_p)
+       (xheader_protected_keyword_p): Likewise.
+       (xattr_coder, xattr_decoder): New functions.
+       (xhdr_tab): Reflect the changes to struct xhdr_tab.
+       New keyword "SCHILY.xattr".
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at: Likewise.
+       (AT_CHECK_UTIL, AT_XATTRS_UTILS_PREREQ)
+       (AT_CAPABILITIES_UTILS_PREREQ, AT_XATTRS_PREREQ): New defuns.
+       * tests/xattr01.at: New test.
+       * tests/xattr02.at: New test.
+       * tests/xattr03.at: New test.
+       * tests/xattr04.at: New test.
+       * tests/capabs_raw01.at: New test.
+
+2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Prepare for implementing extended attribute support.
+
+       This patch adds *xattr() stubs in case extended attribute
+       support is
+       not present and implements the *attrat() family of functions.
+       Based
+       on the patch by Pavel Raiskup <pavel@raiskup.cz> for gnulib.
+
+       * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): New defun.
+       * configure.ac: Call TAR_HEADERS_ATTR_XATTR_H
+       * lib/Makefile.am: Add xattr-at.[ch], distribute attr-xattr.in.h
+       [!TAR_COND_XATTR_H]: Build attr/xattr.h
+       * lib/attr-xattr.in.h: New file.
+       * lib/xattr-at.c: New file.
+       * lib/xattr-at.h: New file.
+
+2012-11-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix creation of incremental archives when a subdirectory becomes
+       a mountpoint.
+
+       When used with --listed-incrfental and --one-file-system, tar
+       was unable to cope with directories that had once been part of the
+       dumped system and became separate mount points afterwards.
+       The bug
+       has been reported and a fix proposed by Nathan Stratton Treadway.
+
+       * src/incremen.c (procdir): If one_file_system_option is in
+       effect,
+       clear out dumpdir info from the directory.
+       * tests/Makefile.am: Add new testcase.
+       * tests/listed05.at: New testcase.
+       * tests/testsuite.at (AT_PRIVILEGED_PREREQ): New macro.
+       include listed05.at.
+       * THANKS: Update.
+
+2012-07-27  Jim Meyering  <jim@meyering.net>
+
+       maint: try to avoid unwanted chatter in ChangeLog
+
+       * bootstrap.conf: Do not alter ChangeLog if it already exists.
+
+2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: improve discussion of compressed archives
+
+       * doc/tar.texi (gzip): Don't claim that -I 'gzip --best' works.
+       Problem reported by Davide Brini in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00025.html>.
+       Also, improve some of the surrounding text.
+
+       This file is a placeholder. It will be replaced with the actual
+       ChangeLog
+       by make dist.  Run make ChangeLog if you wish to create it
+       earlier.
+
+2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: fix permissions-assumption bug in test
+
+       * tests/owner.at: Don't assume umask is 022.
+       Reported by Pavel Raiskup in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00015.html>.
+
+2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't assume root is uid 0
+
+       This is not true for Tandem NonStop Kernel.  See Joachim Schmitz's
+       comment in <http://bugs.gnu.org/10305#111>.
+       * gnulib.modules: Add root-uid.
+       * src/extract.c: Include <root-uid.h>.
+       (extr_init): Don't assume root is uid 0.
+
+2012-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/compare.c (diff_dumpdir): Omit useless 'stat'.
+
+2012-04-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Option Summary): Fix xref typo.
+
+       Reported by Nathan Stratton Treadway in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-04/msg00035.html>.
+
+       This file is a placeholder. It will be replaced with the actual
+       ChangeLog
+       by make dist.  Run make ChangeLog if you wish to create it
+       earlier.
+
+2012-03-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix unrecognized option.
+
+       * src/tar.c (parse_opt): Handle OLD_ARCHIVE_OPTION.
+
+2012-03-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: remove lint
+
+       This lint was found by GCC 4.6.2 on Fedora 15 x86-64.
+       * src/buffer.c (buffer_write_global_xheader, mv_end,
+       set_start_time)
+       (compute_duration, print_total_stats, flush_read, flush_write):
+       * src/checkpoint.c (checkpoint_finish_compile):
+       * src/list.c (test_archive_label):
+       * src/misc.c (chdir_count):
+       * src/names.c (const):
+       * src/unlink.c (finish_deferred_unlinks):
+       Define with (void) instead of with (), for slightly-better C type
+       checking and to avoid a GCC warning.
+       * src/compare.c (diff_dumpdir):
+       * src/tar.c (parse_owner_group): Remove unused local.
+       * src/misc.c (chdir_do):
+       * src/tar.c (add_exclude_array): Rename local to avoid shadowing.
+       (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
+       Define only if needed.
+       * src/update.c (update_archive): Initialize a local; this fixes
+       what appears to be a real bug.
+
+2012-02-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: suggest Bash for large-fd script
+
+       * doc/tar.texi (Multi-Volume Archives): Suggest Bash for shell
+       script that might use >&10.  Problem reported by Edward F
+       Eaglehouse in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-02/msg00002.html>.
+
+2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: quote 'like this', not `like this'
+
+       This fixes some test failures recently introduced by gnulib
+       updates
+       prompted by recent changes to the GNU coding standards,
+       which now advise to use quotes 'like this' or "like this"
+       rather than `like this'.
+       * NEWS: Document this.
+       * README, README-hacking, doc/Makefile.am, scripts/backup.in:
+       * scripts/backup.sh.in, scripts/dump-remind.in:
+       * src/buffer.c, src/checkpoint.c, src/create.c, src/incremen.c:
+       * src/misc.c, src/names.c, src/sparse.c, src/transform.c:
+       * tests/incr02.at, tests/incremental.at, tests/multiv08.at:
+       * tests/sparse04.at, tests/star/README, tests/update01.at:
+       Quote 'like this' in comments.
+       * src/tar.h:
+       Quote "like this" in comments, when quoting English phrases rather
+       than code.
+       * configure.ac:
+       * scripts/xsparse.c (get_var, read_xheader, main):
+       * src/compare.c (diff_archive):
+       * src/extract.c (prepare_to_extract):
+       * src/tar.c (request_stdin, tar_set_quoting_style, doc, options)
+       (set_subcommand_option, report_textual_dates, parse_opt)
+       (decode_options, main):
+       * src/xheader.c (decx):
+       Quote 'like this' in diagnostics.
+       * doc/tar.texi (list, warnings, override)
+       (Selecting Archive Members, quoting styles, after, hard links)
+       (Sparse Recovery, Multi-Volume Archives, label):
+       Adjust documentation to match new output.
+       * tests/backup01.at, tests/incr01.at, tests/incr04.at:
+       * tests/label04.at, tests/label05.at, tests/link03.at:
+       * tests/listed02.at, tests/multiv03.at, tests/multiv05.at:
+       * tests/rename01.at, tests/rename02.at, tests/rename03.at:
+       * tests/volume.at:
+       Adjust tests to match new quoting behavior.
+
+2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port --overwrite symlink test to GNU/Hurd
+
+       Problem reported by Pino Toscano in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00040.html>.
+       * gnulib.modules: Add fcntl-h, which defines
+       HAVE_WORKING_O_NOFOLLOW.
+       * src/extract.c (open_output_file): Use HAVE_WORKING_O_NOFOLLOW,
+       not O_NOFOLLOW, when testing whther O_NOFOLLOW works.
+
+       This file is a placeholder. It will be replaced with the actual
+       ChangeLog
+       by make dist.  Run make ChangeLog if you wish to create it
+       earlier.
+
+2012-01-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: fix core dump with --index-file=bad_path
+
+       * src/tar.c (decode_options): Exit cleanly if index file won't
+       open.
+       Problem reported by Khanh-Dang Nguyen Thu Lam in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00018.html>.
+
+2012-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't assume O_NONBLOCK is benign on regular files
+
+       On Data Migration Facility (DMF), High Peformance Storage System
+       (HPSS),
+       and presumably other file systems based on hierarchical storage,
+       opening
+       a regular file with O_NONBLOCK can cause later reads to fail with
+       errno == EAGAIN.  We need the O_NONBLOCK to avoid some security
+       races.
+       Work around the problem by using fcntl to clear the O_NONBLOCK
+       flag if I/O fails with that errno value.
+       Problem reported by Vitezslav Cizek in
+       <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00000.html>.
+       * src/common.h (blocking_read, blocking_write): New decls.
+       * src/misc.c (blocking_read, blocking_write): New functions.
+       * src/compare.c (process_rawdata):
+       * src/create.c (dump_regular_file):
+       * src/extract.c (extract_file):
+       * src/sparse.c (sparse_scan_file, sparse_extract_region):
+
+2011-11-26  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix --keep-old-files option.
+
+       The regression was introduced by 8f390db9.  This patch implements
+       additional
+       option --skip-old-files, which silently skips members which
+       would cause
+       writing over existing files, and restores --keep-old-files to
+       its traditional
+       behavior.
+
+       * NEWS: Update.
+       * configure.ac: Update.
+       * doc/tar.texi: Document the changes.
+       * src/common.h (SKIP_OLD_FILES): New old_files mode.
+       * src/extract.c (maybe_recoverable): Restore KEEP_OLD_FILES
+       behavior.
+       Handle SKIP_OLD_FILES.
+       * src/tar.c: New option --skip-old-files.
+       * tests/extrac18.at: New file.
+       * tests/extrac19.at: New file.
+       * tests/Makefile.am: Add new test cases.
+       * tests/testsuite.at: Likewise.
+
+2011-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Warn about existing files in keep-old-files mode (complements
+       8f390db9).
+
+       This is controlled by "existing-file" warning code, which is off
+       by default.
+
+       * src/common.h (WARN_EXISTING_FILE): New warning code.
+       (WARN_VERBOSE_WARNINGS): Add WARN_EXISTING_FILE.
+       * src/extract.c (maybe_recoverable): warn about existing file
+       if WARN_EXISTING_FILE is set.
+       * src/warning.c: New warning type: "existing-file"
+
+2011-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the "Creating directory:" output
+
+       * src/list.c (print_for_mkdir): don't use unquoted name length for
+       computing its output width.
+
+2011-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix operation of --verify in conjunction with --listed-incremental
+
+       * src/common.h (clear_directory_table): New proto.
+       * src/incremen.c (clear_directory_table): New function.
+       * src/compare.c (diff_dumpdir): Take a pointer to struct
+       tar_stat_info as argument.
+       Initialize its fd.
+       (diff_archive): Update call to diff_dumpdir.
+       (verify_volume): Call clear_directory_table.
+
+2011-10-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Option Summary, absolute): Document -P better,
+
+       by describing how it deals with symbolic links on extraction.
+
+2011-09-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       2011-09-27 Paul Eggert <eggert@cs.ucla.edu>
+
+       * src/tar.c (stat_on_signal): Use SA_RESTART if available.
+
+2011-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi: Remove front- and back-cover texts.
+
+       These are no longer needed for this manual, according to the
+       GNU maintainers guide.  Update copyright date to 2011.
+
+2011-09-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor changes.
+
+       * scripts/tar-snapshot-edit: License under GPLv3+.
+       Remove trailing whitespace.
+
+2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
+
+       Minor changes.
+
+       * doc/snapshot.texi: Clarify the use of nfs field in 0 and
+       1 formats.
+       Give more precise information about which versions of tar
+       used each
+       format.
+
+2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
+
+       Upgrade tar-snapshot-edit script.
+
+       * scripts/tar-snapshot-edit: Update Perl syntax to work
+       correctly with more recent versions of Perl.  (The original
+       code worked with in the v5.8 timeframe but not with
+       Perl v5.10.1 and later.)
+       Add a "-c" option to check the snapshot file for invalid
+       field values.
+       Handle NFS indicator character ("+") in version 0 and 1 files.
+       Preserve the original header/version line when editing version 1
+       or 2 files.
+       Tweak output formatting.
+       * doc/tar-snapshot-edit.texi: Update documentation.
+
+2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: --owner and --group names and numbers
+
+       The --owner and --group options now accept operands of the form
+       NAME:NUM, so that you can specify both symbolic name and numeric
+       ID for owner and group.  Also, in these options, NAME no longer
+       needs to be present in the current host's user and group
+       databases; this implements Debian enhancement request 136231
+       <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=136231> reported
+       by Mark W. Eichin, communicated by Thayne Harbaugh to bug-tar in
+       <http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00001.html>.
+       * NEWS, doc/tar.texi (Option Summary, override): Document
+       enhancement.
+       * src/common.h (group_name_option, owner_name_option): New decls.
+       * src/create.c (start_header): Don't assume owner and group names
+       are in current host database.
+       * src/tar.c (parse_owner_group): New function, for parsing
+       NAME:NUM.
+       (parse_opt): Use it.
+       (decode_options): Initialize owner_name_option, group_name_option.
+       * tests/owner.at: New file, to test this enhancement.
+       * tests/Makefile.am (TESTSUITE_AT): Add it.
+       * tests/testsuite.at: Include it.
+
+2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       .gitignore: update
+
+       * .gitignore: Add rmt.
+       * lib/.gitignore: New file.
+
+2011-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix the --exclude-backups option.
+
+       * src/tar.c (add_exclude_array): Take exclude option filags in its
+       second argument.
+       (parse_opt): Register backup_file_table with the EXCLUDE_WILDCARDS
+       flag.
+       * tests/exclude07.at: New testcase.
+       * tests/Makefile.am (TESTSUITE_AT): Add testsuite.at.
+       * tests/testsuite.at: Include exclude07.at.
+
+2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: simplify birthtime calculations
+
+       * src/extract.c (same_birthtime): Remove.
+       (extract_link, apply_delayed_links): Go back to using
+       timestamp_cmp
+       instead of same_birthtime, as this is a bit simpler.  This fix
+       relies
+       on an up-to-date gnulib.
+
+2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: use birthtime rather than ctime when checking identity
+
+       Without this fix, tar would sometimes mishandle the extraction of
+       hard links to symbolic links.  Problem reported in
+       <http://lists.gnu.org/archive/html/bug-tar/2011-06/msg00000.html>
+       by Andreas Stolcke.
+       * src/extract.c (struct delayed_link): Change ctime member
+       to birthtime.
+       (same_birthtime): New function.
+       (create_placeholder_file, extract_link, apply_delayed_links):
+       Use it to compare birthtimes (when available) instead of ctime.
+
+2011-05-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/tar.texi (Old Options): Clarify distinction from short
+       options.
+
+       Adjust other parts of the manual to use examples that parse the
+       same regardless of whether "-" is in front of the option clump.
+       See
+       <http://lists.gnu.org/archive/html/bug-tar/2011-05/msg00022.html>.
+
+2011-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Testsuite fix.
+
+       * tests/sparse04.at: Use the -f option.
+
 2011-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.26
+
        * NEWS, configure.ac: Update.
        * po/POTFILES.in: Remove paxexit.c (see bb971a1e).
 
 2011-03-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        --atime-preserve=replace: fix correctness and performance bugs
+
        reported by Eric Blake in
        <http://lists.gnu.org/archive/html/bug-tar/2011-03/msg00000.html>.
        * src/compare.c (diff_file): Do not restore atime of size-zero
 2011-02-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doc/tar.texi: Adjust example commands and output for accuracy.
+
        The original problem was reported by Michael Witten in
        <http://lists.gnu.org/archive/html/bug-tar/2011-02/msg00033.html>.
 
 2011-02-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: if (p) free (p); -> free (p);
+
        There is no longer (since SunOS 4) any need to guard against
        free (NULL), so replace each "if (p) free (p);" with "free (p);".
        From Jim Meyering in
 2010-12-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Correctly store long sparse file names in PAX archives.
+
        * src/sparse.c (pax_dump_header_1): Make sure the created header
        name is
        shorter than NAME_FIELD_SIZE bytes.
 2010-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: make the truncate test smaller and less buggy (tiny change)
+
        Reported by Solar Designer in
        <http://lists.gnu.org/archive/html/bug-tar/2010-12/msg00003.html>.
        * tests/truncate.at: Use a smaller test case, and make its
 
        tests: skip SIGPIPE-dependent tests in environments ignoring
        SIGPIPE
+
        Problem reported by Sven Joachim in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00043.html>.
        * tests/remfiles01.at: Use AT_SIGPIPE_PREREQ.
 
        tar: work around NetBSD and Tru64 symlink incompatibility
        with POSIX
+
        Problem reported by Bruno Haible in
        <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00306.html>.
        * src/extract.c (maybe_recoverable):  Also treat EFTYPE (if
 2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: adjust to paxutils change: paxexit.c -> paxexit-status.c
+
        * lib/Makefile.am (libtar_a_SOURCES): paxexit.c renamed to
        paxexit-status.c.
 
+2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: remove unused function dir_removed_diag
+
        * src/common.h (dir_removed_diag): Remove unused decl.
        * src/misc.c (dir_removed_diag): Remove unused function.
 
 2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: work around FreeBSD symlink incompatibility with POSIX
+
        * src/extract.c (maybe_recoverable): Treat EMLINK like ELOOP, for
        FreeBSD.  Problem reported by Christian Weisgerber in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00080.html>.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        * src/names.c: tar: fix bug with --one-file-system
        --listed-incremental
+
        Problem (and idea for fix) reported by Martin Weigel
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00071.html>.
        * src/common.h (is_individual_file): Remove decl.
        * src/names.c (individual_file_table, register_individual_file):
        (is_individual_file): Remove.  All uses removed.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        tests: new test listed04 for --one-file-system
        --listed-incremental
+
        * tests/Makefile.am (TESTSUITE_AT): Add listed04.at.
        * tests/listed04.at: New file.
        * tests/testsuite.at: Include it.
 
+2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        scripts: fix option parsing
+
        Problem reported by Dennis Wydra in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00082.html>.
        * scripts/backup.in: Accept "-l LEVEL".  Be more systematic about
 
        Issue a warning if the archive being compared contais transformed
        file names.
+
        * src/common.h (transform_program_p): New proto.
        * src/transform.c (transform_program_p): New function.
        * src/compare.c (verify_volume): Warn if the archive contains
        transformed file names.
 
+2010-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Minor change.
+
        * doc/tar.texi: Reword the description of decompress-program.
 
 2010-11-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: fix --verify option, which broke in 1.24
+
        * NEWS: Document this.
        * src/compare.c (verify_volume): Decode the header before invoking
        diff_archive, as diff_archive no longer does this as of the
 2010-11-08  Jim Meyering  <meyering@redhat.com>
 
        tests: avoid spurious failure when VERSION_CONTROL envvar is set
+
        * tests/backup01.at: Unset VERSION_CONTROL.  Otherwise,
        when set to e.g., 'always', it would cause this test to fail.
 
 2010-11-07  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.25
+
        * configure.ac: Version 1.25
        * NEWS: Describe the changes.
 
 
        Run alternative decompression programs if the principal one is
        not available.
+
        Some compression programs are able to handle various compression
        formats
        (e.g. `gzip' can decompress files created by `compress', `xz'
 2010-11-02  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: fix some issues with signals, timestamps, "test" typo
+
        * tests/extrac17.at: Add --warning=no-timestamp, to avoid
        bogus warning due to NFS clock skew.
        * tests/remfiles01.at: Discard diagnostics that some shells
 2010-11-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix extraction of device nodes.
+
        * src/extract.c (extract_node): Do not mask out node type.
        The bug was introduced in commit ea964cce.
 
 2010-10-28  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't cross struct member boundaries with OLDGNU_MAGIC
+
        * src/create.c (write_gnu_long_link, start_header): Access
        header->buffer + offsetof (struct posix_header, magic), instead of
        header->header.magic, when reading or writing the OLDGNU_MAGIC
        <http://lists.gnu.org/archive/html/bug-tar/2010-04/msg00023.html>.
        * src/list.c (decode_header): Likewise.
 
+2010-10-28  Paul Eggert  <eggert@cs.ucla.edu>
+
        tests: port to sh variants that squirrel away file descriptors
+
        OpenBSD /bin/sh, and some other sh variants, squirrel away file
        descriptors before closing them.  For example, for "cat 3<&-" they
        first dup file descriptor 3 to a fd that is 10 or greater, then
 2010-10-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Transform file names when updating and appendig to archives.
+
        This complements 28e91b48.
 
        * src/common.h (transform_stat_info): New prototype.
 2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: port to Solaris diff
+
        * tests/extrac13.at: Don't assume that "diff -c" outputs nothing
        when there are no differences.  This is not true on Solaris,
        where it outputs "No differences encounted".
 
+2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix -x --overwrite bug (no --dereference, ! O_NOFOLLOW)
+
        This bug was discovered on Solaris 8.  On older hosts lacking
        O_NOFOLLOW, tar -x --overwrite (without --dereference) follows
        symbolic links, causing the "extract over symlinks" test to fail.
        * src/extract.c (open_output_file): If O_NOFOLLOW is needed but
        does not work, check for a symlink separately.
 
+2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't use "((" in shell scripts
+
        * tests/extrac11.at: Replace "((" with "( (" in shell scripts, as
        "((" is not portable to the Korn shell, and POSIX 1003.1-2008 says
        that "((" is not portable.
 2010-10-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Make sure name matching occurs before name transformation.
+
        The commit 9c194c99 altered that order.
 
        * src/list.c (transform_stat_info): New function.  Split off from
 2010-10-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't assume stdin is open when testing fd limits
+
        * tests/extrac11.at: Redirect stdin from /dev/null, in case
        the parent 'make' is running with stdin closed.
 
 2010-10-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Further fixes in bootstrap.
+
        * bootstrap: Restore the default for gnulib_path
        (symlink_to_dir): Re-apply 67cad07.
 
 2010-10-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: fix bug with -C and extracting directories
+
        Problem reported by Denis Excoffier in
        <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00034.html>.
 
 2010-10-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.24
+
        * configure.ac, NEWS: Version 1.24
        * bootstrap: Restore tar-specific code lost during last
        sync from gnulib (241b72ffad).
 2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use more-accurate diagnostic when intermediate mkdir fails
+
        Without this change, if tar tried to extract a file A/B/C, noticed
        that A/B didn't exist, attempted to mkdir A/B, and the mkdir
        failed, it did not diagnose the mkdir failure, but simply reported
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
+2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tests: port to NFS file servers with clock skew
+
        Several of the tests assumed that a newly created file cannot
        have a time stamp dated in the future.  This assumption is not
        true when files are served by a remote host whose clock is
 
        gnulib: sync from latest gnulib, notably bootstrap and
        parse-datetime
+
        * bootstrap: Sync from gnulib.
        * doc/.gitignore: Rename getdate.texi to parse-datetime.texi.
        * doc/Makefile.am (tar_TEXINFOS): Likewise.
 2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: -x -C symlink fix
+
        * src/misc.c (chdir_do): Don't use O_NOFOLLOW when opening the
        argument to -C.  This is for consistency with "tar -c -C FOO", and
        matches the new documentation.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
+2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: --dereference consistency
+
        This closes another race condition, that occurs when overwriting a
        symlink with a regular file.
        * NEWS (--dereference consistency): New section.
 2010-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: do not crash with --listed-incremental
+
        Problem reported by Frantisek Hanzlik in
        <https://bugzilla.redhat.com/635318> via Kamil Dudka in
        <http://lists.gnu.org/archive/html/bug-tar/2010-09/msg00066.html>.
 2010-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: prefer openat-style functions
+
        This change replaces traditional functions like 'open' with the
        POSIX.1-2008 functions like 'openat'.  Mostly this is an internal
        refactoring change, in preparation for further changes to close
 2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add utimens.h includes
+
        * src/extract.c: Include <utimens.h>, needed for fdutimens
        prototype.
        * src/misc.c: Likewise.
 
+2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: switch to gnulib fdutimensat module
+
        * gnulib.modules: Add fdutimensat.
        * src/common.h (fd_utimensat): Remove decl.
        * src/extract.c (set_stat): Call fdutimensat, not fd_utimensat.
 2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: extract permissions for . last
+
        * src/common.h (must_be_dot_or_slash): New decl.
        * src/extract.c (mark_after_links): New function, taking code
        that used to be in create_placeholder_file.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Likewise.
 
+2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't check for getdtablesize; use AC_CHECK_FUNCS_ONCE
+
        * configure.ac: Don't check for getdtablesize; no longer needed.
        Use AC_CHECK_FUNCS_ONCE rather than AC_CHECK_FUNCS, for
        efficiency.
 
+2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: extract symlink attributes, close some symlink-related races
+
        * NEWS: Describe symlink-extraction improvements.
        * src/extract.c (enum permstatus): Remove.
        (fchmod, fchown): Define dummy replacement macros if the system
 2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: tar -x without --incremental no longer sets atime again
+
        * src/extract.c (set_stat): Use UTIME_OMIT rather than UTIME_NOW.
        The UTIME_NOW was there only to emulate the previous behavior of
        using the current time, and the previous behavior was there only
        because before we started assuming POSIX.1-2008 there was no
        portable way to get the effect of UTIME_NOW.
 
+2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: another --atime-preserve race fix
+
        * src/common.h (set_file_atime): Add parentfd arg.
        * src/compare.c (diff_file): Use it.
        * src/create.c (dump_file0): Likewise.  This closes yet another
        race condition with symbolic links.
        * src/misc.c (set_file_atime): Add parentfd arg.
 
+2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: --atime-preserve fixes for races etc.
+
        This patch fixes a race condition in the --atime-preserve=replace
        option, which might cause tar to improperly follow a symbolic
        link.
 2010-09-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        * configure.ac: tar: close some race conditions when extracting
+
        * configure.ac: Check for fchmod and fchown.  Don't check
        for utimes.
        * src/extract.c (fdchmod, fdchown, fdstat): New functions.
 2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't worry about fdopendir closing its argument
+
        * NEWS: Don't mention dirfd; no longer needed.
        * gnulib.modules: Remove dirfd.
        * src/create.c (get_directory_entries): Remove the code dealing
        <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>
        and gnulib commit 970c9038e4cca46e1b037ae0a6d574dfae6a7327.
 
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
        * NEWS: Fix wording typo in previous change.
+
        Reported by Jim Meyering.
 
+2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: live within system-supplied limits on file descriptors
+
        * NEWS: Note the change.  Mention dirfd and fdopendir.
        * gnulib.modules: Add dirfd and fdopendir.  The code was already
        using fdopendir; dirfd is a new need.
 2010-09-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: improve documentation of reliability and security issues
+
        * doc/tar.texi (Reliability and security, Reliability):
        (Permissions problems, Data corruption and repair, Race
        conditions):
 2010-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: more reliable directory traversal when creating archives
+
        * NEWS: Document this.
        * gnulib.modules: Add openat, readlinkat.
        * src/common.h (open_read_flags, fstatat_flags): New global
 2010-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove lint discovered by Sun C compiler
+
        * src/common.h (WARN_ALL): Don't mask with 0xffffffff; on a 32-bit
        host, 0xffffffff is of type 'unsigned int', which makes WARN_ALL
        an unsigned int value that is too large to fit into an int, and
 2010-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: restore macros that are used in some cases
+
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Restore these macros, undoing the previous change to this file.
        The macros are used after all, in some cases.  Sorry about that.
 2010-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove unused macros
+
        * src/create.c (UINTMAX_TO_CHARS): Remove; no longer used.
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Likewise.
 2010-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files in update/append mode.
+
        * src/update.c (update_archive): Call finish_deferred_unlinks when
        done.
 
 
        tar: avoid assumptions about root access and chmod -w in test
        cases
+
        * tests/extrac07.at, tests/extrac09.at, tests/listed03.at: Use
        AT_UNPRIVILEGED_PREREQ, since this test requires non-root
        privileges.
        portable to start a chmod permissions-list with "-" as it may be
        confused with an option.  Use "chmod a-w" instead.
 
+2010-08-26  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix bug with -C and delayed setting of metadata
+
        * src/common.h (chdir_current): New decl.
        * src/extract.c (struct delayed_set_stat, struct delayed_link):
        New member change_dir.
 2010-08-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Don't apply file transformations to volume names.
+
        * src/list.c (decode_header): Don't apply file transformations
        to volume names.
        * tests/xform01.at: New testcase.
 2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: optimize -c --sparse when file is entirely sparse
+
        * src/sparse.c (sparse_scan_file): If the file is entirely sparse,
        that is, if ST_NBLOCKS is zero, don't bother scanning for nonzero
        blocks.  Idea by Kit Westneat, communicated by Bernd Schubert in
        <http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00038.html>.
        Also, omit unnecessary lseek at start of file.
 
+2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't assume size of a sparse file chunk fits in size_t
+
        * src/tar.h (struct sp_array): Change numbytes from size_t
        to off_t.
        All uses changed.
        * src/xheader.c (sparse_numbytes_decoder, sparse_map_decoder):
        Likewise.
 
+2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: use ctime, not mtime, when checking placeholders
+
        * src/extract.c (struct delayed_link): Rename member mtime
        to ctime.
        All uses changed to use ctime rather than mtime.
 2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add comment to link04.at test
+
        * tests/link04.at: Add explanatory comment at head.
 
+2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix 1.23 Solaris regression related to PRIV_SYS_LINKDIR
+
        The idea was suggested by Petr Sumbera in the thread starting
        here:
        http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00000.html
        Invoke priv_set_restore_linkdir before execv or execlp, so that
        the subprocess has the same privileges that tar originally did.
 
+2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: handle files that occur multiple times but have link count 1
+
        This patch was inspired by the following patch that addressed a
        similar problem in GNU coreutils du:
        http://git.savannah.gnu.org/gitweb/?p=coreutils.git;h=efe53cc72b599979ea292754ecfe8abf7c839d22
 2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use nlink_t for link counts
+
        * src/create.c (struct link): nlink is now of type nlink_t,
        not size_t.
 
+2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: don't export names that aren't used elsewhere
+
        * src/common.h (file_dumpable_p, gid_to_chars, major_to_chars):
        (minor_to_chars, mode_to_chars, uid_to_chars, uintmax_to_chars):
        (string_to_chars, dumpdir_creat0, dumpdir_create, dumpdir_free):
        * src/tar.c (request_stdin): Now static.
        * src/xheader.c (xheader_init): Now static.
 
+2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: fix misspelled identifier "set_comression_program_by_suffix"
+
        * src/suffix.c (set_compression_program_by_suffix): Renamed from
        set_comression_program_by_suffix.
        * src/buffer.c, src/common.h, src/tar.c: All uses changed.
 2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: change interdir_made from int to bool
+
        * src/extract.c (maybe_recoverable, create_placeholder_file):
        Change interdir_made from int * to bool *, since the flag has just
        two values 0 and 1.  All uses changed.  This does not affect tar's
        behavior.
 
+2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
+
        tar: remove trailing white space from source files
+
        * ChangeLog.1, ChangeLog.CVS, Makefile.am, NEWS, README:
        * README-hacking, directory, doc/Makefile.am, doc/dumpdir.texi:
        * doc/gendocs_template, doc/intern.texi, doc/mastermenu.el:
 2010-08-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: update licenses to latest versions from www.gnu.org
+
        * COPYING: Update to latest version; this is just minor
        formatting.
        * doc/fdl.texi: Update from GFDL 1.2 to 1.3.
 2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: no need to report getcwd error if never using the result
+
        * src/misc.c (struct wd): Rename 'saved' to 'err', with new
        semantics.
        (chdir_arg, chdir_do): Adjust to new semantics.  Do not report an
        * tests/testsuite.at: Include it.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
 
+2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
+
        tar: go back to absolutifying filenames in normalize_filename
        for now
+
        * src/misc.c (normalize_filename): For now, go back to making
        filenames absolute, even though this causes 'tar' to fail when
        getcwd fails.  However, do not attempt to resolve ".." as this
 2010-07-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Allow for size suffixes in -L and --record-size options.
+
        * src/tar.c (TAR_SIZE_SUFFIXES): New define.
        (parse_opt): Allow for size suffixes in arguments to
        -L and --record-size options.
 2010-07-15  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: don't crash if getcwd fails
+
        * src/extract.c: Don't include xgetcwd.h.
        (extract_dir): stat "." rather than statting getcwd's output.
        * src/misc.c (normalize_filename_x): Rewrite so as not to resolve
 
        Keep a detailed map of archive members stored in the record
        buffer.
+
        A separate map (bufmap) provides information for creating
        multi-volume continuation headers.
 
        * tests/multiv08.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add multiv08.at.
 
+2010-07-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Version 1.23.90
+
        * NEWS, configure.ac: Version 1.23.90
        * doc/tar.texi: Document the use of lbzip2.
 
 
        Fix exclusion of long file names when extracting from pax format
        archives.
+
        * src/list.c (read_and): Call decode_header before attempting
        name_match.
        (list_archive): Remove call to decode_header.
        * tests/testsuite.at: Include exclude06.at.
        * tests/Makefile.am (TESTSUITE_AT): Add exclude06.at.
 
+2010-06-28  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Minor fix.
+
        * src/buffer.c (magic): Split the character constant to help
        cc recognize character boundaries (7 is a valid hex character).
 
 2010-06-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/buffer.c (magic): Fix xz magic.
 
 2010-06-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        Remove some lint, found by gcc -W etc.
+
        * src/common.h (label_notfound): New decl.
        * src/buffer.c (set_volume_start_time, compress_type):
        (guess_seekable_archive, open_compressed_archive, init_buffer):
 2010-05-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix.
+
        * src/incremen.c (make_directory): Retain the slash if it is the
        only character in a filename.
 
 2010-04-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix the gzip.at test case.
+
        * tests/gzip.at: Suppress gzip error output, as it can differ
        depending on its version etc. Bug reported by Ludovic Courtès.
 
 2010-03-28  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        New option --full-time.
+
        * src/common.h (full_time_option): New global.
        * src/tar.c (FULL_TIME_OPTION): New constant.
        (options): New option --full-time.
 2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes in the testsuite.
+
        * tests/extrac07.at: Fix a typo (invalid number
        of arguments before format list).
        * tests/link02.at: Use `ln' instead of `link'.
        * tests/link03.at: Likewise.
 
+2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix coredump.
+
        * src/names.c (collect_and_sort_names): Remove
        entry from the table before freeing it.
 
+2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix dead loop on extracting existing symlinks with the -k option.
+
        * src/extract.c (create_placeholder_file)
        (extract_link, extract_symlink)
        (extract_node, extract_fifo): Handle all possible
 2010-03-20  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix undesired error exit on receiving SIGPIPE.
+
        * src/tar.c: Do not ignore SIGPIPE.
        * tests/sigpipe.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at
 2010-03-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files.
+
        Tar --remove-files relied on canonicalize_file_name,
        which replaces symlinks in file name components with
        the directories they point to. Due to this, tar
 2010-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
+
        * src/buffer.c (check_label_pattern): Initialize result.
        * tests/remfiles01.at: Skip if run with root privileges.
 
 2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix `--test-label' and `--label -r' behavior.
+
        * doc/tar.texi (Including a Label in the Archive): Revise
        the section.
        * NEWS: Update
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Doc fixes.
+
        * doc/tar.texi: Consistently use lowercase `see' within sentences.
        More fixes spotted by Denis Excoffier.
        * THANKS: Update.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Shut up a gcc warning message.
+
        * src/tar.c (tar_help_filter): Use a separate const
        variable to hold returns from gettext. Reported by
        Peter Breitenlohner.
 
+2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Bugfix.
+
        * src/names.c (collect_and_sort_names): Initialize prev_name.
        Reported by Dmitry V. Levin.
 
 2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.23
+
        * configure.ac, NEWS: Update version number.
 
+2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Doc changes.
+
        * NEWS: Update.
        * THANKS: Update.
        * doc/snapshot.texi, doc/snapshot.texi,
 2010-03-08  Kamil Dudka  <kdudka@redhat.com>
 
        Fix possible overflow in code_timespec (tiny change)
+
        * src/misc.c (code_timespec): ignore invalid values of ns
 
 2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix in the testsuite.
+
        * tests/extrac05.at: Skip test if creating
        sparse file fails.
 
+2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix eventual memory override and fd exhaustion in create.c Both
        bugs reported by Kamil Dudka.
+
        * src/create.c (check_exclusion_tags): Do not keep
        pointer to a location within tagname: it may change
        after xrealloc. Use byte offset instead.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * doc/tar.texi: Improve some wording.
 
 2010-03-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>
 
        Add Lzip support
+
        * configure.ac: Add TAR_COMPR_PROGRAM(lzip)
        * doc/tar.texi: Reflect lzip support.
        * src/buffer.c (compress_type) <ct_lzip>: New constant.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * tests/exclude05.at: Rewrite awk invocation to avoid
        overflowing awk's file table on Solaris.
 
 2010-03-02  Eric Blake <ebb9@byu.net>
 
        Fix large file support.
+
        * scripts/xsparse.c (read_map): Use fseeko.
        * src/incremen.c (write_directory_file): Likewise.
 
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix
+
        * src/buffer.c (seek_archive): Rewrite size computation
        to prevent it from reaching negative values. Based on
        report by Denis Excoffier <Denis.Excoffier@free.fr>.
 2010-02-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Supply more information to the --to-command script.
+
        * src/system.c (stat_to_env): Pass information about the current
        volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR,
        TAR_FORMAT.
 2010-02-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * src/names.c (regex_usage_warning): Fix warning message.
 
 2010-02-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 2010-02-05  Ondřej Vašík  <ovasik@redhat.com>
 
        Bugfix (tiny change)
+
        * src/xheader.c (xheader_read): Remove unnecessary call
        to xheader_init.
 
 2010-01-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Enable silent build mode.
+
        * configure.ac: Require automake 1.11, autoconf 2.63. Enable
        silent rules.
        * NEWS: Update.
 2010-01-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Read POSIX multivolume archives split at the header boundary.
+
        * src/common.h (read_header_mode): New enum.
        (read_header): Change type of the 3rd argument.
        * src/list.c (read_header): Change type of the 3rd argument.
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
+
        * NEWS: Update.
        * doc/tar.texi: Update.
        * src/create.c (finish_header): Minor change.
 2010-01-24  Rob Vermaas  <rob.vermaas@gmail.com>
 
        Bugfix (tiny change).
+
        * src/tar.c (format_default_settings)[REMOTE_SHELL]: Fix
        misplaced comma.
 
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/incremen.c (read_incr_db_01)
        (read_directory_file): Initialize bufsize to 0.
        Suggested by noordsij@cs.helsinki.fi.
 
+2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Improve handling of --test-label.
+
        * src/list.c (print_volume_label): New function.
        (print_header): Call print_volume_label.
        (test_archive_label): New function.
        (parse_opt): Set subcommand if --test-label is given.
        (main): Handle TEST_LABEL_SUBCOMMAND.
 
+2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix listing of volume labels (in particular in PAX archives).
+
        * src/buffer.c (match_volume_label): Call set_volume_label.
        (check_label_pattern): Get label string
        as argument.
 2010-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix prefix length calculation in ustar mode.
+
        * src/create.c (split_long_name): Fix prefix length
        calculation.
        (write_ustar_long_name): Improve ustar mode compatibility
 2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Rewrite update algorithm.
+
        * src/common.h (namebuf_t): New typedef.
        (namebuf_create, namebuf_free)
        (namebuf_name): New prototypes.
        * tests/testsuite.at: Likewise.
        * tests/update.at (AT_KEYWORDS): Add update00.
 
+2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Minor changes.
+
        * src/tar.c (main): Ignore SIGPIPE.
        * src/system.c (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Reset SIGPIPE
        * tests/remfiles01.at: Avoid race conditions.
        * tests/remfiles02.at: Likewise.
 
+2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Bugfix.
+
        * src/buffer.c (_open_archive): Call guess_seekable_archive
        only if the call to open_compressed_archive succeeded.
 
 2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve previous changes.
+
        * acinclude.m4: Fix typos.
        * gnulib.modules: Add xvasprintf.
        * src/common.h: Include xvasprintf.h.
        (parse_opt): Use *_PROGRAM defines instead of hardcoded
        program names.
 
+2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Allow installers to specify alternative program names for
        compression programs.
+
        This adds --with-gzip, --with-bzip2 etc. switches to the
        configure, so that
        one can do, e.g. ./configure --with-bzip2=lbzip2 and have
 2009-10-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/buffer.c (magic): Fix `xz' entry: add the name of the
        program.
        * src/suffix.c (compression_suffixes, nsuffixes): Mark as static.
 
        Provide a way to explicitly set mtime for extended header
        ustar blocks.
+
        * src/tar.c (struct textual_date): ts is a copy of the structure,
        not a pointer to it. Date is a copy as well, hence the `const' is
        taken away.
        * NEWS: Update
        * doc/tar.texi: Document the changes.
 
+2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Use file's mtime as mtime for its extended header.
+
        This makes two pax archives binary equivalent if they
        have the same contents and care is taken to make extended
        headers otherwise reproducible, e.g. by using:
        Use current time stamp as mtime for global headers.
        (xheader_write): Take time_t as 3rd param.
 
+2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix bugs in handling the --remove-files option.
+
        Make sure the files are deleted only if they were succesfully
        stored
        to the archive.
 2009-10-04  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix bug in OLDGNU format creation.
+
        See tests/append02.at for a detailed description
 
        * src/common.h (MODE_FROM_HEADER): Take additional argument.
 2009-09-16  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Restore extra help output.
+
        * src/tar.c (tar_list_quoting_styles): Change first argument to
        struct obstack.
        (format_default_settings): New function.
 2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve command line option handling.
+
        * gnulib.modules: Add argp-version-etc and progname,
        use getopt-gnu instead of getopt.
        * src/tar.c (HANG_OPTION, USAGE_OPTION)
        (decode_options): Call argp_version_setup.
        Do not use ARGP_NO_HELP flag in the call to argp_parse.
 
+2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Avoid overwriting exit_status with a value indicating less
        important condition.
+
        * src/tar.c (set_exit_status): New function.
        * src/common.h (set_exit_status): New prototype.
        * src/compare.c: Use set_exit_status instead of
        * src/incremen.c (scan_directory): Use file_removed_diag
        instead of stat_diag.
 
+2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Automatic detection of seekable archives.
+
        * src/buffer.c (guess_seekable_archive): New function.
        (_open_archive): Call guess_seekable_archive for archives
        open for reading.
 2009-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix testcases.
+
        * tests/extrac08.at: Ensure a predictable umask value.
        * tests/xform-h.at (xform): do not depend on file name
        ordering.
 2009-08-13  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix interaction between --listed-incremental and -C
+
        * src/incremen.c (read_directory_file): Execute eventual -C dir
        after opening the snapshot file.
        (collect_and_sort_names): Remove call to chdir_do
 
        Update for new exclude module from gnulib. Add testcases by
        Phil Proudman.
+
        * src/names.c (is_pattern): Remove.
        (regex_usage_warning): Use fnmatch_pattern_has_wildcards
        instead of
 2009-08-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
+
        * src/misc.c (file_removed_diag): Set exit code to
        TAREXIT_DIFFERS.
 
 
        Minor fixes
 
+2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix handling of files removed during incremental dumps.
+
        Changes to src/create.c and src/incremen.c are partially
        based on patch from Alexander Peslyak <solar at openwall.com>.
 
        * NEWS: Update.
        * doc/tar.texi: Minor fix.
 
+2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Optimize searches for directory structures by keeping a pointer
        to struct directory in struct name.
+
        * src/common.h (struct name): New member `directory' replaces
        dir_contents. Rearrange members.
        (rebase_directory): Change signature.
 2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
+
        * src/common.h (rebase_directory): New prototype.
        * src/incremen.c (rebase_directory): Use replace_prefix.
        * src/names.c (collect_and_sort_names): Abort if
        hash_insert fails.
 
+2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Improve listed incremental dumps.
+
        The modified algorithm tries to avoid dumping the same
        directory twice and ensures the order of the directories
        in the resulting archive is the same, whatever their order
 
        Forgotten to push src/warning.c
 
+2009-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Implement the --warning option.
+
        * src/warning.c: New file.
        * src/Makefile.am: Add warning.c
        * src/common.h: Provide definitions for warning classes.
 
        Fix backup handling and restoring file modes of existing
        directories
+
        * NEWS, THANKS: Update
        * src/extract.c (extract_dir): reset status to 0 if the
        directory already exists.
 2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix hard links recognition with -c --remove-files
+
        * src/create.c (dump_hard_link): Always look up in the link table
        if remove_files_option is set. Patch suggested by Theodore Ts'o
        <tytso@mit.edu>.
        * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at
        * tests/testsuite.at: Include link02.at and link03.at
 
+2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+
        Fix handling of hard link targets by -c --transform
+
        * src/create.c (file_count_links): Transform link target
        before the look up.
        * tests/xform-h.at: New test case.
 2009-06-23  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
+
        * src/extract.c (file_newer_p): Do not report error on ENOENT
 
 2009-06-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix Solaris bug where chmod fails if we don't have
        PRIV_SYS_LINKDIR
+
        * gnulib.modules: Add priv-set.
        * src/extract.c (set_mode, extract_archive): Restore
        PRIV_SYS_LINKDIR on chmod failure.
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Ensure default behavior for SIGPIPE
+
        * src/tar.c (main): Install default handler for SIGPIPE.
        Proposed by Bastian Blank.
 
 2009-06-18  Eric Blake <ebb9@byu.net>
 
        Follow autoconf recommendation for TESTSUITEFLAGS.
+
        * tests/Makefile.am (check-local, installcheck-local): Honor
        TESTSUITEFLAGS.
 
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix handling of sub-subprocess returns.
+
        * src/system.c (wait_for_grandchild): New function.
        (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Use wait_for_grandchild
 2009-05-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Report record size only if the archive refers to a device.
+
        * Makefile.am (INCLUDES): Add ../lib, for rmt-command.h
        * src/buffer.c (short_read): Report the actual record size
        only if the archive descriptor refers to a device.
 2009-05-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Do not issue errors on existing files when given the -k option
+
        * Makefile.am (dist-hook): Fix rule.
        * src/extract.c (maybe_recoverable): Return three-state value.
        (extract_dir): Skip extraction if maybe_recoverable indicates so.
 2009-05-12  Eric Blake <ebb9@byu.net>
 
        Avoid undefined behavior
+
        * src/xheader.c (xheader_set_keyword_equal): Pass correct type to
        ctype macros.
        * src/transform.c (run_case_conv): Likewise.
 2009-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
+
        * bootstrap (symlink_to_dir): Fix symlink calculation.
        * doc/tar.texi: Minor fixes by Victor Villa and Stepan Kasal.
 
 
        Migrate to Git
 
+Currently the ChangeLog is generated automatically from the Git
+revision history, but from 1997 to 2009 the ChangeLog file was
+maintained by hand, under CVS.  This file records the older log.
+
+Copyright 1997-2001, 2003-2009, 2013 Free Software Foundation, Inc.
+
+This file is part of GNU tar.
+
+GNU tar is free software; you can redistribute it and/or modify
+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.
+
+GNU tar 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/>.
+
 2009-03-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        * src/incremen.c: --no-recursive works with --incremental.
        See ChangeLog.1 for earlier changes.
 
        -----
-
-       Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007
-       Free Software Foundation, Inc.
-
-       This file is part of GNU tar.
-
-       GNU tar is free software; you can redistribute 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.
-
-       GNU tar 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 GNU tar; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-       Boston, MA 02110-1301, USA.
 \f
 Local Variables:
 mode: change-log
index 75c88144077d7135cd02d4e7cf1ac2ff3ca83a73..db84a07c3d47ea72df3435aeb9dc21184098f113 100644 (file)
@@ -2,25 +2,22 @@ Currently there is just one ChangeLog file for tar, but
 there used to be separate ChangeLog files for each subdirectory.
 This file records what used to be in those separate files.
 
-Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
-Free Software Foundation, Inc.
+Copyright 1989-1997, 2013 Free Software Foundation, Inc.
 
-This file is part of GNU Tar.
+This file is part of GNU tar.
 
-GNU Tar is free software; you can redistribute it and/or modify
+GNU tar is free software; you can 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.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
 
-GNU Tar is distributed in the hope that it will be useful,
+GNU tar 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 GNU Tar; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 ----- ChangeLog -----
diff --git a/INSTALL b/INSTALL
index a1e89e18ad20c227845f2099cb9894c799265d19..007e9396d0a2492cd2d6e17d42f359655dfe0b5e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
@@ -309,9 +309,10 @@ 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 bug.  Until the bug is fixed you can use this workaround:
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
 
-     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
@@ -367,4 +368,3 @@ operates.
 
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
-
index a1de301a38f3ae95d3bdaff404b944634220450c..09ad1c1c3a120922b20131e288cb39fbef05138d 100644 (file)
@@ -50,7 +50,7 @@ ChangeLog:
          if test -n "$(gen_start_date)"; then                             \
            cmd="$$cmd --since=\"$(gen_start_date)\"";                     \
          fi;                                                              \
-         $$cmd |                                                          \
+         $$cmd --format='%s%n%n%b%n' |                                    \
             sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t;         \
           if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \
          then                                                             \
index af332d775170fc9790759b2884367269c9067013..0fea308757d367bfa978b8d0ab896bf4b0668ee4 100644 (file)
@@ -1,22 +1,22 @@
 # Main Makefile for GNU tar.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007,
-# 2009 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute 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, write to the Free Software
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-## 02110-1301, USA.
+# Copyright 1994-1997, 1999-2001, 2003, 2007, 2009, 2013 Free Software
+# Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = ChangeLog.1 Make.rules
index d66a7179ce05632483583234cc3715ba85862c40..907819fb96a7206309448a9d544b8a1e1548f689 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 # Main Makefile for GNU tar.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007,
-# 2009 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003, 2007, 2009, 2013 Free Software
+# Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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 part of GNU paxutils
 #
 #  gen_start_date   [optional]  Start ChangeLog from this date. 
 #  changelog_dir    [mandatory] Directory where to create ChangeLog
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +115,13 @@ build_triplet = @build@
 host_triplet = @host@
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Make.rules \
        $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
-       AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \
+       $(srcdir)/config.h.in $(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 $(top_srcdir)/configure \
+       ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS 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 \
@@ -93,28 +129,32 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Make.rules \
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -122,50 +162,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -173,22 +223,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -205,12 +256,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -220,21 +277,30 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
        $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir dist dist-all distcheck
+       cscope distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -263,7 +329,10 @@ am__relativize = \
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).tar.xz \
        $(distdir).shar.gz
 GZIP_ENV = --best
+DIST_TARGETS = dist-xz dist-shar dist-bzip2 dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -272,6 +341,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -323,12 +394,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -337,17 +412,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -355,6 +440,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -369,15 +456,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -418,25 +509,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -444,14 +545,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -478,12 +588,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -495,10 +606,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -543,9 +657,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -564,6 +680,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -579,17 +696,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -605,6 +728,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -637,28 +761,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -666,6 +808,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -673,6 +816,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -685,6 +829,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -724,12 +869,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -752,7 +899,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -774,6 +923,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -784,6 +936,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -795,6 +948,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -805,6 +961,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -815,6 +972,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -836,9 +994,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -851,6 +1011,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -860,11 +1021,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -894,8 +1058,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -904,13 +1074,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -920,10 +1093,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -944,10 +1121,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -961,9 +1141,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -1036,7 +1221,7 @@ all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
        @:
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/Make.rules $(am__configure_deps)
        @for dep in $?; do \
@@ -1061,6 +1246,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
        esac;
+$(srcdir)/Make.rules:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        $(SHELL) ./config.status --recheck
@@ -1072,10 +1258,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then \
-         rm -f stamp-h1; \
-         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-       else :; fi
+       @if test ! -f $@; then rm -f stamp-h1; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -1089,12 +1273,12 @@ distclean-hdr:
        -rm -f config.h stamp-h1
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
        @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
@@ -1104,7 +1288,11 @@ $(RECURSIVE_TARGETS):
        done; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -1118,37 +1306,6 @@ $(RECURSIVE_TARGETS):
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
          test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
@@ -1157,6 +1314,10 @@ ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
          test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
+cscopelist-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+       done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1220,8 +1381,32 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+
+clean-cscope:
+       -rm -f cscope.files
+
+cscope.files: clean-cscope cscopelist-recursive cscopelist
+
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
        @case `sed 15q $(srcdir)/NEWS` in \
@@ -1263,13 +1448,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -1301,36 +1483,33 @@ distdir: $(DISTFILES)
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__post_remove_distdir)
 
-dist-lzma: distdir
-       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-       $(am__remove_distdir)
+dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       $(am__post_remove_distdir)
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-       $(am__remove_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__remove_distdir)
+       $(am__post_remove_distdir)
 dist-shar: distdir
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
-dist dist-all: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -1341,8 +1520,8 @@ distcheck: dist
          GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-       *.tar.lzma*) \
-         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
          xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
@@ -1352,9 +1531,9 @@ distcheck: dist
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod a+w $(distdir)
-       mkdir $(distdir)/_build
-       mkdir $(distdir)/_inst
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -1362,6 +1541,7 @@ distcheck: dist
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -1385,13 +1565,21 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
          && cd "$$am__cwd" \
          || exit 1
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @$(am__cd) '$(distuninstallcheck_dir)' \
-       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+       @test -n '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: trying to run $@ with an empty' \
+              '$$(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       $(am__cd) '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
                  echo "  (check DESTDIR support)"; \
@@ -1422,10 +1610,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1508,23 +1701,25 @@ ps-am:
 uninstall-am:
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-       ctags-recursive install-am install-strip tags-recursive
+       cscopelist-recursive ctags-recursive install-am install-strip \
+       tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am am--refresh check check-am clean clean-generic \
-       ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
-       dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-       distcheck distclean distclean-generic distclean-hdr \
-       distclean-local 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-recursive uninstall uninstall-am
+       all all-am am--refresh check check-am clean clean-cscope \
+       clean-generic cscope cscopelist cscopelist-recursive ctags \
+       ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
+       dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
+       distclean distclean-generic distclean-hdr distclean-local \
+       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-recursive \
+       uninstall uninstall-am
 
 
 dist-hook:
@@ -1543,7 +1738,7 @@ ChangeLog:
          if test -n "$(gen_start_date)"; then                             \
            cmd="$$cmd --since=\"$(gen_start_date)\"";                     \
          fi;                                                              \
-         $$cmd |                                                          \
+         $$cmd --format='%s%n%n%b%n' |                                    \
             sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t;         \
           if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \
          then                                                             \
diff --git a/NEWS b/NEWS
index 12c1dd6308ff42f6508dbc6ddd0295ed01d5540d..ffeb4b844a5242381a323fa98c08b4bb4b1af787 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,92 @@
-GNU tar NEWS - User visible changes. 2011-03-12
+GNU tar NEWS - User visible changes. 2013-10-05
 Please send GNU tar bug reports to <bug-tar@gnu.org>
 
+\f
+version 1.27 - Sergey Poznyakoff, 2013-10-05
+
+* Bug fixes
+
+** Sparse files with large data
+
+When creating a PAX-format archive, tar no longer arbitrarily restricts
+the size of the representation of a sparse file to be less than 8 GiB.
+
+* Quoting
+
+In the default C locale, diagnostics and output of 'tar' have been
+adjusted to quote 'like this' (with apostrophes) instead of `like this'
+(with an accent grave character and an apostrophe).  This tracks
+recent changes to the GNU coding standards.
+
+* --owner and --group names and numbers
+
+The --owner and --group options now accept operands of the form
+NAME:NUM, so that you can specify both symbolic name and numeric ID
+for owner and group.  In these options, NAME no longer needs to be
+present in the current host's user and group databases.
+
+* The --keep-old-files and --skip-old-files options.
+
+This release restores the traditional functionality of the
+--keep-old-files.  This option causes tar to avoid replacing
+existing files while extracting and to treat such files as errors.
+Tar will emit a prominent error message upon encountering such files
+and will exit with code 2 when finished extracting the archive.
+
+A new option --skip-old-files is introduced, which acts exactly as
+--keep-old-files, except that it does not treat existing files as
+errors.  Instead it just silently skips them.  An additional level of
+verbosity can be obtained by using the option --warning=existing-file
+together with this option.
+
+* Support for POSIX ACLs, extended attributes and SELinux context.
+
+Starting with this version tar is able to store, extract and list
+extended file attributes, POSIX.1e ACLs and SELinux context.  This is
+controlled by the command line options --xattrs, --acls and --selinux,
+correspondingly.  Each of these options has a `--no-' counterpart
+(e.g. --no-xattrs), which disables the corresponding feature.
+Additionally, the options --xattrs-include and --xattrs-exclude allow
+you to selectively control for which files to store (or extract) the
+extended attributes.
+
+* Passing command line arguments to external commands.
+
+Any option taking a command name as its argument now accepts a full
+command line as well.  Thus, it is now possible to pass additional
+arguments to invoked programs.  The affected options are:
+
+  --checkpoint-action=exec
+  -I, --use-compress-program
+  -F, --info-script
+  --to-command
+
+Furthermore, if any additional information is supplied to such a
+command via environment variables, these variables can now be used in
+the command line itself.  Care should be taken to escape them, to
+prevent from being expanded too early, for example:
+
+  tar -x -f a.tar --info-script='changevol $TAR_ARCHIVE $TAR_VOLUME'
+
+* New configure option --enable-gcc-warnings, intended for debugging.
+
+* New warning control option --warning=[no-]record-size
+
+On extraction, this option controls whether to display actual record
+size, if it differs from the default.
+
+* New command line option --keep-directory-symlink
+
+By default, if trying to extract a directory from the archive,
+tar discovers that the corresponding file name already exists and is a
+symbolic link, it first unlinks the entry, and then extracts the directory.
+
+This option disables this behavior and instructs tar to follow
+symlinks to directories when extracting from the archive.  
+
+It is mainly intended to provide compatibility with the Slackware
+installation scripts.
+
 \f
 version 1.26 - Sergey Poznyakoff, 2011-03-12
 
@@ -48,14 +134,14 @@ are met, tar retries extraction using an alternative decompressor:
  2. The compression program was not explicitly requested in the command
  line by the use of such options as -z, -j, etc.
 
-For example, if `compress' is not available, tar will try `gzip'.
+For example, if 'compress' is not available, tar will try 'gzip'.
 
 \f
 version 1.24 - Sergey Poznyakoff, 2010-10-24
 
 * The --full-time option.
 
-New command line option `--full-time' instructs tar to output file
+New command line option '--full-time' instructs tar to output file
 time stamps to the full resolution.
 
 * Bugfixes.
@@ -108,15 +194,15 @@ invoked as in the example below:
 
 ** --remove-files
 
-`Tar --remove-files' failed to remove a directory which contained
+'tar --remove-files' failed to remove a directory which contained
 symlinks to another files within that directory.
 
 ** --test-label behavior
 
-In case of a mismatch, `tar --test-label LABEL' exits with code 1,
+In case of a mismatch, 'tar --test-label LABEL' exits with code 1,
 not 2 as it did in previous versions.
 
-The `--verbose' option used with `--test-label' provides additional
+The '--verbose' option used with '--test-label' provides additional
 diagnostics.
 
 Several volume labels may be specified in a command line, e.g.:
@@ -128,7 +214,7 @@ matches the actual volume label.
 
 ** --label used with --update
 
-The `--label' option can be used with `--update' to prevent accidental
+The '--label' option can be used with '--update' to prevent accidental
 update of an archive:
 
   tar -rf archive --label 'My volume' .
@@ -156,28 +242,28 @@ to regular files and pipes).
 When a read-only operation (e.g. --list or --extract) is requested
 on a regular file, tar attemtps to speed up accesses by using lseek.
 
-* New command line option `--warning'
+* New command line option '--warning'
 
-The `--warning' command line option allows to suppress or enable
-particular warning messages during `tar' run.  It takes a single
-argument (a `keyword'), identifying the class of warning messages
-to affect.  If the argument is prefixed with `no-', such warning
+The '--warning' command line option allows to suppress or enable
+particular warning messages during 'tar' run.  It takes a single
+argument (a 'keyword'), identifying the class of warning messages
+to affect.  If the argument is prefixed with 'no-', such warning
 messages are suppressed.  For example,
 
   tar --warning=no-alone-zero-block -x -f archive
 
-suppresses the output of `A lone zero block' diagnostics, which is
-normally issued if `archive' ends with a single block of zeros.
+suppresses the output of "A lone zero block" diagnostics, which is
+normally issued if 'archive' ends with a single block of zeros.
 
 See Tar Manual, section 3.9 "Controlling Warning Messages", for a
 detailed discussion.
 
-* New command line option `--level'
+* New command line option '--level'
 
-The `--level=N' option sets the incremental dump level N.  It
+The '--level=N' option sets the incremental dump level N.  It
 is valid when used in conjunction with the -c and --listed-incremental
 options.  So far the only meaningful value for N is 0.  The
-`--level=0' option forces creating the level 0 dump, by truncating
+'--level=0' option forces creating the level 0 dump, by truncating
 the snapshot file if it exists.
 
 * Files removed during incremental dumps
@@ -206,7 +292,7 @@ can be overridden by the
   --pax-opion='exthdr.mtime=STRING'
 
 command line option.  The STRING is either number of seconds since
-the Epoch or a `Time reference' (see below).
+the Epoch or a "Time reference" (see below).
 
 Modification times in ustar header blocks of global extended
 headers are set to the time when tar was invoked.
@@ -216,7 +302,7 @@ This can be overridden by the
   --pax-opion='globexthdr.mtime=STRING'
 
 command line option.  The STRING is either number of seconds since
-the Epoch or a `Time reference' (see below).
+the Epoch or a "Time reference" (see below).
 
 * Time references in --pax-option argument.
 
@@ -224,7 +310,7 @@ Any value from the --pax-option argument that is enclosed in a pair
 of curly braces represents a time reference.  The string between the
 braces is understood either as a textual time representation, as described in
 chapter 7, "Date input formats", of the Tar manual, or as a name of
-an existing file, starting with `/' or `.'.  In the latter
+an existing file, starting with '/' or '.'.  In the latter
 case, it is replaced with the modification time of that file.
 
 * Environment of --to-command script.
@@ -259,7 +345,7 @@ Tar uses xz for compression if one of the following conditions is met:
 
  1. The option --xz or -J (see below) is used.
  2. The xz binary is set as compressor using --use-compress-program option.
- 3. The file name of the archive being created ends in `.xz' and
+ 3. The file name of the archive being created ends in '.xz' and
  auto-compress option (-a) is used.
 
 Xz is used for decompression if one of the following conditions is met:
@@ -319,17 +405,17 @@ control type of archive members affected by them.  The flags are:
    Apply transformation to hard link targets.
 
 Corresponding upper-case letters negate the meaning, so that
-`H' means ``do not apply transformation to hard link targets.''
+'H' means "do not apply transformation to hard link targets".
 
-The scope flags are listed in the third part of an `s' expression,
+The scope flags are listed in the third part of an 's' expression,
 e.g.:
 
    tar --transform 's|^|/usr/local/|S'
 
-Default is `rsh', which means that transformations are applied to
+Default is 'rsh', which means that transformations are applied to
 both regular archive members and to the targets of symbolic and hard
 links.  If several transform expressions are used, the default flags
-can be changed using `flags=' statement before the expressions, e.g.:
+can be changed using 'flags=' statement before the expressions, e.g.:
 
    tar --transform 'flags=S;s|^|/usr/local/|S'
 
@@ -365,29 +451,29 @@ they refer to, instead of creating usual hard link members (type '1').
 This action allows to specify an action to be executed upon hitting a
 checkpoint.  Recognized actions are: dot, echo (the default),
 echo=string, ttyout=string, exec=cmdline, and sleep=value.  Any number
-of `--checkpoint-action' options can be specified, the actions will be
+of '--checkpoint-action' options can be specified, the actions will be
 executed in order of their appearance in the command line.  See
 chapter 3.8 "Checkpoints" for a complete description.
 
 * New options --no-check-device, --check-device.
 
-The `--no-check-device' option disables comparing device numbers during
+The '--no-check-device' option disables comparing device numbers during
 preparatory stage of an incremental dump.  This allows to avoid
 creating full dumps if the device numbers change (e.g. when using an
 LVM snapshot).
 
-The `--check-device' option enables comparing device numbers.  This is
+The '--check-device' option enables comparing device numbers.  This is
 the default.  This option is provided to undo the effect of the previous
-`--no-check-device' option, e.g. if it was set in TAR_OPTIONS
+'--no-check-device' option, e.g. if it was set in TAR_OPTIONS
 environment variable.
 
 * The --transform option.
 
-Any number of `--transform' options can be given in the command line.
+Any number of '--transform' options can be given in the command line.
 The specified transformations will be applied in turn.
 
-The argument to `--transform' option can be a list of replace
-expressions, separated by a semicolon (as in `sed').
+The argument to '--transform' option can be a list of replace
+expressions, separated by a semicolon (as in 'sed').
 
 Filename transformations are applied to symbolic link targets
 during both creation and extraction.  Tar 1.19 used them only
@@ -473,7 +559,7 @@ option affects hard and soft link targets and the --strip-components
 option affects hard link targets as well.
 
 * End-of-volume script can send the new volume name to tar by writing
-  it to the file descriptor stored in the environment variable `TAR_FD'.
+  it to the file descriptor stored in the environment variable TAR_FD.
 
 \f
 version 1.16.1 - Sergey Poznyakoff, 2006-12-09
@@ -543,7 +629,7 @@ following command line options:
      --wildcards              use wildcards
      --anchored               patterns match file name start
      --ignore-case            ignore case
-     --wildcards-match-slash  wildcards match `/'
+     --wildcards-match-slash  wildcards match '/'
 
 Each of these options has a '--no-' counterpart that disables its
 effect (e.g. --no-wildcards).
@@ -583,7 +669,7 @@ or archive.   It generalizes --show-stored-names option, introduced in
 1.15.90.  In particular, when creating an archive in verbose mode, it lists
 member names as stored in the archive, i.e., with any eventual prefixes
 removed and file name transformations applied.  The option is useful,
-for example, while comparing `tar cv' and `tar tv' outputs.
+for example, while comparing 'tar cv' and 'tar tv' outputs.
 
 ** New incremental snapshot file format keeps information about file names
 as well as that about directories.
@@ -608,7 +694,7 @@ version 1.15.90 - Sergey Poznyakoff, 2006-02-19
 * New features
 
 ** Any number of -T (--files-from) options may be used in the command line.
-The file specified with -T may include any valid `tar' options,
+The file specified with -T may include any valid 'tar' options,
 including another -T option.
 Compatibility note: older versions of tar would only recognize -C
 as an option name within the file list file.  Now any file whose name
@@ -619,7 +705,7 @@ dash, use the --add-file option.
 automatically.  It is no longer necessary to give the --null option.
 
 ** New option --no-unquote disables the unquoting of input file names.
-This is useful for processing output from `find dir -print0'.
+This is useful for processing output from 'find dir -print0'.
 An orthogonal option --unquote is provided as well.
 
 ** New option --test-label tests the archive volume label.
@@ -633,7 +719,7 @@ tar prints the label name if present and exits with code 0.
 ** New option --show-stored-names.  When creating an archive in verbose mode,
 it lists member names as stored in the archive, i.e., with any eventual
 prefixes removed.  The option is useful, for example, while comparing
-`tar cv' and `tar tv' outputs.
+'tar cv' and 'tar tv' outputs.
 
 ** New option --to-command pipes the contents of archive members to the
 specified command.
@@ -706,7 +792,7 @@ version 1.15 - Sergey Poznyakoff, 2004-12-20
 
 * Compressed archives are recognised automatically, it is no longer
 necessary to specify -Z, -z, or -j options to read them.  Thus, you can
-now run `tar tf archive.tar.gz'.
+now run 'tar tf archive.tar.gz'.
 
 * When restoring incremental dumps, --one-file-system option
 prevents directory hierarchies residing on different devices
@@ -726,7 +812,7 @@ seeks.
 * Restore script starts restoring only if it is given --all (-a) option,
 or some patterns.  This is to prevent accidental restores.
 
-* `tar --verify' prints a warning if during archive creation some of
+* 'tar --verify' prints a warning if during archive creation some of
 the file names had their prefixes stripped off.
 
 * New option --exclude-caches instructs tar to exclude cache directories
@@ -736,11 +822,11 @@ containing a standardized tag file, as specified at:
        http://www.brynosaurus.com/cachedir/spec.html
 
 * New configure option --with-rmt allows to specify full path name to
-the `rmt' utility.  This supersedes DEFAULT_RMT_COMMAND variable
+the 'rmt' utility.  This supersedes DEFAULT_RMT_COMMAND variable
 introduced in version 1.14
 
 * New configure variable DEFAULT_RMT_DIR allows to specify the directory
-where to install `rmt' utility.  This is necessary since modifying
+where to install 'rmt' utility.  This is necessary since modifying
 --libexecdir as was suggested for version 1.14 produced a side effect: it
 also modified installation prefix for backup scripts (if
 --enable-backup-scripts was given).
@@ -794,12 +880,12 @@ version 1.14 - Sergey Poznyakoff, 2004-05-11
   the subcommands --delete, --diff, --extract or --list when a list of
   files is given either on the command line or via -T option.  This
   option instructs tar to process only the Nth occurrence of each named
-  file.  N defaults to 1, so `tar -x -f archive --occurrence filename'
-  extracts the first occurrence of `filename' from `archive'
+  file.  N defaults to 1, so 'tar -x -f archive --occurrence filename'
+  extracts the first occurrence of 'filename' from 'archive'
   and terminates without scanning to the end of the archive.
 
 * New option --pax-option allows to control the handling of POSIX
-  keywords in `pax' extended headers.  It is equivalent to `pax'
+  keywords in 'pax' extended headers.  It is equivalent to 'pax'
   -o option.
 
 * --incremental and --listed-incremental options work correctly on
@@ -905,7 +991,7 @@ version 1.13.19 - Paul Eggert, 2001-01-13
 \f
 version 1.13.18 - Paul Eggert, 2000-10-29
 
-* Some security problems have been fixed.  `tar -x' now modifies only
+* Some security problems have been fixed.  'tar -x' now modifies only
   files under the working directory, unless you also specify an unsafe
   option like --absolute-names or --overwrite.
 
@@ -931,12 +1017,12 @@ version 1.13.18 - Paul Eggert, 2000-10-29
 * This version of tar works best with GNU gzip test version 1.3 or later.
   Please see <ftp://alpha.gnu.org/gnu/gzip/>.
 
-* `tar --delete -f -' now works again.
+* 'tar --delete -f -' now works again.
 
 \f
 version 1.13.17 - Paul Eggert, 2000-01-07.
 
-* `tar --delete -f -' is no longer allowed; it was too buggy.
+* 'tar --delete -f -' is no longer allowed; it was too buggy.
 * Diagnostic messages have been made more regular and consistent.
 
 \f
@@ -953,12 +1039,12 @@ version 1.13.16 - Paul Eggert, 1999-12-13.
   The new --overwrite option enables the old default behavior.
 
   For regular files, tar implements this change by using the O_EXCL
-  option of `open' to ensure that it creates the file; if this fails, it
+  option of 'open' to ensure that it creates the file; if this fails, it
   removes the file and tries again.  This is similar to the behavior of
   the --unlink-first option, but it is faster in the common case of
   extracting a new directory.
 
-* By default, tar now ignores file names containing a component of `..'
+* By default, tar now ignores file names containing a component of '..'
   when extracting, and warns about such file names when creating an archive.
   To enable the old behavior, use the -P or --absolute-names option.
 
@@ -1000,20 +1086,20 @@ version 1.13.14 - Paul Eggert, 1999-11-07.
 version 1.13.13 - Paul Eggert, 1999-10-11.
 
 * Invalid headers in tar files now elicit errors, not just warnings.
-* `tar --version' output conforms to the latest GNU coding standards.
-* If you specify an invalid date, `tar' now substitutes (time_t) -1.
-* `configure --with-dmalloc' is no longer available.
+* 'tar --version' output conforms to the latest GNU coding standards.
+* If you specify an invalid date, 'tar' now substitutes (time_t) -1.
+* 'configure --with-dmalloc' is no longer available.
 
 \f
 version 1.13.12 - Paul Eggert, 1999-09-24.
 
-* `tar' now supports hard links to symbolic links.
+* 'tar' now supports hard links to symbolic links.
 
 * New options --no-same-owner, --no-same-permissions.
 
 * --total now also outputs a human-readable size, and a throughput value.
 
-* `tar' now uses two's-complement base-256 when outputting header
+* 'tar' now uses two's-complement base-256 when outputting header
   values that are out of the range of the standard unsigned base-8
   format.  This affects archive members with negative or huge time
   stamps or uids, and archive members 8 GB or larger.  The new tar
@@ -1022,12 +1108,12 @@ version 1.13.12 - Paul Eggert, 1999-09-24.
   behavior, which uses unportable representations for negative values,
   and which rejects large files.
 
-* On 32-bit hosts, `tar' now assumes that an incoming time stamp T in
+* On 32-bit hosts, 'tar' now assumes that an incoming time stamp T in
   the range 2**31 <= T < 2**32 represents the negative time (T -
   2**32).  This behavior is nonstandard and is not portable to 64-bit
-  time_t hosts, so `tar' issues a warning.
+  time_t hosts, so 'tar' issues a warning.
 
-* `tar' no longer gives up extracting immediately upon discovering
+* 'tar' no longer gives up extracting immediately upon discovering
   that an archive contains garbage at the end.  It attempts to extract
   as many files as possible from the good data before the garbage.
 
@@ -1044,40 +1130,40 @@ version 1.13.11 - Paul Eggert, 1999-08-23.
 * -T /dev/null now matches nothing; previously, it matched anything
   if no explicit operands were given.
 
-* The `--' option now works the same as with other GNU utilities;
+* The '--' option now works the same as with other GNU utilities;
   it causes later operands to be interpreted as file names, not options,
-  even if they begin with `-'.
+  even if they begin with '-'.
 
 * For the --newer and --after-date options, the table of time zone
-  abbreviations like `EST' has been updated to match current practice.
+  abbreviations like 'EST' has been updated to match current practice.
   Also, local time abbreviations are now recognized, even if they are
   not in tar's hardwired table.  Remember, though, that you should use
-  numeric UTC offsets like `-0500' instead of abbreviations like
-  `EST', as abbreviations are not standardized and are ambiguous.
+  numeric UTC offsets like '-0500' instead of abbreviations like
+  'EST', as abbreviations are not standardized and are ambiguous.
 
 \f
 version 1.13.10 - Paul Eggert, 1999-08-20.
 
-* `tar' now uses signed base-64 when outputting header values that are
+* 'tar' now uses signed base-64 when outputting header values that are
   out of the range of the standard unsigned base-8 format.  [This
   change was superseded in 1.13.12, described above.]
 
 \f
 version 1.13.9 - Paul Eggert, 1999-08-18.
 
-* `tar' now writes two zero blocks at end-of-archive instead of just one.
-  POSIX.1 requires this, and some other `tar' implementations check for it.
+* 'tar' now writes two zero blocks at end-of-archive instead of just one.
+  POSIX.1 requires this, and some other 'tar' implementations check for it.
 
-* `tar' no longer silently accepts a block containing nonzero checksum bytes
+* 'tar' no longer silently accepts a block containing nonzero checksum bytes
   as a zero block.
 
-* `tar' now reads buggy tar files that have a null byte at the start of a
+* 'tar' now reads buggy tar files that have a null byte at the start of a
   numeric header field.
 
 \f
 version 1.13.8 - Paul Eggert, 1999-08-16.
 
-* For compatibility with traditional `tar', intermediate directories
+* For compatibility with traditional 'tar', intermediate directories
   created automatically by root are no longer given the uid and gid of
   the original file or directory.
 
@@ -1086,7 +1172,7 @@ version 1.13.7 - Paul Eggert, 1999-08-14.
 
 * --listed-incremental and --newer are now incompatible options.
 
-* When creating an archive, leading `./' is no longer stripped,
+* When creating an archive, leading './' is no longer stripped,
   to match traditional tar's behavior (and simplify the documentation).
 
 * --diff without --absolute-names no longer falls back on absolute names.
@@ -1177,7 +1263,7 @@ Creation
 * Implement --numeric-owner for ignoring symbolic names at create time.
 * New --owner, --group --mode options, still preliminary.
 * Recognize creating an archive on /dev/null, so Amanda works faster.
-* Object to the creation of an empty archive (like in `tar cf FILE').
+* Object to the creation of an empty archive (like in 'tar cf FILE').
 * Barely start implementing --posix and POSIXLY_CORRECT.
 
 Extraction
@@ -1256,7 +1342,7 @@ Version 1.10.13 - 1992-01.
 
 * Now uses GNU standard configure, generated by Autoconf.
 
-* Long options now use `--'; use of `+' is deprecated and support
+* Long options now use '--'; use of '+' is deprecated and support
 for it will eventually be removed.
 
 * New option --null causes filenames read by -T to be
@@ -1285,8 +1371,8 @@ the various tape drives will get used in sequence and then wrap
 around to the beginning.
 
 * Remote archive names no longer have to be in /dev: any file with a
-`:' is interpreted as remote.  If new option --force-local is given,
-then even archive files with a `:' are considered local.
+':' is interpreted as remote.  If new option --force-local is given,
+then even archive files with a ':' are considered local.
 
 * New option --atime-preserve restores (if possible) atimes to
 their original values after dumping the file.
@@ -1339,15 +1425,14 @@ Versions 1.07 back to 1.00 by Jay Fenlason.
 
 \f
 
-Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright 1994-2001, 2003-2010, 2013 Free Software Foundation, Inc.
 
 This file is part of GNU tar.
 
 GNU tar is free software; you can redistribute 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.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
 
 GNU tar is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1355,9 +1440,7 @@ 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 tar; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 \f
 Local variables:
 mode: outline
diff --git a/README b/README
index bf65e82ad7ce0180810701d326928e385013fea2..9c60103001102c31bcda8b3a56f45a8426a41244 100644 (file)
--- a/README
+++ b/README
@@ -4,31 +4,31 @@ See the end of file for copying conditions.
 * Introduction
 
 Please glance through *all* sections of this
-`README' file before starting configuration.  Also make sure you read files
-`ABOUT-NLS' and `INSTALL' if you are not familiar with them already.
+'README' file before starting configuration.  Also make sure you read files
+'ABOUT-NLS' and 'INSTALL' if you are not familiar with them already.
 
-If you got the `tar' distribution in `shar' format, time stamps ought to be
-properly restored; do not ignore such complaints at `unshar' time.
+If you got the 'tar' distribution in 'shar' format, time stamps ought to be
+properly restored; do not ignore such complaints at 'unshar' time.
 
-GNU `tar' saves many files together into a single tape or disk
+GNU 'tar' saves many files together into a single tape or disk
 archive, and can restore individual files from the archive.  It includes
 multivolume support, the ability to archive sparse files, automatic archive
 compression/decompression, remote archives and special features that allow
-`tar' to be used for incremental and full backups.  This distribution
-also includes `rmt', the remote tape server.  The `mt' tape drive control
-program is in the GNU `cpio' distribution.
+'tar' to be used for incremental and full backups.  This distribution
+also includes 'rmt', the remote tape server.  The 'mt' tape drive control
+program is in the GNU 'cpio' distribution.
 
-GNU `tar' is derived from John Gilmore's public domain `tar'.
+GNU 'tar' is derived from John Gilmore's public domain 'tar'.
 
-See file `ABOUT-NLS' for how to customize this program to your language.
-See file `COPYING' for copying conditions.
-See file `INSTALL' for compilation and installation instructions.
-See file `PORTS' for various ports of GNU tar to non-Unix systems.
-See file `NEWS' for a list of major changes in the current release.
-See file `THANKS' for a list of contributors.
+See file 'ABOUT-NLS' for how to customize this program to your language.
+See file 'COPYING' for copying conditions.
+See file 'INSTALL' for compilation and installation instructions.
+See file 'PORTS' for various ports of GNU tar to non-Unix systems.
+See file 'NEWS' for a list of major changes in the current release.
+See file 'THANKS' for a list of contributors.
 
-Besides those configure options documented in files `INSTALL' and
-`ABOUT-NLS', an extra option may be accepted after `./configure':
+Besides those configure options documented in files 'INSTALL' and
+'ABOUT-NLS', an extra option may be accepted after './configure':
 
 * Install
 
@@ -40,11 +40,11 @@ values are GNU, V7, OLDGNU, USTAR and POSIX.
 
 ** Selecting the default archive device
 
-The default archive device is now `stdin' on read and `stdout' on write.
-The installer can still override this by presetting `DEFAULT_ARCHIVE'
-in the environment before configuring (the behavior of `-[0-7]' or
-`-[0-7]lmh' options in `tar' are then derived automatically).  Similarly,
-`DEFAULT_BLOCKING' can be preset to something else than 20.
+The default archive device is now 'stdin' on read and 'stdout' on write.
+The installer can still override this by presetting 'DEFAULT_ARCHIVE'
+in the environment before configuring (the behavior of '-[0-7]' or
+'-[0-7]lmh' options in 'tar' are then derived automatically).  Similarly,
+'DEFAULT_BLOCKING' can be preset to something else than 20.
 
 ** Selecting full pathname of the "rmt" binary.
 
@@ -76,13 +76,13 @@ directory.
 Use option --enable-backup-scripts to compile and install these
 scripts.
 
-** `--disable-largefile' omits support for large files, even if the
+** '--disable-largefile' omits support for large files, even if the
 operating system supports large files.  Typically, large files are
 those larger than 2 GB on a 32-bit host.
 
 * Installation hints
 
-Here are a few hints which might help installing `tar' on some systems.
+Here are a few hints which might help installing 'tar' on some systems.
 
 ** gzip and bzip2.
 
@@ -103,7 +103,7 @@ then you have encountered a gzip incompatibility that should be fixed
 in gzip test version 1.3, which as of this writing is available at
 <ftp://alpha.gnu.org/gnu/gzip/>.  You can work around the
 incompatibility by using a shell command like
`gzip -d <file.tar.gz | tar -xzf -'.
'gzip -d <file.tar.gz | tar -xzf -'.
 
 ** Solaris issues.
 
@@ -118,13 +118,13 @@ understand these headers.
 
 ** Static linking.
 
-Some platform will, by default, prepare a smaller `tar' executable
-which depends on shared libraries.  Since GNU `tar' may be used for
+Some platform will, by default, prepare a smaller 'tar' executable
+which depends on shared libraries.  Since GNU 'tar' may be used for
 system-level backups and disaster recovery, installers might prefer to
-force static linking, making a bigger `tar' executable maybe, but able to
+force static linking, making a bigger 'tar' executable maybe, but able to
 work standalone, in situations where shared libraries are not available.
 The way to achieve static linking varies between systems.  Set LDFLAGS
-to a value from the table below, before configuration (see `INSTALL').
+to a value from the table below, before configuration (see 'INSTALL').
 
        Platform        Compiler        LDFLAGS
 
@@ -137,18 +137,18 @@ to a value from the table below, before configuration (see `INSTALL').
        Solaris         (vendor)        -Bstatic
        SunOS           (vendor)        -Bstatic
 
-** Failed tests `ignfail.sh' or `incremen.sh'.
+** Failed tests 'ignfail.sh' or 'incremen.sh'.
 
 In an NFS environment, lack of synchronization between machine clocks
 might create difficulties to any tool comparing dates and file time stamps,
-like `tar' in incremental dumps.  This has been a recurrent problem with
+like 'tar' in incremental dumps.  This has been a recurrent problem with
 GNU Make for the last few years.  We would like a general solution.
 
 ** BSD compatibility matters.
 
-Set LIBS to `-lbsd' before configuration (see `INSTALL') if the linker
-complains about `bsd_ioctl' (Slackware).  Also set CPPFLAGS to
-`-I/usr/include/bsd' if <sgtty.h> is not found (Slackware).
+Set LIBS to '-lbsd' before configuration (see 'INSTALL') if the linker
+complains about 'bsd_ioctl' (Slackware).  Also set CPPFLAGS to
+'-I/usr/include/bsd' if <sgtty.h> is not found (Slackware).
 
 ** OPENStep 4.2 swap files
 
@@ -159,43 +159,43 @@ the simplest workaround is to avoid tarring this file.
 
 * Special topics
 
-Here are a few special matters about GNU `tar', not related to build
+Here are a few special matters about GNU 'tar', not related to build
 matters.  See previous section for such.
 
 ** File attributes.
 
-About *security*, it is probable that future releases of `tar' will have
+About *security*, it is probable that future releases of 'tar' will have
 some behavior changed.  There are many pending suggestions to choose from.
-Today, extracting an archive not being `root', `tar' will restore suid/sgid
-bits on files but owned by the extracting user.  `root' automatically gets
-a lot of special privileges, `-p' might later become required to get them.
+Today, extracting an archive not being 'root', 'tar' will restore suid/sgid
+bits on files but owned by the extracting user.  'root' automatically gets
+a lot of special privileges, '-p' might later become required to get them.
 
-GNU `tar' does not properly restore symlink attributes.  Various systems
+GNU 'tar' does not properly restore symlink attributes.  Various systems
 implement flavors of symbolic links showing different behavior and
 properties.  We did not successfully sorted all these out yet.  Currently,
-the `lchown' call will be used if available, but that's all.
+the 'lchown' call will be used if available, but that's all.
 
 ** POSIX compliance.
 
-GNU `tar' is able to create archive in the following formats:
+GNU 'tar' is able to create archive in the following formats:
 
   *** The format of UNIX version 7
   *** POSIX.1-1988 format, also known as "ustar format"
   *** POSIX.1-2001 format, also known as "pax format"
   *** Old GNU format (described below)
 
-In addition to those, GNU `tar' is also able to read archives
-produced by `star' archiver.
+In addition to those, GNU 'tar' is also able to read archives
+produced by 'star' archiver.
 
-A so called `Old GNU' format is based on an early draft of the
-POSIX 1003.1 `ustar' standard which is different from the final
+A so called 'Old GNU' format is based on an early draft of the
+POSIX 1003.1 'ustar' standard which is different from the final
 standard. It defines its extensions (such as incremental backups
 and handling of the long file names) in a way incompatible with
 any existing tar archive format, therefore the use of old GNU
 format is strongly discouraged.
 
 Please read the file NEWS for more information about POSIX compliance
-and new `tar' features.
+and new 'tar' features.
 
 * What's next?
 
@@ -216,32 +216,36 @@ to the report address; rather take special arrangement with the maintainer.
 
 Your feedback will help us to make a better and more portable package.
 Consider documentation errors as bugs, and report them as such.  If you
-develop anything pertaining to `tar' or have suggestions, let us know
+develop anything pertaining to 'tar' or have suggestions, let us know
 and share your findings by writing to <bug-tar@gnu.org>.
 
 \f
 * Copying
 
-       Copyright (C) 1990, 1991, 1992, 1994, 1997, 1998, 1999, 2000,
-       2001, 2003, 2004, 2007 Free Software Foundation, Inc.
+Copyright 1990-1992, 1994, 1997-2001, 2003-2004, 2007, 2012-2013 Free
+Software Foundation, Inc.
 
-       This file is part of GNU tar.
+This file is part of GNU tar.
 
-       GNU tar is free software; you can redistribute 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.
+GNU tar is free software; you can redistribute it and/or modify
+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.
 
-       GNU tar 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.
+GNU tar 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 tar; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-       Boston, MA 02110-1301, USA.
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+NOTE ON COPYRIGHT YEARS
+
+In copyright notices where the copyright holder is the Free Software
+Foundation, then where a range of years appears, this is an inclusive
+range that applies to every year in the range.  For example: 2005-2008
+represents the years 2005, 2006, 2007, and 2008.
 \f
 Local Variables:
 mode: outline
diff --git a/THANKS b/THANKS
index 0364c504763095fa8a058d296797cfcf632d1ab9..79aa0ce10f5c5befec9bc35bf69328134f7253af 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -91,6 +91,7 @@ Christian Kirsch      ck@held.mind.de
 Christian Laubscher    christian.laubscher@tiscalinet.ch
 Christian T. Dum       ctd@mpe-garching.mpg.de
 Christian von Roques   roques@pond.sub.org
+Christian Wetzel       wetzel@phoenix-pacs.de
 Christoph Litauer      litauer@mailhost.uni-koblenz.de
 Christophe Colle       colle@krtkg1.rug.ac.be
 Christophe Kalt                Christophe.Kalt@kbcfp.com
@@ -241,6 +242,7 @@ Jim Clausing                jac@postbox.acs.ohio-state.edu
 Jim Farrell            jwf@platinum.com
 Jim Meyering           meyering@na-net.ornl.gov
 Jim Murray             jjm@jjm.com
+Jivko Angelov          jivko@siteground.com
 Joachim Holzfuss       Joachim.Holzfuss@iap.physik.th-darmstadt.de
 Joachim Seelig         joachim@kruemel.han.de
 Joe DeBattista         joed@itsa.ucsf.edu
@@ -296,6 +298,7 @@ Kimmy Posey         kimmyd@bnr.ca
 Koji Kishi             kis@rqa.sony.co.jp
 Konno Hiroharu         konno@pac.co.jp
 Kurt Jaeger            pi@lf.net
+James Antill            jantill@redhat.com
 Larry Creech           lcreech@lonestar.rcclub.org
 Larry Schwimmer                rosebud@cyclone.stanford.edu
 Lasse Collin           lasse.collin@tukaani.org
@@ -349,6 +352,7 @@ Michael P Urban             urban@cobra.jpl.nasa.gov
 Michael Schmidt                michael@muc.de
 Michael Schwingen      m.schwingen@stochastik.rwth-aachen.de
 Michael Smolsky                fnsiguc@astro.weizmann.ac.il
+Michal Žejdl          zejdl@suas.cz
 Mike Muuss             mike@brl.mil
 Mike Nolan             nolan@lpl.arizona.edu
 Mike Rogers            mike@demon.net
@@ -357,7 +361,9 @@ Mike Walker         M.D.Walker@larc.nasa.gov
 Milan Hodoscek         milan@kihp6.ki.si
 Minh Tran-Le           tranle@intellicorp.com
 Mitsuaki Masuhara      masuhara@mcprv.mec.mei.co.jp
+Natalie Alifanova      na@nxc.no
 Nate Eldredge          nate@cs.hmc.edu
+Nathan Stratton Treadway nathanst+bugtar@ontko.com
 Neil Faulks            neil@dcs.kcl.ac.uk
 Neil Jerram            nj104@cus.cam.ac.uk
 Nelson H.F. Beebe      beebe@math.utah.edu
@@ -374,6 +380,7 @@ Oswald P. Backus IV backus@lks.csi.com
 Pascal Meheut          pascal@cnam.cnam.fr
 Patrick Fulconis       fulco@sig.uvsq.fr
 Patrick Timmons                timmons@electech.polymtl.ca
+Pavel Raiskup           praiskup@redhat.com
 Paul Eggert            eggert@twinsun.com
 Paul Kanz              paul@icx.com
 Paul Mitchell          P.Mitchell@surrey.ac.uk
@@ -395,6 +402,7 @@ Phil Proudman               phil@proudman51.freeserve.co.uk
 Philippe Defert                defert@cern.ch
 Piercarlo Grandi       piercarl@sabi.demon.co.uk
 Pierce Cantrell                cantrell@ee.tamu.edu
+Piotr Rotter           piotr.rotter@active24.pl
 R. Kent Dybvig         dyb@cadence.bloomington.in.us
 R. Scott Butler                butler@prism.es.dupont.com
 Rainer Orth            ro@TechFak.Uni-Bielefeld.DE
diff --git a/TODO b/TODO
index f440a08d585b939a6599419a2c5767762004d21b..c8ed3c9edd7302801a687545c2cc6021ceddaacb 100644 (file)
--- a/TODO
+++ b/TODO
@@ -45,24 +45,22 @@ Suggestions for improving GNU tar.
 \f
 * Copyright notice
 
-  Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+Copyright 2003, 2004, 2007, 2013 Free Software Foundation, Inc.
 
-  This file is part of GNU tar.
+This file is part of GNU tar.
 
-  GNU tar is free software; you can redistribute 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.
+GNU tar is free software; you can redistribute it and/or modify
+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.
 
-  GNU tar 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.
+GNU tar 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 tar; see the file COPYING.  If not, write to
-  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-  Boston, MA 02110-1301, USA.
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 \f
 Local variables:
index 10a27e5b97071cddbb103384675a74db2f785d25..d48c881dd1ae4d95c694e93617feabe8235571f1 100644 (file)
@@ -1,18 +1,21 @@
-dnl Special Autoconf macros for GNU Tar         -*- autoconf -*-
-dnl Copyright (C) 2009 Free Software Foundation, Inc.
+dnl Special Autoconf macros for GNU tar         -*- autoconf -*-
+
+dnl Copyright 2009, 2013 Free Software Foundation, Inc.
+dnl
+dnl This file is part of GNU tar.
 dnl
 dnl GNU tar is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 3, or (at your option)
-dnl any later version.
+dnl the Free Software Foundation; either version 3 of the License, or
+dnl (at your option) any later version.
 dnl
 dnl GNU tar is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
 dnl
-dnl You should have received a copy of the GNU General Public License along
-dnl with GNU tar.  If not, see <http://www.gnu.org/licenses/>.
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_DEFUN([TAR_COMPR_PROGRAM],[
  m4_pushdef([tar_compr_define],translit($1,[a-z+-],[A-ZX_])[_PROGRAM])
@@ -24,3 +27,28 @@ AC_DEFUN([TAR_COMPR_PROGRAM],[
             [tar_compr_var=m4_if($2,,$1,$2)])
  AC_DEFINE_UNQUOTED(tar_compr_define, "$tar_compr_var",
                     [Define to the program name of ]$1[ compressor program])])
+
+# Provide <attr/xattr.h>, if necessary
+
+AC_DEFUN([TAR_HEADERS_ATTR_XATTR_H],
+[
+  AC_ARG_WITH([xattrs],
+    AS_HELP_STRING([--without-xattrs], [don't use linux extended attributes]),
+    [], [with_xattrs=maybe]
+  )
+
+  AC_CHECK_HEADERS([attr/xattr.h])
+  AM_CONDITIONAL([TAR_COND_XATTR_H],[test "$ac_cv_header_attr_xattr_h" = yes])
+  if test "$ac_cv_header_attr_xattr_h" = yes; then
+    AC_CHECK_FUNCS(getxattr  fgetxattr  lgetxattr \
+                   setxattr  fsetxattr  lsetxattr \
+                   listxattr flistxattr llistxattr,
+        # only when functions are present
+        AC_DEFINE([HAVE_ATTR_XATTR_H], [1],
+                    [define to 1 if we have <attr/xattr.h> header])
+        if test "$with_xattrs" != no; then
+          AC_DEFINE([HAVE_XATTRS],,[Define when we have working linux xattrs.])
+        fi
+    )
+  fi
+])
index af3a30d426efd22ec541384528a8eafae6cdc1e1..30203bd4d4d86e763a4ddd0063d063c1312369b9 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.12.6 -*- Autoconf -*-
+
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  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.
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
 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'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -31,10 +31,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.11'
+[am__api_version='1.12'
 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.11.1], [],
+m4_if([$1], [1.12.6], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,22 +50,22 @@ 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.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.12.6])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 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.
 
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -84,7 +84,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -110,22 +110,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -144,16 +141,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -163,7 +158,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -176,12 +171,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -189,8 +185,9 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -229,16 +226,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -247,16 +244,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -304,7 +301,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -314,28 +311,33 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -354,7 +356,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # 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
+    # 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.
@@ -366,21 +368,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # 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"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -398,7 +398,7 @@ 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
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -408,15 +408,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # 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.
 
@@ -461,31 +458,41 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+[$0: two- and three-arguments forms are deprecated.  For more info, see:
+http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -496,28 +503,35 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
                             [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                 [_AM_DEPENDENCIES(CC)],
-                 [define([AC_PROG_CC],
-                         defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                 [_AM_DEPENDENCIES([CC])],
+                 [m4_define([AC_PROG_CC],
+                            m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                 [_AM_DEPENDENCIES(CXX)],
-                 [define([AC_PROG_CXX],
-                         defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                 [_AM_DEPENDENCIES([CXX])],
+                 [m4_define([AC_PROG_CXX],
+                            m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                 [_AM_DEPENDENCIES(OBJC)],
-                 [define([AC_PROG_OBJC],
-                         defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+                 [_AM_DEPENDENCIES([OBJC])],
+                 [m4_define([AC_PROG_OBJC],
+                            m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+dnl Support for Objective C++ was only introduced in Autoconf 2.65,
+dnl but we still cater to Autoconf 2.62.
+m4_ifdef([AC_PROG_OBJCXX],
+[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+                 [_AM_DEPENDENCIES([OBJCXX])],
+                 [m4_define([AC_PROG_OBJCXX],
+                            m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
 ])
 _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
 dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+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
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -545,7 +559,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, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -564,16 +578,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -589,14 +601,12 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -614,7 +624,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# 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
@@ -639,15 +649,12 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -676,15 +683,12 @@ m4_define([AC_PROG_CC],
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -692,7 +696,6 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
 # Define MISSING if not defined so far and test if it supports --run.
@@ -713,59 +716,31 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  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_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -776,7 +751,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -795,22 +770,16 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -821,32 +790,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -856,36 +833,85 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009  Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -893,34 +919,32 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -928,24 +952,22 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -956,10 +978,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [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='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [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])
@@ -967,7 +990,7 @@ AC_MSG_CHECKING([how to create a $1 tar archive])
 _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 `-'.
+# Solaris sh will not grok spaces in the rhs of '-'.
 for _am_tool in $_am_tools
 do
   case $_am_tool in
@@ -1029,8 +1052,8 @@ AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([m4/00gnulib.m4])
+m4_include([m4/acl.m4])
 m4_include([m4/alloca.m4])
-m4_include([m4/argmatch.m4])
 m4_include([m4/argp.m4])
 m4_include([m4/backupfile.m4])
 m4_include([m4/bison.m4])
@@ -1039,9 +1062,9 @@ m4_include([m4/canonicalize.m4])
 m4_include([m4/chdir-long.m4])
 m4_include([m4/chown.m4])
 m4_include([m4/clock_time.m4])
-m4_include([m4/cloexec.m4])
 m4_include([m4/close-stream.m4])
 m4_include([m4/close.m4])
+m4_include([m4/closedir.m4])
 m4_include([m4/closeout.m4])
 m4_include([m4/codeset.m4])
 m4_include([m4/configmake.m4])
@@ -1051,15 +1074,18 @@ m4_include([m4/dirent_h.m4])
 m4_include([m4/dirfd.m4])
 m4_include([m4/dirname.m4])
 m4_include([m4/double-slash-root.m4])
+m4_include([m4/dup.m4])
 m4_include([m4/dup2.m4])
 m4_include([m4/eealloc.m4])
 m4_include([m4/environ.m4])
 m4_include([m4/errno_h.m4])
 m4_include([m4/error.m4])
-m4_include([m4/exclude.m4])
+m4_include([m4/exponentd.m4])
 m4_include([m4/extensions.m4])
+m4_include([m4/extern-inline.m4])
 m4_include([m4/fchdir.m4])
-m4_include([m4/fclose.m4])
+m4_include([m4/fchmodat.m4])
+m4_include([m4/fchownat.m4])
 m4_include([m4/fcntl-o.m4])
 m4_include([m4/fcntl.m4])
 m4_include([m4/fcntl_h.m4])
@@ -1069,7 +1095,10 @@ m4_include([m4/filenamecat.m4])
 m4_include([m4/float_h.m4])
 m4_include([m4/fnmatch.m4])
 m4_include([m4/fpending.m4])
+m4_include([m4/fseek.m4])
 m4_include([m4/fseeko.m4])
+m4_include([m4/fstat.m4])
+m4_include([m4/fstatat.m4])
 m4_include([m4/futimens.m4])
 m4_include([m4/getcwd-abort-bug.m4])
 m4_include([m4/getcwd-path-max.m4])
@@ -1085,11 +1114,9 @@ m4_include([m4/gettimeofday.m4])
 m4_include([m4/glibc21.m4])
 m4_include([m4/gnulib-common.m4])
 m4_include([m4/gnulib-comp.m4])
-m4_include([m4/hash.m4])
 m4_include([m4/human.m4])
 m4_include([m4/iconv.m4])
 m4_include([m4/include_next.m4])
-m4_include([m4/inline.m4])
 m4_include([m4/intlmacosx.m4])
 m4_include([m4/intmax_t.m4])
 m4_include([m4/inttostr.m4])
@@ -1098,6 +1125,7 @@ m4_include([m4/inttypes.m4])
 m4_include([m4/inttypes_h.m4])
 m4_include([m4/iswblank.m4])
 m4_include([m4/langinfo_h.m4])
+m4_include([m4/largefile.m4])
 m4_include([m4/lchown.m4])
 m4_include([m4/lib-ld.m4])
 m4_include([m4/lib-link.m4])
@@ -1110,11 +1138,14 @@ m4_include([m4/localcharset.m4])
 m4_include([m4/locale-fr.m4])
 m4_include([m4/locale-ja.m4])
 m4_include([m4/locale-zh.m4])
+m4_include([m4/locale_h.m4])
+m4_include([m4/localeconv.m4])
 m4_include([m4/longlong.m4])
 m4_include([m4/lseek.m4])
 m4_include([m4/lstat.m4])
 m4_include([m4/malloc.m4])
 m4_include([m4/malloca.m4])
+m4_include([m4/manywarnings.m4])
 m4_include([m4/mbchar.m4])
 m4_include([m4/mbiter.m4])
 m4_include([m4/mbrtowc.m4])
@@ -1126,6 +1157,7 @@ m4_include([m4/memchr.m4])
 m4_include([m4/mempcpy.m4])
 m4_include([m4/memrchr.m4])
 m4_include([m4/mkdir.m4])
+m4_include([m4/mkdirat.m4])
 m4_include([m4/mkdtemp.m4])
 m4_include([m4/mkfifo.m4])
 m4_include([m4/mkfifoat.m4])
@@ -1134,11 +1166,16 @@ m4_include([m4/mktime.m4])
 m4_include([m4/mmap-anon.m4])
 m4_include([m4/mode_t.m4])
 m4_include([m4/modechange.m4])
+m4_include([m4/msvc-inval.m4])
+m4_include([m4/msvc-nothrow.m4])
 m4_include([m4/multiarch.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/openat.m4])
+m4_include([m4/opendir.m4])
 m4_include([m4/parse-datetime.m4])
 m4_include([m4/pathmax.m4])
 m4_include([m4/paxutils.m4])
@@ -1148,13 +1185,17 @@ m4_include([m4/priv-set.m4])
 m4_include([m4/progtest.m4])
 m4_include([m4/quote.m4])
 m4_include([m4/quotearg.m4])
+m4_include([m4/raise.m4])
 m4_include([m4/rawmemchr.m4])
+m4_include([m4/read.m4])
+m4_include([m4/readdir.m4])
 m4_include([m4/readlink.m4])
 m4_include([m4/readlinkat.m4])
 m4_include([m4/realloc.m4])
 m4_include([m4/regex.m4])
 m4_include([m4/rename.m4])
 m4_include([m4/renameat.m4])
+m4_include([m4/rewinddir.m4])
 m4_include([m4/rmdir.m4])
 m4_include([m4/rmt.m4])
 m4_include([m4/rpmatch.m4])
@@ -1163,13 +1204,18 @@ m4_include([m4/safe-read.m4])
 m4_include([m4/safe-write.m4])
 m4_include([m4/save-cwd.m4])
 m4_include([m4/savedir.m4])
+m4_include([m4/secure_getenv.m4])
+m4_include([m4/selinux-context-h.m4])
+m4_include([m4/selinux-selinux-h.m4])
 m4_include([m4/setenv.m4])
+m4_include([m4/signal_h.m4])
 m4_include([m4/size_max.m4])
 m4_include([m4/sleep.m4])
 m4_include([m4/snprintf.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])
@@ -1186,16 +1232,16 @@ m4_include([m4/string_h.m4])
 m4_include([m4/strings_h.m4])
 m4_include([m4/strndup.m4])
 m4_include([m4/strnlen.m4])
-m4_include([m4/strtoimax.m4])
 m4_include([m4/strtol.m4])
-m4_include([m4/strtoll.m4])
 m4_include([m4/strtoul.m4])
 m4_include([m4/strtoull.m4])
 m4_include([m4/strtoumax.m4])
 m4_include([m4/symlink.m4])
 m4_include([m4/symlinkat.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/sysexits.m4])
 m4_include([m4/system.m4])
 m4_include([m4/tempname.m4])
@@ -1206,6 +1252,7 @@ m4_include([m4/tm_gmtoff.m4])
 m4_include([m4/unistd-safer.m4])
 m4_include([m4/unistd_h.m4])
 m4_include([m4/unlink.m4])
+m4_include([m4/unlinkat.m4])
 m4_include([m4/unlinkdir.m4])
 m4_include([m4/unlocked-io.m4])
 m4_include([m4/utimbuf.m4])
@@ -1217,6 +1264,7 @@ m4_include([m4/vasprintf.m4])
 m4_include([m4/version-etc.m4])
 m4_include([m4/vsnprintf.m4])
 m4_include([m4/warn-on-use.m4])
+m4_include([m4/warnings.m4])
 m4_include([m4/wchar_h.m4])
 m4_include([m4/wchar_t.m4])
 m4_include([m4/wcrtomb.m4])
index c0096a7b563231c0c7ade728962574ec3b8df270..718dc6d0bf9f58ace223cfe8ac9be3b3ce141cb9 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2009-10-06.20; # UTC
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
-# Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -29,21 +28,224 @@ scriptversion=2009-10-06.20; # UTC
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+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/,$2, in
+       *,$file_conv,*)
+         ;;
+       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_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -l*)
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
+       -L*)
+         func_cl_dashL "${1#-L}"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: compile [--help] [--version] PROGRAM [ARGS]
 
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
 arguments, and rename the output as expected.
 
 If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -53,11 +255,13 @@ EOF
     echo "compile $scriptversion"
     exit $?
     ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
 esac
 
 ofile=
 cfile=
-eat=
 
 for arg
 do
@@ -66,8 +270,8 @@ do
   else
     case $1 in
       -o)
-       # configure might choose to run compile as `compile cc -o foo foo.c'.
-       # So we strip `-o arg' only if arg is an object.
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
        eat=1
        case $2 in
          *.o | *.obj)
@@ -94,10 +298,10 @@ do
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-  # If no `-o' option was seen then we might have been invoked from a
+  # If no '-o' option was seen then we might have been invoked from a
   # pattern rule where we don't need one.  That is ok -- this is a
   # normal compilation that the losing compiler can handle.  If no
-  # `.c' file was seen then we are probably linking.  That is also
+  # '.c' file was seen then we are probably linking.  That is also
   # ok.
   exec "$@"
 fi
@@ -106,7 +310,7 @@ fi
 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
index 187cd54edd28a233fa10fd0919c0dad68652011f..b79252d6b1034cbcce18ed21d4ed21a405f987e9 100755 (executable)
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2011-02-02'
+timestamp='2013-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -17,26 +15,22 @@ timestamp='2011-02-02'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# 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.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # 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
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -56,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
-Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -140,12 +132,33 @@ 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'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
@@ -202,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -304,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -792,21 +809,26 @@ EOF
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit ;;
     *:FreeBSD:*:*)
-       case ${UNAME_MACHINE} in
-           pc98)
-               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       case ${UNAME_PROCESSOR} in
            amd64)
                echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            *)
-               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
        esac
        exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
+    i*:MSYS*:*)
+       echo ${UNAME_MACHINE}-pc-msys
+       exit ;;
     i*:windows32*:*)
        # uname -m includes "-pc" on this system.
        echo ${UNAME_MACHINE}-mingw32
@@ -852,15 +874,22 @@ 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 '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
+    aarch64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    aarch64_be:Linux:*:*)
+       UNAME_MACHINE=aarch64_be
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -872,50 +901,54 @@ 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
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+               | grep -q __ARM_PCS_VFP
+           then
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+           else
+               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 cris-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo crisv32-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    hexagon:Linux:*:*)
+       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 ;;
     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
@@ -934,54 +967,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-${LIBC}
+       exit ;;
     or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
+       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}-tilera-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 x86_64-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-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.
@@ -1185,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        echo i586-pc-haiku
        exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1211,19 +1256,21 @@ 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 [ "$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
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1240,7 +1287,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1309,11 +1356,11 @@ EOF
     i*86:AROS:*:*)
        echo ${UNAME_MACHINE}-pc-aros
        exit ;;
+    x86_64:VMkernel:*:*)
+       echo ${UNAME_MACHINE}-unknown-esx
+       exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
index 8bd7f5d726b7c558f30bda408bf8977e220f9b85..c38b914d6be36839c83ef7f79e804e45ee9cb736 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-2011 Free Software Foundation, Inc.
+#   Copyright 1996-2013 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -25,7 +25,7 @@
 #   known workaround is to choose shorter directory names for the build
 #   directory and/or the installation directory.
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 shrext=.so
index 0ef29b072ed43a34b43daf0df2a25d5928fcd71b..8b612ab89df97769d827a8b7f64e1dad21ac0b71 100755 (executable)
@@ -1,38 +1,31 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2011-02-24'
+timestamp='2013-04-24'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (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.
+# 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# 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.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -75,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
-Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -125,13 +116,17 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
   *)
     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     if [ $basic_machine != $1 ]
@@ -154,7 +149,7 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze)
+       -apple | -axis | -knuth | -cray | -microblaze*)
                os=
                basic_machine=$1
                ;;
@@ -223,6 +218,12 @@ case $os in
        -isc*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
        -lynx*)
                os=-lynxos
                ;;
@@ -247,20 +248,27 @@ case $basic_machine in
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
+       | aarch64 | aarch64_be \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | be32 | be64 \
        | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
+       | epiphany \
        | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
+       | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep | metag \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -278,30 +286,32 @@ case $basic_machine in
        | mipsisa64r2 | mipsisa64r2el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
        | moxie \
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
-       | nios | nios2 \
+       | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
-       | or32 \
+       | open8 \
+       | or1k | or32 \
        | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
-       | rx \
+       | 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 \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
-       | v850 | v850e \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
@@ -314,8 +324,7 @@ case $basic_machine in
        c6x)
                basic_machine=tic6x-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-               # Motorola 68HC11/12.
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -325,6 +334,21 @@ case $basic_machine in
                basic_machine=mt-unknown
                ;;
 
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -339,11 +363,13 @@ case $basic_machine in
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
+       | 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-* \
+       | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | clipper-* | craynv-* | cydra-* \
@@ -352,12 +378,15 @@ case $basic_machine in
        | 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-* \
+       | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
@@ -375,31 +404,34 @@ case $basic_machine in
        | mipsisa64r2-* | mipsisa64r2el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
-       | nios-* | nios2-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
-       | romp-* | rs6000-* | rx-* \
+       | 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-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile-* | tilegx-* \
+       | tile*-* \
        | tron-* \
        | ubicom32-* \
-       | v850-* | v850e-* | vax-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-* | z80-*)
@@ -697,7 +729,6 @@ case $basic_machine in
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
@@ -755,9 +786,13 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-       microblaze)
+       microblaze*)
                basic_machine=microblaze-xilinx
                ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
        mingw32)
                basic_machine=i386-pc
                os=-mingw32
@@ -794,10 +829,18 @@ case $basic_machine in
        ms1-*)
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
+       msys)
+               basic_machine=i386-pc
+               os=-msys
+               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
                ;;
+       nacl)
+               basic_machine=le32-unknown
+               os=-nacl
+               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
@@ -950,9 +993,10 @@ case $basic_machine in
                ;;
        power)  basic_machine=power-ibm
                ;;
-       ppc)    basic_machine=powerpc-unknown
+       ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
@@ -977,7 +1021,11 @@ case $basic_machine in
                basic_machine=i586-unknown
                os=-pw32
                ;;
-       rdos)
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
                basic_machine=i386-pc
                os=-rdos
                ;;
@@ -1046,6 +1094,9 @@ case $basic_machine in
                basic_machine=i860-stratus
                os=-sysv4
                ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -1102,13 +1153,8 @@ case $basic_machine in
                basic_machine=t90-cray
                os=-unicos
                ;;
-       # This must be matched before tile*.
-       tilegx*)
-               basic_machine=tilegx-unknown
-               os=-linux-gnu
-               ;;
        tile*)
-               basic_machine=tile-unknown
+               basic_machine=$basic_machine-unknown
                os=-linux-gnu
                ;;
        tx39)
@@ -1178,6 +1224,9 @@ case $basic_machine in
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
        ymp)
                basic_machine=ymp-cray
                os=-unicos
@@ -1303,21 +1352,21 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
+             | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
              | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
              | -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* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
+             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1449,9 +1498,6 @@ case $os in
        -aros*)
                os=-aros
                ;;
-       -kaos*)
-               os=-kaos
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
@@ -1500,6 +1546,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       hexagon-*)
+               os=-elf
+               ;;
        tic54x-*)
                os=-coff
                ;;
@@ -1527,9 +1576,6 @@ case $basic_machine in
                ;;
        m68000-sun)
                os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
                ;;
        m68*-cisco)
                os=-aout
@@ -1543,6 +1589,9 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
+       or1k-*)
+               os=-elf
+               ;;
        or32-*)
                os=-coff
                ;;
index c3163befc32dcbba825430a2bb74cf43de39ed50..31788017b8f041f1d63dfb80ace66a4aa6b1c1d6 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2010-10-07.20; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-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
@@ -28,9 +27,9 @@ scriptversion=2010-10-07.20; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -40,11 +39,11 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputing dependencies.
+  tmpdepfile  Temporary file to use when outputting dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
@@ -57,6 +56,66 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='  '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -69,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -80,26 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -122,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -131,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -145,31 +216,31 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
+## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
-## well.
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -180,59 +251,21 @@ hp)
   exit 1
   ;;
 
-sgi)
-  if test "$libtool" = yes; then
-    "$@" "-Wp,-MDupdate,$tmpdepfile"
-  else
-    "$@" -MDupdate "$tmpdepfile"
-  fi
-  stat=$?
-  if test $stat -eq 0; then :
-  else
-    rm -f "$tmpdepfile"
-    exit $stat
-  fi
-  rm -f "$depfile"
-
-  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
-    echo "$object : \\" > "$depfile"
-
-    # Clip off the initial element (the dependent).  Don't try to be
-    # clever and replace this with sed code, as IRIX sed won't handle
-    # lines with more than a fixed number of characters (4096 in
-    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
-    # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> "$depfile"
-    echo >> "$depfile"
-
-    # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
-  fi
-  rm -f "$tmpdepfile"
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
   ;;
 
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -245,9 +278,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -256,44 +287,100 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form `foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want:
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
 
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -305,8 +392,8 @@ icc)
   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
   # Some versions of the HPUX 10.20 sed can't process this invocation
   # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -317,9 +404,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -330,8 +416,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -341,77 +426,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
     sed -ne '2,${
-              s/^ *//
-              s/ \\*$//
-              s/$/:/
-              p
-            }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[   ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -422,8 +491,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -441,14 +509,15 @@ msvc7)
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/      \1 \\/p
+s/\(.*\)/'"$tab"'\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/        /
+  s/.*/'"$tab"'/
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -476,7 +545,7 @@ dashmstdout)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -496,18 +565,18 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
+  # Require at least two characters before searching for ':'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -557,12 +626,15 @@ makedepend)
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -579,7 +651,7 @@ cpp)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -598,10 +670,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -633,23 +705,23 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-       set fnord "$@"
-       shift
-       shift
-       ;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-       set fnord "$@" "$arg"
-       shift
-       shift
-       ;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::     \1 \\:p' >> "$depfile"
-  echo "       " >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
index 45597041e0c3ca07a2b41e5f1470573dd98520d7..e02d34c2135c31b455cb56dd835501e0bc6b1195 100755 (executable)
@@ -3,13 +3,13 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
     if 0;
 # Convert git log output to ChangeLog format.
 
-my $VERSION = '2009-10-30 13:46'; # UTC
+my $VERSION = '2012-07-29 06:11'; # 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-2011 Free Software Foundation, Inc.
+# Copyright (C) 2008-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
@@ -47,7 +47,7 @@ sub usage ($)
   my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
   if ($exit_code != 0)
     {
-      print $STREAM "Try `$ME --help' for more information.\n";
+      print $STREAM "Try '$ME --help' for more information.\n";
     }
   else
     {
@@ -60,12 +60,25 @@ $ME, they may be preceded by '--'.
 
 OPTIONS:
 
+   --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+                  makes a change to SHA1's commit log text or metadata.
+   --append-dot append a dot to the first line of each commit message if
+                  there is no other punctuation or blank at the end.
+   --no-cluster never cluster commit messages under the same date/author
+                  header; the default is to cluster adjacent commit messages
+                  if their headers are the same and neither commit message
+                  contains multiple paragraphs.
+   --srcdir=DIR the root of the source tree, from which the .git/
+                  directory can be derived.
    --since=DATE convert only the logs since DATE;
                   the default is to convert all log entries.
    --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'
-
+   --strip-tab  remove one additional leading TAB from commit message lines.
+   --strip-cherry-pick  remove data inserted by "git cherry-pick";
+                  this includes the "cherry picked from commit ..." line,
+                  and the possible final "Conflicts:" paragraph.
    --help       display this help and exit
    --version    output version information and exit
 
@@ -74,6 +87,38 @@ EXAMPLE:
   $ME --since=2008-01-01 > ChangeLog
   $ME -- -n 5 foo > last-5-commits-to-branch-foo
 
+SPECIAL SYNTAX:
+
+The following types of strings are interpreted specially when they appear
+at the beginning of a log message line.  They are not copied to the output.
+
+  Copyright-paperwork-exempt: Yes
+    Append the "(tiny change)" notation to the usual "date name email"
+    ChangeLog header to mark a change that does not require a copyright
+    assignment.
+  Co-authored-by: Joe User <user\@example.com>
+    List the specified name and email address on a second
+    ChangeLog header, denoting a co-author.
+  Signed-off-by: Joe User <user\@example.com>
+    These lines are simply elided.
+
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code.  Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul.  Note the escaped "@":
+s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
+
 EOF
     }
   exit $exit_code;
@@ -99,24 +144,121 @@ sub quoted_cmd(@)
   return join (' ', map {shell_quote $_} @_);
 }
 
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+  my ($f) = @_;
+
+  open F, '<', $f
+    or die "$ME: $f: failed to open for reading: $!\n";
+
+  my $fail;
+  my $h = {};
+  my $in_code = 0;
+  my $sha;
+  while (defined (my $line = <F>))
+    {
+      $line =~ /^\#/
+        and next;
+      chomp $line;
+      $line eq ''
+        and $in_code = 0, next;
+
+      if (!$in_code)
+        {
+          $line =~ /^([0-9a-fA-F]{40})$/
+            or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+              $fail = 1, next;
+          $sha = lc $1;
+          $in_code = 1;
+          exists $h->{$sha}
+            and (warn "$ME: $f:$.: duplicate SHA1\n"),
+              $fail = 1, next;
+        }
+      else
+        {
+          $h->{$sha} ||= '';
+          $h->{$sha} .= "$line\n";
+        }
+    }
+  close F;
+
+  $fail
+    and exit 1;
+
+  return $h;
+}
+
+# git_dir_option $SRCDIR
+#
+# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
+# is undef).  Return as a list (0 or 1 element).
+sub git_dir_option($)
 {
-  my $since_date = '1970-01-01 UTC';
+  my ($srcdir) = @_;
+  my @res = ();
+  if (defined $srcdir)
+    {
+      my $qdir = shell_quote $srcdir;
+      my $cmd = "cd $qdir && git rev-parse --show-toplevel";
+      my $qcmd = shell_quote $cmd;
+      my $git_dir = qx($cmd);
+      defined $git_dir
+        or die "$ME: cannot run $qcmd: $!\n";
+      $? == 0
+        or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
+      chomp $git_dir;
+      push @res, "--git-dir=$git_dir/.git";
+    }
+  @res;
+}
+
+{
+  my $since_date;
   my $format_string = '%s%n%b%n';
+  my $amend_file;
+  my $append_dot = 0;
+  my $cluster = 1;
+  my $strip_tab = 0;
+  my $strip_cherry_pick = 0;
+  my $srcdir;
   GetOptions
     (
      help => sub { usage 0 },
      version => sub { print "$ME version $VERSION\n"; exit },
      'since=s' => \$since_date,
      'format=s' => \$format_string,
+     'amend=s' => \$amend_file,
+     'append-dot' => \$append_dot,
+     'cluster!' => \$cluster,
+     'strip-tab' => \$strip_tab,
+     'strip-cherry-pick' => \$strip_cherry_pick,
+     'srcdir=s' => \$srcdir,
     ) or usage 1;
 
-  my @cmd = (qw (git log --log-size), "--since=$since_date",
-             '--pretty=format:%ct  %an  <%ae>%n%n'.$format_string, @ARGV);
+  defined $since_date
+    and unshift @ARGV, "--since=$since_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.
+  my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+  my @cmd = ('git',
+             git_dir_option $srcdir,
+             qw(log --log-size),
+             '--pretty=format:%H:%ct  %an  <%ae>%n%n'.$format_string, @ARGV);
   open PIPE, '-|', @cmd
-    or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n"
+    or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
             . "(Is your Git too old?  Version 1.5.1 or later is required.)\n");
 
+  my $prev_multi_paragraph;
   my $prev_date_line = '';
+  my @prev_coauthors = ();
   while (1)
     {
       defined (my $in = <PIPE>)
@@ -130,7 +272,41 @@ sub quoted_cmd(@)
       $n_read == $log_nbytes
         or die "$ME:$.: unexpected EOF\n";
 
-      my @line = split "\n", $log;
+      # Extract leading hash.
+      my ($sha, $rest) = split ':', $log, 2;
+      defined $sha
+        or die "$ME:$.: malformed log entry\n";
+      $sha =~ /^[0-9a-fA-F]{40}$/
+        or die "$ME:$.: invalid SHA1: $sha\n";
+
+      # If this commit's log requires any transformation, do it now.
+      my $code = $amend_code->{$sha};
+      if (defined $code)
+        {
+          eval 'use Safe';
+          my $s = new Safe;
+          # Put the unpreprocessed entry into "$_".
+          $_ = $rest;
+
+          # Let $code operate on it, safely.
+          my $r = $s->reval("$code")
+            or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
+
+          # Note that we've used this entry.
+          delete $amend_code->{$sha};
+
+          # Update $rest upon success.
+          $rest = $_;
+        }
+
+      # Remove lines inserted by "git cherry-pick".
+      if ($strip_cherry_pick)
+        {
+          $rest =~ s/^\s*Conflicts:\n.*//sm;
+          $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
+        }
+
+      my @line = split "\n", $rest;
       my $author_line = shift @line;
       defined $author_line
         or die "$ME:$.: unexpected EOF\n";
@@ -138,19 +314,62 @@ sub quoted_cmd(@)
         or die "$ME:$.: Invalid line "
           . "(expected date/author/email):\n$author_line\n";
 
-      my $date_line = sprintf "%s  $2\n", strftime ("%F", localtime ($1));
-      # If this line would be the same as the previous date/name/email
-      # line, then arrange not to print it.
-      if ($date_line ne $prev_date_line)
+      # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
+      # `(tiny change)' annotation.
+      my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+                  ? '  (tiny change)' : '');
+
+      my $date_line = sprintf "%s  %s$tiny\n",
+        strftime ("%F", 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:[ ]
+                       )/x, @line;
+
+      # Remove leading and trailing blank lines.
+      if (@line)
+        {
+          while ($line[0] =~ /^\s*$/) { shift @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/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)
         {
           $prev_date_line eq ''
             or print "\n";
           print $date_line;
+          @coauthors
+            and print join ("\n", @coauthors), "\n";
         }
       $prev_date_line = $date_line;
-
-      # Omit "Signed-off-by..." lines.
-      @line = grep !/^Signed-off-by: .*>$/, @line;
+      @prev_coauthors = @coauthors;
+      $prev_multi_paragraph = $multi_paragraph;
 
       # If there were any lines
       if (@line == 0)
@@ -159,9 +378,21 @@ sub quoted_cmd(@)
         }
       else
         {
-          # Remove leading and trailing blank lines.
-          while ($line[0] =~ /^\s*$/) { shift @line; }
-          while ($line[$#line] =~ /^\s*$/) { pop @line; }
+          if ($append_dot)
+            {
+              # 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;
 
           # Prefix each non-empty line with a TAB.
           @line = map { length $_ ? "\t$_" : '' } @line;
@@ -178,6 +409,16 @@ sub quoted_cmd(@)
   close PIPE
     or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
   # FIXME-someday: include $PROCESS_STATUS in the diagnostic
+
+  # Complain about any unused entry in the --amend=F specified file.
+  my $fail = 0;
+  foreach my $sha (keys %$amend_code)
+    {
+      warn "$ME:$amend_file: unused entry: $sha\n";
+      $fail = 1;
+    }
+
+  exit $fail;
 }
 
 # Local Variables:
index a9244eb0786534553fdd9eb0050bb4b172bad0a3..377bb8687ffe16bfc79ea25c8667cabf72aaf2c2 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-       # Protect names problematic for `test' and other utilities.
+       # Protect names problematic for 'test' and other utilities.
        case $dst_arg in
          -* | [=\(\)!]) dst_arg=./$dst_arg;;
        esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@ do
              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-writeable bit of parent directory when it shouldn't.
+                  # 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
index 60dc485a37847f65428d846fcf694d940cfb071f..b3719cf76191aefd6a48f36c27b8275e268677d0 100755 (executable)
@@ -3,8 +3,7 @@
 
 scriptversion=2010-08-21.06; # UTC
 
-# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright (C) 1995-2013 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
@@ -40,7 +39,7 @@ fi
 
 case $1 in
   '')
-     echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No file.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -76,7 +75,7 @@ LC_TIME=C
 export LC_TIME
 
 # GNU ls changes its time format in response to the TIME_STYLE
-# variable.  Since we cannot assume `unset' works, revert this
+# variable.  Since we cannot assume 'unset' works, revert this
 # variable to its documented default.
 if test "${TIME_STYLE+set}" = set; then
   TIME_STYLE=posix-long-iso
@@ -96,14 +95,14 @@ if ls -n /dev/null 1>/dev/null 2>&1; then
   ls_command="$ls_command -n"
 fi
 
-# A `ls -l' line looks as follows on OS/2.
+# A 'ls -l' line looks as follows on OS/2.
 #  drwxrwx---        0 Aug 11  2001 foo
 # This differs from Unix, which adds ownership information.
 #  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
 #
 # To find the date, we split the line on spaces and iterate on words
 # until we find a month.  This cannot work with files whose owner is a
-# user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
+# user named "Jan", or "Feb", etc.  However, it's unlikely that '/'
 # will be owned by a user whose name is a month.  So we first look at
 # the extended ls output of the root directory to decide how many
 # words should be skipped to get the date.
@@ -116,7 +115,7 @@ month=
 command=
 until test $month
 do
-  test $# -gt 0 || error "failed parsing \`$ls_command /' output"
+  test $# -gt 0 || error "failed parsing '$ls_command /' output"
   shift
   # Add another shift to the command.
   command="$command shift;"
@@ -136,7 +135,7 @@ do
   esac
 done
 
-test -n "$month" || error "failed parsing \`$ls_command /' output"
+test -n "$month" || error "failed parsing '$ls_command /' output"
 
 # Get the extended ls output of the file or directory.
 set dummy x`eval "$ls_command \"\\\$save_arg1\""`
index 28055d2ae6f2a2c584afcd769d7881e11f62ecd9..9a5564823de4c47d7825a85adea87328123cb6ff 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-01-06.18; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -26,7 +25,7 @@ scriptversion=2009-04-28.21; # UTC
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
@@ -34,7 +33,7 @@ run=:
 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
-# In the cases where this matters, `missing' is being run in the
+# In the cases where this matters, 'missing' is being run in the
 # srcdir already.
 if test -f configure.ac; then
   configure_ac=configure.ac
@@ -65,7 +64,7 @@ case $1 in
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
 error status if there is no known handling for PROGRAM.
 
 Options:
@@ -74,21 +73,20 @@ Options:
   --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
+  aclocal      touch file 'aclocal.m4'
+  autoconf     touch file 'configure'
+  autoheader   touch file 'config.h.in'
   autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
+  automake     touch all 'Makefile.in' files
+  bison        create 'y.tab.[ch]', if possible, from existing .[ch]
+  flex         create 'lex.yy.c', if possible, from existing .c
   help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
+  lex          create 'lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -100,8 +98,8 @@ Send bug reports to <bug-automake@gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: Unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
@@ -122,22 +120,13 @@ case $1 in
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar*)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
        exit 1
     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
        # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # running '$TOOL --version' or '$TOOL --help' to check whether
        # $TOOL exists and not knowing $TOOL uses missing.
        exit 1
     fi
@@ -149,27 +138,27 @@ esac
 case $program in
   aclocal*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acinclude.m4' or '${configure_ac}'.  You might want
+         to install the Automake and Perl packages.  Grab them from
          any GNU archive site."
     touch aclocal.m4
     ;;
 
   autoconf*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+WARNING: '$1' is $msg.  You should only need it if
+         you modified '${configure_ac}'.  You might want to install the
+         Autoconf and GNU m4 packages.  Grab them from any GNU
          archive site."
     touch configure
     ;;
 
   autoheader*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acconfig.h' or '${configure_ac}'.  You might want
+         to install the Autoconf and GNU m4 packages.  Grab them
          from any GNU archive site."
     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
     test -z "$files" && files="config.h"
@@ -186,9 +175,9 @@ WARNING: \`$1' is $msg.  You should only need it if
 
   automake*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
+         You might want to install the Automake and Perl packages.
          Grab them from any GNU archive site."
     find . -type f -name Makefile.am -print |
           sed 's/\.am$/.in/' |
@@ -197,10 +186,10 @@ WARNING: \`$1' is $msg.  You should only need it if
 
   autom4te*)
     echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
+WARNING: '$1' is needed, but is $msg.
          You might have modified some files without having the
          proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
+         You can get '$1' as part of Autoconf from any GNU
          archive site."
 
     file=`echo "$*" | sed -n "$sed_output"`
@@ -220,13 +209,13 @@ WARNING: \`$1' is needed, but is $msg.
 
   bison*|yacc*)
     echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
+WARNING: '$1' $msg.  You should only need it if
+         you modified a '.y' file.  You may need the Bison package
          in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
+         Bison from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -250,13 +239,13 @@ WARNING: \`$1' $msg.  You should only need it if
 
   lex*|flex*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.l' file.  You may need the Flex package
          in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
+         Flex from any GNU archive site."
     rm -f lex.yy.c
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -273,10 +262,10 @@ WARNING: \`$1' is $msg.  You should only need it if
 
   help2man*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
+WARNING: '$1' is $msg.  You should only need it if
         you modified a dependency of a manual page.  You may need the
-        \`Help2man' package in order for those modifications to take
-        effect.  You can get \`Help2man' from any GNU archive site."
+        Help2man package in order for those modifications to take
+        effect.  You can get Help2man from any GNU archive site."
 
     file=`echo "$*" | sed -n "$sed_output"`
     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -291,12 +280,12 @@ WARNING: \`$1' is $msg.  You should only need it if
 
   makeinfo*)
     echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.texi' or '.texinfo' file, or any other file
          indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
+         call might also be the consequence of using a buggy 'make' (AIX,
+         DU, IRIX).  You might want to install the Texinfo package or
+         the GNU make package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
     file=`echo "$*" | sed -n "$sed_output"`
     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -318,49 +307,14 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
-  tar*)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-       case $firstarg in
-       *o*)
-           firstarg=`echo "$firstarg" | sed s/o//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-       case $firstarg in
-       *h*)
-           firstarg=`echo "$firstarg" | sed s/h//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
   *)
     echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
+WARNING: '$1' is needed, and is $msg.
          You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
+         proper tools for further handling them.  Check the 'README' file,
          it often tells you about the needed prerequisites for installing
          this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
+         some other package would contain this missing '$1' program."
     exit 1
     ;;
 esac
diff --git a/build-aux/snippet/_Noreturn.h b/build-aux/snippet/_Noreturn.h
new file mode 100644 (file)
index 0000000..c44ad89
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined _Noreturn && __STDC_VERSION__ < 201112
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
diff --git a/build-aux/snippet/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h
new file mode 100644 (file)
index 0000000..8007f07
--- /dev/null
@@ -0,0 +1,28 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A C macro for declaring that specific arguments must not be NULL.
+   Copyright (C) 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/>.  */
+
+/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
+   that the values passed as arguments n, ..., m must be non-NULL pointers.
+   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
+#ifndef _GL_ARG_NONNULL
+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
+#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
+# else
+#  define _GL_ARG_NONNULL(params)
+# endif
+#endif
diff --git a/build-aux/snippet/c++defs.h b/build-aux/snippet/c++defs.h
new file mode 100644 (file)
index 0000000..7b0e540
--- /dev/null
@@ -0,0 +1,273 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* C++ compatible function declaration macros.
+   Copyright (C) 2010-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/>.  */
+
+#ifndef _GL_CXXDEFS_H
+#define _GL_CXXDEFS_H
+
+/* The three most frequent use cases of these macros are:
+
+   * For providing a substitute for a function that is missing on some
+     platforms, but is declared and works fine on the platforms on which
+     it exists:
+
+       #if @GNULIB_FOO@
+       # if !@HAVE_FOO@
+       _GL_FUNCDECL_SYS (foo, ...);
+       # endif
+       _GL_CXXALIAS_SYS (foo, ...);
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+
+   * For providing a replacement for a function that exists on all platforms,
+     but is broken/insufficient and needs to be replaced on some platforms:
+
+       #if @GNULIB_FOO@
+       # if @REPLACE_FOO@
+       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+       #   undef foo
+       #   define foo rpl_foo
+       #  endif
+       _GL_FUNCDECL_RPL (foo, ...);
+       _GL_CXXALIAS_RPL (foo, ...);
+       # else
+       _GL_CXXALIAS_SYS (foo, ...);
+       # endif
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+
+   * For providing a replacement for a function that exists on some platforms
+     but is broken/insufficient and needs to be replaced on some of them and
+     is additionally either missing or undeclared on some other platforms:
+
+       #if @GNULIB_FOO@
+       # if @REPLACE_FOO@
+       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+       #   undef foo
+       #   define foo rpl_foo
+       #  endif
+       _GL_FUNCDECL_RPL (foo, ...);
+       _GL_CXXALIAS_RPL (foo, ...);
+       # else
+       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
+       _GL_FUNCDECL_SYS (foo, ...);
+       #  endif
+       _GL_CXXALIAS_SYS (foo, ...);
+       # endif
+       _GL_CXXALIASWARN (foo);
+       #elif defined GNULIB_POSIXCHECK
+       ...
+       #endif
+*/
+
+/* _GL_EXTERN_C declaration;
+   performs the declaration with C linkage.  */
+#if defined __cplusplus
+# define _GL_EXTERN_C extern "C"
+#else
+# define _GL_EXTERN_C extern
+#endif
+
+/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
+   declares a replacement function, named rpl_func, with the given prototype,
+   consisting of return type, parameters, and attributes.
+   Example:
+     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
+                                  _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
+  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
+#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
+  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
+
+/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
+   declares the system function, named func, with the given prototype,
+   consisting of return type, parameters, and attributes.
+   Example:
+     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
+                                  _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
+  _GL_EXTERN_C rettype func parameters_and_attributes
+
+/* _GL_CXXALIAS_RPL (func, rettype, parameters);
+   declares a C++ alias called GNULIB_NAMESPACE::func
+   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
+   Example:
+     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
+ */
+#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
+  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                                \
+    {                                                         \
+      rettype (*const func) parameters = ::rpl_func;          \
+    }                                                         \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
+   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
+   except that the C function rpl_func may have a slightly different
+   declaration.  A cast is used to silence the "invalid conversion" error
+   that would otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                                     \
+    {                                                              \
+      rettype (*const func) parameters =                           \
+        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
+    }                                                              \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS (func, rettype, parameters);
+   declares a C++ alias called GNULIB_NAMESPACE::func
+   that redirects to the system provided function func, if GNULIB_NAMESPACE
+   is defined.
+   Example:
+     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
+ */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+  /* If we were to write
+       rettype (*const func) parameters = ::func;
+     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
+     better (remove an indirection through a 'static' pointer variable),
+     but then the _GL_CXXALIASWARN macro below would cause a warning not only
+     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                     \
+    {                                              \
+      static rettype (*func) parameters = ::func;  \
+    }                                              \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
+   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
+   except that the C function func may have a slightly different declaration.
+   A cast is used to silence the "invalid conversion" error that would
+   otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+    namespace GNULIB_NAMESPACE                          \
+    {                                                   \
+      static rettype (*func) parameters =               \
+        reinterpret_cast<rettype(*)parameters>(::func); \
+    }                                                   \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
+   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
+   except that the C function is picked among a set of overloaded functions,
+   namely the one with rettype2 and parameters2.  Two consecutive casts
+   are used to silence the "cannot find a match" and "invalid conversion"
+   errors that would otherwise occur.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+  /* The outer cast must be a reinterpret_cast.
+     The inner cast: When the function is defined as a set of overloaded
+     functions, it works as a static_cast<>, choosing the designated variant.
+     When the function is defined as a single variant, it works as a
+     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+    namespace GNULIB_NAMESPACE                                                \
+    {                                                                         \
+      static rettype (*func) parameters =                                     \
+        reinterpret_cast<rettype(*)parameters>(                               \
+          (rettype2(*)parameters2)(::func));                                  \
+    }                                                                         \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN (func);
+   causes a warning to be emitted when ::func is used but not when
+   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
+   variants.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN(func) \
+   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN_1(func,namespace) \
+   _GL_CXXALIASWARN_2 (func, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+    _GL_WARN_ON_USE (func, \
+                     "The symbol ::" #func " refers to the system function. " \
+                     "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN(func) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
+   causes a warning to be emitted when the given overloaded variant of ::func
+   is used but not when GNULIB_NAMESPACE::func is used.  */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
+                        GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
+   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
+                         "The symbol ::" #func " refers to the system function. " \
+                         "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+    _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+#endif /* _GL_CXXDEFS_H */
diff --git a/build-aux/snippet/unused-parameter.h b/build-aux/snippet/unused-parameter.h
new file mode 100644 (file)
index 0000000..f30ef47
--- /dev/null
@@ -0,0 +1,38 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A C macro for declaring that specific function parameters are not used.
+   Copyright (C) 2008-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/>.  */
+
+/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
+   declarations for parameters that are not used.  This helps to reduce
+   warnings, such as from GCC -Wunused-parameter.  The syntax is as follows:
+       type param _GL_UNUSED_PARAMETER
+   or more generally
+       param_decl _GL_UNUSED_PARAMETER
+   For example:
+       int param _GL_UNUSED_PARAMETER
+       int *(*param)(void) _GL_UNUSED_PARAMETER
+   Other possible, but obscure and discouraged syntaxes:
+       int _GL_UNUSED_PARAMETER *(*param)(void)
+       _GL_UNUSED_PARAMETER int *(*param)(void)
+ */
+#ifndef _GL_UNUSED_PARAMETER
+# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+#  define _GL_UNUSED_PARAMETER __attribute__ ((__unused__))
+# else
+#  define _GL_UNUSED_PARAMETER
+# endif
+#endif
diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h
new file mode 100644 (file)
index 0000000..e760dbc
--- /dev/null
@@ -0,0 +1,111 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A C macro for emitting warnings if a function is used.
+   Copyright (C) 2010-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/>.  */
+
+/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
+   for FUNCTION which will then trigger a compiler warning containing
+   the text of "literal string" anywhere that function is called, if
+   supported by the compiler.  If the compiler does not support this
+   feature, the macro expands to an unused extern declaration.
+
+   This macro is useful for marking a function as a potential
+   portability trap, with the intent that "literal string" include
+   instructions on the replacement function that should be used
+   instead.  However, one of the reasons that a function is a
+   portability trap is if it has the wrong signature.  Declaring
+   FUNCTION with a different signature in C is a compilation error, so
+   this macro must use the same type as any existing declaration so
+   that programs that avoid the problematic FUNCTION do not fail to
+   compile merely because they included a header that poisoned the
+   function.  But this implies that _GL_WARN_ON_USE is only safe to
+   use if FUNCTION is known to already have a declaration.  Use of
+   this macro implies that there must not be any other macro hiding
+   the declaration of FUNCTION; but undefining FUNCTION first is part
+   of the poisoning process anyway (although for symbols that are
+   provided only via a macro, the result is a compilation error rather
+   than a warning containing "literal string").  Also note that in
+   C++, it is only safe to use if FUNCTION has no overloads.
+
+   For an example, it is possible to poison 'getline' by:
+   - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
+     [getline]) in configure.ac, which potentially defines
+     HAVE_RAW_DECL_GETLINE
+   - adding this code to a header that wraps the system <stdio.h>:
+     #undef getline
+     #if HAVE_RAW_DECL_GETLINE
+     _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
+       "not universally present; use the gnulib module getline");
+     #endif
+
+   It is not possible to directly poison global variables.  But it is
+   possible to write a wrapper accessor function, and poison that
+   (less common usage, like &environ, will cause a compilation error
+   rather than issue the nice warning, but the end result of informing
+   the developer about their portability problem is still achieved):
+   #if HAVE_RAW_DECL_ENVIRON
+   static char ***rpl_environ (void) { return &environ; }
+   _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
+   # undef environ
+   # define environ (*rpl_environ ())
+   #endif
+   */
+#ifndef _GL_WARN_ON_USE
+
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
+#  define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function.  */
+#  define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function
+# else /* Unsupported.  */
+#  define _GL_WARN_ON_USE(function, message) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
+   is like _GL_WARN_ON_USE (function, "string"), except that the function is
+   declared with the given prototype, consisting of return type, parameters,
+   and attributes.
+   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
+   not work in this case.  */
+#ifndef _GL_WARN_ON_USE_CXX
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes \
+     __attribute__ ((__warning__ (msg)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function.  */
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes
+# else /* Unsupported.  */
+#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_EXTERN_C declaration;
+   performs the declaration with C linkage.  */
+#ifndef _GL_WARN_EXTERN_C
+# if defined __cplusplus
+#  define _GL_WARN_EXTERN_C extern "C"
+# else
+#  define _GL_WARN_EXTERN_C extern
+# endif
+#endif
index 7b943897de209b691a162dcc8cae3f37ca6a7d7e..3427d2ad0e3e9e0a7acf0d69a5c66d1423df5ce4 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2011-02-24.09}
+\def\texinfoversion{2013-06-23.10}
 %
 % 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 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013 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
 %
 % As a special exception, when this file is read by TeX when processing
 % a Texinfo source document, you may use the result without
-% restriction.  (This has been our intent since Texinfo was invented.)
+% restriction. This Exception is an additional permission under section 7
+% of the GNU General Public License, version 3 ("GPLv3").
 %
 % Please try the latest version of texinfo.tex before submitting bug
 % reports; you can get the latest version from:
-%   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
-%   ftp://tug.org/tex/texinfo.tex
-%     (and all CTAN mirrors, see http://www.ctan.org).
+%   http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
+%   http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
+%   http://www.gnu.org/software/texinfo/ (the Texinfo home page)
 % The texinfo.tex in any given distribution could well be out
 % of date, so if that's what you're using, please check.
 %
 % Set up fixed words for English if not already set.
 \ifx\putwordAppendix\undefined  \gdef\putwordAppendix{Appendix}\fi
 \ifx\putwordChapter\undefined   \gdef\putwordChapter{Chapter}\fi
+\ifx\putworderror\undefined     \gdef\putworderror{error}\fi
 \ifx\putwordfile\undefined      \gdef\putwordfile{file}\fi
 \ifx\putwordin\undefined        \gdef\putwordin{in}\fi
 \ifx\putwordIndexIsEmpty\undefined       \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
   \errorcontextlines16
 }%
 
+% @errormsg{MSG}.  Do the index-like expansions on MSG, but if things
+% aren't perfect, it's not the end of the world, being an error message,
+% after all.
+% 
+\def\errormsg{\begingroup \indexnofonts \doerrormsg}
+\def\doerrormsg#1{\errmessage{#1}}
+
 % add check for \lastpenalty to plain's definitions.  If the last thing
 % we did was a \nobreak, we don't want to insert more space.
 %
 \def\:{\spacefactor=1000 }
 
 % @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
+\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
 
 % @/ allows a line break.
 \let\/=\allowbreak
@@ -693,15 +702,6 @@ where each line of input produces a line of output.}
 
 \newdimen\mil  \mil=0.001in
 
-% Old definition--didn't work.
-%\parseargdef\need{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
 \parseargdef\need{%
   % Ensure vertical mode, so we don't make a big box in the middle of a
   % paragraph.
@@ -888,7 +888,7 @@ where each line of input produces a line of output.}
 \def\popthisfilestack{\errthisfilestackempty}
 \def\errthisfilestackempty{\errmessage{Internal error:
   the stack of filenames is empty.}}
-
+%
 \def\thisfile{}
 
 % @center line
@@ -896,36 +896,46 @@ where each line of input produces a line of output.}
 %
 \parseargdef\center{%
   \ifhmode
-    \let\next\centerH
+    \let\centersub\centerH
   \else
-    \let\next\centerV
+    \let\centersub\centerV
   \fi
-  \next{\hfil \ignorespaces#1\unskip \hfil}%
+  \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+  \let\centersub\relax % don't let the definition persist, just in case
 }
-\def\centerH#1{%
-  {%
-    \hfil\break
-    \advance\hsize by -\leftskip
-    \advance\hsize by -\rightskip
-    \line{#1}%
-    \break
-  }%
+\def\centerH#1{{%
+  \hfil\break
+  \advance\hsize by -\leftskip
+  \advance\hsize by -\rightskip
+  \line{#1}%
+  \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+  % The idea here is the same as in \startdefun, \cartouche, etc.: if
+  % @center is the first thing after a section heading, we need to wipe
+  % out the negative parskip inserted by \sectionheading, but still
+  % prevent a page break here.
+  \centerpenalty = \lastpenalty
+  \ifnum\centerpenalty>10000 \vskip\parskip \fi
+  \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+  \line{\kern\leftskip #1\kern\rightskip}%
 }
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
 
 % @sp n   outputs n lines of vertical space
-
+%
 \parseargdef\sp{\vskip #1\baselineskip}
 
 % @comment ...line which is ignored...
 % @c is the same as @comment
 % @ignore ... @end ignore  is another way to write a comment
-
+%
 \def\comment{\begingroup \catcode`\^^M=\other%
 \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
 \commentxxx}
 {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
 \let\c=\comment
 
 % @paragraphindent NCHARS
@@ -1098,50 +1108,24 @@ where each line of input produces a line of output.}
 % for display in the outlines, and in other places.  Thus, we have to
 % double any backslashes.  Otherwise, a name like "\node" will be
 % interpreted as a newline (\n), followed by o, d, e.  Not good.
-% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
-% (and related messages, the final outcome is that it is up to the TeX
-% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
-
-% double active backslashes.
-%
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslashdouble{%
-   @catcode`@\=@active
-   @let\=@doublebackslash}
-}
-
-% To handle parens, we must adopt a different approach, since parens are
-% not active characters.  hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens, with minor
-% changes for Texinfo.  It is included here under the GPL by permission
-% from the author, Heiko Oberdiek.
-%
-% #1 is the tokens to replace.
-% #2 is the replacement.
-% #3 is the control sequence with the string.
-%
-\def\HyPsdSubst#1#2#3{%
-  \def\HyPsdReplace##1#1##2\END{%
-    ##1%
-    \ifx\\##2\\%
-    \else
-      #2%
-      \HyReturnAfterFi{%
-        \HyPsdReplace##2\END
-      }%
-    \fi
-  }%
-  \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
-}
-\long\def\HyReturnAfterFi#1\fi{\fi#1}
-
-% #1 is a control sequence in which to do the replacements.
-\def\backslashparens#1{%
-  \xdef#1{#1}% redefine it as its expansion; the definition is simply
-             % \lastnode when called from \setref -> \pdfmkdest.
-  \HyPsdSubst{(}{\realbackslash(}{#1}%
-  \HyPsdSubst{)}{\realbackslash)}{#1}%
+% 
+% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+% related messages.  The final outcome is that it is up to the TeX user
+% to double the backslashes and otherwise make the string valid, so
+% that's what we do.  pdftex 1.30.0 (ca.2005) introduced a primitive to
+% do this reliably, so we use it.
+
+% #1 is a control sequence in which to do the replacements,
+% which we \xdef.
+\def\txiescapepdf#1{%
+  \ifx\pdfescapestring\thisisundefined
+    % No primitive available; should we give a warning or log?
+    % Many times it won't matter.
+  \else
+    % The expandable \pdfescapestring primitive escapes parentheses,
+    % backslashes, and other special chars.
+    \xdef#1{\pdfescapestring{#1}}%
+  \fi
 }
 
 \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
@@ -1200,32 +1184,34 @@ output) for that.)}
   %
   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
-    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
-    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
     %
-    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
-    % others).  Let's try in that order.
+    % pdftex (and the PDF format) support .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\pdfimgext=\empty
     \begingroup
-      \openin 1 #1.png \ifeof 1
-        \openin 1 #1.jpg \ifeof 1
-          \openin 1 #1.jpeg \ifeof 1
-            \openin 1 #1.JPG \ifeof 1
-              \openin 1 #1.pdf \ifeof 1
-                \openin 1 #1.PDF \ifeof 1
+      \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
                   \errhelp = \nopdfimagehelp
                   \errmessage{Could not find image file #1 for pdf}%
-                \else \gdef\pdfimgext{PDF}%
+                \else \gdef\pdfimgext{JPG}%
                 \fi
-              \else \gdef\pdfimgext{pdf}%
+              \else \gdef\pdfimgext{jpeg}%
               \fi
-            \else \gdef\pdfimgext{JPG}%
+            \else \gdef\pdfimgext{jpg}%
             \fi
-          \else \gdef\pdfimgext{jpeg}%
+          \else \gdef\pdfimgext{png}%
           \fi
-        \else \gdef\pdfimgext{jpg}%
+        \else \gdef\pdfimgext{PDF}%
         \fi
-      \else \gdef\pdfimgext{png}%
+      \else \gdef\pdfimgext{pdf}%
       \fi
       \closein 1
     \endgroup
@@ -1237,8 +1223,8 @@ output) for that.)}
     \else
       \immediate\pdfximage
     \fi
-      \ifdim \wd0 >0pt width \imagewidth \fi
-      \ifdim \wd2 >0pt height \imageheight \fi
+      \ifdim \wd0 >0pt width \pdfimagewidth \fi
+      \ifdim \wd2 >0pt height \pdfimageheight \fi
       \ifnum\pdftexversion<13
          #1.\pdfimgext
        \else
@@ -1253,10 +1239,9 @@ output) for that.)}
     % such as \, aren't expanded when present in a section title.
     \indexnofonts
     \turnoffactive
-    \activebackslashdouble
     \makevalueexpandable
     \def\pdfdestname{#1}%
-    \backslashparens\pdfdestname
+    \txiescapepdf\pdfdestname
     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
   }}
   %
@@ -1288,28 +1273,22 @@ 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.
-    \def\pdfoutlinedest{#3}%
+    \edef\pdfoutlinedest{#3}%
     \ifx\pdfoutlinedest\empty
       \def\pdfoutlinedest{#4}%
     \else
-      % Doubled backslashes in the name.
-      {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
-       \backslashparens\pdfoutlinedest}%
+      \txiescapepdf\pdfoutlinedest
     \fi
     %
-    % Also double the backslashes in the display string.
-    {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
-     \backslashparens\pdfoutlinetext}%
+    % Also escape PDF chars in the display string.
+    \edef\pdfoutlinetext{#1}%
+    \txiescapepdf\pdfoutlinetext
     %
     \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
   }
   %
   \def\pdfmakeoutlines{%
     \begingroup
-      % Thanh's hack / proper braces in bookmarks
-      \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
-      \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
-      %
       % Read toc silently, to get counts of subentries for \pdfoutline.
       \def\partentry##1##2##3##4{}% ignore parts in the outlines
       \def\numchapentry##1##2##3##4{%
@@ -1365,25 +1344,41 @@ output) for that.)}
       % Latin 2 (0xea) gets translated to a | character.  Info from
       % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
       %
-      % xx to do this right, we have to translate 8-bit characters to
-      % their "best" equivalent, based on the @documentencoding.  Right
-      % now, I guess we'll just let the pdf reader have its way.
+      % TODO this right, we have to translate 8-bit characters to
+      % their "best" equivalent, based on the @documentencoding.  Too
+      % much work for too little return.  Just use the ASCII equivalents
+      % we use for the index sort strings.
+      % 
       \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[}]%
+  ]
   %
   \def\skipspaces#1{\def\PP{#1}\def\D{|}%
     \ifx\PP\D\let\nextsp\relax
     \else\let\nextsp\skipspaces
-      \ifx\p\space\else\addtokens{\filename}{\PP}%
-        \advance\filenamelength by 1
-      \fi
+      \addtokens{\filename}{\PP}%
+      \advance\filenamelength by 1
     \fi
     \nextsp}
-  \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+  \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
+  }
   \ifnum\pdftexversion < 14
     \let \startlink \pdfannotlink
   \else
@@ -1480,9 +1475,6 @@ output) for that.)}
 \def\ttsl{\setfontstyle{ttsl}}
 
 
-% Default leading.
-\newdimen\textleading  \textleading = 13.2pt
-
 % Set the baselineskip to #1, and the lineskip and strut size
 % correspondingly.  There is no deep meaning behind these magic numbers
 % used as factors; they just match (closely enough) what Knuth defined.
@@ -1494,6 +1486,7 @@ output) for that.)}
 % can get a sort of poor man's double spacing by redefining this.
 \def\baselinefactor{1}
 %
+\newdimen\textleading
 \def\setleading#1{%
   \dimen0 = #1\relax
   \normalbaselineskip = \baselinefactor\dimen0
@@ -1766,18 +1759,24 @@ end
 \fi\fi
 
 
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
+% Set the font macro #1 to the font named \fontprefix#2.
 % #3 is the font's design size, #4 is a scale factor, #5 is the CMap
-% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
-% empty to omit).
+% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit).
+% Example:
+% #1 = \textrm
+% #2 = \rmshape
+% #3 = 10
+% #4 = \mainmagstep
+% #5 = OT1
+%
 \def\setfont#1#2#3#4#5{%
   \font#1=\fontprefix#2#3 scaled #4
   \csname cmap#5\endcsname#1%
 }
 % This is what gets called when #5 of \setfont is empty.
 \let\cmap\gobble
-% emacs-page end of cmaps
+%
+% (end of cmaps)
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -1787,7 +1786,7 @@ end
 \fi
 % Support font families that don't use the same naming scheme as CM.
 \def\rmshape{r}
-\def\rmbshape{bx}               %where the normal face is bold
+\def\rmbshape{bx}               % where the normal face is bold
 \def\bfshape{b}
 \def\bxshape{bx}
 \def\ttshape{tt}
@@ -1802,8 +1801,7 @@ end
 \def\scshape{csc}
 \def\scbshape{csc}
 
-% Definitions for a main text size of 11pt.  This is the default in
-% Texinfo.
+% Definitions for a main text size of 11pt.  (The default in Texinfo.)
 %
 \def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).
@@ -1928,7 +1926,7 @@ end
 \textleading = 13.2pt % line spacing for 11pt CM
 \textfonts            % reset the current fonts
 \rm
-} % end of 11pt text font size definitions
+} % end of 11pt text font size definitions, \definetextfontsizexi
 
 
 % Definitions to make the main text be 10pt Computer Modern, with
@@ -2060,7 +2058,7 @@ end
 \textleading = 12pt   % line spacing for 10pt CM
 \textfonts            % reset the current fonts
 \rm
-} % end of 10pt text font size definitions
+} % end of 10pt text font size definitions, \definetextfontsizex
 
 
 % We provide the user-level command
@@ -2275,8 +2273,6 @@ end
 
 \gdef\markupsetcodequoteleft{\let`\codequoteleft}
 \gdef\markupsetcodequoteright{\let'\codequoteright}
-
-\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
 }
 
 \let\markupsetuplqcode \markupsetcodequoteleft
@@ -2285,6 +2281,9 @@ end
 \let\markupsetuplqexample \markupsetcodequoteleft
 \let\markupsetuprqexample \markupsetcodequoteright
 %
+\let\markupsetuplqkbd     \markupsetcodequoteleft
+\let\markupsetuprqkbd     \markupsetcodequoteright
+%
 \let\markupsetuplqsamp \markupsetcodequoteleft
 \let\markupsetuprqsamp \markupsetcodequoteright
 %
@@ -2294,8 +2293,6 @@ end
 \let\markupsetuplqverbatim \markupsetcodequoteleft
 \let\markupsetuprqverbatim \markupsetcodequoteright
 
-\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-
 % Allow an option to not use regular directed right quote/apostrophe
 % (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
 % The undirected quote is ugly, so don't make it the default, but it
@@ -2381,19 +2378,26 @@ end
   \else\ifx\next-%
   \else\ifx\next.%
   \else\ptexslash
-  \fi\fi\fi}
+  \fi\fi\fi
+  \aftersmartic
+}
 
-% like \smartslanted except unconditionally uses \ttsl, and no ic.
-% @var is set to this for defun arguments.
+% Unconditional use \ttsl, and no ic.  @var is set to this for defuns.
 \def\ttslanted#1{{\ttsl #1}}
 
 % @cite is like \smartslanted except unconditionally use \sl.  We never want
 % ttsl for book titles, do we?
 \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
 
+\def\aftersmartic{}
+\def\var#1{%
+  \let\saveaftersmartic = \aftersmartic
+  \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+  \smartslanted{#1}%
+}
+
 \let\i=\smartitalic
 \let\slanted=\smartslanted
-\def\var#1{\smartslanted{#1}}
 \let\dfn=\smartslanted
 \let\emph=\smartitalic
 
@@ -2443,34 +2447,12 @@ end
 % @samp.
 \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
 
-% definition of @key that produces a lozenge.  Doesn't adjust to text size.
-%\setfont\keyrm\rmshape{8}{1000}{OT1}
-%\font\keysy=cmsy9
-%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-%    \vbox{\hrule\kern-0.4pt
-%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-%    \kern-0.4pt\hrule}%
-%  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% @indicateurl is \samp, that is, with quotes.
+\let\indicateurl=\samp
 
-% definition of @key with no lozenge.  If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle.  But
-% if it isn't monospace, then use \tt.
-%
-\def\key#1{{\setupmarkupstyle{key}%
-  \nohyphenation
-  \ifmonospace\else\tt\fi
-  #1}\null}
-
-% ctrl is no longer a Texinfo command.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
+% @code (and similar) prints in typewriter, but with spaces the same
+% size as normal in the surrounding text, without hyphenation, etc.
+% This is a subroutine for that.
 \def\tclose#1{%
   {%
     % Change normal interword space to be same as for the current font.
@@ -2489,18 +2471,18 @@ end
     \plainfrenchspacing
     #1%
   }%
-  \null
+  \null % reset spacefactor to 1000
 }
 
 % 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
@@ -2514,17 +2496,36 @@ end
      \let-\codedash
      \let_\codeunder
     \else
-     \let-\realdash
+     \let-\normaldash
      \let_\realunder
     \fi
+    % Given -foo (with a single dash), we do not want to allow a break
+    % after the hyphen.
+    \global\let\codedashprev=\codedash
+    %
     \codex
   }
+  %
+  \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
+    \global\let\codedashprev=\next
+  }
 }
-
+\def\normaldash{-}
+%
 \def\codex #1{\tclose{#1}\endgroup}
 
-\def\realdash{-}
-\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.)
@@ -2538,9 +2539,9 @@ end
 }
 
 % An additional complication: the above will allow breaks after, e.g.,
-% each of the four underscores in __typeof__.  This is undesirable in
-% some manuals, especially if they don't have long identifiers in
-% general.  @allowcodebreaks provides a way to control this.
+% each of the four underscores in __typeof__.  This is bad.
+% @allowcodebreaks provides a document-level way to turn breaking at -
+% and _ on and off.
 %
 \newif\ifallowcodebreaks  \allowcodebreakstrue
 
@@ -2559,6 +2560,13 @@ end
   \fi\fi
 }
 
+% For @command, @env, @file, @option quotes seem unnecessary,
+% so use \code rather than \samp.
+\let\command=\code
+\let\env=\code
+\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
@@ -2705,10 +2713,6 @@ end
   \let\email=\uref
 \fi
 
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
-
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
 %   `example' (@kbd uses ttsl only inside of @example and friends),
 %   or `code' (@kbd uses normal tty font always).
@@ -2732,16 +2736,36 @@ end
 % Default is `distinct'.
 \kbdinputstyle distinct
 
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
+
 \def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
+\def\kbdsub#1#2#3\par{%
+  \def\one{#1}\def\three{#3}\def\threex{??}%
+  \ifx\one\xkey\ifx\threex\three \key{#2}%
+  \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+  \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+}
 
-% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
-\let\indicateurl=\code
-\let\env=\code
-\let\command=\code
+% definition of @key that produces a lozenge.  Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+%    \vbox{\hrule\kern-0.4pt
+%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+%    \kern-0.4pt\hrule}%
+%  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge.  If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle.  But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}%
+  \nohyphenation
+  \ifmonospace\else\tt\fi
+  #1}\null}
 
 % @clicksequence{File @click{} Open ...}
 \def\clicksequence#1{\begingroup #1\endgroup}
@@ -2771,6 +2795,7 @@ end
   \ifx\temp\empty \else
     \space ({\unsepspaces \ignorespaces \temp \unskip})%
   \fi
+  \null % reset \spacefactor=1000
 }
 
 % @abbr for "Comput. J." and the like.
@@ -2783,6 +2808,7 @@ end
   \ifx\temp\empty \else
     \space ({\unsepspaces \ignorespaces \temp \unskip})%
   \fi
+  \null % reset \spacefactor=1000
 }
 
 % @asis just yields its argument.  Used with @table, for example.
@@ -2847,20 +2873,51 @@ end
   }
 }
 
+% ctrl is no longer a Texinfo command, but leave this definition for fun.
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+% except specified as a normal braced arg, so no newlines to worry about.
+% 
+\def\outfmtnametex{tex}
+%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
+  \def\inlinefmtname{#1}%
+  \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\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
+% ignored.  But this isn't important because if people want a literal
+% *right* brace they would have to use a command anyway, so they may as
+% well use a command to get a left brace too.  We could re-use the
+% delimiter character idea from \verb, but it seems like overkill.
+% 
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\def\doinlinerawtwo#1,#2,\finish{%
+  \def\inlinerawname{#1}%
+  \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
+  \endgroup % close group opened by \tex.
+}
+
 
 \message{glyphs,}
 % and logos.
 
-% @@ prints an @.
+% @@ prints an @, as does @atchar{}.
 \def\@{\char64 }
+\let\atchar=\@
 
-% Used to generate quoted braces.  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.
+% @{ @} @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\}=\myrbrace
+\let\{=\mylbrace \let\lbracechar=\{
+\let\}=\myrbrace \let\rbracechar=\}
 \begingroup
   % Definitions to produce \{ and \} commands for indices,
   % and @{ and @} for the aux/toc files.
@@ -2988,7 +3045,7 @@ end
 {\tentt \global\dimen0 = 3em}% Width of the box.
 \dimen2 = .55pt % Thickness of rules
 % The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt}
 %
 \setbox\errorbox=\hbox to \dimen0{\hfil
    \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -3109,12 +3166,17 @@ end
   % hopefully nobody will notice/care.
   \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
-  \ifx\curfontstyle\bfstylename
-    % bold:
-    \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+  \ifmonospace
+    % typewriter:
+    \font\thisecfont = ectt\ecsize \space at \nominalsize
   \else
-    % regular:
-    \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+    \ifx\curfontstyle\bfstylename
+      % bold:
+      \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+    \else
+      % regular:
+      \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+    \fi
   \fi
   \thisecfont
 }
@@ -3227,14 +3289,28 @@ end
   \finishedtitlepagetrue
 }
 
-%%% Macros to be used within @titlepage:
+% Settings used for typesetting titles: no hyphenation, no indentation,
+% don't worry much about spacing, ragged right.  This should be used
+% inside a \vbox, and fonts need to be set appropriately first.  Because
+% it is always used for titles, nothing else, we call \rmisbold.  \par
+% should be specified before the end of the \vbox, since a vbox is a group.
+% 
+\def\raggedtitlesettings{%
+  \rmisbold
+  \hyphenpenalty=10000
+  \parindent=0pt
+  \tolerance=5000
+  \ptexraggedright
+}
+
+% Macros to be used within @titlepage:
 
 \let\subtitlerm=\tenrm
 \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
 
 \parseargdef\title{%
   \checkenv\titlepage
-  \leftline{\titlefonts\rmisbold #1}
+  \vbox{\titlefonts \raggedtitlesettings #1\par}%
   % print a rule at the page bottom also.
   \finishedtitlepagefalse
   \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -3260,7 +3336,7 @@ end
 }
 
 
-%%% Set up page headings and footings.
+% Set up page headings and footings.
 
 \let\thispage=\folio
 
@@ -3959,18 +4035,18 @@ end
 \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
 \global\advance\multitablelinespace by-\ht0
 \fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%%        If so, set to same dimension as multitablelinespace.
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+%        If so, set to same dimension as multitablelinespace.
 \ifdim\multitableparskip>\multitablelinespace
 \global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+                                      % than skip between lines in the table.
 \fi%
 \ifdim\multitableparskip=0pt
 \global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
-                                      %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+                                      % than skip between lines in the table.
 \fi}
 
 
@@ -4131,7 +4207,7 @@ end
     % ..., but we might end up with active ones in the argument if
     % we're called from @code, as @code{@value{foo-bar_}}, though.
     % So \let them to their normal equivalents.
-    \let-\realdash \let_\normalunderscore
+    \let-\normaldash \let_\normalunderscore
   }
 }
 
@@ -4154,8 +4230,9 @@ end
 
 % @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}}}
@@ -4171,7 +4248,7 @@ end
 }
 \def\ifsetfail{\doignore{ifset}}
 
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% @ifclear VAR ... @end executes the `...' iff VAR has never been
 % defined with @set, or has been undefined with @clear.
 %
 % The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4182,6 +4259,35 @@ end
 \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
 \def\ifclearfail{\doignore{ifclear}}
 
+% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
+% without the @) is in fact defined.  We can only feasibly check at the
+% TeX level, so something like `mathcode' is going to considered
+% defined even though it is not a Texinfo command.
+% 
+\makecond{ifcommanddefined}
+\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
+%
+\def\doifcmddefined#1#2{{%
+    \makevalueexpandable
+    \let\next=\empty
+    \expandafter\ifx\csname #2\endcsname\relax
+      #1% If not defined, \let\next as above.
+    \fi
+    \expandafter
+  }\next
+}
+\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
+
+% @ifcommandnotdefined CMD ... handled similar to @ifclear above.
+\makecond{ifcommandnotdefined}
+\def\ifcommandnotdefined{%
+  \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
+\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
+
+% Set the `txicommandconditionals' variable, so documents have a way to
+% test if the @ifcommand...defined conditionals are available.
+\set txicommandconditionals
+
 % @dircategory CATEGORY  -- specify a category of the dir file
 % which this file should belong to.  Ignore this in TeX.
 \let\dircategory=\comment
@@ -4418,6 +4524,7 @@ end
   \definedummyword\guillemetright
   \definedummyword\guilsinglleft
   \definedummyword\guilsinglright
+  \definedummyword\lbracechar
   \definedummyword\leq
   \definedummyword\minus
   \definedummyword\ogonek
@@ -4430,6 +4537,7 @@ end
   \definedummyword\quoteleft
   \definedummyword\quoteright
   \definedummyword\quotesinglbase
+  \definedummyword\rbracechar
   \definedummyword\result
   \definedummyword\textdegree
   %
@@ -4481,7 +4589,9 @@ end
   \definedummyword\t
   %
   % Commands that take arguments.
+  \definedummyword\abbr
   \definedummyword\acronym
+  \definedummyword\anchor
   \definedummyword\cite
   \definedummyword\code
   \definedummyword\command
@@ -4491,7 +4601,9 @@ end
   \definedummyword\emph
   \definedummyword\env
   \definedummyword\file
+  \definedummyword\image
   \definedummyword\indicateurl
+  \definedummyword\inforef
   \definedummyword\kbd
   \definedummyword\key
   \definedummyword\math
@@ -4538,7 +4650,10 @@ end
   % 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}%
   %
   % Non-English letters.
   \def\AA{AA}%
@@ -4714,10 +4829,9 @@ end
 %
 % ..., ready, GO:
 %
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
   #1%
-\else
+ \else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
   \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
@@ -4741,7 +4855,6 @@ end
     % to re-insert the same penalty (values >10000 are used for various
     % signals); since we just inserted a non-discardable item, any
     % following glue (such as a \parskip) would be a breakpoint.  For example:
-    %
     %   @deffn deffn-whatever
     %   @vindex index-whatever
     %   Description.
@@ -4754,8 +4867,7 @@ end
     % (the whatsit from the \write), so we must insert a \nobreak.
     \nobreak\vskip\whatsitskip
   \fi
-\fi
-}
+\fi}
 
 % The index entry written in the file actually looks like
 %  \entry {sortstring}{page}{topic}
@@ -5502,14 +5614,6 @@ end
 
 % Define @majorheading, @heading and @subheading
 
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
 \def\majorheading{%
   {\advance\chapheadingskip by 10pt \chapbreak }%
   \parsearg\chapheadingzzz
@@ -5517,10 +5621,8 @@ end
 
 \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
 \def\chapheadingzzz#1{%
-  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                    \parindent=0pt\ptexraggedright
-                    \rmisbold #1\hfill}}%
-  \bigskip \par\penalty 200\relax
+  \vbox{\chapfonts \raggedtitlesettings #1\par}%
+  \nobreak\bigskip \nobreak
   \suppressfirstparagraphindent
 }
 
@@ -5536,14 +5638,13 @@ end
 % (including whitespace, linebreaking, etc. around it),
 % given all the information in convenient, parsed form.
 
-%%% Args are the skip and penalty (usually negative)
+% Args are the skip and penalty (usually negative)
 \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
 
-%%% Define plain chapter starts, and page on/off switching for it
 % Parameter controlling skip before chapter headings (if needed)
-
 \newskip\chapheadingskip
 
+% Define plain chapter starts, and page on/off switching for it.
 \def\chapbreak{\dobreak \chapheadingskip {-4000}}
 \def\chappager{\par\vfill\supereject}
 % Because \domark is called before \chapoddpage, the filler page will
@@ -5680,8 +5781,7 @@ end
     %
     % Typeset the actual heading.
     \nobreak % Avoid page breaks at the interline glue.
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
-          \hangindent=\wd0 \centerparametersmaybe
+    \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
           \unhbox0 #1\par}%
   }%
   \nobreak\bigskip % no page break after a chapter title
@@ -5703,18 +5803,18 @@ end
 \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
 %
 \def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\ptexraggedright
-                       \rmisbold #1\hfill}}\bigskip \par\nobreak
+  \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 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+  \chapoddpage
+  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
+  \nobreak\bigskip \nobreak
 }
 \def\CHAPFopen{%
   \global\let\chapmacro=\chfopen
@@ -5859,15 +5959,15 @@ end
   %
   % We'll almost certainly start a paragraph next, so don't let that
   % glue accumulate.  (Not a breakpoint because it's preceded by a
-  % discardable item.)
+  % discardable item.)  However, when a paragraph is not started next
+  % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+  % or the negative glue will cause weirdly wrong output, typically
+  % obscuring the section heading with something else.
   \vskip-\parskip
   %
-  % This is purely so the last item on the list is a known \penalty >
-  % 10000.  This is so \startdefun can avoid allowing breakpoints after
-  % section headings.  Otherwise, it would insert a valid breakpoint between:
-  %
-  %   @section sec-whatever
-  %   @deffn def-whatever
+  % This is so the last item on the main vertical list is a known
+  % \penalty > 10000, so \startdefun, etc., can recognize the situation
+  % and do the needful.
   \penalty 10001
 }
 
@@ -6283,6 +6383,12 @@ end
   \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
       \baselineskip=0pt\parskip=0pt\lineskip=0pt
       \carttop
@@ -6296,7 +6402,7 @@ end
              \lineskip=\normlskip
              \parskip=\normpskip
              \vskip -\parskip
-             \comment % For explanation, see the end of \def\group.
+             \comment % For explanation, see the end of def\group.
 }
 \def\Ecartouche{%
               \ifhmode\par\fi
@@ -6316,7 +6422,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
@@ -6474,16 +6580,9 @@ end
 \makedispenvdef{quotation}{\quotationstart}
 %
 \def\quotationstart{%
-  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
-  \parindent=0pt
-  %
-  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+  \indentedblockstart % same as \indentedblock, but increase right margin too.
   \ifx\nonarrowing\relax
-    \advance\leftskip by \lispnarrowing
     \advance\rightskip by \lispnarrowing
-    \exdentamount = \lispnarrowing
-  \else
-    \let\nonarrowing = \relax
   \fi
   \parsearg\quotationlabel
 }
@@ -6509,6 +6608,32 @@ end
   \fi
 }
 
+% @indentedblock is like @quotation, but indents only on the left and
+% has no optional argument.
+% 
+\makedispenvdef{indentedblock}{\indentedblockstart}
+%
+\def\indentedblockstart{%
+  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+  \parindent=0pt
+  %
+  % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+  \ifx\nonarrowing\relax
+    \advance\leftskip by \lispnarrowing
+    \exdentamount = \lispnarrowing
+  \else
+    \let\nonarrowing = \relax
+  \fi
+}
+
+% Keep a nonzero parskip for the environment, since we're doing normal filling.
+%
+\def\Eindentedblock{%
+  \par
+  {\parskip=0pt \afterenvbreak}%
+}
+\def\Esmallindentedblock{\Eindentedblock}
+
 
 % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
 % If we want to allow any <char> as delimiter,
@@ -6702,7 +6827,7 @@ end
     % commands also insert a nobreak penalty, and we don't want to allow
     % a break between a section heading and a defun.
     %
-    % As a minor refinement, we avoid "club" headers by signalling
+    % As a further refinement, we avoid "club" headers by signalling
     % with penalty of 10003 after the very first @deffn in the
     % sequence (see above), and penalty of 10002 after any following
     % @def command.
@@ -6769,13 +6894,36 @@ end
 \def\domakedefun#1#2#3{%
   \envdef#1{%
     \startdefun
+    \doingtypefnfalse    % distinguish typed functions from all else
     \parseargusing\activeparens{\printdefunline#3}%
   }%
   \def#2{\dodefunx#1}%
   \def#3%
 }
 
-%%% Untyped functions:
+\newif\ifdoingtypefn       % doing typed function?
+\newif\ifrettypeownline    % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line.  This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+% 
+\parseargdef\deftypefnnewline{%
+  \def\temp{#1}%
+  \ifx\temp\onword
+    \expandafter\let\csname SETtxideftypefnnl\endcsname
+      = \empty
+  \else\ifx\temp\offword
+    \expandafter\let\csname SETtxideftypefnnl\endcsname
+      = \relax
+  \else
+    \errhelp = \EMsimple
+    \errmessage{Unknown @txideftypefnnl value `\temp',
+                must be on|off}%
+  \fi\fi
+}
+
+% Untyped functions:
 
 % @deffn category name args
 \makedefun{deffn}{\deffngeneral{}}
@@ -6794,7 +6942,7 @@ end
   \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
 }
 
-%%% Typed functions:
+% Typed functions:
 
 % @deftypefn category type name args
 \makedefun{deftypefn}{\deftypefngeneral{}}
@@ -6809,10 +6957,11 @@ end
 %
 \def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
   \dosubind{fn}{\code{#4}}{#1}%
+  \doingtypefntrue
   \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
 }
 
-%%% Typed variables:
+% Typed variables:
 
 % @deftypevr category type var args
 \makedefun{deftypevr}{\deftypecvgeneral{}}
@@ -6830,7 +6979,7 @@ end
   \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
 }
 
-%%% Untyped variables:
+% Untyped variables:
 
 % @defvr category var args
 \makedefun{defvr}#1 {\deftypevrheader{#1} {} }
@@ -6841,7 +6990,8 @@ end
 % \defcvof {category of}class var args
 \def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
 
-%%% Type:
+% Types:
+
 % @deftp category name args
 \makedefun{deftp}#1 #2 #3\endheader{%
   \doind{tp}{\code{#2}}%
@@ -6869,25 +7019,49 @@ end
 % We are followed by (but not passed) the arguments, if any.
 %
 \def\defname#1#2#3{%
+  \par
   % Get the values of \leftskip and \rightskip as they were outside the @def...
   \advance\leftskip by -\defbodyindent
   %
-  % How we'll format the type name.  Putting it in brackets helps
+  % Determine if we are typesetting the return type of a typed function
+  % on a line by itself.
+  \rettypeownlinefalse
+  \ifdoingtypefn  % doing a typed function specifically?
+    % then check user option for putting return type on its own line:
+    \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+      \rettypeownlinetrue
+    \fi
+  \fi
+  %
+  % How we'll format the category name.  Putting it in brackets helps
   % distinguish it from the body text that may end up on the next line
   % just below it.
   \def\temp{#1}%
   \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
   %
-  % Figure out line sizes for the paragraph shape.
+  % Figure out line sizes for the paragraph shape.  We'll always have at
+  % least two.
+  \tempnum = 2
+  %
   % The first line needs space for \box0; but if \rightskip is nonzero,
   % we need only space for the part of \box0 which exceeds it:
   \dimen0=\hsize  \advance\dimen0 by -\wd0  \advance\dimen0 by \rightskip
+  %
+  % If doing a return type on its own line, we'll have another line.
+  \ifrettypeownline
+    \advance\tempnum by 1
+    \def\maybeshapeline{0in \hsize}%
+  \else
+    \def\maybeshapeline{}%
+  \fi
+  %
   % The continuations:
   \dimen2=\hsize  \advance\dimen2 by -\defargsindent
-  % (plain.tex says that \dimen1 should be used only as global.)
-  \parshape 2 0in \dimen0 \defargsindent \dimen2
   %
-  % Put the type name to the right margin.
+  % The final paragraph shape:
+  \parshape \tempnum  0in \dimen0  \maybeshapeline  \defargsindent \dimen2
+  %
+  % Put the category name at the right margin.
   \noindent
   \hbox to 0pt{%
     \hfil\box0 \kern-\hsize
@@ -6909,8 +7083,16 @@ end
     % . this still does not fix the ?` and !` ligatures, but so far no
     %   one has made identifiers using them :).
     \df \tt
-    \def\temp{#2}% return value type
-    \ifx\temp\empty\else \tclose{\temp} \fi
+    \def\temp{#2}% text of the return type
+    \ifx\temp\empty\else
+      \tclose{\temp}% typeset the return type
+      \ifrettypeownline
+        % put return type on its own line; prohibit line break following:
+        \hfil\vadjust{\nobreak}\break  
+      \else
+        \space  % type on same line, so just followed by a space
+      \fi
+    \fi           % no return type
     #3% output function name
   }%
   {\rm\enskip}% hskip 0.5 em of \tenrm
@@ -6930,7 +7112,10 @@ end
   \df \sl \hyphenchar\font=0
   %
   % On the other hand, if an argument has two dashes (for instance), we
-  % want a way to get ttsl.  Let's try @var for that.
+  % want a way to get ttsl.  We used to recommend @var for that, so
+  % leave the code in, but it's strange for @var to lead to typewriter.
+  % Nowadays we recommend @code, since the difference between a ttsl hyphen
+  % and a tt hyphen is pretty tiny.  @code also disables ?` !`.
   \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
   #1%
   \sl\hyphenchar\font=45
@@ -7053,12 +7238,14 @@ end
   % ... and for \example:
   \spaceisspace
   %
-  % 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.  See the Macro Details node in the manual for the
-  % workaround we currently have to recommend for macros and
+  % 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}
 
@@ -7193,9 +7380,15 @@ end
 \def\macroxxx#1{%
   \getargs{#1}% now \macname is the macname and \argl the arglist
   \ifx\argl\empty       % no arguments
-     \paramno=0
+     \paramno=0\relax
   \else
      \expandafter\parsemargdef \argl;%
+     \if\paramno>256\relax
+       \ifx\eTeXversion\thisisundefined
+         \errhelp = \EMsimple
+         \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
+       \fi
+     \fi
   \fi
   \if1\csname ismacro.\the\macname\endcsname
      \message{Warning: redefining \the\macname}%
@@ -7245,9 +7438,17 @@ end
 \def\getmacname#1 #2\relax{\macname={#1}}
 \def\getmacargs#1{\def\argl{#1}}
 
+% 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 be ##N where N is the position in that list.
+% 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
+% 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.
@@ -7257,12 +7458,33 @@ end
 %
 % 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 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
   \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
+  \fi
 }
 \def\parsemargdefxxx#1,{%
   \if#1;\let\next=\relax
@@ -7273,16 +7495,205 @@ end
     \edef\paramlist{\paramlist\hash\the\paramno,}%
   \fi\next}
 
+\def\parsemmanyargdef@@#1,{%
+  \if#1;\let\next=\relax
+  \else 
+    \let\next=\parsemmanyargdef@@
+    \edef\tempb{\eatspaces{#1}}%
+    \expandafter\def\expandafter\tempa
+       \expandafter{\csname macarg.\tempb\endcsname}%
+    % Note that we need some extra \noexpand\noexpand, this is because we
+    % don't want \the  to be expanded in the \parsermacbody  as it uses an
+    % \xdef .
+    \expandafter\edef\tempa
+      {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
+    \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
+\def\nilm@{\nil@}%
+\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
+% macarg.ARGNAME
+%
+% #1 is the macro name
+% #2 is the list of argument names
+% #3 is the list of argument values
+\def\getargvals@#1#2#3{%
+  \def\macargdeflist@{}%
+  \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
+  \def\paramlist{#2,\nil@}%
+  \def\macroname{#1}%
+  \begingroup
+  \macroargctxt
+  \def\argvaluelist{#3,\nil@}%
+  \def\@tempa{#3}%
+  \ifx\@tempa\empty
+    \setemptyargvalues@
+  \else
+    \getargvals@@
+  \fi
+}
 
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
+% 
+\def\getargvals@@{%
+  \ifx\paramlist\nilm@
+      % Some sanity check needed here that \argvaluelist is also empty.
+      \ifx\argvaluelist\nillm@
+      \else
+        \errhelp = \EMsimple
+        \errmessage{Too many arguments in macro `\macroname'!}%
+      \fi
+      \let\next\macargexpandinbody@
+  \else
+    \ifx\argvaluelist\nillm@
+       % No more arguments values passed to macro.  Set remaining named-arg
+       % macros to empty.
+       \let\next\setemptyargvalues@
+    \else
+      % pop current arg name into \@tempb
+      \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
+      \expandafter\@tempa\expandafter{\paramlist}%
+       % pop current argument value into \@tempc
+      \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
+      \expandafter\@tempa\expandafter{\argvaluelist}%
+       % Here \@tempb is the current arg name and \@tempc is the current arg value.
+       % First place the new argument macro definition into \@tempd
+       \expandafter\macname\expandafter{\@tempc}%
+       \expandafter\let\csname macarg.\@tempb\endcsname\relax
+       \expandafter\def\expandafter\@tempe\expandafter{%
+         \csname macarg.\@tempb\endcsname}%
+       \edef\@tempd{\long\def\@tempe{\the\macname}}%
+       \push@\@tempd\macargdeflist@
+       \let\next\getargvals@@
+    \fi
+  \fi
+  \next
+}
+
+\def\push@#1#2{%
+  \expandafter\expandafter\expandafter\def
+  \expandafter\expandafter\expandafter#2%
+  \expandafter\expandafter\expandafter{%
+  \expandafter#1#2}%
+}
+
+% Replace arguments by their values in the macro body, and place the result
+% 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
+  % values into respective token registers.
+  %
+  % First we save the token context, and initialize argument numbering.
+  \begingroup
+    \paramno0\relax
+    % Then, for each argument number #N, we place the corresponding argument
+    % value into a new token list register \toks#N
+    \expandafter\putargsintokens@\saveparamlist@,;,%
+    % Then, we expand the body so that argument are replaced by their
+    % values. The trick for values not to be expanded themselves is that they
+    % are within tokens and that tokens expand only once in an \edef .
+    \edef\@tempc{\csname mac.\macroname .body\endcsname}%
+    % Now we restore the token stack pointer to free the token list registers
+    % which we have used, but we make sure that expanded body is saved after
+    % group.
+    \expandafter
+  \endgroup
+  \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+  }
+
+\def\macargexpandinbody@{% 
+  %% Define the named-macro outside of this group and then close this group. 
+  \expandafter
+  \endgroup
+  \macargdeflist@
+  % First the replace in body the macro arguments by their values, the result
+  % is in \@tempa .
+  \macvalstoargs@
+  % Then we point at the \norecurse or \gobble (for recursive) macro value
+  % with \@tempb .
+  \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
+  % Depending on whether it is recursive or not, we need some tailing
+  % \egroup .
+  \ifx\@tempb\gobble
+     \let\@tempc\relax
+  \else
+     \let\@tempc\egroup
+  \fi
+  % And now we do the real job:
+  \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
+  \@tempd
+}
+
+\def\putargsintokens@#1,{%
+  \if#1;\let\next\relax
+  \else
+    \let\next\putargsintokens@
+    % First we allocate the new token list register, and give it a temporary
+    % alias \@tempb .
+    \toksdef\@tempb\the\paramno
+    % Then we place the argument value into that token list register.
+    \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
+    \expandafter\@tempb\expandafter{\@tempa}%
+    \advance\paramno by 1\relax
+  \fi
+  \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
+\def\setemptyargvalues@{%
+  \ifx\paramlist\nilm@
+    \let\next\macargexpandinbody@
+  \else
+    \expandafter\setemptyargvaluesparser@\paramlist\endargs@
+    \let\next\setemptyargvalues@
+  \fi
+  \next
+}
+
+\def\setemptyargvaluesparser@#1,#2\endargs@{%
+  \expandafter\def\expandafter\@tempa\expandafter{%
+    \expandafter\def\csname macarg.#1\endcsname{}}%
+  \push@\@tempa\macargdeflist@
+  \def\paramlist{#2}%
+}
+
+% #1 is the element target macro
+% #2 is the list macro
+% #3,#4\endargs@ is the list value
+\def\pop@#1#2#3,#4\endargs@{%
+   \def#1{#3}%
+   \def#2{#4}%
+}
+\long\def\longpop@#1#2#3,#4\endargs@{%
+   \long\def#1{#3}%
+   \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.
 % \xdef is used so that macro definitions will survive the file
 % they're defined in; @include reads the file inside a group.
@@ -7301,17 +7712,25 @@ end
          \expandafter\noexpand\csname\the\macname xxx\endcsname}%
       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
          \egroup\noexpand\scanmacro{\temp}}%
-    \else % many
-      \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
+      \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
   \else
     \ifcase\paramno
@@ -7328,23 +7747,33 @@ end
         \egroup
         \noexpand\norecurse{\the\macname}%
         \noexpand\scanmacro{\temp}\egroup}%
-    \else % many
-      \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 % 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
     \fi
   \fi}
 
+\catcode `\@\texiatcatcode\relax
+
 \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
 
 % \braceorline decides whether the next nonwhitespace character is a
@@ -7470,7 +7899,7 @@ end
   \fi\fi
 }
 
-
+% \f
 % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
 % the node name, #2 the name of the Info cross-reference, #3 the printed
 % node name, #4 the name of the Info file, #5 the name of the printed
@@ -7479,26 +7908,41 @@ end
 \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
 \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
 \def\ref#1{\xrefX[#1,,,,,,,]}
+%
+\newbox\toprefbox
+\newbox\printedrefnamebox
+\newbox\infofilenamebox
+\newbox\printedmanualbox
+%
 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
   \unsepspaces
-  \def\printedmanual{\ignorespaces #5}%
+  %
+  % Get args without leading/trailing spaces.
   \def\printedrefname{\ignorespaces #3}%
-  \setbox1=\hbox{\printedmanual\unskip}%
-  \setbox0=\hbox{\printedrefname\unskip}%
-  \ifdim \wd0 = 0pt
+  \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
+  %
+  \def\infofilename{\ignorespaces #4}%
+  \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
+  %
+  \def\printedmanual{\ignorespaces #5}%
+  \setbox\printedmanualbox  = \hbox{\printedmanual\unskip}%
+  %
+  % If the printed reference name (arg #3) was not explicitly given in
+  % the @xref, figure out what we want to use.
+  \ifdim \wd\printedrefnamebox = 0pt
     % No printed node name was explicitly given.
     \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
-      % Use the node name inside the square brackets.
+      % Not auto section-title: use node name inside the square brackets.
       \def\printedrefname{\ignorespaces #1}%
     \else
-      % Use the actual chapter/section title appear inside
-      % the square brackets.  Use the real section title if we have it.
-      \ifdim \wd1 > 0pt
-        % It is in another manual, so we don't have it.
+      % Auto section-title: use chapter/section title inside
+      % the square brackets if we have it.
+      \ifdim \wd\printedmanualbox > 0pt
+        % It is in another manual, so we don't have it; use node name.
         \def\printedrefname{\ignorespaces #1}%
       \else
         \ifhavexrefs
-          % We know the real title if we have the xref values.
+          % We (should) know the real title if we have the xref values.
           \def\printedrefname{\refx{#1-title}{}}%
         \else
           % Otherwise just copy the Info node name.
@@ -7512,13 +7956,20 @@ end
   \ifpdf
     {\indexnofonts
      \turnoffactive
+     \makevalueexpandable
      % This expands tokens, so do it after making catcode changes, so _
-     % etc. don't get their TeX definitions.
+     % etc. don't get their TeX definitions.  This ignores all spaces in
+     % #4, including (wrongly) those in the middle of the filename.
      \getfilename{#4}%
      %
-     % See comments at \activebackslashdouble.
-     {\activebackslashdouble \xdef\pdfxrefdest{#1}%
-      \backslashparens\pdfxrefdest}%
+     % This (wrongly) does not take account of leading or trailing
+     % spaces in #1, which should be ignored.
+     \edef\pdfxrefdest{#1}%
+     \ifx\pdfxrefdest\empty
+       \def\pdfxrefdest{Top}% no empty targets
+     \else
+       \txiescapepdf\pdfxrefdest  % escape PDF special chars
+     \fi
      %
      \leavevmode
      \startlink attr{/Border [0 0 0]}%
@@ -7545,29 +7996,42 @@ end
   \iffloat\Xthisreftitle
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
-    \ifdim\wd0 = 0pt
+    \ifdim\wd\printedrefnamebox = 0pt
       \refx{#1-snt}{}%
     \else
       \printedrefname
     \fi
     %
-    % if the user also gave the printed manual name (fifth arg), append
+    % If the user also gave the printed manual name (fifth arg), append
     % "in MANUALNAME".
-    \ifdim \wd1 > 0pt
+    \ifdim \wd\printedmanualbox > 0pt
       \space \putwordin{} \cite{\printedmanual}%
     \fi
   \else
     % node/anchor (non-float) references.
+    % 
+    % If we use \unhbox to print the node names, TeX does not insert
+    % empty discretionaries after hyphens, which means that it will not
+    % find a line break at a hyphen in a node names.  Since some manuals
+    % are best written with fairly long node names, containing hyphens,
+    % this is a loss.  Therefore, we give the text of the node name
+    % again, so it is as if TeX is seeing it for the first time.
+    % 
+    \ifdim \wd\printedmanualbox > 0pt
+      % Cross-manual reference with a printed manual name.
+      % 
+      \crossmanualxref{\cite{\printedmanual\unskip}}%
+    %
+    \else\ifdim \wd\infofilenamebox > 0pt
+      % Cross-manual reference with only an info filename (arg 4), no
+      % printed manual name (arg 5).  This is essentially the same as
+      % the case above; we output the filename, since we have nothing else.
+      % 
+      \crossmanualxref{\code{\infofilename\unskip}}%
     %
-    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
-    % insert empty discretionaries after hyphens, which means that it will
-    % not find a line break at a hyphen in a node names.  Since some manuals
-    % are best written with fairly long node names, containing hyphens, this
-    % is a loss.  Therefore, we give the text of the node name again, so it
-    % is as if TeX is seeing it for the first time.
-    \ifdim \wd1 > 0pt
-      \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
     \else
+      % Reference within this manual.
+      %
       % _ (for example) has to be the character _ for the purposes of the
       % control sequence corresponding to the node, but it has to expand
       % into the usual \leavevmode...\vrule stuff for purposes of
@@ -7579,7 +8043,7 @@ end
        \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
        \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
       }%
-      % output the `[mynode]' via a macro so it can be overridden.
+      % output the `[mynode]' via the macro below so it can be overridden.
       \xrefprintnodename\printedrefname
       %
       % But we always want a comma and a space:
@@ -7587,11 +8051,37 @@ end
       %
       % output the `page 3'.
       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-    \fi
+    \fi\fi
   \fi
   \endlink
 \endgroup}
 
+% Output a cross-manual xref to #1.  Used just above (twice).
+% 
+% Only include the text "Section ``foo'' in" if the foo is neither
+% missing or Top.  Thus, @xref{,,,foo,The Foo Manual} outputs simply
+% "see The Foo Manual", the idea being to refer to the whole manual.
+% 
+% But, this being TeX, we can't easily compare our node name against the
+% string "Top" while ignoring the possible spaces before and after in
+% the input.  By adding the arbitrary 7sp below, we make it much less
+% likely that a real node name would have the same width as "Top" (e.g.,
+% in a monospaced font).  Hopefully it will never happen in practice.
+% 
+% For the same basic reason, we retypeset the "Top" at every
+% reference, since the current font is indeterminate.
+% 
+\def\crossmanualxref#1{%
+  \setbox\toprefbox = \hbox{Top\kern7sp}%
+  \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+  \ifdim \wd2 > 7sp  % nonempty?
+    \ifdim \wd2 = \wd\toprefbox \else  % same as Top?
+      \putwordSection{} ``\printedrefname'' \putwordin{}\space
+    \fi
+  \fi
+  #1%
+}
+
 % This macro is called from \xrefX for the `[nodename]' part of xref
 % output.  It's a separate macro only so it can be changed more easily,
 % since square brackets don't work well in some documents.  Particularly
@@ -7807,7 +8297,7 @@ end
 % space to prevent strange expansion errors.)
 \def\supereject{\par\penalty -20000\footnoteno =0 }
 
-% @footnotestyle is meaningful for info output only.
+% @footnotestyle is meaningful for Info output only.
 \let\footnotestyle=\comment
 
 {\catcode `\@=11
@@ -7870,6 +8360,8 @@ end
   % expands into a box, it must come within the paragraph, lest it
   % provide a place where TeX can split the footnote.
   \footstrut
+  %
+  % Invoke rest of plain TeX footnote routine.
   \futurelet\next\fo@t
 }
 }%end \catcode `\@=11
@@ -7957,7 +8449,7 @@ end
   it from ftp://tug.org/tex/epsf.tex.}
 %
 \def\image#1{%
-  \ifx\epsfbox\thisiundefined
+  \ifx\epsfbox\thisisundefined
     \ifwarnednoepsf \else
       \errhelp = \noepsfhelp
       \errmessage{epsf.tex not found, images will be ignored}%
@@ -7981,6 +8473,13 @@ end
   % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
+  \else \ifx\centersub\centerV
+    % for @center @image, we need a vbox so we can have our vertical space
+    \imagevmodetrue
+    \vbox\bgroup % vbox has better behavior than vtop herev
+  \fi\fi
+  %
+  \ifimagevmode
     \nobreak\medskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
@@ -7990,9 +8489,13 @@ end
   \fi
   %
   % Leave vertical mode so that indentation from an enclosing
-  % environment such as @quotation is respected.  On the other hand, if
-  % it's at the top level, we don't want the normal paragraph indentation.
-  \noindent
+  %  environment such as @quotation is respected.
+  % However, if we're at the top level, we don't want the
+  %  normal paragraph indentation.
+  % On the other hand, if we are in the case of @center @image, we don't
+  %  want to start a paragraph, which will create a hsize-width box and
+  %  eradicate the centering.
+  \ifx\centersub\centerV\else \noindent \fi
   %
   % Output the image.
   \ifpdf
@@ -8004,7 +8507,10 @@ end
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \medskip \fi  % space after the standalone image
+  \ifimagevmode
+    \medskip  % space after a standalone image
+  \fi  
+  \ifx\centersub\centerV \egroup \fi
 \endgroup}
 
 
@@ -8422,7 +8928,7 @@ directory should work if nowhere else does.}
 %
 % Latin1 (ISO-8859-1) character definitions.
 \def\latonechardefs{%
-  \gdef^^a0{~}
+  \gdef^^a0{\tie}
   \gdef^^a1{\exclamdown}
   \gdef^^a2{\missingcharmsg{CENT SIGN}}
   \gdef^^a3{{\pounds}}
@@ -8544,7 +9050,7 @@ directory should work if nowhere else does.}
 
 % Latin2 (ISO-8859-2) character definitions.
 \def\lattwochardefs{%
-  \gdef^^a0{~}
+  \gdef^^a0{\tie}
   \gdef^^a1{\ogonek{A}}
   \gdef^^a2{\u{}}
   \gdef^^a3{\L}
@@ -9393,6 +9899,8 @@ directory should work if nowhere else does.}
 
 \message{and turning on texinfo input format.}
 
+\def^^L{\par} % remove \outer, so ^L can appear in an @comment
+
 % DEL is a comment character, in case @c does not suffice.
 \catcode`\^^? = 14
 
@@ -9483,34 +9991,48 @@ directory should work if nowhere else does.}
 
 % In texinfo, backslash is an active character; it prints the backslash
 % in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
+\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,
+% 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
-
 % \rawbackslash defines an active \ to do \backslashcurfont.
 % \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
+% catcode other.  We switch back and forth between these.
 @gdef@rawbackslash{@let\=@backslashcurfont}
 @gdef@otherbackslash{@let\=@realbackslash}
 
 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-@def@normalturnoffactive{%
-  @let"=@normaldoublequote
-  @let$=@normaldollar %$ font-lock fix
-  @let+=@normalplus
-  @let<=@normalless
-  @let>=@normalgreater
-  @let\=@normalbackslash
-  @let^=@normalcaret
-  @let_=@normalunderscore
-  @let|=@normalverticalbar
-  @let~=@normaltilde
-  @markupsetuplqdefault
-  @markupsetuprqdefault
-  @unsepspaces
+% the literal character `\'.  Also revert - to its normal character, in
+% case the active - from code has slipped in.
+%
+{@catcode`- = @active
+ @gdef@normalturnoffactive{%
+   @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
+   @markupsetuplqdefault
+   @markupsetuprqdefault
+   @unsepspaces
+ }
 }
 
 % Make _ and + \other characters, temporarily.
@@ -9546,10 +10068,13 @@ directory should work if nowhere else does.}
 @def@normalslash{/}
 
 % These look ok in all fonts, so just make them not special.
+% @hashchar{} gets its own user-level command, because of #line.
 @catcode`@& = @other @def@normalamp{&}
 @catcode`@# = @other @def@normalhash{#}
 @catcode`@% = @other @def@normalpercent{%}
 
+@let @hashchar = @normalhash
+
 @c Finally, make ` and ' active, so that txicodequoteundirected and
 @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}.  If we
 @c don't make ` and ' active, @code will not get them as active chars.
index 84d563405e6e29a64a4ffdb07da262e2e5628dba..7befa46de6feea3433c364af2061ba554bb3d9e4 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # ylwrap - wrapper for lex/yacc invocations.
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-07-14.08; # UTC
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
-# 2007, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
 #
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
@@ -30,9 +29,40 @@ scriptversion=2009-04-28.21; # UTC
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+get_dirname ()
+{
+  case $1 in
+    */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';;
+    # Otherwise,  we want the empty string (not ".").
+  esac
+}
+
+# guard FILE
+# ----------
+# The CPP macro used to guard inclusion of FILE.
+guard()
+{
+  printf '%s\n' "$from" \
+    | sed \
+        -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+        -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'
+}
+
+# quote_for_sed [STRING]
+# ----------------------
+# Return STRING (or stdin) quoted to be used as a sed pattern.
+quote_for_sed ()
+{
+  case $# in
+    0) cat;;
+    1) printf '%s\n' "$1";;
+  esac \
+    | sed -e 's|[][\\.*]|\\&|g'
+}
+
 case "$1" in
   '')
-    echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
+    echo "$0: No files given.  Try '$0 --help' for more information." 1>&2
     exit 1
     ;;
   --basedir)
@@ -67,6 +97,8 @@ esac
 # The input.
 input="$1"
 shift
+# We'll later need for a correct munging of "#line" directives.
+input_sub_rx=`get_dirname "$input" | quote_for_sed`
 case "$input" in
   [\\/]* | ?:[\\/]*)
     # Absolute path; do nothing.
@@ -76,15 +108,40 @@ case "$input" in
     input="`pwd`/$input"
     ;;
 esac
+input_rx=`get_dirname "$input" | quote_for_sed`
+
+# Since DOS filename conventions don't allow two dots,
+# the DOS version of Bison writes out y_tab.c instead of y.tab.c
+# and y_tab.h instead of y.tab.h. Test to see if this is the case.
+y_tab_nodot=false
+if test -f y_tab.c || test -f y_tab.h; then
+  y_tab_nodot=true
+fi
 
-pairlist=
+# The parser itself, the first file, is the destination of the .y.c
+# rule in the Makefile.
+parser=$1
+# A sed program to s/FROM/TO/g for all the FROM/TO so that, for
+# instance, we rename #include "y.tab.h" into #include "parse.h"
+# during the conversion from y.tab.c to parse.c.
+rename_sed=
 while test "$#" -ne 0; do
   if test "$1" = "--"; then
     shift
     break
   fi
-  pairlist="$pairlist $1"
+  from=$1
+  # Handle y_tab.c and y_tab.h output by DOS
+  if $y_tab_nodot; then
+    case $from in
+      "y.tab.c") from=y_tab.c;;
+      "y.tab.h") from=y_tab.h;;
+    esac
+  fi
   shift
+  to=$1
+  shift
+  rename_sed="${rename_sed}s|"`quote_for_sed "$from"`"|$to|g;"
 done
 
 # The program to run.
@@ -99,7 +156,11 @@ esac
 # FIXME: add hostname here for parallel makes that run commands on
 # other machines.  But that might take us over the 14-char limit.
 dirname=ylwrap$$
-trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
+do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret'
+trap "ret=129; $do_exit" 1
+trap "ret=130; $do_exit" 2
+trap "ret=141; $do_exit" 13
+trap "ret=143; $do_exit" 15
 mkdir $dirname || exit 1
 
 cd $dirname
@@ -111,98 +172,55 @@ esac
 ret=$?
 
 if test $ret -eq 0; then
-  set X $pairlist
-  shift
-  first=yes
-  # Since DOS filename conventions don't allow two dots,
-  # the DOS version of Bison writes out y_tab.c instead of y.tab.c
-  # and y_tab.h instead of y.tab.h. Test to see if this is the case.
-  y_tab_nodot="no"
-  if test -f y_tab.c || test -f y_tab.h; then
-    y_tab_nodot="yes"
-  fi
-
-  # The directory holding the input.
-  input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
-  # Quote $INPUT_DIR so we can use it in a regexp.
-  # FIXME: really we should care about more than `.' and `\'.
-  input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
-
-  while test "$#" -ne 0; do
-    from="$1"
-    # Handle y_tab.c and y_tab.h output by DOS
-    if test $y_tab_nodot = "yes"; then
-      if test $from = "y.tab.c"; then
-       from="y_tab.c"
-      else
-       if test $from = "y.tab.h"; then
-         from="y_tab.h"
-       fi
-      fi
-    fi
+  for from in *
+  do
+    to=`printf '%s\n' "$from" | sed "$rename_sed"`
     if test -f "$from"; then
       # If $2 is an absolute path name, then just use that,
-      # otherwise prepend `../'.
-      case "$2" in
-       [\\/]* | ?:[\\/]*) target="$2";;
-       *) target="../$2";;
+      # otherwise prepend '../'.
+      case $to in
+        [\\/]* | ?:[\\/]*) target=$to;;
+        *) target="../$to";;
       esac
 
-      # We do not want to overwrite a header file if it hasn't
-      # changed.  This avoid useless recompilations.  However the
-      # parser itself (the first file) should always be updated,
-      # because it is the destination of the .y.c rule in the
-      # Makefile.  Divert the output of all other files to a temporary
-      # file so we can compare them to existing versions.
-      if test $first = no; then
-       realtarget="$target"
-       target="tmp-`echo $target | sed s/.*[\\/]//g`"
+      # Do not overwrite unchanged header files to avoid useless
+      # recompilations.  Always update the parser itself: it is the
+      # destination of the .y.c rule in the Makefile.  Divert the
+      # output of all other files to a temporary file so we can
+      # compare them to existing versions.
+      if test $from != $parser; then
+        realtarget="$target"
+        target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'`
       fi
-      # Edit out `#line' or `#' directives.
-      #
-      # We don't want the resulting debug information to point at
-      # an absolute srcdir; it is better for it to just mention the
-      # .y file with no path.
-      #
-      # We want to use the real output file name, not yy.lex.c for
-      # instance.
-      #
-      # We want the include guards to be adjusted too.
-      FROM=`echo "$from" | sed \
-            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
-      TARGET=`echo "$2" | sed \
-            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
-
-      sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
-          -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
-
-      # Check whether header files must be updated.
-      if test $first = no; then
-       if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
-         echo "$2" is unchanged
-         rm -f "$target"
-       else
-          echo updating "$2"
+
+      # Munge "#line" or "#" directives.  Don't let the resulting
+      # debug information point at an absolute srcdir.  Use the real
+      # output file name, not yy.lex.c for instance.  Adjust the
+      # include guards too.
+      FROM=`guard "$from"`
+      TARGET=`guard "$to"`
+      sed -e "/^#/!b" -e "s|$input_rx|$input_sub_rx|" -e "$rename_sed" \
+          -e "s|$FROM|$TARGET|" "$from" >"$target" || ret=$?
+
+      # Check whether files must be updated.
+      if test "$from" != "$parser"; then
+        if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+          echo "$to is unchanged"
+          rm -f "$target"
+        else
+          echo "updating $to"
           mv -f "$target" "$realtarget"
         fi
       fi
     else
-      # A missing file is only an error for the first file.  This
-      # is a blatant hack to let us support using "yacc -d".  If -d
-      # is not specified, we don't want an error when the header
-      # file is "missing".
-      if test $first = yes; then
+      # A missing file is only an error for the parser.  This is a
+      # blatant hack to let us support using "yacc -d".  If -d is not
+      # specified, don't fail when the header file is "missing".
+      if test "$from" = "$parser"; then
         ret=1
       fi
     fi
-    shift
-    shift
-    first=no
   done
-else
-  ret=$?
 fi
 
 # Remove the directory.
index d9dd5a88daae812d47752b8f1c788f5802bd1d7e..e21379074cd46fc426896ab775df9b98c387f737 100644 (file)
@@ -1,5 +1,8 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
 /* Define to the number of bits in type 'ptrdiff_t'. */
 #undef BITSIZEOF_PTRDIFF_T
 
 /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA
 
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'double'. */
+#undef DBL_EXPBIT0_BIT
+
+/* Define as the word index where to find the exponent of 'double'. */
+#undef DBL_EXPBIT0_WORD
+
 /* Define to a string giving the full name of the default archive file. */
 #undef DEFAULT_ARCHIVE
 
 /* Define this to 1 if F_DUPFD behavior does not match POSIX */
 #undef FCNTL_DUPFD_BUGGY
 
+/* Enable compile-time and run-time bounds-checking, and some warnings,
+      without upsetting glibc 2.15+. */
+   #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
+   # define _FORTIFY_SOURCE 2
+   #endif
+  
+
 /* Define to 1 if mkdir mistakenly creates a directory given with a trailing
    dot component. */
 #undef FUNC_MKDIR_DOT_BUG
    declaration of the second argument to gettimeofday. */
 #undef GETTIMEOFDAY_TIMEZONE
 
-/* Define to make the limit macros in <stdint.h> visible. */
-#undef GL_TRIGGER_STDC_LIMIT_MACROS
-
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module areadlinkat shall be considered present. */
 #undef GNULIB_AREADLINKAT
    whether the gnulib module dirname shall be considered present. */
 #undef GNULIB_DIRNAME
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fchmodat shall be considered present. */
+#undef GNULIB_FCHMODAT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fchownat shall be considered present. */
+#undef GNULIB_FCHOWNAT
+
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module fdopendir shall be considered present. */
 #undef GNULIB_FDOPENDIR
    whether the gnulib module fdutimensat shall be considered present. */
 #undef GNULIB_FDUTIMENSAT
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   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 getcwd shall be considered present. */
+#undef GNULIB_GETCWD
+
 /* 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
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module openat shall be considered present. */
+#undef GNULIB_OPENAT
+
+/* enable some gnulib portability checks */
+#undef GNULIB_PORTCHECK
+
 /* Define to 1 to add extern declaration of program_invocation_name to argp.h
    */
 #undef GNULIB_PROGRAM_INVOCATION_NAME
    argp.h */
 #undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME
 
+/* 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
+
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module snprintf shall be considered present. */
 #undef GNULIB_SNPRINTF
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module statat shall be considered present. */
+#undef GNULIB_STATAT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror shall be considered present. */
+#undef GNULIB_STRERROR
+
 /* Define to 1 when the gnulib module btowc should be tested. */
 #undef GNULIB_TEST_BTOWC
 
    */
 #undef GNULIB_TEST_CANONICALIZE_FILE_NAME
 
+/* Define to 1 when the gnulib module chdir should be tested. */
+#undef GNULIB_TEST_CHDIR
+
 /* Define to 1 when the gnulib module chown should be tested. */
 #undef GNULIB_TEST_CHOWN
 
 /* Define to 1 when the gnulib module close should be tested. */
 #undef GNULIB_TEST_CLOSE
 
+/* Define to 1 when the gnulib module closedir should be tested. */
+#undef GNULIB_TEST_CLOSEDIR
+
 /* Define to 1 when the gnulib module dirfd should be tested. */
 #undef GNULIB_TEST_DIRFD
 
+/* Define to 1 when the gnulib module dup should be tested. */
+#undef GNULIB_TEST_DUP
+
 /* Define to 1 when the gnulib module dup2 should be tested. */
 #undef GNULIB_TEST_DUP2
 
 /* Define to 1 when the gnulib module fchdir should be tested. */
 #undef GNULIB_TEST_FCHDIR
 
-/* Define to 1 when the gnulib module fclose should be tested. */
-#undef GNULIB_TEST_FCLOSE
+/* Define to 1 when the gnulib module fchmodat should be tested. */
+#undef GNULIB_TEST_FCHMODAT
+
+/* Define to 1 when the gnulib module fchownat should be tested. */
+#undef GNULIB_TEST_FCHOWNAT
 
 /* Define to 1 when the gnulib module fcntl should be tested. */
 #undef GNULIB_TEST_FCNTL
 /* Define to 1 when the gnulib module fdopendir should be tested. */
 #undef GNULIB_TEST_FDOPENDIR
 
+/* Define to 1 when the gnulib module fseek should be tested. */
+#undef GNULIB_TEST_FSEEK
+
 /* Define to 1 when the gnulib module fseeko should be tested. */
 #undef GNULIB_TEST_FSEEKO
 
+/* Define to 1 when the gnulib module fstat should be tested. */
+#undef GNULIB_TEST_FSTAT
+
+/* Define to 1 when the gnulib module fstatat should be tested. */
+#undef GNULIB_TEST_FSTATAT
+
 /* Define to 1 when the gnulib module futimens should be tested. */
 #undef GNULIB_TEST_FUTIMENS
 
 /* Define to 1 when the gnulib module linkat should be tested. */
 #undef GNULIB_TEST_LINKAT
 
+/* Define to 1 when the gnulib module localeconv should be tested. */
+#undef GNULIB_TEST_LOCALECONV
+
 /* Define to 1 when the gnulib module lseek should be tested. */
 #undef GNULIB_TEST_LSEEK
 
 /* Define to 1 when the gnulib module memrchr should be tested. */
 #undef GNULIB_TEST_MEMRCHR
 
+/* Define to 1 when the gnulib module mkdirat should be tested. */
+#undef GNULIB_TEST_MKDIRAT
+
 /* Define to 1 when the gnulib module mkdtemp should be tested. */
 #undef GNULIB_TEST_MKDTEMP
 
 /* Define to 1 when the gnulib module open should be tested. */
 #undef GNULIB_TEST_OPEN
 
+/* Define to 1 when the gnulib module openat should be tested. */
+#undef GNULIB_TEST_OPENAT
+
+/* Define to 1 when the gnulib module opendir should be tested. */
+#undef GNULIB_TEST_OPENDIR
+
+/* 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 read should be tested. */
+#undef GNULIB_TEST_READ
+
+/* Define to 1 when the gnulib module readdir should be tested. */
+#undef GNULIB_TEST_READDIR
+
 /* Define to 1 when the gnulib module readlink should be tested. */
 #undef GNULIB_TEST_READLINK
 
 /* Define to 1 when the gnulib module renameat should be tested. */
 #undef GNULIB_TEST_RENAMEAT
 
+/* Define to 1 when the gnulib module rewinddir should be tested. */
+#undef GNULIB_TEST_REWINDDIR
+
 /* Define to 1 when the gnulib module rmdir should be tested. */
 #undef GNULIB_TEST_RMDIR
 
 /* Define to 1 when the gnulib module rpmatch should be tested. */
 #undef GNULIB_TEST_RPMATCH
 
+/* Define to 1 when the gnulib module secure_getenv should be tested. */
+#undef GNULIB_TEST_SECURE_GETENV
+
 /* Define to 1 when the gnulib module setenv should be tested. */
 #undef GNULIB_TEST_SETENV
 
 /* Define to 1 when the gnulib module strnlen should be tested. */
 #undef GNULIB_TEST_STRNLEN
 
-/* Define to 1 when the gnulib module strtoll should be tested. */
-#undef GNULIB_TEST_STRTOLL
-
 /* Define to 1 when the gnulib module strtoull should be tested. */
 #undef GNULIB_TEST_STRTOULL
 
 /* Define to 1 when the gnulib module unlink should be tested. */
 #undef GNULIB_TEST_UNLINK
 
+/* Define to 1 when the gnulib module unlinkat should be tested. */
+#undef GNULIB_TEST_UNLINKAT
+
 /* Define to 1 when the gnulib module unsetenv should be tested. */
 #undef GNULIB_TEST_UNSETENV
 
 /* Define to the program name of gzip compressor program */
 #undef GZIP_PROGRAM
 
-/* Define to 1 if you have the `alarm' function. */
-#undef HAVE_ALARM
+/* Define to 1 if you have the `aclsort' function. */
+#undef HAVE_ACLSORT
+
+/* Define to 1 if you have the <aclv.h> header file. */
+#undef HAVE_ACLV_H
+
+/* Define to 1 if you have the `aclx_get' function. */
+#undef HAVE_ACLX_GET
+
+/* Define to 1 if you have the `acl_copy_ext_native' function. */
+#undef HAVE_ACL_COPY_EXT_NATIVE
+
+/* Define to 1 if you have the `acl_create_entry_np' function. */
+#undef HAVE_ACL_CREATE_ENTRY_NP
+
+/* Define to 1 if you have the `acl_delete_def_file' function. */
+#undef HAVE_ACL_DELETE_DEF_FILE
+
+/* Define to 1 if you have the `acl_delete_fd_np' function. */
+#undef HAVE_ACL_DELETE_FD_NP
+
+/* Define to 1 if you have the `acl_delete_file_np' function. */
+#undef HAVE_ACL_DELETE_FILE_NP
+
+/* Define to 1 if you have the `acl_entries' function. */
+#undef HAVE_ACL_ENTRIES
+
+/* Define to 1 if you have the `acl_extended_file' function. */
+#undef HAVE_ACL_EXTENDED_FILE
+
+/* Define to 1 if the constant ACL_FIRST_ENTRY exists. */
+#undef HAVE_ACL_FIRST_ENTRY
+
+/* Define to 1 if you have the `acl_free' function. */
+#undef HAVE_ACL_FREE
+
+/* Define to 1 if you have the `acl_free_text' function. */
+#undef HAVE_ACL_FREE_TEXT
+
+/* Define to 1 if you have the `acl_from_mode' function. */
+#undef HAVE_ACL_FROM_MODE
+
+/* Define to 1 if you have the `acl_from_text' function. */
+#undef HAVE_ACL_FROM_TEXT
+
+/* Define to 1 if you have the `acl_get_fd' function. */
+#undef HAVE_ACL_GET_FD
+
+/* Define to 1 if you have the `acl_get_file' function. */
+#undef HAVE_ACL_GET_FILE
+
+/* Define to 1 if you have the <acl/libacl.h> header file. */
+#undef HAVE_ACL_LIBACL_H
+
+/* Define to 1 if you have the `acl_set_fd' function. */
+#undef HAVE_ACL_SET_FD
+
+/* Define to 1 if you have the `acl_set_file' function. */
+#undef HAVE_ACL_SET_FILE
+
+/* Define to 1 if you have the `acl_to_short_text' function. */
+#undef HAVE_ACL_TO_SHORT_TEXT
+
+/* Define to 1 if you have the `acl_trivial' function. */
+#undef HAVE_ACL_TRIVIAL
+
+/* Define to 1 if the ACL type ACL_TYPE_EXTENDED exists. */
+#undef HAVE_ACL_TYPE_EXTENDED
 
 /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
    may be supplied by this distribution. */
    */
 #undef HAVE_ALLOCA_H
 
+/* define to 1 if we have <attr/xattr.h> header */
+#undef HAVE_ATTR_XATTR_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 `canonicalize_file_name' function. */
 #undef HAVE_CANONICALIZE_FILE_NAME
 
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
 
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
 /* Define to 1 if you have the `clock_settime' function. */
 #undef HAVE_CLOCK_SETTIME
 
+/* Define to 1 if you have the `closedir' function. */
+#undef HAVE_CLOSEDIR
+
 /* Define if you have compound literals. */
 #undef HAVE_COMPOUND_LITERALS
 
    */
 #undef HAVE_DCGETTEXT
 
+/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
+   */
+#undef HAVE_DECL_ALARM
+
 /* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
    you don't. */
 #undef HAVE_DECL_CLEARERR_UNLOCKED
    don't. */
 #undef HAVE_DECL_GETPWUID
 
-/* Define to 1 if you have the declaration of `imaxabs', and to 0 if you
-   don't. */
-#undef HAVE_DECL_IMAXABS
-
-/* Define to 1 if you have the declaration of `imaxdiv', and to 0 if you
-   don't. */
-#undef HAVE_DECL_IMAXDIV
-
 /* Define to 1 if you have the declaration of `isblank', and to 0 if you
    don't. */
 #undef HAVE_DECL_ISBLANK
    don't. */
 #undef HAVE_DECL_LOCALTIME_R
 
+/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MBRTOWC
+
+/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MBSINIT
+
+/* Define to 1 if you have the declaration of `mbsrtowcs', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MBSRTOWCS
+
 /* Define to 1 if you have the declaration of `memrchr', and to 0 if you
    don't. */
 #undef HAVE_DECL_MEMRCHR
    */
 #undef HAVE_DECL_STRDUP
 
-/* Define to 1 if you have the declaration of `strerror', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRERROR
-
 /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRERROR_R
    don't. */
 #undef HAVE_DECL_STRNLEN
 
-/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRTOIMAX
-
-/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRTOLL
-
 /* Define to 1 if you have the declaration of `strtoull', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRTOULL
    */
 #undef HAVE_DECL_TIME
 
+/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+   don't. */
+#undef HAVE_DECL_TOWLOWER
+
 /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
    */
 #undef HAVE_DECL_TZNAME
    don't. */
 #undef HAVE_DECL_VSNPRINTF
 
+/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you
+   don't. */
+#undef HAVE_DECL_WCRTOMB
+
 /* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
    don't. */
 #undef HAVE_DECL_WCWIDTH
 /* Define to 1 if you have the `dirfd' function. */
 #undef HAVE_DIRFD
 
-/* Define to 1 if you have the `dup2' function. */
+/* Define to 1 if you have the 'dup2' function. */
 #undef HAVE_DUP2
 
 /* Define if you have the declaration of environ. */
 #undef HAVE_ENVIRON_DECL
 
+/* Define to 1 if you have the `facl' function. */
+#undef HAVE_FACL
+
 /* Define to 1 if you have the `fchdir' function. */
 #undef HAVE_FCHDIR
 
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
+/* Define to 1 if you have the `fgetxattr' function. */
+#undef HAVE_FGETXATTR
+
+/* Define to 1 if you have the `flistxattr' function. */
+#undef HAVE_FLISTXATTR
+
 /* Define to 1 if you have the `flockfile' function. */
 #undef HAVE_FLOCKFILE
 
 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
 #undef HAVE_FSEEKO
 
+/* Define to 1 if you have the `fsetxattr' function. */
+#undef HAVE_FSETXATTR
+
 /* Define to 1 if you have the `fstatat' function. */
 #undef HAVE_FSTATAT
 
 /* Define to 1 if you have the `futimesat' function. */
 #undef HAVE_FUTIMESAT
 
+/* Define to 1 if you have the `getacl' function. */
+#undef HAVE_GETACL
+
 /* Define to 1 if you have the `getcwd' function. */
 #undef HAVE_GETCWD
 
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
+/* Define to 1 if you have the `getxattr' function. */
+#undef HAVE_GETXATTR
+
 /* Define to 1 if you have the <grp.h> header file. */
 #undef HAVE_GRP_H
 
 /* Define to 1 if you have the <iconv.h> header file. */
 #undef HAVE_ICONV_H
 
-/* Define to 1 if the compiler supports one of the keywords 'inline',
-   '__inline__', '__inline' and effectively inlines functions marked as such.
-   */
-#undef HAVE_INLINE
-
 /* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
 #undef HAVE_INTMAX_T
 
 /* Define to 1 if you have the `isblank' function. */
 #undef HAVE_ISBLANK
 
+/* Define to 1 if you have the `issetugid' function. */
+#undef HAVE_ISSETUGID
+
 /* Define to 1 if you have the `iswblank' function. */
 #undef HAVE_ISWBLANK
 
 /* Define to 1 if you have the `lchown' function. */
 #undef HAVE_LCHOWN
 
+/* Define to 1 if you have the `lgetxattr' function. */
+#undef HAVE_LGETXATTR
+
 /* Define to 1 if you have the <libintl.h> header file. */
 #undef HAVE_LIBINTL_H
 
 /* Define to 1 if you have the <linux/fd.h> header file. */
 #undef HAVE_LINUX_FD_H
 
+/* Define to 1 if you have the `listxattr' function. */
+#undef HAVE_LISTXATTR
+
+/* Define to 1 if you have the `llistxattr' function. */
+#undef HAVE_LLISTXATTR
+
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
 /* Define to 1 if you support file names longer than 14 characters. */
 #undef HAVE_LONG_FILE_NAMES
 
-/* Define to 1 if the system has the type `long long int'. */
+/* Define to 1 if the system has the type 'long long int'. */
 #undef HAVE_LONG_LONG_INT
 
+/* Define to 1 if you have the `lsetxattr' function. */
+#undef HAVE_LSETXATTR
+
 /* Define to 1 if you have the `lstat' function. */
 #undef HAVE_LSTAT
 
 /* Define to 1 if <wchar.h> declares mbstate_t. */
 #undef HAVE_MBSTATE_T
 
-/* Define to 1 if you have the `memchr' function. */
-#undef HAVE_MEMCHR
-
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
 /* Define to 1 if you have the `memrchr' function. */
 #undef HAVE_MEMRCHR
 
+/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+   when it succeeds. */
+#undef HAVE_MINIMALLY_WORKING_GETCWD
+
 /* Define to 1 if you have the `mkdirat' function. */
 #undef HAVE_MKDIRAT
 
 /* Define to 1 if you have the `mprotect' function. */
 #undef HAVE_MPROTECT
 
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+   concept. */
+#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
 /* Define to 1 if you have the `nanotime' function. */
 #undef HAVE_NANOTIME
 
 /* Define to 1 if you have the `openat' function. */
 #undef HAVE_OPENAT
 
+/* Define to 1 if you have the `opendir' function. */
+#undef HAVE_OPENDIR
+
 /* 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 when we have working POSIX acls */
+#undef HAVE_POSIX_ACLS
+
 /* Define to 1 if you have the <priv.h> header file. */
 #undef HAVE_PRIV_H
 
 /* Define to 1 if you have the <pwd.h> header file. */
 #undef HAVE_PWD_H
 
+/* Define to 1 if you have the `raise' function. */
+#undef HAVE_RAISE
+
 /* Define to 1 if you have the `rawmemchr' function. */
 #undef HAVE_RAWMEMCHR
 
    macros. */
 #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
 
+/* Define to 1 if chdir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CHDIR
+
 /* Define to 1 if chown is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_CHOWN
 
+/* Define to 1 if closedir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CLOSEDIR
+
 /* Define to 1 if dirfd is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DIRFD
 
 /* Define to 1 if dprintf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DPRINTF
 
+/* Define to 1 if dup is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_DUP
+
 /* Define to 1 if dup2 is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DUP2
 
 /* Define to 1 if dup3 is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DUP3
 
+/* Define to 1 if duplocale is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_DUPLOCALE
+
 /* Define to 1 if endusershell is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ENDUSERSHELL
 
 /* Define to 1 if fcntl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FCNTL
 
+/* Define to 1 if fdatasync is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FDATASYNC
+
 /* Define to 1 if fdopendir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FDOPENDIR
 
+/* Define to 1 if ffs is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFS
+
+/* Define to 1 if ffsl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSL
+
+/* Define to 1 if ffsll is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSLL
+
 /* Define to 1 if fpurge is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FPURGE
 
 /* Define to 1 if fseeko is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FSEEKO
 
+/* Define to 1 if fstat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FSTAT
+
 /* Define to 1 if fstatat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FSTATAT
 
 /* Define to 1 if getpagesize is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETPAGESIZE
 
+/* Define to 1 if gets is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETS
+
 /* Define to 1 if getsubopt is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETSUBOPT
 
 /* Define to 1 if grantpt is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GRANTPT
 
+/* Define to 1 if group_member is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GROUP_MEMBER
+
 /* Define to 1 if imaxabs is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_IMAXABS
 
 /* Define to 1 if imaxdiv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_IMAXDIV
 
-/* Define to 1 if initstat_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTAT_R
+/* 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 isatty is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISATTY
 
 /* Define to 1 if iswctype is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ISWCTYPE
 /* Define to 1 if openat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_OPENAT
 
+/* Define to 1 if opendir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_OPENDIR
+
+/* Define to 1 if pclose is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PCLOSE
+
 /* Define to 1 if pipe is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PIPE
 
 /* Define to 1 if popen is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_POPEN
 
+/* Define to 1 if posix_openpt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_POSIX_OPENPT
+
 /* Define to 1 if pread is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PREAD
 
+/* Define to 1 if pthread_sigmask is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTHREAD_SIGMASK
+
 /* Define to 1 if ptsname is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PTSNAME
 
+/* Define to 1 if ptsname_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTSNAME_R
+
 /* Define to 1 if pwrite is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PWRITE
 
+/* Define to 1 if random is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RANDOM
+
 /* Define to 1 if random_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RANDOM_R
 
 /* Define to 1 if rawmemchr is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RAWMEMCHR
 
+/* Define to 1 if readdir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_READDIR
+
 /* Define to 1 if readlink is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_READLINK
 
 /* Define to 1 if renameat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RENAMEAT
 
+/* Define to 1 if rewinddir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_REWINDDIR
+
 /* Define to 1 if rmdir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RMDIR
 
 /* Define to 1 if scandir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SCANDIR
 
+/* Define to 1 if secure_getenv is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SECURE_GETENV
+
 /* Define to 1 if setenv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETENV
 
+/* Define to 1 if sethostname is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETHOSTNAME
+
+/* Define to 1 if setlocale is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETLOCALE
+
+/* Define to 1 if setstate is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETSTATE
+
 /* Define to 1 if setstate_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETSTATE_R
 
 /* Define to 1 if setusershell is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETUSERSHELL
 
+/* Define to 1 if sigaction is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGACTION
+
+/* Define to 1 if sigaddset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGADDSET
+
+/* Define to 1 if sigdelset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGDELSET
+
+/* Define to 1 if sigemptyset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGEMPTYSET
+
+/* Define to 1 if sigfillset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGFILLSET
+
+/* Define to 1 if sigismember is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGISMEMBER
+
+/* Define to 1 if sigpending is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGPENDING
+
+/* Define to 1 if sigprocmask is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGPROCMASK
+
 /* Define to 1 if sleep is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SLEEP
 
 /* Define to 1 if snprintf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SNPRINTF
 
+/* Define to 1 if srandom is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SRANDOM
+
 /* Define to 1 if srandom_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SRANDOM_R
 
 /* Define to 1 if _Exit is declared even after undefining macros. */
 #undef HAVE_RAW_DECL__EXIT
 
+/* Define to 1 if you have the `readdir' function. */
+#undef HAVE_READDIR
+
 /* Define to 1 if you have the `readlink' function. */
 #undef HAVE_READLINK
 
 /* Define to 1 if you have the `renameat' function. */
 #undef HAVE_RENAMEAT
 
+/* Define to 1 if you have the `rewinddir' function. */
+#undef HAVE_REWINDDIR
+
 /* Define to 1 if you have the `rpmatch' function. */
 #undef HAVE_RPMATCH
 
 /* 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 <selinux/context.h> header file. */
+#undef HAVE_SELINUX_CONTEXT_H
+
+/* Define to 1 if you have the <selinux/flask.h> header file. */
+#undef HAVE_SELINUX_FLASK_H
+
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
 /* Define to 1 if you have the `setenv' function. */
 #undef HAVE_SETENV
 
 /* Define to 1 if you have the `setlocale' function. */
 #undef HAVE_SETLOCALE
 
+/* Define to 1 if you have the `setxattr' function. */
+#undef HAVE_SETXATTR
+
 /* Define to 1 if you have the <sgtty.h> header file. */
 #undef HAVE_SGTTY_H
 
 /* Define to 1 if 'wint_t' is a signed integer type. */
 #undef HAVE_SIGNED_WINT_T
 
+/* Define to 1 if the system has the type `sigset_t'. */
+#undef HAVE_SIGSET_T
+
 /* Define to 1 if you have the `sleep' function. */
 #undef HAVE_SLEEP
 
    buffer had been large enough. */
 #undef HAVE_SNPRINTF_RETVAL_C99
 
+/* Define to 1 if you have the `statacl' function. */
+#undef HAVE_STATACL
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
 /* Define to 1 if you have the `strnlen' function. */
 #undef HAVE_STRNLEN
 
-/* Define to 1 if you have the `strtoimax' function. */
-#undef HAVE_STRTOIMAX
-
 /* Define to 1 if you have the `strtol' function. */
 #undef HAVE_STRTOL
 
-/* Define to 1 if you have the `strtoll' function. */
-#undef HAVE_STRTOLL
-
 /* Define to 1 if you have the `strtoul' function. */
 #undef HAVE_STRTOUL
 
 /* Define to 1 if you have the `strtoumax' function. */
 #undef HAVE_STRTOUMAX
 
-/* Define to 1 if `st_atimensec' is member of `struct stat'. */
+/* Define to 1 if `decimal_point' is a member of `struct lconv'. */
+#undef HAVE_STRUCT_LCONV_DECIMAL_POINT
+
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIMENSEC
 
-/* Define to 1 if `st_atimespec.tv_nsec' is member of `struct stat'. */
+/* Define to 1 if `st_atimespec.tv_nsec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
 
-/* Define to 1 if `st_atim.st__tim.tv_nsec' is member of `struct stat'. */
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
 
-/* Define to 1 if `st_atim.tv_nsec' is member of `struct stat'. */
+/* Define to 1 if `st_atim.tv_nsec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
 
-/* Define to 1 if `st_birthtimensec' is member of `struct stat'. */
+/* Define to 1 if `st_birthtimensec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
 
-/* Define to 1 if `st_birthtimespec.tv_nsec' is member of `struct stat'. */
+/* Define to 1 if `st_birthtimespec.tv_nsec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
 
-/* Define to 1 if `st_birthtim.tv_nsec' is member of `struct stat'. */
+/* Define to 1 if `st_birthtim.tv_nsec' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
 
-/* Define to 1 if `st_blksize' is member of `struct stat'. */
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BLKSIZE
 
-/* Define to 1 if `st_blocks' is member of `struct stat'. */
+/* Define to 1 if `st_blocks' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BLOCKS
 
-/* Define to 1 if `tm_zone' is member of `struct tm'. */
+/* Define to 1 if `tm_zone' is member of `struct tm'. */
 #undef HAVE_STRUCT_TM_TM_ZONE
 
 /* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
 /* Define to 1 if you have the <sysexits.h> header file. */
 #undef HAVE_SYSEXITS_H
 
+/* Define to 1 if you have the <sys/acl.h> header file. */
+#undef HAVE_SYS_ACL_H
+
 /* Define to 1 if you have the <sys/bitypes.h> header file. */
 #undef HAVE_SYS_BITYPES_H
 
    `HAVE_STRUCT_TM_TM_ZONE' instead. */
 #undef HAVE_TM_ZONE
 
+/* Define to 1 if you have the `towlower' function. */
+#undef HAVE_TOWLOWER
+
 /* Define to 1 if you have the `tsearch' function. */
 #undef HAVE_TSEARCH
 
 /* Define to 1 if you have the `unsetenv' function. */
 #undef HAVE_UNSETENV
 
-/* Define to 1 if the system has the type `unsigned long long int'. */
+/* 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 `utimensat' function. */
 /* Define to 1 if you have the `wmempcpy' function. */
 #undef HAVE_WMEMPCPY
 
+/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+   7.1. */
+#undef HAVE_WORKING_FSTATAT_ZERO_FLAG
+
 /* Define to 1 if O_NOATIME works. */
 #undef HAVE_WORKING_O_NOATIME
 
 /* Define if utimes works properly. */
 #undef HAVE_WORKING_UTIMES
 
+/* Define when we have working linux xattrs. */
+#undef HAVE_XATTRS
+
+/* Define to 1 if you have the <xlocale.h> header file. */
+#undef HAVE_XLOCALE_H
+
 /* Define to 1 if the system has the type `_Bool'. */
 #undef HAVE__BOOL
 
+/* Define to 1 if you have the `_fseeki64' function. */
+#undef HAVE__FSEEKI64
+
 /* Define to 1 if you have the `_ftime' function. */
 #undef HAVE__FTIME
 
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+#undef HAVE__SET_INVALID_PARAMETER_HANDLER
+
 /* Define to 1 if you have the `__fpending' function. */
 #undef HAVE___FPENDING
 
+/* Define to 1 if you have the `__secure_getenv' function. */
+#undef HAVE___SECURE_GETENV
+
 /* Define as const if the declaration of iconv() needs const. */
 #undef ICONV_CONST
 
 /* Define to 1 if linkat fails to recognize a trailing slash. */
 #undef LINKAT_TRAILING_SLASH_BUG
 
-/* Define to 1 if `link(2)' dereferences symbolic links, 0 if it creates hard
+/* Define to 1 if 'link(2)' dereferences symbolic links, 0 if it creates hard
    links to symlinks, -1 if it depends on the variable __xpg4, and -2 if
    unknown. */
 #undef LINK_FOLLOWS_SYMLINKS
 /* Define to 1 if lseek does not detect pipes. */
 #undef LSEEK_PIPE_BROKEN
 
-/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
+/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
    slash. */
 #undef LSTAT_FOLLOWS_SLASHED_SYMLINK
 
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
-/* the number of pending output bytes on stream `fp' */
+/* the number of pending output bytes on stream 'fp' */
 #undef PENDING_OUTPUT_N_BYTES
 
 /* Define if <inttypes.h> exists and defines unusable PRI* macros. */
    */
 #undef REPLACE_OPEN_DIRECTORY
 
-/* Define this to 1 if strerror is broken. */
-#undef REPLACE_STRERROR
+/* Define to 1 if strerror(0) does not return a message implying success. */
+#undef REPLACE_STRERROR_0
 
 /* Define if vasnprintf exists but is overridden by gnulib. */
 #undef REPLACE_VASNPRINTF
 /* Define to 1 if unlink() on a parent directory may succeed */
 #undef UNLINK_PARENT_BUG
 
+/* Define to nonzero if you want access control list support. */
+#undef USE_ACL
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
 /* Define to 1 if you want getc etc. to use unlocked I/O if available.
    Unlocked I/O can improve performance in unithreaded apps, but it is not
    safe for multithreaded apps. */
    'wint_t'. */
 #undef WINT_T_SUFFIX
 
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif
+
 /* Define to the program name of xz compressor program */
 #undef XZ_PROGRAM
 
+/* Enable large inode numbers on Mac OS X 10.5. */
+#undef _DARWIN_USE_64_BIT_INODE
+
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 
+/* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct
+   stat.st_size becomes 64-bit. */
+#undef _GL_WINDOWS_64_BIT_ST_SIZE
+
 /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
 #undef _LARGEFILE_SOURCE
 
 /* Define for large files, on AIX-style hosts. */
 #undef _LARGE_FILES
 
+/* Define to 1 on Solaris. */
+#undef _LCONV_C99
+
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+#undef _NETBSD_SOURCE
+
+/* The _Noreturn keyword of C11.  */
+#if ! (defined _Noreturn \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+
+
 /* Define to 2 if the system does not provide POSIX.1 features except with
    this defined. */
 #undef _POSIX_1_SOURCE
 
-/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
 #undef _POSIX_SOURCE
 
+/* Define if you want <regex.h> to include <limits.h>, so that it consistently
+   overrides <limits.h>'s RE_DUP_MAX. */
+#undef _REGEX_INCLUDE_LIMITS_H
+
 /* Define if you want regoff_t to be at least as wide POSIX requires. */
 #undef _REGEX_LARGE_OFFSETS
 
-/* Define to 500 only on HP-UX. */
-#undef _XOPEN_SOURCE
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
 /* Define to rpl_ if the getopt replacement functions and variables should be
    used. */
 #undef __GETOPT_PREFIX
 
-/* Ensure that <stdint.h> defines the limit macros, since gnulib's
-   <inttypes.h> relies on them.  */
-#if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT_MACROS
-# define __STDC_LIMIT_MACROS 1
+/* Define to `unsigned' if <sys/types.h> does not define. */
+#undef dev_t
+
+/* 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 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 the use of extern inline on Apple's platforms, as Libc at least
+   through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined __APPLE__)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined __APPLE__)
+# if __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
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+  /* Suppress GCC's bogus "no previous prototype for 'FOO'"
+     and "no previous declaration for 'FOO'"  diagnostics,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.  */
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
 
-/* Define to `unsigned' if <sys/types.h> does not define. */
-#undef dev_t
+/* Always use our fgetfilecon wrapper. */
+#undef fgetfilecon
 
 /* Define to a replacement function name for fnmatch(). */
 #undef fnmatch
 
+/* Always use our getfilecon wrapper. */
+#undef getfilecon
+
 /* Define to `int' if <sys/types.h> doesn't define. */
 #undef gid_t
 
 /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
 # define __GNUC_STDC_INLINE__ 1
 #endif
 
+/* Always use our lgetfilecon wrapper. */
+#undef lgetfilecon
+
+/* 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
 
    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
 
 /* Define to `unsigned int' if <sys/types.h> does not define. */
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 
+/* The __pure__ attribute was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
 
 /* Define as a macro for copying va_list variables. */
 #undef va_copy
index 858b4e79266721359e0b2c8c8d6561d3269f3c27..8b3c4f7421fb5f6eefe6b033398e962fdd36a335 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,20 +1,22 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for GNU tar 1.26.
+# Generated by GNU Autoconf 2.69 for GNU tar 1.27.
 #
 # Report bugs to <bug-tar@gnu.org>.
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # 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 -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -22,23 +24,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -46,7 +40,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -57,7 +57,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -80,13 +80,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -96,15 +89,16 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -116,12 +110,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# 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 \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -133,330 +131,345 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
 # CDPATH.
-$as_unset CDPATH
-
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
 else
-  as_have_required=no
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
 
 exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
+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 :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  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 :
+  as_have_required=yes
 else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+  as_have_required=no
 fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
 else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+  as_found=:
+  case $as_dir in #(
         /*)
           for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+            # 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 :
+  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 :
+  break 2
+fi
+fi
           done;;
        esac
+  as_found=false
 done
+$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 :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
 IFS=$as_save_IFS
 
 
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
+      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
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-tar@gnu.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+  fi
+  exit 1
 fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
 fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
 }
+as_unset=as_fn_unset
 
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
 
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
 
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# 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 :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
 else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-       done
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# 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 :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
 
 
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
 
-exitcode=0
-if as_func_success; then
-  :
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
 else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
+  as_expr=false
 fi
 
-if as_func_ret_success; then
-  :
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
 else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+  as_basename=false
 fi
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_dirname=false
 fi
 
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf@gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
 
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  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'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
   sed -n '
     p
     /[$]LINENO/=
@@ -473,9 +486,12 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -484,29 +500,18 @@ test \$exitcode = 0") || {
   exit
 }
 
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -521,49 +526,29 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -572,11 +557,11 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-
-exec 7<&0 </dev/null 6>&1
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
@@ -591,14 +576,14 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME='GNU tar'
 PACKAGE_TARNAME='tar'
-PACKAGE_VERSION='1.26'
-PACKAGE_STRING='GNU tar 1.26'
+PACKAGE_VERSION='1.27'
+PACKAGE_STRING='GNU tar 1.27'
 PACKAGE_BUGREPORT='bug-tar@gnu.org'
+PACKAGE_URL='http://www.gnu.org/software/tar/'
 
 ac_unique_file="src/tar.c"
 # Factoring default headers for most tests.
@@ -673,7 +658,14 @@ DEFAULT_QUOTING_STYLE
 DEFAULT_BLOCKING
 DEFAULT_ARCHIVE
 DEFAULT_ARCHIVE_FORMAT
+RSH
 LIBOBJS
+TAR_COND_XATTR_H_FALSE
+TAR_COND_XATTR_H_TRUE
+GNULIB_TEST_WARN_CFLAGS
+GNULIB_WARN_CFLAGS
+WARN_CFLAGS
+WERROR_CFLAGS
 DEFAULT_RMT_COMMAND
 DEFAULT_RMT_DIR
 PU_RMT_PROG
@@ -696,30 +688,63 @@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
 TIME_H_DEFINES_STRUCT_TIMESPEC
 NEXT_AS_FIRST_DIRECTIVE_TIME_H
 NEXT_TIME_H
+GL_GENERATE_SYSEXITS_H_FALSE
+GL_GENERATE_SYSEXITS_H_TRUE
 SYSEXITS_H
 HAVE_SYSEXITS_H
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H
 NEXT_SYSEXITS_H
-NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
-NEXT_SYS_STAT_H
+HAVE_STRINGS_H
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H
 NEXT_STRINGS_H
 NEXT_AS_FIRST_DIRECTIVE_STRING_H
 NEXT_STRING_H
 HAVE_DECL_STRNCASECMP
 HAVE_STRCASECMP
+HAVE_FFS
+GNULIB_FFS
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H
 NEXT_STDLIB_H
 NEXT_AS_FIRST_DIRECTIVE_STDIO_H
 NEXT_STDIO_H
-NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
-NEXT_STDDEF_H
-STDDEF_H
-HAVE_WCHAR_T
-REPLACE_NULL
+GL_GENERATE_STDARG_H_FALSE
+GL_GENERATE_STDARG_H_TRUE
+STDARG_H
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H
 NEXT_STDARG_H
-STDARG_H
+GL_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
+NEXT_SIGNAL_H
+GL_GENERATE_SELINUX_CONTEXT_H_FALSE
+GL_GENERATE_SELINUX_CONTEXT_H_TRUE
+SELINUX_CONTEXT_H
+NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H
+NEXT_SELINUX_SELINUX_H
+LIB_SELINUX
+REPLACE_RAISE
+REPLACE_PTHREAD_SIGMASK
+HAVE_SIGHANDLER_T
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T
+HAVE_STRUCT_SIGACTION_SA_SIGACTION
+HAVE_SIGACTION
+HAVE_SIGINFO_T
+HAVE_SIGSET_T
+HAVE_RAISE
+HAVE_PTHREAD_SIGMASK
+HAVE_POSIX_SIGNALBLOCKING
+GNULIB_SIGACTION
+GNULIB_SIGPROCMASK
+GNULIB_SIGNAL_H_SIGPIPE
+GNULIB_RAISE
+GNULIB_PTHREAD_SIGMASK
+USE_ACL
+LIB_ACL
+HAVE__BOOL
+GL_GENERATE_STDBOOL_H_FALSE
+GL_GENERATE_STDBOOL_H_TRUE
+STDBOOL_H
 REPLACE_TIMEGM
 REPLACE_NANOSLEEP
 REPLACE_MKTIME
@@ -741,6 +766,7 @@ REPLACE_STRNDUP
 REPLACE_STRNCAT
 REPLACE_STRERROR_R
 REPLACE_STRERROR
+REPLACE_STRCHRNUL
 REPLACE_STRCASESTR
 REPLACE_STRSTR
 REPLACE_STRDUP
@@ -765,6 +791,8 @@ HAVE_DECL_MEMRCHR
 HAVE_MEMPCPY
 HAVE_DECL_MEMMEM
 HAVE_MEMCHR
+HAVE_FFSLL
+HAVE_FFSL
 HAVE_MBSLEN
 GNULIB_STRVERSCMP
 GNULIB_STRSIGNAL
@@ -801,9 +829,29 @@ GNULIB_MEMRCHR
 GNULIB_MEMPCPY
 GNULIB_MEMMEM
 GNULIB_MEMCHR
+GNULIB_FFSLL
+GNULIB_FFSL
 LOCALE_FR_UTF8
 LOCALE_ZH_CN
 LOCALE_JA
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H
+NEXT_LOCALE_H
+HAVE_XLOCALE_H
+NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
+NEXT_STDDEF_H
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
+STDDEF_H
+HAVE_WCHAR_T
+REPLACE_NULL
+REPLACE_STRUCT_LCONV
+REPLACE_DUPLOCALE
+REPLACE_SETLOCALE
+REPLACE_LOCALECONV
+HAVE_DUPLOCALE
+GNULIB_DUPLOCALE
+GNULIB_SETLOCALE
+GNULIB_LOCALECONV
 LOCALCHARSET_TESTS_ENVIRONMENT
 GLIBC21
 HAVE_LANGINFO_YESEXPR
@@ -816,6 +864,7 @@ NEXT_LANGINFO_H
 REPLACE_NL_LANGINFO
 HAVE_NL_LANGINFO
 GNULIB_NL_LANGINFO
+REPLACE_TOWLOWER
 REPLACE_ISWCNTRL
 HAVE_WCTYPE_H
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
@@ -831,13 +880,15 @@ GNULIB_WCTRANS
 GNULIB_ISWCTYPE
 GNULIB_WCTYPE
 GNULIB_ISWBLANK
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
+NEXT_INTTYPES_H
 UINT64_MAX_EQ_ULONG_MAX
 UINT32_MAX_LT_UINTMAX_MAX
+PRIPTR_PREFIX
+PRI_MACROS_BROKEN
 INT64_MAX_EQ_LONG_MAX
 INT32_MAX_LT_INTMAX_MAX
-PRIPTR_PREFIX
-NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
-NEXT_INTTYPES_H
+REPLACE_STRTOIMAX
 HAVE_DECL_STRTOUMAX
 HAVE_DECL_STRTOIMAX
 HAVE_DECL_IMAXDIV
@@ -846,7 +897,8 @@ GNULIB_STRTOUMAX
 GNULIB_STRTOIMAX
 GNULIB_IMAXDIV
 GNULIB_IMAXABS
-PRI_MACROS_BROKEN
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
 STDINT_H
 WINT_T_SUFFIX
 WCHAR_T_SUFFIX
@@ -872,10 +924,9 @@ HAVE_INTTYPES_H
 HAVE_WCHAR_H
 HAVE_UNSIGNED_LONG_LONG_INT
 HAVE_LONG_LONG_INT
-HAVE__BOOL
-STDBOOL_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H
 NEXT_SYS_TIME_H
+REPLACE_STRUCT_TIMEVAL
 REPLACE_GETTIMEOFDAY
 HAVE_SYS_TIME_H
 HAVE_STRUCT_TIMEVAL
@@ -883,15 +934,17 @@ HAVE_GETTIMEOFDAY
 GNULIB_GETTIMEOFDAY
 LTLIBINTL
 LIBINTL
+GNULIB_GL_UNISTD_H_GETOPT
+GETOPT_H
 HAVE_GETOPT_H
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
 NEXT_GETOPT_H
-FNMATCH_H
-FLOAT_H
-NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
-NEXT_FLOAT_H
-NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
-NEXT_FCNTL_H
+WINDOWS_64_BIT_ST_SIZE
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
+NEXT_SYS_STAT_H
+WINDOWS_64_BIT_OFF_T
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
+NEXT_SYS_TYPES_H
 REPLACE_VSPRINTF
 REPLACE_VSNPRINTF
 REPLACE_VPRINTF
@@ -900,6 +953,7 @@ REPLACE_VDPRINTF
 REPLACE_VASPRINTF
 REPLACE_TMPFILE
 REPLACE_STDIO_WRITE_FUNCS
+REPLACE_STDIO_READ_FUNCS
 REPLACE_SPRINTF
 REPLACE_SNPRINTF
 REPLACE_RENAMEAT
@@ -920,11 +974,14 @@ REPLACE_FPURGE
 REPLACE_FPRINTF
 REPLACE_FOPEN
 REPLACE_FFLUSH
+REPLACE_FDOPEN
 REPLACE_FCLOSE
 REPLACE_DPRINTF
 HAVE_VDPRINTF
 HAVE_VASPRINTF
 HAVE_RENAMEAT
+HAVE_POPEN
+HAVE_PCLOSE
 HAVE_FTELLO
 HAVE_FSEEKO
 HAVE_DPRINTF
@@ -943,11 +1000,15 @@ GNULIB_VPRINTF
 GNULIB_VFPRINTF_POSIX
 GNULIB_VFPRINTF
 GNULIB_VDPRINTF
+GNULIB_VSCANF
+GNULIB_VFSCANF
 GNULIB_VASPRINTF
 GNULIB_TMPFILE
 GNULIB_STDIO_H_SIGPIPE
+GNULIB_STDIO_H_NONBLOCKING
 GNULIB_SPRINTF_POSIX
 GNULIB_SNPRINTF
+GNULIB_SCANF
 GNULIB_RENAMEAT
 GNULIB_RENAME
 GNULIB_REMOVE
@@ -958,25 +1019,44 @@ GNULIB_PRINTF_POSIX
 GNULIB_PRINTF
 GNULIB_POPEN
 GNULIB_PERROR
+GNULIB_PCLOSE
 GNULIB_OBSTACK_PRINTF_POSIX
 GNULIB_OBSTACK_PRINTF
 GNULIB_GETLINE
 GNULIB_GETDELIM
+GNULIB_GETCHAR
+GNULIB_GETC
 GNULIB_FWRITE
 GNULIB_FTELLO
 GNULIB_FTELL
 GNULIB_FSEEKO
 GNULIB_FSEEK
+GNULIB_FSCANF
 GNULIB_FREOPEN
+GNULIB_FREAD
 GNULIB_FPUTS
 GNULIB_FPUTC
 GNULIB_FPURGE
 GNULIB_FPRINTF_POSIX
 GNULIB_FPRINTF
 GNULIB_FOPEN
+GNULIB_FGETS
+GNULIB_FGETC
 GNULIB_FFLUSH
+GNULIB_FDOPEN
 GNULIB_FCLOSE
 GNULIB_DPRINTF
+GL_GENERATE_FNMATCH_H_FALSE
+GL_GENERATE_FNMATCH_H_TRUE
+FNMATCH_H
+REPLACE_ITOLD
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
+FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
+NEXT_FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
+NEXT_FCNTL_H
 REPLACE_OPENAT
 REPLACE_OPEN
 REPLACE_FCNTL
@@ -984,6 +1064,7 @@ HAVE_OPENAT
 HAVE_FCNTL
 GNULIB_OPENAT
 GNULIB_OPEN
+GNULIB_NONBLOCKING
 GNULIB_FCNTL
 REPLACE_UTIMENSAT
 REPLACE_STAT
@@ -1016,6 +1097,7 @@ GNULIB_LSTAT
 GNULIB_LCHMOD
 GNULIB_FUTIMENS
 GNULIB_FSTATAT
+GNULIB_FSTAT
 GNULIB_FCHMODAT
 EOVERFLOW_VALUE
 EOVERFLOW_HIDDEN
@@ -1023,30 +1105,43 @@ ENOLINK_VALUE
 ENOLINK_HIDDEN
 EMULTIHOP_VALUE
 EMULTIHOP_HIDDEN
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
 ERRNO_H
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
 NEXT_ERRNO_H
+HAVE_DIRENT_H
 NEXT_AS_FIRST_DIRECTIVE_DIRENT_H
 NEXT_DIRENT_H
 PRAGMA_COLUMNS
 PRAGMA_SYSTEM_HEADER
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE
 INCLUDE_NEXT
-REPLACE_OPENDIR
+pkglibexecdir
+lispdir
 REPLACE_FDOPENDIR
 REPLACE_DIRFD
 REPLACE_CLOSEDIR
+REPLACE_OPENDIR
 HAVE_ALPHASORT
 HAVE_SCANDIR
 HAVE_FDOPENDIR
 HAVE_DECL_FDOPENDIR
 HAVE_DECL_DIRFD
+HAVE_CLOSEDIR
+HAVE_REWINDDIR
+HAVE_READDIR
+HAVE_OPENDIR
 GNULIB_ALPHASORT
 GNULIB_SCANDIR
 GNULIB_FDOPENDIR
 GNULIB_DIRFD
-pkglibexecdir
-lispdir
+GNULIB_CLOSEDIR
+GNULIB_REWINDDIR
+GNULIB_READDIR
+GNULIB_OPENDIR
+HAVE_WINSOCK2_H
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
 LIB_CLOCK_GETTIME
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
 UNISTD_H_HAVE_WINSOCK2_H
@@ -1059,17 +1154,20 @@ REPLACE_SYMLINK
 REPLACE_SLEEP
 REPLACE_RMDIR
 REPLACE_READLINK
+REPLACE_READ
 REPLACE_PWRITE
 REPLACE_PREAD
 REPLACE_LSEEK
 REPLACE_LINKAT
 REPLACE_LINK
 REPLACE_LCHOWN
+REPLACE_ISATTY
 REPLACE_GETPAGESIZE
 REPLACE_GETGROUPS
 REPLACE_GETLOGIN_R
 REPLACE_GETDOMAINNAME
 REPLACE_GETCWD
+REPLACE_FTRUNCATE
 REPLACE_FCHOWNAT
 REPLACE_DUP2
 REPLACE_DUP
@@ -1078,10 +1176,12 @@ REPLACE_CHOWN
 HAVE_SYS_PARAM_H
 HAVE_OS_H
 HAVE_DECL_TTYNAME_R
+HAVE_DECL_SETHOSTNAME
 HAVE_DECL_GETUSERSHELL
 HAVE_DECL_GETPAGESIZE
 HAVE_DECL_GETLOGIN_R
 HAVE_DECL_GETDOMAINNAME
+HAVE_DECL_FDATASYNC
 HAVE_DECL_FCHDIR
 HAVE_DECL_ENVIRON
 HAVE_USLEEP
@@ -1089,6 +1189,7 @@ HAVE_UNLINKAT
 HAVE_SYMLINKAT
 HAVE_SYMLINK
 HAVE_SLEEP
+HAVE_SETHOSTNAME
 HAVE_READLINKAT
 HAVE_READLINK
 HAVE_PWRITE
@@ -1098,6 +1199,7 @@ HAVE_PIPE
 HAVE_LINKAT
 HAVE_LINK
 HAVE_LCHOWN
+HAVE_GROUP_MEMBER
 HAVE_GETPAGESIZE
 HAVE_GETLOGIN
 HAVE_GETHOSTNAME
@@ -1105,6 +1207,7 @@ HAVE_GETGROUPS
 HAVE_GETDTABLESIZE
 HAVE_FTRUNCATE
 HAVE_FSYNC
+HAVE_FDATASYNC
 HAVE_FCHOWNAT
 HAVE_FCHDIR
 HAVE_FACCESSAT
@@ -1117,14 +1220,16 @@ GNULIB_USLEEP
 GNULIB_UNLINKAT
 GNULIB_UNLINK
 GNULIB_UNISTD_H_SIGPIPE
-GNULIB_UNISTD_H_GETOPT
+GNULIB_UNISTD_H_NONBLOCKING
 GNULIB_TTYNAME_R
 GNULIB_SYMLINKAT
 GNULIB_SYMLINK
 GNULIB_SLEEP
+GNULIB_SETHOSTNAME
 GNULIB_RMDIR
 GNULIB_READLINKAT
 GNULIB_READLINK
+GNULIB_READ
 GNULIB_PWRITE
 GNULIB_PREAD
 GNULIB_PIPE2
@@ -1133,6 +1238,8 @@ GNULIB_LSEEK
 GNULIB_LINKAT
 GNULIB_LINK
 GNULIB_LCHOWN
+GNULIB_ISATTY
+GNULIB_GROUP_MEMBER
 GNULIB_GETUSERSHELL
 GNULIB_GETPAGESIZE
 GNULIB_GETLOGIN_R
@@ -1144,6 +1251,7 @@ GNULIB_GETDOMAINNAME
 GNULIB_GETCWD
 GNULIB_FTRUNCATE
 GNULIB_FSYNC
+GNULIB_FDATASYNC
 GNULIB_FCHOWNAT
 GNULIB_FCHDIR
 GNULIB_FACCESSAT
@@ -1151,15 +1259,20 @@ GNULIB_EUIDACCESS
 GNULIB_ENVIRON
 GNULIB_DUP3
 GNULIB_DUP2
+GNULIB_DUP
 GNULIB_CLOSE
 GNULIB_CHOWN
+GNULIB_CHDIR
 REPLACE_WCTOMB
 REPLACE_UNSETENV
 REPLACE_STRTOD
 REPLACE_SETENV
 REPLACE_REALPATH
 REPLACE_REALLOC
+REPLACE_RANDOM_R
 REPLACE_PUTENV
+REPLACE_PTSNAME_R
+REPLACE_PTSNAME
 REPLACE_MKSTEMP
 REPLACE_MBTOWC
 REPLACE_MALLOC
@@ -1174,11 +1287,15 @@ HAVE_STRTOLL
 HAVE_STRTOD
 HAVE_DECL_SETENV
 HAVE_SETENV
+HAVE_SECURE_GETENV
 HAVE_RPMATCH
 HAVE_REALPATH
 HAVE_RANDOM_R
 HAVE_RANDOM_H
+HAVE_RANDOM
+HAVE_PTSNAME_R
 HAVE_PTSNAME
+HAVE_POSIX_OPENPT
 HAVE_MKSTEMPS
 HAVE_MKSTEMP
 HAVE_MKOSTEMPS
@@ -1198,12 +1315,16 @@ GNULIB_STRTOULL
 GNULIB_STRTOLL
 GNULIB_STRTOD
 GNULIB_SETENV
+GNULIB_SECURE_GETENV
 GNULIB_RPMATCH
 GNULIB_REALPATH
 GNULIB_REALLOC_POSIX
 GNULIB_RANDOM_R
+GNULIB_RANDOM
 GNULIB_PUTENV
+GNULIB_PTSNAME_R
 GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
 GNULIB_MKSTEMPS
 GNULIB_MKSTEMP
 GNULIB_MKOSTEMPS
@@ -1310,14 +1431,6 @@ GNULIB_MBRTOWC
 GNULIB_MBSINIT
 GNULIB_WCTOB
 GNULIB_BTOWC
-GETOPT_H
-ALLOCA_H
-ALLOCA
-GL_COND_LIBTOOL_FALSE
-GL_COND_LIBTOOL_TRUE
-EGREP
-GREP
-CPP
 host_os
 host_vendor
 host_cpu
@@ -1326,12 +1439,24 @@ build_os
 build_vendor
 build_cpu
 build
+GL_GENERATE_ALLOCA_H_FALSE
+GL_GENERATE_ALLOCA_H_TRUE
+ALLOCA_H
+ALLOCA
+GL_COND_LIBTOOL_FALSE
+GL_COND_LIBTOOL_TRUE
+ARFLAGS
+AR
+EGREP
+GREP
+CPP
 YFLAGS
 YACC
 RANLIB
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -1347,6 +1472,8 @@ CFLAGS
 CC
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -1400,6 +1527,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -1413,11 +1541,16 @@ enable_option_checking
 enable_silent_rules
 enable_dependency_tracking
 enable_largefile
+with_posix_acls
+enable_acl
 with_included_regex
+with_selinux
 with_packager
 with_packager_version
 with_packager_bug_reports
 with_rmt
+enable_gcc_warnings
+with_xattrs
 with_compress
 with_gzip
 with_bzip2
@@ -1444,6 +1577,7 @@ YACC
 YFLAGS
 CPP
 DEFAULT_RMT_DIR
+RSH
 DEFAULT_ARCHIVE_FORMAT
 DEFAULT_ARCHIVE
 DEFAULT_BLOCKING
@@ -1510,8 +1644,9 @@ do
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1556,8 +1691,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_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1583,8 +1717,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_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1788,8 +1921,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_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1805,8 +1937,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_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1836,17 +1967,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1855,7 +1986,7 @@ Try \`$0 --help' for more information." >&2
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1863,15 +1994,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1894,8 +2023,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1909,8 +2037,6 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1925,11 +2051,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1968,13 +2092,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -2000,7 +2122,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 tar 1.26 to adapt to many kinds of systems.
+\`configure' configures GNU tar 1.27 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2014,7 +2136,7 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
+  -q, --quiet, --silent   do not print \`checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
   -C, --config-cache      alias for \`--cache-file=config.cache'
   -n, --no-create         do not create output files
@@ -2070,7 +2192,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU tar 1.26:";;
+     short | recursive ) echo "Configuration of GNU tar 1.27:";;
    esac
   cat <<\_ACEOF
 
@@ -2078,11 +2200,16 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --disable-largefile     omit support for large files
+  --disable-acl           do not support ACLs
+  --enable-gcc-warnings   turn on many GCC warnings (for developers; best with
+                          GNU make)
   --disable-rpath         do not hardcode runtime library paths
   --disable-nls           do not use Native Language Support
   --enable-backup-scripts Create and install backup and restore scripts
@@ -2090,16 +2217,19 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --without-posix-acls    do not use POSIX.1e access control lists
   --without-included-regex
                           don't compile regex; this is the default on systems
                           with recent-enough versions of the GNU C Library
                           (use with caution on other systems).
+  --without-selinux       do not use SELinux, even on systems with SELinux
   --with-packager         String identifying the packager of this software
   --with-packager-version Packager-specific version information
   --with-packager-bug-reports
                           Packager info for bug reports (URL/e-mail/...)
   --with-rmt=FILE         Use FILE as the default `rmt' program. Do not build
                           included copy of `rmt'.
+  --without-xattrs        don't use linux extended attributes
   --with-compress=PROG    use PROG as compress compressor program
   --with-gzip=PROG        use PROG as gzip compressor program
   --with-bzip2=PROG       use PROG as bzip2 compressor program
@@ -2107,7 +2237,7 @@ Optional Packages:
   --with-lzma=PROG        use PROG as lzma compressor program
   --with-lzop=PROG        use PROG as lzop compressor program
   --with-xz=PROG          use PROG as xz compressor program
-  --with-gnu-ld           assume the C compiler uses GNU ld default=no
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
   --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
@@ -2119,10 +2249,11 @@ Some influential environment variables:
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
   LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
-  YACC        The `Yet Another C Compiler' implementation to use. Defaults to
-              the first program found out of: `bison -y', `byacc', `yacc'.
+  YACC        The `Yet Another Compiler Compiler' implementation to use.
+              Defaults to the first program found out of: `bison -y', `byacc',
+              `yacc'.
   YFLAGS      The list of arguments that will be passed by default to $YACC.
               This script will default YFLAGS to the empty string to avoid a
               default value of `-d' given by some make applications.
@@ -2130,6 +2261,7 @@ Some influential environment variables:
   DEFAULT_RMT_DIR
               Define full file name of the directory where to install `rmt'.
               (default: $(libexecdir))
+  RSH         Configure absolute path to default remote shell binary
   DEFAULT_ARCHIVE_FORMAT
               Set the default archive format. Allowed values are: V7, OLDGNU,
               USTAR, POSIX, GNU. Default is GNU
@@ -2146,6 +2278,8 @@ Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
 _ACEOF
 ac_status=$?
 fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU tar configure 1.26
-generated by GNU Autoconf 2.63
+GNU tar configure 1.27
+generated by GNU Autoconf 2.69
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 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
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$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_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\""
+$as_echo "$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
+  $as_echo "$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
+  $as_echo "$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
+# -------------------------------------------------------
+# 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 ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+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
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------ ##
+## Report this to bug-tar@gnu.org ##
+## ------------------------------ ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link 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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$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_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
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(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
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 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
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  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_link
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+        return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+           return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=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
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* 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 $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+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/ *(.*//'`
+  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+  (void) $as_decl_use;
+#else
+  (void) $as_decl_name;
+#endif
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+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 ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+                       if test $ac_lo -le $ac_mid; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+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 ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+                       if test $ac_mid -le $ac_hi; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+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 ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=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
+eval ac_res=\$$4
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
 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 tar $as_me 1.26, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+It was created by GNU tar $as_me 1.27, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2259,8 +3088,8 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
 } >&5
@@ -2297,9 +3126,9 @@ do
       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
     2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      as_fn_append ac_configure_args1 " '$ac_arg'"
       if test $ac_must_keep_next = true; then
        ac_must_keep_next=false # Got value, back to normal.
       else
@@ -2315,13 +3144,13 @@ do
          -* ) ac_must_keep_next=true ;;
        esac
       fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
+      as_fn_append ac_configure_args " '$ac_arg'"
       ;;
     esac
   done
 done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -2333,11 +3162,9 @@ trap 'exit_status=$?
   {
     echo
 
-    cat <<\_ASBOX
-## ---------------- ##
+    $as_echo "## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -2346,13 +3173,13 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -2371,11 +3198,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    cat <<\_ASBOX
-## ----------------- ##
+    $as_echo "## ----------------- ##
 ## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
     echo
     for ac_var in $ac_subst_vars
     do
@@ -2388,11 +3213,9 @@ _ASBOX
     echo
 
     if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
+      $as_echo "## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
       echo
       for ac_var in $ac_subst_files
       do
@@ -2406,11 +3229,9 @@ _ASBOX
     fi
 
     if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
+      $as_echo "## ----------- ##
 ## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
       echo
       cat confdefs.h
       echo
@@ -2424,46 +3245,53 @@ _ASBOX
     exit $exit_status
 ' 0
 for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
+$as_echo "/* confdefs.h */" > confdefs.h
+
 # Predefined preprocessor variables.
 
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_STRING "$PACKAGE_STRING"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
 
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -2474,19 +3302,23 @@ fi
 for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
   test "x$ac_site_file" = xNONE && continue
-  if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
 if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
 $as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -2494,115 +3326,123 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
     esac
   fi
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
 $as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
-ac_header_list="$ac_header_list fcntl.h"
-ac_header_list="$ac_header_list linux/fd.h"
-ac_header_list="$ac_header_list memory.h"
-ac_header_list="$ac_header_list net/errno.h"
-ac_header_list="$ac_header_list sgtty.h"
-ac_header_list="$ac_header_list string.h"
-ac_header_list="$ac_header_list sys/param.h"
-ac_header_list="$ac_header_list sys/device.h"
-ac_header_list="$ac_header_list sys/gentape.h"
-ac_header_list="$ac_header_list sys/inet.h"
-ac_header_list="$ac_header_list sys/io/trioctl.h"
-ac_header_list="$ac_header_list sys/mtio.h"
-ac_header_list="$ac_header_list sys/time.h"
-ac_header_list="$ac_header_list sys/tprintf.h"
-ac_header_list="$ac_header_list sys/tape.h"
-ac_header_list="$ac_header_list unistd.h"
-ac_header_list="$ac_header_list locale.h"
-ac_func_list="$ac_func_list flockfile"
-ac_func_list="$ac_func_list funlockfile"
-ac_header_list="$ac_header_list features.h"
-ac_header_list="$ac_header_list linewrap.h"
-ac_func_list="$ac_func_list pathconf"
-ac_func_list="$ac_func_list btowc"
-ac_func_list="$ac_func_list canonicalize_file_name"
-ac_func_list="$ac_func_list getcwd"
-ac_func_list="$ac_func_list readlink"
-ac_func_list="$ac_func_list realpath"
-ac_func_list="$ac_func_list chown"
-ac_func_list="$ac_func_list fchown"
-ac_header_list="$ac_header_list dirent.h"
-ac_func_list="$ac_func_list fdopendir"
-ac_func_list="$ac_func_list dup2"
-ac_func_list="$ac_func_list fcntl"
-ac_func_list="$ac_func_list fchdir"
-ac_func_list="$ac_func_list mempcpy"
-ac_func_list="$ac_func_list isblank"
-ac_func_list="$ac_func_list iswctype"
-ac_func_list="$ac_func_list mbsrtowcs"
-ac_func_list="$ac_func_list wmemchr"
-ac_func_list="$ac_func_list wmemcpy"
-ac_func_list="$ac_func_list wmempcpy"
-ac_header_list="$ac_header_list wctype.h"
+as_fn_append ac_header_list " fcntl.h"
+as_fn_append ac_header_list " linux/fd.h"
+as_fn_append ac_header_list " memory.h"
+as_fn_append ac_header_list " net/errno.h"
+as_fn_append ac_header_list " sgtty.h"
+as_fn_append ac_header_list " string.h"
+as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " sys/device.h"
+as_fn_append ac_header_list " sys/gentape.h"
+as_fn_append ac_header_list " sys/inet.h"
+as_fn_append ac_header_list " sys/io/trioctl.h"
+as_fn_append ac_header_list " sys/mtio.h"
+as_fn_append ac_header_list " sys/time.h"
+as_fn_append ac_header_list " sys/tprintf.h"
+as_fn_append ac_header_list " sys/tape.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " locale.h"
+as_fn_append ac_func_list " flockfile"
+as_fn_append ac_func_list " funlockfile"
+as_fn_append ac_header_list " features.h"
+as_fn_append ac_header_list " linewrap.h"
+as_fn_append ac_func_list " pathconf"
+as_fn_append ac_func_list " btowc"
+as_fn_append ac_func_list " canonicalize_file_name"
+as_fn_append ac_func_list " getcwd"
+as_fn_append ac_func_list " readlink"
+as_fn_append ac_func_list " realpath"
+as_fn_append ac_func_list " readlinkat"
+as_fn_append ac_func_list " chown"
+as_fn_append ac_func_list " fchown"
+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 " fchdir"
+as_fn_append ac_header_list " dirent.h"
+as_fn_append ac_func_list " fdopendir"
+as_fn_append ac_func_list " fchmodat"
+as_fn_append ac_func_list " lchmod"
+as_fn_append ac_func_list " fcntl"
+as_fn_append ac_func_list " symlink"
+as_fn_append ac_func_list " mempcpy"
+as_fn_append ac_func_list " isblank"
+as_fn_append ac_func_list " iswctype"
+as_fn_append ac_func_list " mbsrtowcs"
+as_fn_append ac_func_list " wmemchr"
+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
-ac_header_list="$ac_header_list stdio_ext.h"
-ac_func_list="$ac_func_list __fpending"
-ac_func_list="$ac_func_list futimens"
-ac_func_list="$ac_func_list getdelim"
-ac_func_list="$ac_func_list getdtablesize"
+as_fn_append ac_header_list " stdio_ext.h"
+as_fn_append ac_func_list " __fpending"
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_func_list " fstatat"
+as_fn_append ac_func_list " futimens"
+as_fn_append ac_func_list " getdelim"
+as_fn_append ac_func_list " getdtablesize"
 gl_getopt_required=GNU
-ac_header_list="$ac_header_list getopt.h"
-ac_func_list="$ac_func_list gettimeofday"
-ac_func_list="$ac_func_list nanotime"
-ac_header_list="$ac_header_list wchar.h"
-ac_header_list="$ac_header_list stdint.h"
-ac_header_list="$ac_header_list inttypes.h"
-ac_func_list="$ac_func_list iswcntrl"
-ac_func_list="$ac_func_list iswblank"
-ac_header_list="$ac_header_list langinfo.h"
-ac_func_list="$ac_func_list lchmod"
-ac_func_list="$ac_func_list link"
-ac_func_list="$ac_func_list linkat"
-ac_func_list="$ac_func_list symlink"
-ac_func_list="$ac_func_list lstat"
-ac_func_list="$ac_func_list mbsinit"
-ac_func_list="$ac_func_list mbrtowc"
-ac_header_list="$ac_header_list sys/mman.h"
-ac_func_list="$ac_func_list mprotect"
-ac_func_list="$ac_func_list memchr"
-ac_func_list="$ac_func_list mkfifo"
-ac_func_list="$ac_func_list mkfifoat"
-ac_func_list="$ac_func_list mknodat"
-ac_func_list="$ac_func_list mknod"
-ac_func_list="$ac_func_list alarm"
-ac_func_list="$ac_func_list nl_langinfo"
-ac_header_list="$ac_header_list priv.h"
-ac_func_list="$ac_func_list readlinkat"
-ac_func_list="$ac_func_list wcscoll"
-ac_func_list="$ac_func_list renameat"
-ac_func_list="$ac_func_list setenv"
-ac_func_list="$ac_func_list sleep"
-ac_func_list="$ac_func_list strdup"
-ac_header_list="$ac_header_list sys/socket.h"
-ac_header_list="$ac_header_list strings.h"
-ac_func_list="$ac_func_list strndup"
-ac_func_list="$ac_func_list symlinkat"
-ac_header_list="$ac_header_list sys/stat.h"
-ac_header_list="$ac_header_list sysexits.h"
-ac_func_list="$ac_func_list localtime_r"
-ac_func_list="$ac_func_list pipe"
-ac_header_list="$ac_header_list utime.h"
-ac_func_list="$ac_func_list futimes"
-ac_func_list="$ac_func_list futimesat"
-ac_func_list="$ac_func_list utimensat"
-ac_func_list="$ac_func_list lutimes"
-ac_func_list="$ac_func_list vasnprintf"
-ac_func_list="$ac_func_list wcrtomb"
-ac_func_list="$ac_func_list wcwidth"
-ac_header_list="$ac_header_list netdb.h"
-ac_header_list="$ac_header_list sys/wait.h"
-ac_header_list="$ac_header_list pwd.h"
-ac_header_list="$ac_header_list grp.h"
-ac_func_list="$ac_func_list setlocale"
-ac_func_list="$ac_func_list fchmod"
-ac_func_list="$ac_func_list fsync"
+as_fn_append ac_header_list " getopt.h"
+as_fn_append ac_func_list " gettimeofday"
+as_fn_append ac_func_list " nanotime"
+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"
+as_fn_append ac_func_list " link"
+as_fn_append ac_func_list " openat"
+as_fn_append ac_func_list " linkat"
+as_fn_append ac_header_list " xlocale.h"
+as_fn_append ac_func_list " lstat"
+as_fn_append ac_func_list " mbsinit"
+as_fn_append ac_func_list " mbrtowc"
+as_fn_append ac_header_list " sys/mman.h"
+as_fn_append ac_func_list " mprotect"
+as_fn_append ac_func_list " mkdirat"
+as_fn_append ac_func_list " mkfifo"
+as_fn_append ac_func_list " mkfifoat"
+as_fn_append ac_func_list " mknodat"
+as_fn_append ac_func_list " mknod"
+as_fn_append ac_func_list " nl_langinfo"
+as_fn_append ac_header_list " priv.h"
+as_fn_append ac_func_list " wcscoll"
+as_fn_append ac_func_list " renameat"
+as_fn_append ac_func_list " secure_getenv"
+as_fn_append ac_header_list " selinux/selinux.h"
+as_fn_append ac_func_list " setenv"
+as_fn_append ac_func_list " sleep"
+as_fn_append ac_func_list " snprintf"
+as_fn_append ac_func_list " strdup"
+as_fn_append ac_header_list " strings.h"
+as_fn_append ac_func_list " strndup"
+as_fn_append ac_func_list " strtoumax"
+as_fn_append ac_func_list " symlinkat"
+as_fn_append ac_header_list " sysexits.h"
+as_fn_append ac_func_list " localtime_r"
+as_fn_append ac_func_list " pipe"
+as_fn_append ac_func_list " unlinkat"
+as_fn_append ac_header_list " utime.h"
+as_fn_append ac_func_list " futimes"
+as_fn_append ac_func_list " futimesat"
+as_fn_append ac_func_list " utimensat"
+as_fn_append ac_func_list " lutimes"
+as_fn_append ac_func_list " vasnprintf"
+as_fn_append ac_func_list " wcrtomb"
+as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_header_list " netdb.h"
+as_fn_append ac_header_list " sys/wait.h"
+as_fn_append ac_header_list " pwd.h"
+as_fn_append ac_header_list " grp.h"
+as_fn_append ac_func_list " setlocale"
+as_fn_append ac_func_list " fchmod"
+as_fn_append ac_func_list " fsync"
 gt_needs="$gt_needs need-formatstring-macros"
 # Check that the precious variables saved in the cache have kept the same
 # value.
@@ -2614,11 +3454,11 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
@@ -2628,17 +3468,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
        ac_old_val_w=`echo x $ac_old_val`
        ac_new_val_w=`echo x $ac_new_val`
        if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
          ac_cache_corrupted=:
        else
-         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
          eval $ac_var=\$ac_old_val
        fi
-       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
 $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
 $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
@@ -2650,43 +3490,20 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
     esac
     case " $ac_configure_args " in
       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
     esac
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -2713,9 +3530,7 @@ for ac_dir in build-aux "$srcdir"/build-aux; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -2730,7 +3545,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 ac_config_headers="$ac_config_headers config.h"
 
 
-am__api_version='1.11'
+am__api_version='1.12'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2746,10 +3561,10 @@ am__api_version='1.11'
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2757,11 +3572,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -2769,7 +3584,7 @@ case $as_dir/ in
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -2798,7 +3613,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -2814,7 +3629,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2825,68 +3640,73 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5
-$as_echo "$as_me: error: unsafe absolute working directory name" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5
-$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
    # Ok.
    :
 else
-   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -2913,8 +3733,8 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -2926,17 +3746,17 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -2947,24 +3767,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2974,9 +3794,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -2987,24 +3807,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3013,7 +3833,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3026,10 +3846,10 @@ fi
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3037,9 +3857,9 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
+    for ac_prog in mkdir gmkdir; do
         for ac_exec_ext in '' $ac_executable_extensions; do
-          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+          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) '* | \
@@ -3049,11 +3869,12 @@ do
           esac
         done
        done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 
+  test -d ./--version && rmdir ./--version
   if test "${ac_cv_path_mkdir+set}" = set; then
     MKDIR_P="$ac_cv_path_mkdir -p"
   else
@@ -3061,27 +3882,19 @@ fi
     # value for MKDIR_P within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -3092,24 +3905,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3117,11 +3930,11 @@ fi
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3129,7 +3942,7 @@ SHELL = /bin/sh
 all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 case `${MAKE-make} -f conftest.make 2>/dev/null` in
   *@@@%%%=?*=@@@%%%*)
     eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3139,11 +3952,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -3158,15 +3971,42 @@ fi
 rmdir .tst 2>/dev/null
 
 # Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then
+if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
 AM_BACKSLASH='\'
 
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
@@ -3175,9 +4015,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -3193,7 +4031,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='tar'
- VERSION='1.26'
+ VERSION='1.27'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3221,20 +4059,26 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# 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}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
 
-
-{ $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
 $as_echo_n "checking how to create a ustar tar archive... " >&6; }
 # Loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
 _am_tools=${am_cv_prog_tar_ustar-$_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 `-'.
+# Solaris sh will not grok spaces in the rhs of '-'.
 for _am_tool in $_am_tools
 do
   case $_am_tool in
@@ -3301,13 +4145,13 @@ do
 done
 rm -rf conftest.dir
 
-if test "${am_cv_prog_tar_ustar+set}" = set; then
+if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -3317,15 +4161,42 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 # Enable silent rules by default:
 # Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then
+if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=0;;
 esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
 AM_BACKSLASH='\'
 
 
@@ -3337,9 +4208,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3350,24 +4221,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3377,9 +4248,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3390,24 +4261,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3416,7 +4287,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3430,9 +4301,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3443,24 +4314,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3470,9 +4341,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3484,18 +4355,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -3514,10 +4385,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3529,9 +4400,9 @@ if test -z "$CC"; then
   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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3542,24 +4413,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3573,9 +4444,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3586,24 +4457,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3616,7 +4487,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3627,57 +4498,37 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3693,8 +4544,8 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
@@ -3710,17 +4561,17 @@ do
 done
 rm -f $ac_rmfiles
 
-if { (ac_try="$ac_link_default"
+if { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3737,7 +4588,7 @@ do
        # certainly right.
        break;;
     *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
        then :; else
           ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
        fi
@@ -3756,84 +4607,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
 else
   ac_file=''
 fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
-  $as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
 ac_exeext=$ac_cv_exeext
 
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 $as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3848,32 +4656,83 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
 fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 $as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { 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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3885,17 +4744,17 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+if { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3908,31 +4767,23 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
 fi
-
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 $as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3946,37 +4797,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -3985,20 +4815,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4009,35 +4835,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4048,36 +4850,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-       ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4088,42 +4866,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 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
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -4140,23 +4893,18 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4208,32 +4956,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -4244,17 +4969,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -4273,14 +5000,14 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 $as_echo_n "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'.
+# 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
@@ -4301,18 +5028,19 @@ if test "$am__include" = "#"; then
 fi
 
 
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 $as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
   enableval=$enable_dependency_tracking;
 fi
 
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -4326,17 +5054,18 @@ fi
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -4370,16 +5099,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -4388,16 +5117,16 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -4436,7 +5165,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -4455,9 +5184,9 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -4468,24 +5197,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4495,9 +5224,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -4508,24 +5237,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4534,7 +5263,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4548,9 +5277,9 @@ for ac_prog in 'bison -y' byacc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_YACC+set}" = set; then
+if ${ac_cv_prog_YACC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$YACC"; then
@@ -4561,24 +5290,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    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_YACC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 YACC=$ac_cv_prog_YACC
 if test -n "$YACC"; then
-  { $as_echo "$as_me:$LINENO: result: $YACC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
 $as_echo "$YACC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 done
 test -n "$YACC" || YACC="yacc"
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-   test -f conftest2.$ac_objext && { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-      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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        test -f conftest2.$ac_objext && { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
-      then
-       # cc works too.
-       :
-      else
-       # cc exists but doesn't like -o.
-       eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-
-cat >>confdefs.h <<\_ACEOF
-#define NO_MINUS_C_MINUS_O 1
-_ACEOF
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != 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
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
 
 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
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 $as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -4830,11 +5344,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -4843,78 +5353,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -4926,7 +5392,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 $as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -4937,11 +5403,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -4950,87 +5412,40 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -5040,9 +5455,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5053,10 +5468,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  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"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -5073,7 +5488,7 @@ case `"$ac_path_GREP" --version 2>&1` in
     $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_GREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_GREP="$ac_path_GREP"
@@ -5088,26 +5503,24 @@ esac
       $ac_path_GREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 $as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5121,10 +5534,10 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  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"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -5141,7 +5554,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
     $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_EGREP="$ac_path_EGREP"
@@ -5156,12 +5569,10 @@ esac
       $ac_path_EGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 $as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Amsterdam" >/dev/null 2>&1; then :
+  gl_cv_c_amsterdam_compiler=yes
+else
+  gl_cv_c_amsterdam_compiler=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+  if test -z "$AR"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      AR='cc -c.a'
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='-o'
+      fi
+    else
+                  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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(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
+  test -z "$as_dir" && as_dir=.
+    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}ar"
+    $as_echo "$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
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(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
+  test -z "$as_dir" && as_dir=.
+    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="ar"
+    $as_echo "$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
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR="ar"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+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
+  fi
+
+
+  if test -z "$RANLIB"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      RANLIB=':'
+    else
+            if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    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_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$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
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    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_RANLIB="ranlib"
+    $as_echo "$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_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+    fi
+  fi
+
+
+if test "x$CC" != xcc; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
+$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+fi
+set dummy $CC; ac_cc=`$as_echo "$2" |
+                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+  $as_echo_n "(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 ()
@@ -5198,48 +5846,146 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
+# 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+   test -f conftest2.$ac_objext && { { 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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+then
+  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+  if test "x$CC" != xcc; then
+    # Test first that cc exists at all.
+    if { ac_try='cc -c conftest.$ac_ext >&5'
+  { { 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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+      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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+        test -f conftest2.$ac_objext && { { 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\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+      then
+       # cc works too.
+       :
+      else
+       # cc exists but doesn't like -o.
+       eval ac_cv_prog_cc_${ac_cc}_c_o=no
+      fi
+    fi
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-       ac_cv_header_stdc=no
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != 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
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -5249,18 +5995,14 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -5270,14 +6012,10 @@ 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
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -5304,118 +6042,33 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -5426,141 +6079,8 @@ done
 
 
 
-
-
-  if test "${ac_cv_header_minix_config_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
-$as_echo_n "checking for minix/config.h... " >&6; }
-if test "${ac_cv_header_minix_config_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
-$as_echo "$ac_cv_header_minix_config_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5
-$as_echo_n "checking minix/config.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <minix/config.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5
-$as_echo_n "checking minix/config.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <minix/config.h>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: minix/config.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
-$as_echo_n "checking for minix/config.h... " >&6; }
-if test "${ac_cv_header_minix_config_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_minix_config_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
-$as_echo "$ac_cv_header_minix_config_h" >&6; }
-
-fi
-if test "x$ac_cv_header_minix_config_h" = x""yes; then
+  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=
@@ -5569,44 +6089,26 @@ fi
 
   if test "$MINIX" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_SOURCE 1
-_ACEOF
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_1_SOURCE 2
-_ACEOF
-
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define _MINIX 1
-_ACEOF
 
-  fi
+$as_echo "#define _MINIX 1" >>confdefs.h
 
-        case "$host_os" in
-    hpux*)
 
-cat >>confdefs.h <<\_ACEOF
-#define _XOPEN_SOURCE 500
-_ACEOF
-
-      ;;
-  esac
+$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
 
+  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #         define __EXTENSIONS__ 1
@@ -5619,57 +6121,75 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_safe_to_define___extensions__=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_safe_to_define___extensions__=no
+  ac_cv_safe_to_define___extensions__=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
   test $ac_cv_safe_to_define___extensions__ = yes &&
-    cat >>confdefs.h <<\_ACEOF
-#define __EXTENSIONS__ 1
-_ACEOF
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
 
-  cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
 
-  cat >>confdefs.h <<\_ACEOF
-#define _GNU_SOURCE 1
-_ACEOF
+  $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
 
-  cat >>confdefs.h <<\_ACEOF
-#define _POSIX_PTHREAD_SEMANTICS 1
-_ACEOF
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
 
-  cat >>confdefs.h <<\_ACEOF
-#define _TANDEM_SOURCE 1
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if ${ac_cv_should_define__xopen_source+:} false; then :
+  $as_echo_n "(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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+$as_echo "$ac_cv_should_define__xopen_source" >&6; }
+  test $ac_cv_should_define__xopen_source = yes &&
+    $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
 
 
 
@@ -5678,17 +6198,13 @@ _ACEOF
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_source+set}" = set; then
+if ${ac_cv_sys_largefile_source+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h> /* for off_t */
      #include <stdio.h>
@@ -5701,43 +6217,12 @@ int (*fp) (FILE *, off_t, int) = fseeko;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_sys_largefile_source=no; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _LARGEFILE_SOURCE 1
 #include <sys/types.h> /* for off_t */
@@ -5751,43 +6236,16 @@ int (*fp) (FILE *, off_t, int) = fseeko;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_sys_largefile_source=1; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_cv_sys_largefile_source=unknown
   break
 done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
 $as_echo "$ac_cv_sys_largefile_source" >&6; }
 case $ac_cv_sys_largefile_source in #(
   no | unknown) ;;
@@ -5804,26 +6262,224 @@ rm -rf conftest*
 # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
 if test $ac_cv_sys_largefile_source != unknown; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FSEEKO 1
+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
+         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 :
+  ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+         break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=no; break
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
 
-   case $ac_cv_prog_cc_stdc in
-  no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;;
-  *) { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5
+  ;
+  return 0;
+}
+_ACEOF
+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
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  fi
+
+
+$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h
+
+fi
+
+   case $ac_cv_prog_cc_stdc in #(
+  no) :
+    ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #(
+  *) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
-if test "${ac_cv_prog_cc_c99+set}" = set; then
+if ${ac_cv_prog_cc_c99+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c99=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdbool.h>
@@ -5962,35 +6618,12 @@ main ()
   return 0;
 }
 _ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c99=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c99" != "xno" && break
 done
@@ -6001,36 +6634,31 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c99" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c99"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
 $as_echo "$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_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
 else
-  { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -6082,32 +6710,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -6118,67 +6723,72 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$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_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
 else
   ac_cv_prog_cc_stdc=no
 fi
 
-
 fi
-
  ;;
 esac
-  { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
-  if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  if ${ac_cv_prog_cc_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 
-  case $ac_cv_prog_cc_stdc in
-  no) { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  '') { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  *) { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+  case $ac_cv_prog_cc_stdc in #(
+  no) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;; #(
+  '') :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;; #(
+  *) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
 esac
 
 
 
 
-
+  # Code from module acl:
   # Code from module alloca:
   # Code from module alloca-opt:
+  # Code from module allocator:
   # Code from module areadlink:
   # Code from module areadlinkat:
-  # Code from module arg-nonnull:
   # Code from module argmatch:
   # Code from module argp:
   # Code from module argp-version-etc:
+  # Code from module at-internal:
   # Code from module backupfile:
   # Code from module bitrotate:
   # Code from module btowc:
-  # Code from module c++defs:
   # Code from module c-ctype:
+  # Code from module c-strcase:
+  # Code from module c-strcaseeq:
   # Code from module canonicalize-lgpl:
+  # Code from module careadlinkat:
+  # Code from module chdir:
   # Code from module chdir-long:
   # Code from module chown:
   # Code from module clock-time:
   # Code from module cloexec:
   # Code from module close:
-  # Code from module close-hook:
   # Code from module close-stream:
+  # Code from module closedir:
   # Code from module closeout:
   # Code from module configmake:
   # Code from module d-ino:
@@ -6189,6 +6799,7 @@ esac
   # Code from module dirname-lgpl:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dup:
   # Code from module dup2:
   # Code from module environ:
   # Code from module errno:
@@ -6197,23 +6808,31 @@ esac
   # Code from module exitfail:
   # Code from module extensions:
 
+  # Code from module extern-inline:
   # Code from module fchdir:
-  # Code from module fclose:
+  # Code from module fchmodat:
+  # Code from module fchownat:
   # Code from module fcntl:
   # Code from module fcntl-h:
+  # Code from module fd-hook:
   # Code from module fdopendir:
   # Code from module fdutimensat:
   # Code from module fileblocks:
+  # Code from module filename:
   # Code from module filenamecat-lgpl:
   # Code from module float:
   # Code from module fnmatch:
   # Code from module fnmatch-gnu:
   # Code from module fpending:
+  # Code from module fseek:
   # Code from module fseeko:
 
+  # Code from module fstat:
+  # Code from module fstatat:
   # Code from module full-write:
   # Code from module futimens:
   # Code from module getcwd:
+  # Code from module getcwd-lgpl:
   # Code from module getdelim:
   # Code from module getdtablesize:
   # Code from module getline:
@@ -6229,22 +6848,27 @@ esac
   # Code from module havelib:
   # Code from module human:
   # Code from module include_next:
-  # Code from module inline:
   # Code from module intprops:
   # Code from module inttostr:
   # Code from module inttypes:
+  # Code from module inttypes-incomplete:
   # Code from module iswblank:
   # Code from module langinfo:
+  # Code from module largefile:
+
   # Code from module lchown:
   # Code from module link:
   # Code from module link-follow:
   # Code from module linkat:
   # Code from module localcharset:
+  # Code from module locale:
+  # Code from module localeconv:
   # Code from module lseek:
   # Code from module lstat:
   # Code from module malloc-gnu:
   # Code from module malloc-posix:
   # Code from module malloca:
+  # Code from module manywarnings:
   # Code from module mbchar:
   # Code from module mbrtowc:
   # Code from module mbscasecmp:
@@ -6256,49 +6880,74 @@ esac
   # Code from module mempcpy:
   # Code from module memrchr:
   # Code from module mkdir:
+  # Code from module mkdirat:
   # Code from module mkdtemp:
   # Code from module mkfifo:
   # Code from module mkfifoat:
   # Code from module mknod:
   # Code from module mktime:
   # Code from module modechange:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nl_langinfo:
+  # Code from module nocrash:
   # Code from module obstack:
   # Code from module open:
   # Code from module openat:
   # Code from module openat-die:
+  # Code from module openat-h:
+  # Code from module opendir:
   # Code from module parse-datetime:
   # Code from module pathmax:
   # Code from module priv-set:
   # Code from module progname:
+  # Code from module qacl:
   # Code from module quote:
   # Code from module quotearg:
   # Code from module quotearg-simple:
+  # Code from module raise:
   # Code from module rawmemchr:
+  # Code from module read:
+  # Code from module readdir:
   # Code from module readlink:
   # Code from module readlinkat:
   # Code from module realloc-posix:
   # Code from module regex:
   # Code from module rename:
   # Code from module renameat:
+  # Code from module rewinddir:
   # Code from module rmdir:
+  # Code from module root-uid:
   # Code from module rpmatch:
   # Code from module safe-read:
   # Code from module safe-write:
   # Code from module same-inode:
   # Code from module save-cwd:
   # Code from module savedir:
+  # Code from module secure_getenv:
+  # Code from module selinux-at:
+  # Code from module selinux-h:
   # Code from module setenv:
+  # Code from module signal-h:
   # Code from module size_max:
   # Code from module sleep:
+  # Code from module snippet/_Noreturn:
+  # Code from module snippet/arg-nonnull:
+  # Code from module snippet/c++defs:
+  # Code from module snippet/unused-parameter:
+  # Code from module snippet/warn-on-use:
   # Code from module snprintf:
   # Code from module ssize_t:
   # Code from module stat:
   # Code from module stat-macros:
   # Code from module stat-time:
+  # Code from module statat:
+  # Code from module stdalign:
   # Code from module stdarg:
 
+
+
   # Code from module stdbool:
   # Code from module stddef:
   # Code from module stdint:
@@ -6310,14 +6959,13 @@ esac
   # Code from module strdup-posix:
   # Code from module streq:
   # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module string:
   # Code from module strings:
   # Code from module strndup:
   # Code from module strnlen:
   # Code from module strnlen1:
-  # Code from module strtoimax:
   # Code from module strtol:
-  # Code from module strtoll:
   # Code from module strtoul:
   # Code from module strtoull:
   # Code from module strtoumax:
@@ -6325,6 +6973,7 @@ esac
   # Code from module symlinkat:
   # Code from module sys_stat:
   # Code from module sys_time:
+  # Code from module sys_types:
   # Code from module sysexits:
   # Code from module tempname:
   # Code from module time:
@@ -6336,6 +6985,7 @@ esac
   # Code from module uniwidth/base:
   # Code from module uniwidth/width:
   # Code from module unlink:
+  # Code from module unlinkat:
   # Code from module unlinkdir:
   # Code from module unlocked-io:
   # Code from module unsetenv:
@@ -6347,7 +6997,7 @@ esac
   # Code from module version-etc:
   # Code from module version-etc-fsf:
   # Code from module vsnprintf:
-  # Code from module warn-on-use:
+  # Code from module warnings:
   # Code from module wchar:
   # Code from module wcrtomb:
   # Code from module wctype-h:
@@ -6355,6 +7005,7 @@ esac
   # Code from module write:
   # Code from module xalloc:
   # Code from module xalloc-die:
+  # Code from module xalloc-oversized:
   # Code from module xgetcwd:
   # Code from module xsize:
   # Code from module xstrndup:
@@ -6364,28 +7015,24 @@ esac
 
 
 # Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then
+if test "${enable_largefile+set}" = set; then :
   enableval=$enable_largefile;
 fi
 
 if test "$enable_largefile" != no; then
 
-  { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
      if test "$GCC" != yes; then
        ac_save_CC=$CC
        while :; do
-        # IRIX 6.2 and later do not support large files by default,
-        # so use the C compiler's -n32 option if that helps.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -6394,8 +7041,8 @@ cat >>conftest.$ac_ext <<_ACEOF
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -6404,84 +7051,34 @@ main ()
   return 0;
 }
 _ACEOF
-        rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+         if ac_fn_c_try_compile "$LINENO"; then :
   break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
-        CC="$CC -n32"
-        rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+         CC="$CC -n32"
+         if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_largefile_CC=' -n32'; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
-        break
+         break
        done
        CC=$ac_save_CC
        rm -f conftest.$ac_ext
     fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
 $as_echo "$ac_cv_sys_largefile_CC" >&6; }
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -6490,8 +7087,8 @@ cat >>conftest.$ac_ext <<_ACEOF
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -6500,38 +7097,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_file_offset_bits=no; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _FILE_OFFSET_BITS 64
 #include <sys/types.h>
@@ -6541,8 +7111,8 @@ cat >>conftest.$ac_ext <<_ACEOF
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -6551,38 +7121,15 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_file_offset_bits=64; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_cv_sys_file_offset_bits=unknown
   break
 done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
 $as_echo "$ac_cv_sys_file_offset_bits" >&6; }
 case $ac_cv_sys_file_offset_bits in #(
   no | unknown) ;;
@@ -6594,17 +7141,13 @@ _ACEOF
 esac
 rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
-    { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -6613,8 +7156,8 @@ cat >>conftest.$ac_ext <<_ACEOF
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -6623,38 +7166,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_large_files=no; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _LARGE_FILES 1
 #include <sys/types.h>
@@ -6664,8 +7180,8 @@ cat >>conftest.$ac_ext <<_ACEOF
     incorrectly reject 9223372036854775807.  */
 #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-                      && LARGE_OFF_T % 2147483647 == 1)
-                     ? 1 : -1];
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -6674,38 +7190,15 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_sys_large_files=1; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_cv_sys_large_files=unknown
   break
 done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
 $as_echo "$ac_cv_sys_large_files" >&6; }
 case $ac_cv_sys_large_files in #(
   no | unknown) ;;
@@ -6717,19 +7210,19 @@ _ACEOF
 esac
 rm -rf conftest*
   fi
+
+
+$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h
+
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
 $as_echo_n "checking for library containing strerror... " >&6; }
-if test "${ac_cv_search_strerror+set}" = set; then
+if ${ac_cv_search_strerror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -6754,70 +7247,39 @@ for ac_lib in '' cposix; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_strerror=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_strerror+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_strerror+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_strerror+set}" = set; then
-  :
+if ${ac_cv_search_strerror+:} false; then :
+
 else
   ac_cv_search_strerror=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
 $as_echo "$ac_cv_search_strerror" >&6; }
 ac_res=$ac_cv_search_strerror
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for inline" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 $as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
+if ${ac_cv_c_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifndef __cplusplus
 typedef int foo_t;
@@ -6826,41 +7288,17 @@ $ac_kw foo_t foo () {return 0; }
 #endif
 
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_inline=$ac_kw
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   test "$ac_cv_c_inline" != no && break
 done
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
 $as_echo "$ac_cv_c_inline" >&6; }
 
-
 case $ac_cv_c_inline in
   inline | yes) ;;
   *)
@@ -6880,149 +7318,12 @@ esac
 
 
 
-
-for ac_header in $ac_header_list
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  for ac_header in $ac_header_list
+do :
+  as_ac_Header=`$as_echo "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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -7050,44 +7351,6 @@ done
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 
@@ -7106,62 +7369,14 @@ done
 
 
 for ac_header in sys/buf.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_SYS_PARAM_H
+do :
+  ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_BUF_H 1
 _ACEOF
 
 fi
@@ -7169,16 +7384,12 @@ fi
 done
 
 
-{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if test "${ac_cv_header_sys_wait_h+set}" = set; then
+if ${ac_cv_header_sys_wait_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -7199,63 +7410,31 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_sys_wait_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_sys_wait_h=no
+  ac_cv_header_sys_wait_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
 $as_echo "$ac_cv_header_sys_wait_h" >&6; }
 if test $ac_cv_header_sys_wait_h = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
+$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 
 fi
 
 
-
-
-
-
-
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
   as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$as_ac_Header+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -7269,41 +7448,17 @@ return 0;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_ac_Header=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
+  eval "$as_ac_Header=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_ac_Header
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 _ACEOF
@@ -7314,17 +7469,13 @@ fi
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 $as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
+if ${ac_cv_search_opendir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -7349,70 +7500,39 @@ for ac_lib in '' dir; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_opendir=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_opendir+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
+if ${ac_cv_search_opendir+:} false; then :
+
 else
   ac_cv_search_opendir=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 $as_echo "$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
 
 else
-  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 $as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
+if ${ac_cv_search_opendir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -7437,70 +7557,39 @@ for ac_lib in '' x; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_opendir=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_opendir+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
+if ${ac_cv_search_opendir+:} false; then :
+
 else
   ac_cv_search_opendir=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 $as_echo "$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
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
 $as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
-if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 int
@@ -7511,324 +7600,33 @@ return makedev(0, 0);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_header_sys_types_h_makedev=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_sys_types_h_makedev=no
+  ac_cv_header_sys_types_h_makedev=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5
 $as_echo "$ac_cv_header_sys_types_h_makedev" >&6; }
 
 if test $ac_cv_header_sys_types_h_makedev = no; then
-if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5
-$as_echo_n "checking for sys/mkdev.h... " >&6; }
-if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5
-$as_echo "$ac_cv_header_sys_mkdev_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5
-$as_echo_n "checking sys/mkdev.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <sys/mkdev.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5
-$as_echo_n "checking sys/mkdev.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/mkdev.h>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5
-$as_echo_n "checking for sys/mkdev.h... " >&6; }
-if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_sys_mkdev_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5
-$as_echo "$ac_cv_header_sys_mkdev_h" >&6; }
-
-fi
-if test "x$ac_cv_header_sys_mkdev_h" = x""yes; then
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define MAJOR_IN_MKDEV 1
-_ACEOF
+$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h
 
 fi
 
 
 
   if test $ac_cv_header_sys_mkdev_h = no; then
-    if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5
-$as_echo_n "checking for sys/sysmacros.h... " >&6; }
-if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5
-$as_echo "$ac_cv_header_sys_sysmacros_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5
-$as_echo_n "checking sys/sysmacros.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <sys/sysmacros.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5
-$as_echo_n "checking sys/sysmacros.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/sysmacros.h>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5
-$as_echo_n "checking for sys/sysmacros.h... " >&6; }
-if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_sys_sysmacros_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5
-$as_echo "$ac_cv_header_sys_sysmacros_h" >&6; }
-
-fi
-if test "x$ac_cv_header_sys_sysmacros_h" = x""yes; then
+    ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define MAJOR_IN_SYSMACROS 1
-_ACEOF
+$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
 
 fi
 
@@ -7836,16 +7634,12 @@ fi
   fi
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
-if test "${ac_cv_header_stat_broken+set}" = set; then
+if ${ac_cv_header_stat_broken+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -7867,54 +7661,27 @@ extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
 #endif
 
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stat_broken=no
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stat_broken=yes
+  ac_cv_header_stat_broken=yes
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5
 $as_echo "$ac_cv_header_stat_broken" >&6; }
 if test $ac_cv_header_stat_broken = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STAT_MACROS_BROKEN 1
-_ACEOF
+$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
@@ -7929,48 +7696,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
+  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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -7980,18 +7722,14 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -8001,14 +7739,10 @@ 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
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -8035,65 +7769,32 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking for st_fstype string in struct stat" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_fstype string in struct stat" >&5
 $as_echo_n "checking for st_fstype string in struct stat... " >&6; }
-if test "${diff_cv_st_fstype_string+set}" = set; then
+if ${diff_cv_st_fstype_string+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -8105,511 +7806,189 @@ struct stat s; s.st_fstype[0] = 'x';
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   diff_cv_st_fstype_string=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       diff_cv_st_fstype_string=no
+  diff_cv_st_fstype_string=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $diff_cv_st_fstype_string" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $diff_cv_st_fstype_string" >&5
 $as_echo "$diff_cv_st_fstype_string" >&6; }
 if test $diff_cv_st_fstype_string = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ST_FSTYPE_STRING 1
-_ACEOF
+$as_echo "#define HAVE_ST_FSTYPE_STRING 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-$as_echo_n "checking return type of signal handlers... " >&6; }
-if test "${ac_cv_type_signal+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <signal.h>
-
-int
-main ()
-{
-return *(signal (0, 0)) (0) == 1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_signal=int
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_signal=void
-fi
+# even if we use gnulib's acl.h with integrated m4 file later on (used because
+# of very useful file_has_acl() function) we need following checks that restrict
+# tar to use POSIX.1e ACLs only.
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Check whether --with-posix-acls was given.
+if test "${with_posix_acls+set}" = set; then :
+  withval=$with_posix_acls; with_posix_acls=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-$as_echo "$ac_cv_type_signal" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
+if test "x$with_posix_acls" != "xno"; then
+  for ac_header in sys/acl.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_acl_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_ACL_H 1
 _ACEOF
 
+else
+  with_posix_acls=no
+fi
+
+done
 
-{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5
-$as_echo_n "checking for mode_t... " >&6; }
-if test "${ac_cv_type_mode_t+set}" = set; then
+  for tar_acl_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \
+                     acl_to_text acl_from_text; do \
+    test "x$with_posix_acls" = xno && break
+    as_ac_Search=`$as_echo "ac_cv_search_$tar_acl_func" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing $tar_acl_func" >&5
+$as_echo_n "checking for library containing $tar_acl_func... " >&6; }
+if eval \${$as_ac_Search+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_mode_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (mode_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* 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 $tar_acl_func ();
 int
 main ()
 {
-if (sizeof ((mode_t)))
-         return 0;
+return $tar_acl_func ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_mode_t=yes
+for ac_lib in '' acl pacl; 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 :
+  eval "$as_ac_Search=\$ac_res"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if eval \${$as_ac_Search+:} false; then :
+  break
 fi
+done
+if eval \${$as_ac_Search+:} false; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  eval "$as_ac_Search=no"
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
-$as_echo "$ac_cv_type_mode_t" >&6; }
-if test "x$ac_cv_type_mode_t" = x""yes; then
-  :
+eval ac_res=\$$as_ac_Search
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+eval ac_res=\$$as_ac_Search
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
 else
+  with_posix_acls=no
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define mode_t int
-_ACEOF
+  done
+  if test "x$with_posix_acls" != xno; then
 
+$as_echo "#define HAVE_POSIX_ACLS /**/" >>confdefs.h
+
+  fi
+else
+  # disable acls in gnulib's checks
+  export enable_acl=no
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5
-$as_echo_n "checking for pid_t... " >&6; }
-if test "${ac_cv_type_pid_t+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_pid_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (pid_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+#include <signal.h>
+
 int
 main ()
 {
-if (sizeof ((pid_t)))
-         return 0;
+return *(signal (0, 0)) (0) == 1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_pid_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_signal=int
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  ac_cv_type_signal=void
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
-$as_echo "$ac_cv_type_pid_t" >&6; }
-if test "x$ac_cv_type_pid_t" = x""yes; then
-  :
-else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
 
 cat >>confdefs.h <<_ACEOF
-#define pid_t int
+#define RETSIGTYPE $ac_cv_type_signal
 _ACEOF
 
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
-$as_echo_n "checking for off_t... " >&6; }
-if test "${ac_cv_type_off_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_off_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (off_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((off_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_off_t=yes
-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 :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-$as_echo "$ac_cv_type_off_t" >&6; }
-if test "x$ac_cv_type_off_t" = x""yes; then
-  :
+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 :
+
 else
 
 cat >>confdefs.h <<_ACEOF
-#define off_t long int
+#define pid_t int
 _ACEOF
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for size_t" >&5
-$as_echo_n "checking for size_t... " >&6; }
-if test "${ac_cv_type_size_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_size_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (size_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((size_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_size_t=yes
-fi
+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 :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-$as_echo "$ac_cv_type_size_t" >&6; }
-if test "x$ac_cv_type_size_t" = x""yes; then
-  :
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
 else
 
 cat >>confdefs.h <<_ACEOF
@@ -8618,22 +7997,18 @@ _ACEOF
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
 $as_echo_n "checking for uid_t in sys/types.h... " >&6; }
-if test "${ac_cv_type_uid_t+set}" = set; then
+if ${ac_cv_type_uid_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1; then
+  $EGREP "uid_t" >/dev/null 2>&1; then :
   ac_cv_type_uid_t=yes
 else
   ac_cv_type_uid_t=no
 rm -f conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
 $as_echo "$ac_cv_type_uid_t" >&6; }
 if test $ac_cv_type_uid_t = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define uid_t int
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define gid_t int
-_ACEOF
+$as_echo "#define uid_t int" >>confdefs.h
 
-fi
 
-{ $as_echo "$as_me:$LINENO: checking for major_t" >&5
-$as_echo_n "checking for major_t... " >&6; }
-if test "${ac_cv_type_major_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_major_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (major_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((major_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define gid_t int" >>confdefs.h
 
-       ac_cv_type_major_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
+ac_fn_c_check_type "$LINENO" "major_t" "ac_cv_type_major_t" "$ac_includes_default"
+if test "x$ac_cv_type_major_t" = xyes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_major_t" >&5
-$as_echo "$ac_cv_type_major_t" >&6; }
-if test "x$ac_cv_type_major_t" = x""yes; then
-  :
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define major_t int
-_ACEOF
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for minor_t" >&5
-$as_echo_n "checking for minor_t... " >&6; }
-if test "${ac_cv_type_minor_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_minor_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (minor_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((minor_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define major_t int" >>confdefs.h
 
-       ac_cv_type_minor_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
+ac_fn_c_check_type "$LINENO" "minor_t" "ac_cv_type_minor_t" "$ac_includes_default"
+if test "x$ac_cv_type_minor_t" = xyes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_minor_t" >&5
-$as_echo "$ac_cv_type_minor_t" >&6; }
-if test "x$ac_cv_type_minor_t" = x""yes; then
-  :
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define minor_t int
-_ACEOF
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for dev_t" >&5
-$as_echo_n "checking for dev_t... " >&6; }
-if test "${ac_cv_type_dev_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_dev_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (dev_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((dev_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define minor_t int" >>confdefs.h
 
-       ac_cv_type_dev_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
+ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default"
+if test "x$ac_cv_type_dev_t" = xyes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5
-$as_echo "$ac_cv_type_dev_t" >&6; }
-if test "x$ac_cv_type_dev_t" = x""yes; then
-  :
 else
 
 cat >>confdefs.h <<_ACEOF
@@ -8968,102 +8056,9 @@ _ACEOF
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for ino_t" >&5
-$as_echo_n "checking for ino_t... " >&6; }
-if test "${ac_cv_type_ino_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_ino_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (ino_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((ino_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_ino_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default"
+if test "x$ac_cv_type_ino_t" = xyes; then :
 
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5
-$as_echo "$ac_cv_type_ino_t" >&6; }
-if test "x$ac_cv_type_ino_t" = x""yes; then
-  :
 else
 
 cat >>confdefs.h <<_ACEOF
@@ -9074,16 +8069,12 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for ssize_t" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
 $as_echo_n "checking for ssize_t... " >&6; }
-if test "${gt_cv_ssize_t+set}" = set; then
+if ${gt_cv_ssize_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 int
@@ -9095,41 +8086,18 @@ int x = sizeof (ssize_t *) + sizeof (ssize_t);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gt_cv_ssize_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_ssize_t=no
+  gt_cv_ssize_t=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
 $as_echo "$gt_cv_ssize_t" >&6; }
   if test $gt_cv_ssize_t = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define ssize_t int
-_ACEOF
+$as_echo "#define ssize_t int" >>confdefs.h
 
   fi
 
@@ -9140,22 +8108,17 @@ _ACEOF
 
 
 
-
           LIBC_FATAL_STDERR_=1
   export LIBC_FATAL_STDERR_
 
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
-{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
 $as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then
+if ${ac_cv_working_alloca_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <alloca.h>
 int
@@ -9167,59 +8130,28 @@ char *p = (char *) alloca (2 * sizeof (int));
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_working_alloca_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_working_alloca_h=no
+  ac_cv_working_alloca_h=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
 $as_echo "$ac_cv_working_alloca_h" >&6; }
 if test $ac_cv_working_alloca_h = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
 $as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then
+if ${ac_cv_func_alloca_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __GNUC__
 # define alloca __builtin_alloca
@@ -9235,7 +8167,7 @@ cat >>conftest.$ac_ext <<_ACEOF
  #pragma alloca
 #   else
 #    ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
 #    endif
 #   endif
 #  endif
@@ -9251,47 +8183,20 @@ char *p = (char *) alloca (1);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_func_alloca_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_alloca_works=no
+  ac_cv_func_alloca_works=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
 $as_echo "$ac_cv_func_alloca_works" >&6; }
 
 if test $ac_cv_func_alloca_works = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
 
 else
   # The SVR3 libPW and SVR4 libucb both contain incompatible functions
@@ -9305,21 +8210,15 @@ else
 
 ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
 
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
 
 
-{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then
+if ${ac_cv_os_cray+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if defined CRAY && ! defined CRAY2
 webecray
@@ -9329,7 +8228,7 @@ 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
 rm -f conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
 $as_echo "$ac_cv_os_cray" >&6; }
 if test $ac_cv_os_cray = yes; then
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+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 CRAY_STACKSEG_END $ac_func
@@ -9443,81 +8254,46 @@ fi
   done
 fi
 
-{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
 $as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then
+if ${ac_cv_c_stack_direction+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   ac_cv_c_stack_direction=0
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
 {
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
+  int dir, dummy = 0;
+  if (! addr)
+    addr = &dummy;
+  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+  return dir + dummy;
 }
 
 int
-main ()
+main (int argc, char **argv)
 {
-  return find_stack_direction () < 0;
+  return find_stack_direction (0, argc + !argv + 20) < 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_c_stack_direction=1
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
+  ac_cv_c_stack_direction=-1
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
 $as_echo "$ac_cv_c_stack_direction" >&6; }
-
 cat >>confdefs.h <<_ACEOF
 #define STACK_DIRECTION $ac_cv_c_stack_direction
 _ACEOF
@@ -9525,19 +8301,15 @@ _ACEOF
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
 $as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if test "${ac_cv_c_restrict+set}" = set; then
+if ${ac_cv_c_restrict+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   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
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 typedef int * int_ptr;
        int foo (int_ptr $ac_kw ip) {
@@ -9554,46 +8326,20 @@ int s[1];
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_restrict=$ac_kw
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
      test "$ac_cv_c_restrict" != no && break
    done
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
 $as_echo "$ac_cv_c_restrict" >&6; }
 
-
  case $ac_cv_c_restrict in
    restrict) ;;
-   no) cat >>confdefs.h <<\_ACEOF
-#define restrict /**/
-_ACEOF
+   no) $as_echo "#define restrict /**/" >>confdefs.h
  ;;
    *)  cat >>confdefs.h <<_ACEOF
 #define restrict $ac_cv_c_restrict
@@ -9601,1177 +8347,311 @@ _ACEOF
  ;;
  esac
 
-{ $as_echo "$as_me:$LINENO: checking whether getenv is declared" >&5
-$as_echo_n "checking whether getenv is declared... " >&6; }
-if test "${ac_cv_have_decl_getenv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getenv
-  (void) getenv;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getenv=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getenv=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
-$as_echo "$ac_cv_have_decl_getenv" >&6; }
-if test "x$ac_cv_have_decl_getenv" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 1
+#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
 _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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether clearerr_unlocked is declared" >&5
-$as_echo_n "checking whether clearerr_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_clearerr_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef clearerr_unlocked
-  (void) clearerr_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_clearerr_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_clearerr_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_clearerr_unlocked" >&5
-$as_echo "$ac_cv_have_decl_clearerr_unlocked" >&6; }
-if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CLEARERR_UNLOCKED 1
+#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
 _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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CLEARERR_UNLOCKED 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5
-$as_echo_n "checking whether feof_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef feof_unlocked
-  (void) feof_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_feof_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_feof_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5
-$as_echo "$ac_cv_have_decl_feof_unlocked" >&6; }
-if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FEOF_UNLOCKED 1
+#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
 _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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FEOF_UNLOCKED 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether ferror_unlocked is declared" >&5
-$as_echo_n "checking whether ferror_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_ferror_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef ferror_unlocked
-  (void) ferror_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_ferror_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_ferror_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_ferror_unlocked" >&5
-$as_echo "$ac_cv_have_decl_ferror_unlocked" >&6; }
-if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FERROR_UNLOCKED 1
+#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
 _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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FERROR_UNLOCKED 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether fflush_unlocked is declared" >&5
-$as_echo_n "checking whether fflush_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fflush_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fflush_unlocked
-  (void) fflush_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fflush_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fflush_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fflush_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fflush_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFLUSH_UNLOCKED 1
+#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
 _ACEOF
 
-
+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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FFLUSH_UNLOCKED 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5
-$as_echo_n "checking whether fgets_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fgets_unlocked
-  (void) fgets_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fgets_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fgets_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fgets_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FGETS_UNLOCKED 1
+#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
 _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 :
+  ac_have_decl=1
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FGETS_UNLOCKED 0
-_ACEOF
-
-
+  ac_have_decl=0
 fi
 
-
-{ $as_echo "$as_me:$LINENO: checking whether fputc_unlocked is declared" >&5
-$as_echo_n "checking whether fputc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fputc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fputc_unlocked
-  (void) fputc_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fputc_unlocked=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fputc_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fputc_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPUTC_UNLOCKED 1
+#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
 _ACEOF
 
 
-else
+
+
+  for ac_func in $ac_func_list
+do :
+  as_ac_var=`$as_echo "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 HAVE_DECL_FPUTC_UNLOCKED 0
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-
 fi
+done
 
 
-{ $as_echo "$as_me:$LINENO: checking whether fputs_unlocked is declared" >&5
-$as_echo_n "checking whether fputs_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fputs_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fputs_unlocked
-  (void) fputs_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fputs_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_fputs_unlocked=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fputs_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPUTS_UNLOCKED 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPUTS_UNLOCKED 0
-_ACEOF
 
 
-fi
+  XGETTEXT_EXTRA_OPTIONS=
 
+# 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
 
-{ $as_echo "$as_me:$LINENO: checking whether fread_unlocked is declared" >&5
-$as_echo_n "checking whether fread_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fread_unlocked+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fread_unlocked
-  (void) fread_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fread_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fread_unlocked=no
-fi
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fread_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fread_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FREAD_UNLOCKED 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FREAD_UNLOCKED 0
-_ACEOF
-
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking whether fwrite_unlocked is declared" >&5
-$as_echo_n "checking whether fwrite_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fwrite_unlocked+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                           # Guess yes on glibc systems with Linux kernel.
+              linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+                           # If we don't know, assume the worst.
+              *)           gl_cv_struct_dirent_d_ino="guessing no" ;;
+            esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+             #include <sys/stat.h>
+             #include <dirent.h>
+
 int
 main ()
 {
-#ifndef fwrite_unlocked
-  (void) fwrite_unlocked;
-#endif
+DIR *dp = opendir (".");
+             struct dirent *e;
+             struct stat st;
+             if (! dp)
+               return 1;
+             e = readdir (dp);
+             if (! e)
+               return 2;
+             if (stat (e->d_name, &st) != 0)
+               return 3;
+             if (e->d_ino != st.st_ino)
+               return 4;
+             return 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fwrite_unlocked=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_struct_dirent_d_ino=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fwrite_unlocked=no
+  gl_cv_struct_dirent_d_ino=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fwrite_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fwrite_unlocked" >&6; }
-if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FWRITE_UNLOCKED 1
-_ACEOF
-
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FWRITE_UNLOCKED 0
-_ACEOF
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+   case "$gl_cv_struct_dirent_d_ino" in
+     *yes)
 
+$as_echo "#define D_INO_IN_DIRENT 1" >>confdefs.h
 
-fi
+       ;;
+   esac
 
 
-{ $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
-$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getc_unlocked
-  (void) getc_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getc_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getc_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
-if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether getchar_unlocked is declared" >&5
-$as_echo_n "checking whether getchar_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getchar_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getchar_unlocked
-  (void) getchar_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getchar_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getchar_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getchar_unlocked" >&5
-$as_echo "$ac_cv_have_decl_getchar_unlocked" >&6; }
-if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETCHAR_UNLOCKED 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETCHAR_UNLOCKED 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether putc_unlocked is declared" >&5
-$as_echo_n "checking whether putc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_putc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef putc_unlocked
-  (void) putc_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_putc_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_putc_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_putc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_putc_unlocked" >&6; }
-if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PUTC_UNLOCKED 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PUTC_UNLOCKED 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether putchar_unlocked is declared" >&5
-$as_echo_n "checking whether putchar_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_putchar_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef putchar_unlocked
-  (void) putchar_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_putchar_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_putchar_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_putchar_unlocked" >&5
-$as_echo "$ac_cv_have_decl_putchar_unlocked" >&6; }
-if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PUTCHAR_UNLOCKED 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PUTCHAR_UNLOCKED 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-for ac_func in $ac_func_list
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-
-
-
-  XGETTEXT_EXTRA_OPTIONS=
-
-{ $as_echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5
-$as_echo_n "checking for d_ino member in directory struct... " >&6; }
-if test "${gl_cv_struct_dirent_d_ino+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  gl_cv_struct_dirent_d_ino=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-             #include <sys/stat.h>
-             #include <dirent.h>
-
-int
-main ()
-{
-DIR *dp = opendir (".");
-             struct dirent *e;
-             struct stat st;
-             if (! dp)
-               return 1;
-             e = readdir (dp);
-             if (! e)
-               return 2;
-             if (stat (e->d_name, &st) != 0)
-               return 3;
-             if (e->d_ino != st.st_ino)
-               return 4;
-             return 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_struct_dirent_d_ino=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_struct_dirent_d_ino=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5
-$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
-   if test $gl_cv_struct_dirent_d_ino = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define D_INO_IN_DIRENT 1
-_ACEOF
-
-   fi
-
-
-{ $as_echo "$as_me:$LINENO: checking for long file names" >&5
-$as_echo_n "checking for long file names... " >&6; }
-if test "${ac_cv_sys_long_file_names+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
+$as_echo_n "checking for long file names... " >&6; }
+if ${ac_cv_sys_long_file_names+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_long_file_names=yes
@@ -10801,13 +8681,11 @@ for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib
   test $ac_cv_sys_long_file_names = no && break
 done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_long_file_names" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_long_file_names" >&5
 $as_echo "$ac_cv_sys_long_file_names" >&6; }
 if test $ac_cv_sys_long_file_names = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_FILE_NAMES 1
-_ACEOF
+$as_echo "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
 
 fi
 
   REPLACE_WCSWIDTH=0;
 
 
-            { $as_echo "$as_me:$LINENO: checking whether <wchar.h> uses 'inline' correctly" >&5
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
 $as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
-if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then
+if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gl_cv_header_wchar_h_correct_inline=yes
-     cat >conftest.$ac_ext <<_ACEOF
-
-       /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#define wcstod renamed_wcstod
+
+       #define wcstod renamed_wcstod
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
@@ -10933,20 +8807,16 @@ extern int zero (void);
 int main () { return zero(); }
 
 _ACEOF
-     if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
        mv conftest.$ac_objext conftest1.$ac_objext
-       cat >conftest.$ac_ext <<_ACEOF
-
-         /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#define wcstod renamed_wcstod
+
+         #define wcstod renamed_wcstod
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
@@ -10958,11 +8828,11 @@ cat >>conftest.$ac_ext <<_ACEOF
 int zero (void) { return 0; }
 
 _ACEOF
-       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
          mv conftest.$ac_objext conftest2.$ac_objext
          if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
            :
@@ -10974,10 +8844,10 @@ _ACEOF
      rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_correct_inline" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
 $as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
   if test $gl_cv_header_wchar_h_correct_inline = no; then
-    { { $as_echo "$as_me:$LINENO: error: <wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
+    as_fn_error $? "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
 This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
 C99 mode. You have four options:
   - Add the flag -fgnu89-inline to CC and reconfigure, or
@@ -10985,32 +8855,18 @@ C99 mode. You have four options:
     <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
   - Use a gcc version older than 4.3, or
   - Don't use the flags -std=c99 or -std=gnu99.
-Configuration aborted." >&5
-$as_echo "$as_me: error: <wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
-This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
-C99 mode. You have four options:
-  - Add the flag -fgnu89-inline to CC and reconfigure, or
-  - Fix your include files, using parts of
-    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
-  - Use a gcc version older than 4.3, or
-  - Don't use the flags -std=c99 or -std=gnu99.
-Configuration aborted." >&2;}
-   { (exit 1); exit 1; }; }
+Configuration aborted." "$LINENO" 5
   fi
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then
+if ${am_cv_langinfo_codeset+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int
@@ -11021,64 +8877,33 @@ char* cs = nl_langinfo(CODESET); return !cs;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_langinfo_codeset=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       am_cv_langinfo_codeset=no
+  am_cv_langinfo_codeset=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
 $as_echo "$am_cv_langinfo_codeset" >&6; }
   if test $am_cv_langinfo_codeset = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LANGINFO_CODESET 1
-_ACEOF
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
 
   fi
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for a traditional french locale" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
 $as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then
+if ${gt_cv_locale_fr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -11093,9 +8918,9 @@ char buf[16];
 int main () {
   /* Check whether the given locale name is recognized by the system.  */
 #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
+  /* On native Windows, setlocale(category, "") looks at the system settings,
      not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
      category of the locale to "C".  */
   if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
       || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
@@ -11104,7 +8929,7 @@ int main () {
   if (setlocale (LC_ALL, "") == NULL) return 1;
 #endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -11130,19 +8955,21 @@ int main () {
      one byte long. This excludes the UTF-8 encoding.  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 
 _ACEOF
-    if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest$ac_exeext; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
       case "$host_os" in
         # Handle native Windows specially, because there setlocale() interprets
         # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
@@ -11151,7 +8978,7 @@ _ACEOF
         # "ja" as "Japanese" or "Japanese_Japan.932",
         # and similar.
         mingw*)
-          # Test for the native Win32 locale name.
+          # Test for the native Windows locale name.
           if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
             gt_cv_locale_fr=French_France.1252
           else
@@ -11161,7 +8988,7 @@ _ACEOF
           ;;
         *)
           # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
           # configure script would override the LC_ALL setting. Likewise for
           # LC_CTYPE, which is also set at the beginning of the configure script.
           # Test for the usual locale name.
@@ -11197,12 +9024,90 @@ _ACEOF
     rm -fr conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_fr" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
 $as_echo "$gt_cv_locale_fr" >&6; }
   LOCALE_FR=$gt_cv_locale_fr
 
 
 
+  GNULIB__EXIT=0;
+  GNULIB_ATOLL=0;
+  GNULIB_CALLOC_POSIX=0;
+  GNULIB_CANONICALIZE_FILE_NAME=0;
+  GNULIB_GETLOADAVG=0;
+  GNULIB_GETSUBOPT=0;
+  GNULIB_GRANTPT=0;
+  GNULIB_MALLOC_POSIX=0;
+  GNULIB_MBTOWC=0;
+  GNULIB_MKDTEMP=0;
+  GNULIB_MKOSTEMP=0;
+  GNULIB_MKOSTEMPS=0;
+  GNULIB_MKSTEMP=0;
+  GNULIB_MKSTEMPS=0;
+  GNULIB_POSIX_OPENPT=0;
+  GNULIB_PTSNAME=0;
+  GNULIB_PTSNAME_R=0;
+  GNULIB_PUTENV=0;
+  GNULIB_RANDOM=0;
+  GNULIB_RANDOM_R=0;
+  GNULIB_REALLOC_POSIX=0;
+  GNULIB_REALPATH=0;
+  GNULIB_RPMATCH=0;
+  GNULIB_SECURE_GETENV=0;
+  GNULIB_SETENV=0;
+  GNULIB_STRTOD=0;
+  GNULIB_STRTOLL=0;
+  GNULIB_STRTOULL=0;
+  GNULIB_SYSTEM_POSIX=0;
+  GNULIB_UNLOCKPT=0;
+  GNULIB_UNSETENV=0;
+  GNULIB_WCTOMB=0;
+    HAVE__EXIT=1;
+  HAVE_ATOLL=1;
+  HAVE_CANONICALIZE_FILE_NAME=1;
+  HAVE_DECL_GETLOADAVG=1;
+  HAVE_GETSUBOPT=1;
+  HAVE_GRANTPT=1;
+  HAVE_MKDTEMP=1;
+  HAVE_MKOSTEMP=1;
+  HAVE_MKOSTEMPS=1;
+  HAVE_MKSTEMP=1;
+  HAVE_MKSTEMPS=1;
+  HAVE_POSIX_OPENPT=1;
+  HAVE_PTSNAME=1;
+  HAVE_PTSNAME_R=1;
+  HAVE_RANDOM=1;
+  HAVE_RANDOM_H=1;
+  HAVE_RANDOM_R=1;
+  HAVE_REALPATH=1;
+  HAVE_RPMATCH=1;
+  HAVE_SECURE_GETENV=1;
+  HAVE_SETENV=1;
+  HAVE_DECL_SETENV=1;
+  HAVE_STRTOD=1;
+  HAVE_STRTOLL=1;
+  HAVE_STRTOULL=1;
+  HAVE_STRUCT_RANDOM_DATA=1;
+  HAVE_SYS_LOADAVG_H=0;
+  HAVE_UNLOCKPT=1;
+  HAVE_DECL_UNSETENV=1;
+  REPLACE_CALLOC=0;
+  REPLACE_CANONICALIZE_FILE_NAME=0;
+  REPLACE_MALLOC=0;
+  REPLACE_MBTOWC=0;
+  REPLACE_MKSTEMP=0;
+  REPLACE_PTSNAME=0;
+  REPLACE_PTSNAME_R=0;
+  REPLACE_PUTENV=0;
+  REPLACE_RANDOM_R=0;
+  REPLACE_REALLOC=0;
+  REPLACE_REALPATH=0;
+  REPLACE_SETENV=0;
+  REPLACE_STRTOD=0;
+  REPLACE_UNSETENV=0;
+  REPLACE_WCTOMB=0;
+
+
 
 
 
@@ -11210,9 +9115,9 @@ $as_echo "$gt_cv_locale_fr" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
 $as_echo_n "checking whether // is distinct from /... " >&6; }
-if test "${gl_cv_double_slash_root+set}" = set; then
+if ${gl_cv_double_slash_root+:} false; then :
   $as_echo_n "(cached) " >&6
 else
    if test x"$cross_compiling" = xyes ; then
@@ -11239,13 +9144,11 @@ else
         fi
       fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
 $as_echo "$gl_cv_double_slash_root" >&6; }
   if test "$gl_cv_double_slash_root" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1
-_ACEOF
+$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
   fi
 
@@ -11253,30 +9156,142 @@ _ACEOF
 
 
 
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether realpath works" >&5
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5
 $as_echo_n "checking whether realpath works... " >&6; }
-if test "${gl_cv_func_realpath_works+set}" = set; then
+if ${gl_cv_func_realpath_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
     touch conftest.a
-    if test "$cross_compiling" = yes; then
-  gl_cv_func_realpath_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
+    mkdir conftest.d
+    if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                       # Guess yes on glibc systems.
+        *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;;
+                       # If we don't know, assume the worst.
+        *)             gl_cv_func_realpath_works="guessing no" ;;
+      esac
 
-      /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on Mac OS X.  */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens.  */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+   EXC_BAD_ACCESS.  */
+static void *
+mach_exception_thread (void *arg)
+{
+  /* Buffer for a message to be received.  */
+  struct {
+    mach_msg_header_t head;
+    mach_msg_body_t msgh_body;
+    char data[1024];
+  } msg;
+  mach_msg_return_t retval;
+  /* Wait for a message on the exception port.  */
+  retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+                     our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+  if (retval != MACH_MSG_SUCCESS)
+    abort ();
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+  mach_port_t self = mach_task_self ();
+  /* Allocate a port on which the thread shall listen for exceptions.  */
+  if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+      == KERN_SUCCESS) {
+    /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html.  */
+    if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+                                MACH_MSG_TYPE_MAKE_SEND)
+        == KERN_SUCCESS) {
+      /* The exceptions we want to catch.  Only EXC_BAD_ACCESS is interesting
+         for us.  */
+      exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+      /* Create the thread listening on the exception port.  */
+      pthread_attr_t attr;
+      pthread_t thread;
+      if (pthread_attr_init (&attr) == 0
+          && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+          && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+        pthread_attr_destroy (&attr);
+        /* Replace the exception port info for these exceptions with our own.
+           Note that we replace the exception port for the entire task, not only
+           for a particular thread.  This has the effect that when our exception
+           port gets the message, the thread specific exception port has already
+           been asked, and we don't need to bother about it.
+           See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html.  */
+        task_set_exception_ports (self, mask, our_exception_port,
+                                  EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+      }
+    }
+  }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems.  */
+#include <signal.h>
+/* A POSIX signal handler.  */
+static void
+exception_handler (int sig)
+{
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+  signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+  signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
         #include <stdlib.h>
+        #include <string.h>
 
 int
 main ()
@@ -11298,6 +9313,12 @@ main ()
           if (name != NULL)
             result |= 4;
         }
+        {
+          char *name1 = realpath (".", NULL);
+          char *name2 = realpath ("conftest.d//./..", NULL);
+          if (strcmp (name1, name2) != 0)
+            result |= 8;
+        }
         return result;
 
   ;
@@ -11305,65 +9326,27 @@ main ()
 }
 
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_realpath_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_realpath_works=no
+  gl_cv_func_realpath_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
+    rm -rf conftest.a conftest.d
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_realpath_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realpath_works" >&5
 $as_echo "$gl_cv_func_realpath_works" >&6; }
-  if test "$gl_cv_func_realpath_works" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define FUNC_REALPATH_WORKS 1
-_ACEOF
-
-  fi
-
-
-
-
-
-
-
-
-
-
+  case "$gl_cv_func_realpath_works" in
+    *yes)
 
+$as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h
 
+      ;;
+  esac
 
 
 
@@ -11375,75 +9358,10 @@ _ACEOF
 
 
 
-  GNULIB__EXIT=0;
-  GNULIB_ATOLL=0;
-  GNULIB_CALLOC_POSIX=0;
-  GNULIB_CANONICALIZE_FILE_NAME=0;
-  GNULIB_GETLOADAVG=0;
-  GNULIB_GETSUBOPT=0;
-  GNULIB_GRANTPT=0;
-  GNULIB_MALLOC_POSIX=0;
-  GNULIB_MBTOWC=0;
-  GNULIB_MKDTEMP=0;
-  GNULIB_MKOSTEMP=0;
-  GNULIB_MKOSTEMPS=0;
-  GNULIB_MKSTEMP=0;
-  GNULIB_MKSTEMPS=0;
-  GNULIB_PTSNAME=0;
-  GNULIB_PUTENV=0;
-  GNULIB_RANDOM_R=0;
-  GNULIB_REALLOC_POSIX=0;
-  GNULIB_REALPATH=0;
-  GNULIB_RPMATCH=0;
-  GNULIB_SETENV=0;
-  GNULIB_STRTOD=0;
-  GNULIB_STRTOLL=0;
-  GNULIB_STRTOULL=0;
-  GNULIB_SYSTEM_POSIX=0;
-  GNULIB_UNLOCKPT=0;
-  GNULIB_UNSETENV=0;
-  GNULIB_WCTOMB=0;
-    HAVE__EXIT=1;
-  HAVE_ATOLL=1;
-  HAVE_CANONICALIZE_FILE_NAME=1;
-  HAVE_DECL_GETLOADAVG=1;
-  HAVE_GETSUBOPT=1;
-  HAVE_GRANTPT=1;
-  HAVE_MKDTEMP=1;
-  HAVE_MKOSTEMP=1;
-  HAVE_MKOSTEMPS=1;
-  HAVE_MKSTEMP=1;
-  HAVE_MKSTEMPS=1;
-  HAVE_PTSNAME=1;
-  HAVE_RANDOM_H=1;
-  HAVE_RANDOM_R=1;
-  HAVE_REALPATH=1;
-  HAVE_RPMATCH=1;
-  HAVE_SETENV=1;
-  HAVE_DECL_SETENV=1;
-  HAVE_STRTOD=1;
-  HAVE_STRTOLL=1;
-  HAVE_STRTOULL=1;
-  HAVE_STRUCT_RANDOM_DATA=1;
-  HAVE_SYS_LOADAVG_H=0;
-  HAVE_UNLOCKPT=1;
-  HAVE_DECL_UNSETENV=1;
-  REPLACE_CALLOC=0;
-  REPLACE_CANONICALIZE_FILE_NAME=0;
-  REPLACE_MALLOC=0;
-  REPLACE_MBTOWC=0;
-  REPLACE_MKSTEMP=0;
-  REPLACE_PUTENV=0;
-  REPLACE_REALLOC=0;
-  REPLACE_REALPATH=0;
-  REPLACE_SETENV=0;
-  REPLACE_STRTOD=0;
-  REPLACE_UNSETENV=0;
-  REPLACE_WCTOMB=0;
-
-
+  GNULIB_CHDIR=0;
   GNULIB_CHOWN=0;
   GNULIB_CLOSE=0;
+  GNULIB_DUP=0;
   GNULIB_DUP2=0;
   GNULIB_DUP3=0;
   GNULIB_ENVIRON=0;
@@ -11451,6 +9369,7 @@ _ACEOF
   GNULIB_FACCESSAT=0;
   GNULIB_FCHDIR=0;
   GNULIB_FCHOWNAT=0;
+  GNULIB_FDATASYNC=0;
   GNULIB_FSYNC=0;
   GNULIB_FTRUNCATE=0;
   GNULIB_GETCWD=0;
@@ -11462,6 +9381,8 @@ _ACEOF
   GNULIB_GETLOGIN_R=0;
   GNULIB_GETPAGESIZE=0;
   GNULIB_GETUSERSHELL=0;
+  GNULIB_GROUP_MEMBER=0;
+  GNULIB_ISATTY=0;
   GNULIB_LCHOWN=0;
   GNULIB_LINK=0;
   GNULIB_LINKAT=0;
@@ -11470,14 +9391,16 @@ _ACEOF
   GNULIB_PIPE2=0;
   GNULIB_PREAD=0;
   GNULIB_PWRITE=0;
+  GNULIB_READ=0;
   GNULIB_READLINK=0;
   GNULIB_READLINKAT=0;
   GNULIB_RMDIR=0;
+  GNULIB_SETHOSTNAME=0;
   GNULIB_SLEEP=0;
   GNULIB_SYMLINK=0;
   GNULIB_SYMLINKAT=0;
   GNULIB_TTYNAME_R=0;
-  GNULIB_UNISTD_H_GETOPT=0;
+  GNULIB_UNISTD_H_NONBLOCKING=0;
   GNULIB_UNISTD_H_SIGPIPE=0;
   GNULIB_UNLINK=0;
   GNULIB_UNLINKAT=0;
@@ -11490,6 +9413,7 @@ _ACEOF
   HAVE_FACCESSAT=1;
   HAVE_FCHDIR=1;
   HAVE_FCHOWNAT=1;
+  HAVE_FDATASYNC=1;
   HAVE_FSYNC=1;
   HAVE_FTRUNCATE=1;
   HAVE_GETDTABLESIZE=1;
@@ -11497,6 +9421,7 @@ _ACEOF
   HAVE_GETHOSTNAME=1;
   HAVE_GETLOGIN=1;
   HAVE_GETPAGESIZE=1;
+  HAVE_GROUP_MEMBER=1;
   HAVE_LCHOWN=1;
   HAVE_LINK=1;
   HAVE_LINKAT=1;
@@ -11506,6 +9431,7 @@ _ACEOF
   HAVE_PWRITE=1;
   HAVE_READLINK=1;
   HAVE_READLINKAT=1;
+  HAVE_SETHOSTNAME=1;
   HAVE_SLEEP=1;
   HAVE_SYMLINK=1;
   HAVE_SYMLINKAT=1;
@@ -11513,10 +9439,12 @@ _ACEOF
   HAVE_USLEEP=1;
   HAVE_DECL_ENVIRON=1;
   HAVE_DECL_FCHDIR=1;
+  HAVE_DECL_FDATASYNC=1;
   HAVE_DECL_GETDOMAINNAME=1;
   HAVE_DECL_GETLOGIN_R=1;
   HAVE_DECL_GETPAGESIZE=1;
   HAVE_DECL_GETUSERSHELL=1;
+  HAVE_DECL_SETHOSTNAME=1;
   HAVE_DECL_TTYNAME_R=1;
   HAVE_OS_H=0;
   HAVE_SYS_PARAM_H=0;
@@ -11525,17 +9453,20 @@ _ACEOF
   REPLACE_DUP=0;
   REPLACE_DUP2=0;
   REPLACE_FCHOWNAT=0;
+  REPLACE_FTRUNCATE=0;
   REPLACE_GETCWD=0;
   REPLACE_GETDOMAINNAME=0;
   REPLACE_GETLOGIN_R=0;
   REPLACE_GETGROUPS=0;
   REPLACE_GETPAGESIZE=0;
+  REPLACE_ISATTY=0;
   REPLACE_LCHOWN=0;
   REPLACE_LINK=0;
   REPLACE_LINKAT=0;
   REPLACE_LSEEK=0;
   REPLACE_PREAD=0;
   REPLACE_PWRITE=0;
+  REPLACE_READ=0;
   REPLACE_READLINK=0;
   REPLACE_RMDIR=0;
   REPLACE_SLEEP=0;
@@ -11550,258 +9481,94 @@ _ACEOF
 
 
 
-for ac_header in unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+      for ac_header in unistd.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_UNISTD_H 1
 _ACEOF
 
 fi
 
 done
 
-{ $as_echo "$as_me:$LINENO: checking for working chown" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
 $as_echo_n "checking for working chown... " >&6; }
-if test "${ac_cv_func_chown_works+set}" = set; then
+if ${ac_cv_func_chown_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_chown_works=no
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in # ((
+                  # Guess yes on glibc systems.
+          *-gnu*) ac_cv_func_chown_works=yes ;;
+                  # If we don't know, assume the worst.
+          *)      ac_cv_func_chown_works=no ;;
+        esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
-#include <fcntl.h>
+           #include <fcntl.h>
 
 int
 main ()
 {
-  char *f = "conftest.chown";
-  struct stat before, after;
 
-  if (creat (f, 0600) < 0)
-    return 1;
-  if (stat (f, &before) < 0)
-    return 1;
-  if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
-    return 1;
-  if (stat (f, &after) < 0)
-    return 1;
-  return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+            char *f = "conftest.chown";
+            struct stat before, after;
+
+            if (creat (f, 0600) < 0)
+              return 1;
+            if (stat (f, &before) < 0)
+              return 1;
+            if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+              return 1;
+            if (stat (f, &after) < 0)
+              return 1;
+            return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
 
   ;
   return 0;
 }
+
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_func_chown_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_chown_works=no
+  ac_cv_func_chown_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-rm -f conftest.chown
+     rm -f conftest.chown
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_chown_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
 $as_echo "$ac_cv_func_chown_works" >&6; }
-if test $ac_cv_func_chown_works = yes; then
+  if test $ac_cv_func_chown_works = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CHOWN 1
-_ACEOF
+$as_echo "#define HAVE_CHOWN 1" >>confdefs.h
 
-fi
+  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking whether chown dereferences symlinks" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5
 $as_echo_n "checking whether chown dereferences symlinks... " >&6; }
-if test "${gl_cv_func_chown_follows_symlink+set}" = set; then
+if ${gl_cv_func_chown_follows_symlink+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then
+      if test "$cross_compiling" = yes; then :
   gl_cv_func_chown_follows_symlink=yes
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -11828,53 +9595,24 @@ cat >>conftest.$ac_ext <<_ACEOF
         }
 
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_chown_follows_symlink=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_chown_follows_symlink=no
+  gl_cv_func_chown_follows_symlink=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_chown_follows_symlink" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5
 $as_echo "$gl_cv_func_chown_follows_symlink" >&6; }
 
   if test $gl_cv_func_chown_follows_symlink = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define CHOWN_MODIFIES_SYMLINK 1
-_ACEOF
+$as_echo "#define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h
 
   fi
 
@@ -11889,74 +9627,36 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
     if test $ac_cv_func_chown = no; then
     HAVE_CHOWN=0
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
-
   else
         if test $gl_cv_func_chown_follows_symlink = no; then
       REPLACE_CHOWN=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
-
     fi
 
         if test $ac_cv_func_chown_works = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1
-_ACEOF
+$as_echo "#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h
 
       REPLACE_CHOWN=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
-
     fi
 
-                { $as_echo "$as_me:$LINENO: checking whether chown honors trailing slash" >&5
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5
 $as_echo_n "checking whether chown honors trailing slash... " >&6; }
-if test "${gl_cv_func_chown_slash_works+set}" = set; then
+if ${gl_cv_func_chown_slash_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   touch conftest.file && rm -f conftest.link
-       if test "$cross_compiling" = yes; then
-  gl_cv_func_chown_slash_works="guessing no"
+       if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_chown_slash_works="guessing no" ;;
+         esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -11973,78 +9673,44 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_chown_slash_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_chown_slash_works=no
+  gl_cv_func_chown_slash_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       rm -f conftest.link conftest.file
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_chown_slash_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5
 $as_echo "$gl_cv_func_chown_slash_works" >&6; }
-    if test "$gl_cv_func_chown_slash_works" != yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CHOWN_TRAILING_SLASH_BUG 1
-_ACEOF
-
-      REPLACE_CHOWN=1
-
-
-
-
-
-
-
+    case "$gl_cv_func_chown_slash_works" in
+      *yes) ;;
+      *)
 
-  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
+$as_echo "#define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h
 
-    fi
+        REPLACE_CHOWN=1
+        ;;
+    esac
 
-        { $as_echo "$as_me:$LINENO: checking whether chown always updates ctime" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5
 $as_echo_n "checking whether chown always updates ctime... " >&6; }
-if test "${gl_cv_func_chown_ctime_works+set}" = set; then
+if ${gl_cv_func_chown_ctime_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_chown_ctime_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_chown_ctime_works="guessing no" ;;
+         esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <unistd.h>
@@ -12068,99 +9734,76 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_chown_ctime_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_chown_ctime_works=no
+  gl_cv_func_chown_ctime_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       rm -f conftest.file
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_chown_ctime_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5
 $as_echo "$gl_cv_func_chown_ctime_works" >&6; }
-    if test "$gl_cv_func_chown_ctime_works" != yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CHOWN_CHANGE_TIME_BUG 1
-_ACEOF
-
-      REPLACE_CHOWN=1
-
-
-
-
-
+    case "$gl_cv_func_chown_ctime_works" in
+      *yes) ;;
+      *)
 
+$as_echo "#define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h
 
+        REPLACE_CHOWN=1
+        ;;
+    esac
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
 
-    fi
 
-    if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
 
 
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
 
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
 
-    fi
-  fi
 
 
-     GNULIB_DIRFD=0;
+     GNULIB_OPENDIR=0;
+  GNULIB_READDIR=0;
+  GNULIB_REWINDDIR=0;
+  GNULIB_CLOSEDIR=0;
+  GNULIB_DIRFD=0;
   GNULIB_FDOPENDIR=0;
   GNULIB_SCANDIR=0;
   GNULIB_ALPHASORT=0;
-    HAVE_DECL_DIRFD=1;
+    HAVE_OPENDIR=1;
+  HAVE_READDIR=1;
+  HAVE_REWINDDIR=1;
+  HAVE_CLOSEDIR=1;
+  HAVE_DECL_DIRFD=1;
   HAVE_DECL_FDOPENDIR=1;
   HAVE_FDOPENDIR=1;
   HAVE_SCANDIR=1;
   HAVE_ALPHASORT=1;
+  REPLACE_OPENDIR=0;
   REPLACE_CLOSEDIR=0;
   REPLACE_DIRFD=0;
   REPLACE_FDOPENDIR=0;
-  REPLACE_OPENDIR=0;
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
-if test "${gl_cv_have_include_next+set}" = set; then
+if ${gl_cv_have_include_next+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -rf conftestd1a conftestd1b conftestd2
@@ -12192,72 +9835,32 @@ EOF
 EOF
      gl_save_CPPFLAGS="$CPPFLAGS"
      CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
-     cat >conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 #include <conftest.h>
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_have_include_next=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
-        cat >conftest.$ac_ext <<_ACEOF
+  CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 #include <conftest.h>
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_have_include_next=buggy
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_have_include_next=no
+  gl_cv_have_include_next=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
      CPPFLAGS="$gl_save_CPPFLAGS"
      rm -rf conftestd1a conftestd1b conftestd2
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5
 $as_echo "$gl_cv_have_include_next" >&6; }
   PRAGMA_SYSTEM_HEADER=
   if test $gl_cv_have_include_next = yes; then
@@ -12278,16 +9881,12 @@ $as_echo "$gl_cv_have_include_next" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether system header files limit the line length" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
 $as_echo_n "checking whether system header files limit the line length... " >&6; }
-if test "${gl_cv_pragma_columns+set}" = set; then
+if ${gl_cv_pragma_columns+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #ifdef __TANDEM
@@ -12296,7 +9895,7 @@ 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
@@ -12305,7 +9904,7 @@ rm -f conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_pragma_columns" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
 $as_echo "$gl_cv_pragma_columns" >&6; }
   if test $gl_cv_pragma_columns = yes; then
     PRAGMA_COLUMNS="#pragma COLUMNS 10000"
@@ -12327,54 +9926,22 @@ $as_echo "$gl_cv_pragma_columns" >&6; }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS basename-lgpl.$ac_objext"
-
 
 
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS dirname-lgpl.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking if environ is properly declared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
 $as_echo_n "checking if environ is properly declared... " >&6; }
-  if test "${gt_cv_var_environ_declaration+set}" = set; then
+  if ${gt_cv_var_environ_declaration+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.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 ()
@@ -12384,42 +9951,19 @@ environ.foo = 1;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gt_cv_var_environ_declaration=no
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_var_environ_declaration=yes
+  gt_cv_var_environ_declaration=yes
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $gt_cv_var_environ_declaration" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
 $as_echo "$gt_cv_var_environ_declaration" >&6; }
   if test $gt_cv_var_environ_declaration = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ENVIRON_DECL 1
-_ACEOF
+$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
 
   fi
 
@@ -12430,20 +9974,19 @@ _ACEOF
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for complete errno.h" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
 $as_echo_n "checking for complete errno.h... " >&6; }
-if test "${gl_cv_header_errno_h_complete+set}" = set; then
+if ${gl_cv_header_errno_h_complete+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
 #if !defined ENOMSG
 booboo
 #endif
@@ -12468,6 +10011,12 @@ booboo
 #if !defined ENOTSUP
 booboo
 #endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
 #if !defined ESTALE
 booboo
 #endif
@@ -12477,10 +10026,19 @@ booboo
 #if !defined ECANCELED
 booboo
 #endif
+#if !defined EOWNERDEAD
+booboo
+#endif
+#if !defined ENOTRECOVERABLE
+booboo
+#endif
+#if !defined EILSEQ
+booboo
+#endif
 
 _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
@@ -12489,7 +10047,7 @@ rm -f conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_complete" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5
 $as_echo "$gl_cv_header_errno_h_complete" >&6; }
   if test $gl_cv_header_errno_h_complete = yes; then
     ERRNO_H=''
@@ -12505,17 +10063,13 @@ $as_echo "$gl_cv_header_errno_h_complete" >&6; }
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_errno_h='<'errno.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <errno.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
 $as_echo_n "checking absolute name of <errno.h>... " >&6; }
-if test "${gl_cv_next_errno_h+set}" = set; then
+if ${gl_cv_next_errno_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
 
@@ -12524,17 +10078,31 @@ _ACEOF
                  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 '\#/errno.h#{
-                    s#.*"\(.*/errno.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_errno_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5
 $as_echo "$gl_cv_next_errno_h" >&6; }
      fi
      NEXT_ERRNO_H=$gl_cv_next_errno_h
@@ -12554,19 +10122,23 @@ $as_echo "$gl_cv_next_errno_h" >&6; }
     ERRNO_H='errno.h'
   fi
 
+   if test -n "$ERRNO_H"; then
+  GL_GENERATE_ERRNO_H_TRUE=
+  GL_GENERATE_ERRNO_H_FALSE='#'
+else
+  GL_GENERATE_ERRNO_H_TRUE='#'
+  GL_GENERATE_ERRNO_H_FALSE=
+fi
+
 
   if test -n "$ERRNO_H"; then
-    { $as_echo "$as_me:$LINENO: checking for EMULTIHOP value" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
 $as_echo_n "checking for EMULTIHOP value... " >&6; }
-if test "${gl_cv_header_errno_h_EMULTIHOP+set}" = set; then
+if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
@@ -12576,7 +10148,7 @@ 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
 rm -f conftest*
 
       if test $gl_cv_header_errno_h_EMULTIHOP = no; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #define _XOPEN_SOURCE_EXTENDED 1
 
 _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 -f conftest*
 
         if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then
-                              if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
+                              if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP"        "
 #define _XOPEN_SOURCE_EXTENDED 1
 #include <errno.h>
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
+"; then :
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EMULTIHOP) >= 0)];
-test_array [0] = 0
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+        fi
+      fi
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5
+$as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
+    case $gl_cv_header_errno_h_EMULTIHOP in
+      yes | no)
+        EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE=
+        ;;
+      *)
+        EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP"
+        ;;
+    esac
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EMULTIHOP) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  fi
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+  if test -n "$ERRNO_H"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
+$as_echo_n "checking for ENOLINK value... " >&6; }
+if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_header_errno_h_ENOLINK=yes
+else
+  gl_cv_header_errno_h_ENOLINK=no
+fi
+rm -f conftest*
+
+      if test $gl_cv_header_errno_h_ENOLINK = no; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #define _XOPEN_SOURCE_EXTENDED 1
 #include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main ()
-{
-static int test_array [1 - 2 * !((EMULTIHOP) < 0)];
-test_array [0] = 0
+#ifdef ENOLINK
+yes
+#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_header_errno_h_ENOLINK=hidden
+fi
+rm -f conftest*
 
+        if test $gl_cv_header_errno_h_ENOLINK = hidden; then
+                              if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK"        "
 #define _XOPEN_SOURCE_EXTENDED 1
 #include <errno.h>
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
+"; then :
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EMULTIHOP) >= $ac_mid)];
-test_array [0] = 0
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+        fi
+      fi
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5
+$as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; }
+    case $gl_cv_header_errno_h_ENOLINK in
+      yes | no)
+        ENOLINK_HIDDEN=0; ENOLINK_VALUE=
+        ;;
+      *)
+        ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK"
+        ;;
+    esac
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main ()
-{
-static int test_array [1 - 2 * !((EMULTIHOP) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) gl_cv_header_errno_h_EMULTIHOP=$ac_lo;;
-'')  ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
-
-static long int longval () { return EMULTIHOP; }
-static unsigned long int ulongval () { return EMULTIHOP; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((EMULTIHOP) < 0)
-    {
-      long int i = longval ();
-      if (i != (EMULTIHOP))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (EMULTIHOP))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_errno_h_EMULTIHOP=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-        fi
-      fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EMULTIHOP" >&5
-$as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
-    case $gl_cv_header_errno_h_EMULTIHOP in
-      yes | no)
-        EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE=
-        ;;
-      *)
-        EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP"
-        ;;
-    esac
-
-
-  fi
+  fi
 
 
   if test -n "$ERRNO_H"; then
-    { $as_echo "$as_me:$LINENO: checking for ENOLINK value" >&5
-$as_echo_n "checking for ENOLINK value... " >&6; }
-if test "${gl_cv_header_errno_h_ENOLINK+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
+$as_echo_n "checking for EOVERFLOW value... " >&6; }
+if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <errno.h>
-#ifdef ENOLINK
+#ifdef EOVERFLOW
 yes
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then
-  gl_cv_header_errno_h_ENOLINK=yes
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_header_errno_h_EOVERFLOW=yes
 else
-  gl_cv_header_errno_h_ENOLINK=no
+  gl_cv_header_errno_h_EOVERFLOW=no
 fi
 rm -f conftest*
 
-      if test $gl_cv_header_errno_h_ENOLINK = no; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      if test $gl_cv_header_errno_h_EOVERFLOW = no; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #define _XOPEN_SOURCE_EXTENDED 1
 #include <errno.h>
-#ifdef ENOLINK
+#ifdef EOVERFLOW
 yes
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then
-  gl_cv_header_errno_h_ENOLINK=hidden
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_header_errno_h_EOVERFLOW=hidden
 fi
 rm -f conftest*
 
-        if test $gl_cv_header_errno_h_ENOLINK = hidden; then
-                              if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
+        if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then
+                              if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW"        "
 #define _XOPEN_SOURCE_EXTENDED 1
 #include <errno.h>
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
+"; then :
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((ENOLINK) >= 0)];
-test_array [0] = 0
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+        fi
+      fi
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5
+$as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
+    case $gl_cv_header_errno_h_EOVERFLOW in
+      yes | no)
+        EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE=
+        ;;
+      *)
+        EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW"
+        ;;
+    esac
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((ENOLINK) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  fi
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_have_decl=0
+fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
+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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    ac_cv_func_strerror_r_char_p=no
+    if test $ac_cv_have_decl_strerror_r = yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
 int
 main ()
 {
-static int test_array [1 - 2 * !((ENOLINK) < 0)];
-test_array [0] = 0
+
+         char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         char *p = strerror_r (0, buf, sizeof buf);
+         return !p || x;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+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
+    else
+      # strerror_r is not declared.  Choose between
+      # systems that have relatively inaccessible declarations for the
+      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+      # 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 :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
-
+$ac_includes_default
+       extern char *strerror_r ();
 int
 main ()
 {
-static int test_array [1 - 2 * !((ENOLINK) >= $ac_mid)];
-test_array [0] = 0
-
+char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         return ! isalpha (x);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+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 \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    fi
 
-       ac_lo= ac_hi=
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
+$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
+if test $ac_cv_func_strerror_r_char_p = yes; then
+
+$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((ENOLINK) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fchdir" = xyes; then :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
+  ac_have_decl=0
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) gl_cv_header_errno_h_ENOLINK=$ac_lo;;
-'')  ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FCHDIR $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
-
-static long int longval () { return ENOLINK; }
-static unsigned long int ulongval () { return ENOLINK; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((ENOLINK) < 0)
-    {
-      long int i = longval ();
-      if (i != (ENOLINK))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (ENOLINK))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_errno_h_ENOLINK=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+     GNULIB_FCHMODAT=0;
+  GNULIB_FSTAT=0;
+  GNULIB_FSTATAT=0;
+  GNULIB_FUTIMENS=0;
+  GNULIB_LCHMOD=0;
+  GNULIB_LSTAT=0;
+  GNULIB_MKDIRAT=0;
+  GNULIB_MKFIFO=0;
+  GNULIB_MKFIFOAT=0;
+  GNULIB_MKNOD=0;
+  GNULIB_MKNODAT=0;
+  GNULIB_STAT=0;
+  GNULIB_UTIMENSAT=0;
+    HAVE_FCHMODAT=1;
+  HAVE_FSTATAT=1;
+  HAVE_FUTIMENS=1;
+  HAVE_LCHMOD=1;
+  HAVE_LSTAT=1;
+  HAVE_MKDIRAT=1;
+  HAVE_MKFIFO=1;
+  HAVE_MKFIFOAT=1;
+  HAVE_MKNOD=1;
+  HAVE_MKNODAT=1;
+  HAVE_UTIMENSAT=1;
+  REPLACE_FSTAT=0;
+  REPLACE_FSTATAT=0;
+  REPLACE_FUTIMENS=0;
+  REPLACE_LSTAT=0;
+  REPLACE_MKDIR=0;
+  REPLACE_MKFIFO=0;
+  REPLACE_MKNOD=0;
+  REPLACE_STAT=0;
+  REPLACE_UTIMENSAT=0;
 
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-        fi
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_ENOLINK" >&5
-$as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; }
-    case $gl_cv_header_errno_h_ENOLINK in
-      yes | no)
-        ENOLINK_HIDDEN=0; ENOLINK_VALUE=
-        ;;
-      *)
-        ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK"
-        ;;
-    esac
 
 
-  fi
 
 
-  if test -n "$ERRNO_H"; then
-    { $as_echo "$as_me:$LINENO: checking for EOVERFLOW value" >&5
-$as_echo_n "checking for EOVERFLOW value... " >&6; }
-if test "${gl_cv_header_errno_h_EOVERFLOW+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
+  GNULIB_FCNTL=0;
+  GNULIB_NONBLOCKING=0;
+  GNULIB_OPEN=0;
+  GNULIB_OPENAT=0;
+    HAVE_FCNTL=1;
+  HAVE_OPENAT=1;
+  REPLACE_FCNTL=0;
+  REPLACE_OPEN=0;
+  REPLACE_OPENAT=0;
 
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <errno.h>
-#ifdef EOVERFLOW
-yes
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then
-  gl_cv_header_errno_h_EOVERFLOW=yes
-else
-  gl_cv_header_errno_h_EOVERFLOW=no
-fi
-rm -f conftest*
 
-      if test $gl_cv_header_errno_h_EOVERFLOW = no; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-#ifdef EOVERFLOW
-yes
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then
-  gl_cv_header_errno_h_EOVERFLOW=hidden
-fi
-rm -f conftest*
 
-        if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then
-                              if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EOVERFLOW) >= 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if ${gl_cv_header_working_fcntl_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  gl_cv_header_working_fcntl_h=cross-compiling
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
+#include <sys/types.h>
+           #include <sys/stat.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           # include <stdlib.h>
+           # defined sleep(n) _sleep ((n) * 1000)
+           #endif
+           #include <fcntl.h>
+           #ifndef O_NOATIME
+            #define O_NOATIME 0
+           #endif
+           #ifndef O_NOFOLLOW
+            #define O_NOFOLLOW 0
+           #endif
+           static int const constants[] =
+            {
+              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
+              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
+            };
 
 int
 main ()
 {
-static int test_array [1 - 2 * !((EOVERFLOW) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+            int result = !constants;
+            #if HAVE_SYMLINK
+            {
+              static char const sym[] = "conftest.sym";
+              if (symlink ("/dev/null", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              if (unlink (sym) != 0 || symlink (".", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              unlink (sym);
+            }
+            #endif
+            {
+              static char const file[] = "confdefs.h";
+              int fd = open (file, O_RDONLY | O_NOATIME);
+              if (fd < 0)
+                result |= 8;
+              else
+                {
+                  struct stat st0;
+                  if (fstat (fd, &st0) != 0)
+                    result |= 16;
+                  else
+                    {
+                      char c;
+                      sleep (1);
+                      if (read (fd, &c, 1) != 1)
+                        result |= 24;
+                      else
+                        {
+                          if (close (fd) != 0)
+                            result |= 32;
+                          else
+                            {
+                              struct stat st1;
+                              if (stat (file, &st1) != 0)
+                                result |= 40;
+                              else
+                                if (st0.st_atime != st1.st_atime)
+                                  result |= 64;
+                            }
+                        }
+                    }
+                }
+            }
+            return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_header_working_fcntl_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  case $? in #(
+        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+         *) gl_cv_header_working_fcntl_h='no';;
+        esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
+$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOATIME $ac_val
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EOVERFLOW) < 0)];
-test_array [0] = 0
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOFOLLOW $ac_val
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
 
+
+
+
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+if ${ac_cv_type_mbstate_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((EOVERFLOW) >= $ac_mid)];
-test_array [0] = 0
-
+mbstate_t x; return sizeof x;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_mbstate_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+  ac_cv_type_mbstate_t=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
+$as_echo "$ac_cv_type_mbstate_t" >&6; }
+   if test $ac_cv_type_mbstate_t = yes; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
+$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+   else
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
+$as_echo "#define mbstate_t int" >>confdefs.h
 
-int
-main ()
-{
-static int test_array [1 - 2 * !((EOVERFLOW) <= $ac_mid)];
-test_array [0] = 0
+   fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) gl_cv_header_errno_h_EOVERFLOW=$ac_lo;;
-'')  ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define _XOPEN_SOURCE_EXTENDED 1
-#include <errno.h>
-/* The following two lines are a workaround against an autoconf-2.52 bug.  */
-#include <stdio.h>
-#include <stdlib.h>
 
-static long int longval () { return EOVERFLOW; }
-static unsigned long int ulongval () { return EOVERFLOW; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  GNULIB_DPRINTF=0;
+  GNULIB_FCLOSE=0;
+  GNULIB_FDOPEN=0;
+  GNULIB_FFLUSH=0;
+  GNULIB_FGETC=0;
+  GNULIB_FGETS=0;
+  GNULIB_FOPEN=0;
+  GNULIB_FPRINTF=0;
+  GNULIB_FPRINTF_POSIX=0;
+  GNULIB_FPURGE=0;
+  GNULIB_FPUTC=0;
+  GNULIB_FPUTS=0;
+  GNULIB_FREAD=0;
+  GNULIB_FREOPEN=0;
+  GNULIB_FSCANF=0;
+  GNULIB_FSEEK=0;
+  GNULIB_FSEEKO=0;
+  GNULIB_FTELL=0;
+  GNULIB_FTELLO=0;
+  GNULIB_FWRITE=0;
+  GNULIB_GETC=0;
+  GNULIB_GETCHAR=0;
+  GNULIB_GETDELIM=0;
+  GNULIB_GETLINE=0;
+  GNULIB_OBSTACK_PRINTF=0;
+  GNULIB_OBSTACK_PRINTF_POSIX=0;
+  GNULIB_PCLOSE=0;
+  GNULIB_PERROR=0;
+  GNULIB_POPEN=0;
+  GNULIB_PRINTF=0;
+  GNULIB_PRINTF_POSIX=0;
+  GNULIB_PUTC=0;
+  GNULIB_PUTCHAR=0;
+  GNULIB_PUTS=0;
+  GNULIB_REMOVE=0;
+  GNULIB_RENAME=0;
+  GNULIB_RENAMEAT=0;
+  GNULIB_SCANF=0;
+  GNULIB_SNPRINTF=0;
+  GNULIB_SPRINTF_POSIX=0;
+  GNULIB_STDIO_H_NONBLOCKING=0;
+  GNULIB_STDIO_H_SIGPIPE=0;
+  GNULIB_TMPFILE=0;
+  GNULIB_VASPRINTF=0;
+  GNULIB_VFSCANF=0;
+  GNULIB_VSCANF=0;
+  GNULIB_VDPRINTF=0;
+  GNULIB_VFPRINTF=0;
+  GNULIB_VFPRINTF_POSIX=0;
+  GNULIB_VPRINTF=0;
+  GNULIB_VPRINTF_POSIX=0;
+  GNULIB_VSNPRINTF=0;
+  GNULIB_VSPRINTF_POSIX=0;
+    HAVE_DECL_FPURGE=1;
+  HAVE_DECL_FSEEKO=1;
+  HAVE_DECL_FTELLO=1;
+  HAVE_DECL_GETDELIM=1;
+  HAVE_DECL_GETLINE=1;
+  HAVE_DECL_OBSTACK_PRINTF=1;
+  HAVE_DECL_SNPRINTF=1;
+  HAVE_DECL_VSNPRINTF=1;
+  HAVE_DPRINTF=1;
+  HAVE_FSEEKO=1;
+  HAVE_FTELLO=1;
+  HAVE_PCLOSE=1;
+  HAVE_POPEN=1;
+  HAVE_RENAMEAT=1;
+  HAVE_VASPRINTF=1;
+  HAVE_VDPRINTF=1;
+  REPLACE_DPRINTF=0;
+  REPLACE_FCLOSE=0;
+  REPLACE_FDOPEN=0;
+  REPLACE_FFLUSH=0;
+  REPLACE_FOPEN=0;
+  REPLACE_FPRINTF=0;
+  REPLACE_FPURGE=0;
+  REPLACE_FREOPEN=0;
+  REPLACE_FSEEK=0;
+  REPLACE_FSEEKO=0;
+  REPLACE_FTELL=0;
+  REPLACE_FTELLO=0;
+  REPLACE_GETDELIM=0;
+  REPLACE_GETLINE=0;
+  REPLACE_OBSTACK_PRINTF=0;
+  REPLACE_PERROR=0;
+  REPLACE_POPEN=0;
+  REPLACE_PRINTF=0;
+  REPLACE_REMOVE=0;
+  REPLACE_RENAME=0;
+  REPLACE_RENAMEAT=0;
+  REPLACE_SNPRINTF=0;
+  REPLACE_SPRINTF=0;
+  REPLACE_STDIO_READ_FUNCS=0;
+  REPLACE_STDIO_WRITE_FUNCS=0;
+  REPLACE_TMPFILE=0;
+  REPLACE_VASPRINTF=0;
+  REPLACE_VDPRINTF=0;
+  REPLACE_VFPRINTF=0;
+  REPLACE_VPRINTF=0;
+  REPLACE_VSNPRINTF=0;
+  REPLACE_VSPRINTF=0;
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5
+$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; }
+if ${gl_cv_var_stdin_large_offset+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 #include <stdio.h>
-#include <stdlib.h>
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((EOVERFLOW) < 0)
-    {
-      long int i = longval ();
-      if (i != (EOVERFLOW))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (EOVERFLOW))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
+#if defined __SL64 && defined __SCLE /* cygwin */
+  /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+     fseeko/ftello needlessly fail.  This bug was fixed in 1.5.25, and
+     it is easier to do a version check than building a runtime test.  */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+  choke me
+# endif
+#endif
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_errno_h_EOVERFLOW=`cat conftest.val`
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_var_stdin_large_offset=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  gl_cv_var_stdin_large_offset=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-rm -f conftest.val
-        fi
-      fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5
+$as_echo "$gl_cv_var_stdin_large_offset" >&6; }
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EOVERFLOW" >&5
-$as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
-    case $gl_cv_header_errno_h_EOVERFLOW in
-      yes | no)
-        EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE=
-        ;;
-      *)
-        EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW"
-        ;;
-    esac
 
 
-  fi
 
 
-{ $as_echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5
-$as_echo_n "checking whether strerror_r is declared... " >&6; }
-if test "${ac_cv_have_decl_strerror_r+set}" = set; then
+  case "$host_os" in
+    mingw*)
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5
+$as_echo_n "checking for 64-bit off_t... " >&6; }
+if ${gl_cv_type_off_t_64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
+
 int
 main ()
 {
-#ifndef strerror_r
-  (void) strerror_r;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strerror_r=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_off_t_64=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strerror_r=no
+  gl_cv_type_off_t_64=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5
-$as_echo "$ac_cv_have_decl_strerror_r" >&6; }
-if test "x$ac_cv_have_decl_strerror_r" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5
+$as_echo "$gl_cv_type_off_t_64" >&6; }
+      if test $gl_cv_type_off_t_64 = no; then
+        WINDOWS_64_BIT_OFF_T=1
+      else
+        WINDOWS_64_BIT_OFF_T=0
+      fi
+                  WINDOWS_64_BIT_ST_SIZE=1
+      ;;
+    *)
+                                                      WINDOWS_64_BIT_OFF_T=0
+      WINDOWS_64_BIT_ST_SIZE=0
+      ;;
+  esac
+
+
+
+
+
+
+
+
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR_R 1
-_ACEOF
 
 
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_types_h='<'sys/types.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if ${gl_cv_next_sys_types_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR_R 0
+
+               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
+                 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"`'"'
 
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+     fi
+     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_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/types.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_types_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
 
 
 
-for ac_func in strerror_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fseeko" = xyes; then :
+  ac_have_decl=1
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FSEEKO $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
 
 int
 main ()
 {
-return $ac_func ();
+fseeko (stdin, 0, 0);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_fseeko=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_func_fseeko=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
 
-fi
-done
 
-{ $as_echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5
-$as_echo_n "checking whether strerror_r returns char *... " >&6; }
-if test "${ac_cv_func_strerror_r_char_p+set}" = set; then
+  if test $ac_cv_have_decl_fseeko = no; then
+    HAVE_DECL_FSEEKO=0
+  fi
+
+  if test $gl_cv_func_fseeko = no; then
+    HAVE_FSEEKO=0
+  else
+    if test $WINDOWS_64_BIT_OFF_T = 1; then
+      REPLACE_FSEEKO=1
+    fi
+    if test $gl_cv_var_stdin_large_offset = no; then
+      REPLACE_FSEEKO=1
+    fi
+
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
+$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+if ${gl_cv_next_sys_stat_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    ac_cv_func_strerror_r_char_p=no
-    if test $ac_cv_have_decl_strerror_r = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
+             if test $ac_cv_header_sys_stat_h = yes; then
 
-         char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         char *p = strerror_r (0, buf, sizeof buf);
-         return !p || x;
 
-  ;
-  return 0;
-}
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/stat.h>
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_strerror_r_char_p=yes
+                                                                                                                        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"`'"'
+          else
+               gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5
+$as_echo "$gl_cv_next_sys_stat_h" >&6; }
+     fi
+     NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_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/stat.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_stat_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+
+$as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h
+
+  fi
+
+      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 :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+$as_echo "#define nlink_t int" >>confdefs.h
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    else
-      # strerror_r is not declared.  Choose between
-      # systems that have relatively inaccessible declarations for the
-      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
-      # 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
-  :
+
+
+    for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat     mknod mknodat stat utimensat; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-       extern char *strerror_r ();
+#include <sys/stat.h>
+
 int
 main ()
 {
-char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         return ! isalpha (x);
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_strerror_r_char_p=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  eval "$as_gl_Symbol=no"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-    fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5
-$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
-if test $ac_cv_func_strerror_r_char_p = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STRERROR_R_CHAR_P 1
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
+      done
 
 
-     GNULIB_FCHMODAT=0;
-  GNULIB_FSTATAT=0;
-  GNULIB_FUTIMENS=0;
-  GNULIB_LCHMOD=0;
-  GNULIB_LSTAT=0;
-  GNULIB_MKDIRAT=0;
-  GNULIB_MKFIFO=0;
-  GNULIB_MKFIFOAT=0;
-  GNULIB_MKNOD=0;
-  GNULIB_MKNODAT=0;
-  GNULIB_STAT=0;
-  GNULIB_UTIMENSAT=0;
-    HAVE_FCHMODAT=1;
-  HAVE_FSTATAT=1;
-  HAVE_FUTIMENS=1;
-  HAVE_LCHMOD=1;
-  HAVE_LSTAT=1;
-  HAVE_MKDIRAT=1;
-  HAVE_MKFIFO=1;
-  HAVE_MKFIFOAT=1;
-  HAVE_MKNOD=1;
-  HAVE_MKNODAT=1;
-  HAVE_UTIMENSAT=1;
-  REPLACE_FSTAT=0;
-  REPLACE_FSTATAT=0;
-  REPLACE_FUTIMENS=0;
-  REPLACE_LSTAT=0;
-  REPLACE_MKDIR=0;
-  REPLACE_MKFIFO=0;
-  REPLACE_MKNOD=0;
-  REPLACE_STAT=0;
-  REPLACE_UTIMENSAT=0;
 
-{ $as_echo "$as_me:$LINENO: checking whether fchdir is declared" >&5
-$as_echo_n "checking whether fchdir is declared... " >&6; }
-if test "${ac_cv_have_decl_fchdir+set}" = set; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
+if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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 :
+  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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
 main ()
 {
-#ifndef fchdir
-  (void) fchdir;
-#endif
+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;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fchdir=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_lstat_dereferences_slashed_symlink=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fchdir=no
+  gl_cv_func_lstat_dereferences_slashed_symlink=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fchdir" >&5
-$as_echo "$ac_cv_have_decl_fchdir" >&6; }
-if test "x$ac_cv_have_decl_fchdir" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FCHDIR 1
-_ACEOF
+     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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
+$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
+  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+    *yes)
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FCHDIR 0
+cat >>confdefs.h <<_ACEOF
+#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
 _ACEOF
 
-
-fi
-
+      ;;
+  esac
 
 
 
 
-  GNULIB_FCNTL=0;
-  GNULIB_OPEN=0;
-  GNULIB_OPENAT=0;
-    HAVE_FCNTL=1;
-  HAVE_OPENAT=1;
-  REPLACE_FCNTL=0;
-  REPLACE_OPEN=0;
-  REPLACE_OPENAT=0;
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for promoted mode_t type" >&5
-$as_echo_n "checking for promoted mode_t type... " >&6; }
-if test "${gl_cv_promoted_mode_t+set}" = set; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5
+$as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; }
+if ${gl_cv_func_getcwd_null+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                     # Guess yes on glibc systems.
+            *-gnu*)  gl_cv_func_getcwd_null="guessing yes";;
+                     # Guess yes on Cygwin.
+            cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+                     # If we don't know, assume the worst.
+            *)       gl_cv_func_getcwd_null="guessing no";;
+          esac
 
-                cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
+
+#        if HAVE_UNISTD_H
+#         include <unistd.h>
+#        else /* on Windows with MSVC */
+#         include <direct.h>
+#        endif
+#        ifndef getcwd
+         char *getcwd ();
+#        endif
+
 int
 main ()
 {
-typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+   However, mingw fails to honor non-zero size.  */
+#else
+           if (chdir ("/") != 0)
+             return 1;
+           else
+             {
+               char *f = getcwd (NULL, 0);
+               if (! f)
+                 return 2;
+               if (f[0] != '/')
+                 return 3;
+               if (f[1] != '\0')
+                 return 4;
+               return 0;
+             }
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_promoted_mode_t='int'
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getcwd_null=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_promoted_mode_t='mode_t'
+  gl_cv_func_getcwd_null=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_promoted_mode_t" >&5
-$as_echo "$gl_cv_promoted_mode_t" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define PROMOTED_MODE_T $gl_cv_promoted_mode_t
-_ACEOF
-
-
-
-  GNULIB_DPRINTF=0;
-  GNULIB_FCLOSE=0;
-  GNULIB_FFLUSH=0;
-  GNULIB_FOPEN=0;
-  GNULIB_FPRINTF=0;
-  GNULIB_FPRINTF_POSIX=0;
-  GNULIB_FPURGE=0;
-  GNULIB_FPUTC=0;
-  GNULIB_FPUTS=0;
-  GNULIB_FREOPEN=0;
-  GNULIB_FSEEK=0;
-  GNULIB_FSEEKO=0;
-  GNULIB_FTELL=0;
-  GNULIB_FTELLO=0;
-  GNULIB_FWRITE=0;
-  GNULIB_GETDELIM=0;
-  GNULIB_GETLINE=0;
-  GNULIB_OBSTACK_PRINTF=0;
-  GNULIB_OBSTACK_PRINTF_POSIX=0;
-  GNULIB_PERROR=0;
-  GNULIB_POPEN=0;
-  GNULIB_PRINTF=0;
-  GNULIB_PRINTF_POSIX=0;
-  GNULIB_PUTC=0;
-  GNULIB_PUTCHAR=0;
-  GNULIB_PUTS=0;
-  GNULIB_REMOVE=0;
-  GNULIB_RENAME=0;
-  GNULIB_RENAMEAT=0;
-  GNULIB_SNPRINTF=0;
-  GNULIB_SPRINTF_POSIX=0;
-  GNULIB_STDIO_H_SIGPIPE=0;
-  GNULIB_TMPFILE=0;
-  GNULIB_VASPRINTF=0;
-  GNULIB_VDPRINTF=0;
-  GNULIB_VFPRINTF=0;
-  GNULIB_VFPRINTF_POSIX=0;
-  GNULIB_VPRINTF=0;
-  GNULIB_VPRINTF_POSIX=0;
-  GNULIB_VSNPRINTF=0;
-  GNULIB_VSPRINTF_POSIX=0;
-    HAVE_DECL_FPURGE=1;
-  HAVE_DECL_FSEEKO=1;
-  HAVE_DECL_FTELLO=1;
-  HAVE_DECL_GETDELIM=1;
-  HAVE_DECL_GETLINE=1;
-  HAVE_DECL_OBSTACK_PRINTF=1;
-  HAVE_DECL_SNPRINTF=1;
-  HAVE_DECL_VSNPRINTF=1;
-  HAVE_DPRINTF=1;
-  HAVE_FSEEKO=1;
-  HAVE_FTELLO=1;
-  HAVE_RENAMEAT=1;
-  HAVE_VASPRINTF=1;
-  HAVE_VDPRINTF=1;
-  REPLACE_DPRINTF=0;
-  REPLACE_FCLOSE=0;
-  REPLACE_FFLUSH=0;
-  REPLACE_FOPEN=0;
-  REPLACE_FPRINTF=0;
-  REPLACE_FPURGE=0;
-  REPLACE_FREOPEN=0;
-  REPLACE_FSEEK=0;
-  REPLACE_FSEEKO=0;
-  REPLACE_FTELL=0;
-  REPLACE_FTELLO=0;
-  REPLACE_GETDELIM=0;
-  REPLACE_GETLINE=0;
-  REPLACE_OBSTACK_PRINTF=0;
-  REPLACE_PERROR=0;
-  REPLACE_POPEN=0;
-  REPLACE_PRINTF=0;
-  REPLACE_REMOVE=0;
-  REPLACE_RENAME=0;
-  REPLACE_RENAMEAT=0;
-  REPLACE_SNPRINTF=0;
-  REPLACE_SPRINTF=0;
-  REPLACE_STDIO_WRITE_FUNCS=0;
-  REPLACE_TMPFILE=0;
-  REPLACE_VASPRINTF=0;
-  REPLACE_VDPRINTF=0;
-  REPLACE_VFPRINTF=0;
-  REPLACE_VPRINTF=0;
-  REPLACE_VSNPRINTF=0;
-  REPLACE_VSPRINTF=0;
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
+$as_echo "$gl_cv_func_getcwd_null" >&6; }
 
 
-  { $as_echo "$as_me:$LINENO: checking for working fcntl.h" >&5
-$as_echo_n "checking for working fcntl.h... " >&6; }
-if test "${gl_cv_header_working_fcntl_h+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
+$as_echo_n "checking for getcwd with POSIX signature... " >&6; }
+if ${gl_cv_func_getcwd_posix_signature+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_header_working_fcntl_h=cross-compiling
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-           #include <sys/stat.h>
-           #include <unistd.h>
-           #include <fcntl.h>
-           #ifndef O_NOATIME
-            #define O_NOATIME 0
-           #endif
-           #ifndef O_NOFOLLOW
-            #define O_NOFOLLOW 0
-           #endif
-           static int const constants[] =
-            {
-              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
-              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
-            };
-
+#include <unistd.h>
 int
 main ()
 {
+extern
+           #ifdef __cplusplus
+           "C"
+           #endif
+           char *getcwd (char *, size_t);
 
-            int result = !constants;
-            {
-              static char const sym[] = "conftest.sym";
-              if (symlink (".", sym) != 0)
-                result |= 2;
-              else
-                {
-                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
-                  if (fd >= 0)
-                    {
-                      close (fd);
-                      result |= 4;
-                    }
-                }
-              unlink (sym);
-            }
-            {
-              static char const file[] = "confdefs.h";
-              int fd = open (file, O_RDONLY | O_NOATIME);
-              if (fd < 0)
-                result |= 8;
-              else
-                {
-                  struct stat st0;
-                  if (fstat (fd, &st0) != 0)
-                    result |= 16;
-                  else
-                    {
-                      char c;
-                      sleep (1);
-                      if (read (fd, &c, 1) != 1)
-                        result |= 24;
-                      else
-                        {
-                          if (close (fd) != 0)
-                            result |= 32;
-                          else
-                            {
-                              struct stat st1;
-                              if (stat (file, &st1) != 0)
-                                result |= 40;
-                              else
-                                if (st0.st_atime != st1.st_atime)
-                                  result |= 64;
-                            }
-                        }
-                    }
-                }
-            }
-            return result;
   ;
   return 0;
 }
+
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_working_fcntl_h=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_getcwd_posix_signature=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_getcwd_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-( exit $ac_status )
-case $? in #(
-        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
-        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
-         *) gl_cv_header_working_fcntl_h='no';;
-        esac
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5
+$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getcwd" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCWD $ac_have_decl
+_ACEOF
 
+ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdelim" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_fcntl_h" >&5
-$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
-
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOATIME $ac_val
+#define HAVE_DECL_GETDELIM $ac_have_decl
 _ACEOF
 
 
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
+
+
+
+ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getline" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOFOLLOW $ac_val
+#define HAVE_DECL_GETLINE $ac_have_decl
 _ACEOF
 
 
@@ -14542,611 +11409,640 @@ _ACEOF
 
 
 
-   { $as_echo "$as_me:$LINENO: checking for mbstate_t" >&5
-$as_echo_n "checking for mbstate_t... " >&6; }
-if test "${ac_cv_type_mbstate_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int
-main ()
-{
-mbstate_t x; return sizeof x;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_type_mbstate_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_mbstate_t=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
-$as_echo "$ac_cv_type_mbstate_t" >&6; }
-   if test $ac_cv_type_mbstate_t = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBSTATE_T 1
-_ACEOF
 
-   else
 
-cat >>confdefs.h <<\_ACEOF
-#define mbstate_t int
-_ACEOF
 
-   fi
 
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_getopt_h='<'getopt.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
+$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
+if ${gl_cv_next_getopt_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_getopt_h = yes; then
+
 
+               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
+                 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"`'"'
+          else
+               gl_cv_next_getopt_h='<'getopt.h'>'
+             fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5
+$as_echo "$gl_cv_next_getopt_h" >&6; }
+     fi
+     NEXT_GETOPT_H=$gl_cv_next_getopt_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='<'getopt.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_getopt_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive
 
 
 
 
+  if test $ac_cv_header_getopt_h = yes; then
+    HAVE_GETOPT_H=1
+  else
+    HAVE_GETOPT_H=0
+  fi
 
 
+  gl_replace_getopt=
 
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETOPT_H 1
+_ACEOF
 
+else
+  gl_replace_getopt=yes
+fi
 
+done
 
+  fi
 
+    if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETOPT_LONG_ONLY 1
+_ACEOF
 
+else
+  gl_replace_getopt=yes
+fi
+done
 
+  fi
 
-  { $as_echo "$as_me:$LINENO: checking for fseeko" >&5
-$as_echo_n "checking for fseeko... " >&6; }
-if test "${gl_cv_func_fseeko+set}" = set; then
+          if test -z "$gl_replace_getopt"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
+$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
+if ${gl_cv_func_getopt_posix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+                                                if test $cross_compiling = no; then
+                              if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdio.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
 int
 main ()
 {
-fseeko (stdin, 0, 0);
-  ;
+  static char program[] = "program";
+  static char a[] = "-a";
+  static char foo[] = "foo";
+  static char bar[] = "bar";
+  char *argv[] = { program, a, foo, bar, NULL };
+  int c;
+
+  c = getopt (4, argv, "ab");
+  if (!(c == 'a'))
+    return 1;
+  c = getopt (4, argv, "ab");
+  if (!(c == -1))
+    return 2;
+  if (!(optind == 2))
+    return 3;
   return 0;
 }
+
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gl_cv_func_fseeko=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_posix=maybe
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_fseeko=no
+  gl_cv_func_getopt_posix=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fseeko" >&5
-$as_echo "$gl_cv_func_fseeko" >&6; }
 
-
-    { $as_echo "$as_me:$LINENO: checking whether stdin defaults to large file offsets" >&5
-$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; }
-if test "${gl_cv_var_stdin_large_offset+set}" = set; then
-  $as_echo_n "(cached) " >&6
+          if test $gl_cv_func_getopt_posix = maybe; then
+                                    if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdio.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
 int
 main ()
 {
-#if defined __SL64 && defined __SCLE /* cygwin */
-  /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
-     fseeko/ftello needlessly fail.  This bug was fixed in 1.5.25, and
-     it is easier to do a version check than building a runtime test.  */
-# include <cygwin/version.h>
-# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
-  choke me
-# endif
-#endif
-  ;
+  static char program[] = "program";
+  static char donald[] = "donald";
+  static char p[] = "-p";
+  static char billy[] = "billy";
+  static char duck[] = "duck";
+  static char a[] = "-a";
+  static char bar[] = "bar";
+  char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+  int c;
+
+  c = getopt (7, argv, "+abp:q:");
+  if (!(c == -1))
+    return 4;
+  if (!(strcmp (argv[0], "program") == 0))
+    return 5;
+  if (!(strcmp (argv[1], "donald") == 0))
+    return 6;
+  if (!(strcmp (argv[2], "-p") == 0))
+    return 7;
+  if (!(strcmp (argv[3], "billy") == 0))
+    return 8;
+  if (!(strcmp (argv[4], "duck") == 0))
+    return 9;
+  if (!(strcmp (argv[5], "-a") == 0))
+    return 10;
+  if (!(strcmp (argv[6], "bar") == 0))
+    return 11;
+  if (!(optind == 1))
+    return 12;
   return 0;
 }
+
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gl_cv_var_stdin_large_offset=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_posix=maybe
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_var_stdin_large_offset=no
+  gl_cv_func_getopt_posix=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_var_stdin_large_offset" >&5
-$as_echo "$gl_cv_var_stdin_large_offset" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking whether fseeko is declared" >&5
-$as_echo_n "checking whether fseeko is declared... " >&6; }
-if test "${ac_cv_have_decl_fseeko+set}" = set; then
-  $as_echo_n "(cached) " >&6
+          fi
+          if test $gl_cv_func_getopt_posix = maybe; then
+                        if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
 int
 main ()
 {
-#ifndef fseeko
-  (void) fseeko;
-#endif
-
-  ;
+  static char program[] = "program";
+  static char ab[] = "-ab";
+  char *argv[3] = { program, ab, NULL };
+  if (getopt (2, argv, "ab:") != 'a')
+    return 13;
+  if (getopt (2, argv, "ab:") != '?')
+    return 14;
+  if (optopt != 'b')
+    return 15;
+  if (optind != 2)
+    return 16;
   return 0;
 }
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fseeko=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_posix=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fseeko=no
+  gl_cv_func_getopt_posix=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fseeko" >&5
-$as_echo "$ac_cv_have_decl_fseeko" >&6; }
-if test "x$ac_cv_have_decl_fseeko" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FSEEKO 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FSEEKO 0
-_ACEOF
 
+          fi
+        else
+          case "$host_os" in
+            darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";;
+            *)                       gl_cv_func_getopt_posix="guessing yes";;
+          esac
+        fi
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5
+$as_echo "$gl_cv_func_getopt_posix" >&6; }
+    case "$gl_cv_func_getopt_posix" in
+      *no) gl_replace_getopt=yes ;;
+    esac
+  fi
 
-
-
-
-
-   { $as_echo "$as_me:$LINENO: checking whether getcwd (NULL, 0) allocates memory for result" >&5
-$as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; }
-if test "${gl_cv_func_getcwd_null+set}" = set; then
+  if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
+$as_echo_n "checking for working GNU getopt function... " >&6; }
+if ${gl_cv_func_getopt_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_getcwd_null="guessing yes";;
-                               # Guess yes on Cygwin.
-         cygwin*)              gl_cv_func_getcwd_null="guessing yes";;
-                               # Guess yes on mingw.
-         mingw*)               gl_cv_func_getcwd_null="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_getcwd_null="guessing no";;
+  # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
+       # optstring is necessary for programs like m4 that have POSIX-mandated
+       # semantics for supporting options interspersed with files.
+       # Also, since getopt_long is a GNU extension, we require optind=0.
+       # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+       # so take care to revert to the correct (non-)export state.
+       gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+       case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+         xx) gl_had_POSIXLY_CORRECT=exported ;;
+         x)  gl_had_POSIXLY_CORRECT=yes      ;;
+         *)  gl_had_POSIXLY_CORRECT=         ;;
        esac
+       POSIXLY_CORRECT=1
+       export POSIXLY_CORRECT
+       if test "$cross_compiling" = yes; then :
+           gl_cv_func_getopt_gnu="guessing no"
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <getopt.h>
+                           #include <stddef.h>
+                           #include <string.h>
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on Mac OS X.  */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens.  */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+   EXC_BAD_ACCESS.  */
+static void *
+mach_exception_thread (void *arg)
+{
+  /* Buffer for a message to be received.  */
+  struct {
+    mach_msg_header_t head;
+    mach_msg_body_t msgh_body;
+    char data[1024];
+  } msg;
+  mach_msg_return_t retval;
+  /* Wait for a message on the exception port.  */
+  retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+                     our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+  if (retval != MACH_MSG_SUCCESS)
+    abort ();
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+  mach_port_t self = mach_task_self ();
+  /* Allocate a port on which the thread shall listen for exceptions.  */
+  if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+      == KERN_SUCCESS) {
+    /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html.  */
+    if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+                                MACH_MSG_TYPE_MAKE_SEND)
+        == KERN_SUCCESS) {
+      /* The exceptions we want to catch.  Only EXC_BAD_ACCESS is interesting
+         for us.  */
+      exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+      /* Create the thread listening on the exception port.  */
+      pthread_attr_t attr;
+      pthread_t thread;
+      if (pthread_attr_init (&attr) == 0
+          && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+          && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+        pthread_attr_destroy (&attr);
+        /* Replace the exception port info for these exceptions with our own.
+           Note that we replace the exception port for the entire task, not only
+           for a particular thread.  This has the effect that when our exception
+           port gets the message, the thread specific exception port has already
+           been asked, and we don't need to bother about it.
+           See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html.  */
+        task_set_exception_ports (self, mask, our_exception_port,
+                                  EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+      }
+    }
+  }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems.  */
+#include <signal.h>
+/* A POSIX signal handler.  */
+static void
+exception_handler (int sig)
+{
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+  signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+  signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
 
-#        include <unistd.h>
-#        ifndef getcwd
-         char *getcwd ();
-#        endif
 
 int
 main ()
 {
 
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* mingw cwd does not start with '/', but getcwd does allocate.  */
-#else
-           if (chdir ("/") != 0)
-             return 1;
-           else
+             int result = 0;
+
+             nocrash_init();
+
+             /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
+                and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
+                OSF/1 5.1, Solaris 10.  */
              {
-               char *f = getcwd (NULL, 0);
-               if (! f)
-                 return 2;
-               if (f[0] != '/')
-                 return 3;
-               if (f[1] != '\0')
-                 return 4;
-               return 0;
+               static char conftest[] = "conftest";
+               static char plus[] = "-+";
+               char *argv[3] = { conftest, plus, NULL };
+               opterr = 0;
+               if (getopt (2, argv, "+a") != '?')
+                 result |= 1;
              }
-#endif
+             /* This code succeeds on glibc 2.8, mingw,
+                and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+                IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
+             {
+               static char program[] = "program";
+               static char p[] = "-p";
+               static char foo[] = "foo";
+               static char bar[] = "bar";
+               char *argv[] = { program, p, foo, bar, NULL };
+
+               optind = 1;
+               if (getopt (4, argv, "p::") != 'p')
+                 result |= 2;
+               else if (optarg != NULL)
+                 result |= 4;
+               else if (getopt (4, argv, "p::") != -1)
+                 result |= 6;
+               else if (optind != 2)
+                 result |= 8;
+             }
+             /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0.  */
+             {
+               static char program[] = "program";
+               static char foo[] = "foo";
+               static char p[] = "-p";
+               char *argv[] = { program, foo, p, NULL };
+               optind = 0;
+               if (getopt (3, argv, "-p") != 1)
+                 result |= 16;
+               else if (getopt (3, argv, "-p") != 'p')
+                 result |= 16;
+             }
+             /* This code fails on glibc 2.11.  */
+             {
+               static char program[] = "program";
+               static char b[] = "-b";
+               static char a[] = "-a";
+               char *argv[] = { program, b, a, NULL };
+               optind = opterr = 0;
+               if (getopt (3, argv, "+:a:b") != 'b')
+                 result |= 32;
+               else if (getopt (3, argv, "+:a:b") != ':')
+                 result |= 32;
+             }
+             /* This code dumps core on glibc 2.14.  */
+             {
+               static char program[] = "program";
+               static char w[] = "-W";
+               static char dummy[] = "dummy";
+               char *argv[] = { program, w, dummy, NULL };
+               optind = opterr = 1;
+               if (getopt (3, argv, "W;") != 'W')
+                 result |= 64;
+             }
+             return result;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_getcwd_null=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_gnu=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_getcwd_null=no
+  gl_cv_func_getopt_gnu=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+       case $gl_had_POSIXLY_CORRECT in
+         exported) ;;
+         yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
+         *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
+       esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_null" >&5
-$as_echo "$gl_cv_func_getcwd_null" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking whether getcwd is declared" >&5
-$as_echo_n "checking whether getcwd is declared... " >&6; }
-if test "${ac_cv_have_decl_getcwd+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5
+$as_echo "$gl_cv_func_getopt_gnu" >&6; }
+    if test "$gl_cv_func_getopt_gnu" != yes; then
+      gl_replace_getopt=yes
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5
+$as_echo_n "checking for working GNU getopt_long function... " >&6; }
+if ${gl_cv_func_getopt_long_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+              case "$host_os" in
+              openbsd*) gl_cv_func_getopt_long_gnu="guessing no";;
+              *)        gl_cv_func_getopt_long_gnu="guessing yes";;
+            esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <getopt.h>
+                #include <stddef.h>
+                #include <string.h>
+
 int
 main ()
 {
-#ifndef getcwd
-  (void) getcwd;
-#endif
+static const struct option long_options[] =
+                  {
+                    { "xtremely-",no_argument,       NULL, 1003 },
+                    { "xtra",     no_argument,       NULL, 1001 },
+                    { "xtreme",   no_argument,       NULL, 1002 },
+                    { "xtremely", no_argument,       NULL, 1003 },
+                    { NULL,       0,                 NULL, 0 }
+                  };
+                /* This code fails on OpenBSD 5.0.  */
+                {
+                  static char program[] = "program";
+                  static char xtremel[] = "--xtremel";
+                  char *argv[] = { program, xtremel, NULL };
+                  int option_index;
+                  optind = 1; opterr = 0;
+                  if (getopt_long (2, argv, "", long_options, &option_index) != 1003)
+                    return 1;
+                }
+                return 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getcwd=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getopt_long_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getcwd=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_getopt_long_gnu=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getcwd" >&5
-$as_echo "$ac_cv_have_decl_getcwd" >&6; }
-if test "x$ac_cv_have_decl_getcwd" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETCWD 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETCWD 0
-_ACEOF
-
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking whether getdelim is declared" >&5
-$as_echo_n "checking whether getdelim is declared... " >&6; }
-if test "${ac_cv_have_decl_getdelim+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getdelim
-  (void) getdelim;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getdelim=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getdelim=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5
+$as_echo "$gl_cv_func_getopt_long_gnu" >&6; }
+      case "$gl_cv_func_getopt_long_gnu" in
+        *yes) ;;
+        *) gl_replace_getopt=yes ;;
+      esac
+    fi
+  fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getdelim" >&5
-$as_echo "$ac_cv_have_decl_getdelim" >&6; }
-if test "x$ac_cv_have_decl_getdelim" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETDELIM 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETDELIM 0
-_ACEOF
 
 
-fi
+    REPLACE_GETOPT=1
 
+  if test $REPLACE_GETOPT = 1; then
 
+  GETOPT_H=getopt.h
 
+$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
 
 
-{ $as_echo "$as_me:$LINENO: checking whether getline is declared" >&5
-$as_echo_n "checking whether getline is declared... " >&6; }
-if test "${ac_cv_have_decl_getline+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getline
-  (void) getline;
-#endif
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getline=yes
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getline=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getline" >&5
-$as_echo "$ac_cv_have_decl_getline" >&6; }
-if test "x$ac_cv_have_decl_getline" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETLINE 1
+#define HAVE_DECL_GETENV $ac_have_decl
 _ACEOF
 
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETLINE 0
-_ACEOF
-
-
-fi
-
-
-
+:
 
 
 
 
 
+  GNULIB_GETTIMEOFDAY=0;
+    HAVE_GETTIMEOFDAY=1;
+  HAVE_STRUCT_TIMEVAL=1;
+  HAVE_SYS_TIME_H=1;
+  REPLACE_GETTIMEOFDAY=0;
+  REPLACE_STRUCT_TIMEVAL=0;
 
 
 
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_getopt_h='<'getopt.h'>'
+       gl_cv_next_sys_time_h='<'sys/time.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <getopt.h>" >&5
-$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
-if test "${gl_cv_next_getopt_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
+$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+if ${gl_cv_next_sys_time_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_getopt_h = yes; then
+             if test $ac_cv_header_sys_time_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <getopt.h>
+#include <sys/time.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/getopt.h#{
-                    s#.*"\(.*/getopt.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+
+               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"`'"'
           else
-               gl_cv_next_getopt_h='<'getopt.h'>'
+               gl_cv_next_sys_time_h='<'sys/time.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_getopt_h" >&5
-$as_echo "$gl_cv_next_getopt_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5
+$as_echo "$gl_cv_next_sys_time_h" >&6; }
      fi
-     NEXT_GETOPT_H=$gl_cv_next_getopt_h
+     NEXT_SYS_TIME_H=$gl_cv_next_sys_time_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='<'getopt.h'>'
+       gl_next_as_first_directive='<'sys/time.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_getopt_h
+       gl_next_as_first_directive=$gl_cv_next_sys_time_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_header_getopt_h = yes; then
-    HAVE_GETOPT_H=1
-  else
-    HAVE_GETOPT_H=0
+
+  if test $ac_cv_header_sys_time_h != yes; then
+    HAVE_SYS_TIME_H=0
   fi
 
 
-  gl_replace_getopt=
 
-    if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
 
-for ac_header in getopt.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+
+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
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+$as_echo_n "checking for struct timeval... " >&6; }
+if ${gl_cv_sys_struct_timeval+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+#if HAVE_SYS_TIME_H
+             #include <sys/time.h>
+            #endif
+            #include <time.h>
+            #if HAVE_WINSOCK2_H
+            # include <winsock2.h>
+            #endif
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
+int
+main ()
+{
+static struct timeval x; x.tv_sec = x.tv_usec;
+  ;
+  return 0;
+}
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timeval=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  gl_cv_sys_struct_timeval=no
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5
+$as_echo "$gl_cv_sys_struct_timeval" >&6; }
+  if test $gl_cv_sys_struct_timeval != yes; then
+    HAVE_STRUCT_TIMEVAL=0
+  else
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5
+$as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; }
+if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if HAVE_SYS_TIME_H
+               #include <sys/time.h>
+              #endif
+              #include <time.h>
+              #if HAVE_WINSOCK2_H
+              # include <winsock2.h>
+              #endif
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+int
+main ()
+{
+static struct timeval x;
+              typedef int verify_tv_sec_type[
+                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
+              ];
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timeval_tv_sec=yes
 else
-  gl_replace_getopt=yes
+  gl_cv_sys_struct_timeval_tv_sec=no
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-done
-
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5
+$as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
+    if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
+      REPLACE_STRUCT_TIMEVAL=1
+    fi
   fi
 
-    if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
 
-for ac_func in getopt_long_only
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+    for gl_func in gettimeofday; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#if HAVE_SYS_TIME_H
+# include <sys/time.h>
 #endif
+#include <time.h>
 
 int
 main ()
 {
-return $ac_func ();
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  eval "$as_gl_Symbol=no"
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-  gl_replace_getopt=yes
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-done
-
-  fi
-
-                    if test -z "$gl_replace_getopt"; then
-    { $as_echo "$as_me:$LINENO: checking whether getopt is POSIX compatible" >&5
-$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
-if test "${gl_cv_func_getopt_posix+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-                                                                        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-int
-main ()
-{
-int *p = &optreset; return optreset;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_optind_min=1
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+      done
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <getopt.h>
-int
-main ()
-{
-return !getopt_clip;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_optind_min=1
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_optind_min=0
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-                gl_save_CPPFLAGS=$CPPFLAGS
-        CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
-        if test "$cross_compiling" = yes; then
-  case "$host_os" in
-             mingw*)         gl_cv_func_getopt_posix="guessing no";;
-             darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
-             *)              gl_cv_func_getopt_posix="guessing yes";;
-           esac
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
+  /* For now, do not test the preprocessor; as of 2007 there are too many
+         implementations with broken preprocessors.  Perhaps this can
+         be revisited in 2012.  In the meantime, code should not expect
+         #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+                     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+                     ? 1 : -1)];
+      int i = 63;
 int
 main ()
 {
-  {
-    int argc = 0;
-    char *argv[10];
-    int c;
-
-    argv[argc++] = "program";
-    argv[argc++] = "-a";
-    argv[argc++] = "foo";
-    argv[argc++] = "bar";
-    argv[argc] = NULL;
-    optind = OPTIND_MIN;
-    opterr = 0;
-
-    c = getopt (argc, argv, "ab");
-    if (!(c == 'a'))
-      return 1;
-    c = getopt (argc, argv, "ab");
-    if (!(c == -1))
-      return 2;
-    if (!(optind == 2))
-      return 3;
-  }
-  /* Some internal state exists at this point.  */
-  {
-    int argc = 0;
-    char *argv[10];
-    int c;
-
-    argv[argc++] = "program";
-    argv[argc++] = "donald";
-    argv[argc++] = "-p";
-    argv[argc++] = "billy";
-    argv[argc++] = "duck";
-    argv[argc++] = "-a";
-    argv[argc++] = "bar";
-    argv[argc] = NULL;
-    optind = OPTIND_MIN;
-    opterr = 0;
-
-    c = getopt (argc, argv, "+abp:q:");
-    if (!(c == -1))
-      return 4;
-    if (!(strcmp (argv[0], "program") == 0))
-      return 5;
-    if (!(strcmp (argv[1], "donald") == 0))
-      return 6;
-    if (!(strcmp (argv[2], "-p") == 0))
-      return 7;
-    if (!(strcmp (argv[3], "billy") == 0))
-      return 8;
-    if (!(strcmp (argv[4], "duck") == 0))
-      return 9;
-    if (!(strcmp (argv[5], "-a") == 0))
-      return 10;
-    if (!(strcmp (argv[6], "bar") == 0))
-      return 11;
-    if (!(optind == 1))
-      return 12;
-  }
-  /* Detect MacOS 10.5, AIX 7.1 bug.  */
-  {
-    char *argv[3] = { "program", "-ab", NULL };
-    optind = OPTIND_MIN;
-    opterr = 0;
-    if (getopt (2, argv, "ab:") != 'a')
-      return 13;
-    if (getopt (2, argv, "ab:") != '?')
-      return 14;
-    if (optopt != 'b')
-      return 15;
-    if (optind != 2)
-      return 16;
-  }
-
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+              | (llmax / ll) | (llmax % ll)
+              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+              | (ullmax / ull) | (ullmax % ull));
+  ;
   return 0;
 }
 
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_getopt_posix=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_link "$LINENO"; then :
 
-( exit $ac_status )
-gl_cv_func_getopt_posix=no
+else
+  ac_cv_type_unsigned_long_long_int=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
 
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
 
-        CPPFLAGS=$gl_save_CPPFLAGS
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getopt_posix" >&5
-$as_echo "$gl_cv_func_getopt_posix" >&6; }
-    case "$gl_cv_func_getopt_posix" in
-      *no) gl_replace_getopt=yes ;;
-    esac
   fi
 
-  if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
-    { $as_echo "$as_me:$LINENO: checking for working GNU getopt function" >&5
-$as_echo_n "checking for working GNU getopt function... " >&6; }
-if test "${gl_cv_func_getopt_gnu+set}" = set; then
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
-       # optstring is necessary for programs like m4 that have POSIX-mandated
-       # semantics for supporting options interspersed with files.
-       # Also, since getopt_long is a GNU extension, we require optind=0.
-       # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
-       # so take care to revert to the correct (non-)export state.
-       gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
-       case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
-         xx) gl_had_POSIXLY_CORRECT=exported ;;
-         x)  gl_had_POSIXLY_CORRECT=yes      ;;
-         *)  gl_had_POSIXLY_CORRECT=         ;;
-       esac
-       POSIXLY_CORRECT=1
-       export POSIXLY_CORRECT
-       if test "$cross_compiling" = yes; then
-           case $host_os:$ac_cv_have_decl_optreset in
-           *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;;
-           *:yes)               gl_cv_func_getopt_gnu=no;;
-           *)                   gl_cv_func_getopt_gnu=yes;;
-         esac
-
+  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 :
+  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <getopt.h>
-                           #include <stddef.h>
-                           #include <string.h>
-
+#include <limits.h>
+                 #ifndef LLONG_MAX
+                 # define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 # define LLONG_MAX (HALF - 1 + HALF)
+                 #endif
 int
 main ()
 {
-
-             int result = 0;
-             /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
-                and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
-                OSF/1 5.1, Solaris 10.  */
-             {
-               char *myargv[3];
-               myargv[0] = "conftest";
-               myargv[1] = "-+";
-               myargv[2] = 0;
-               opterr = 0;
-               if (getopt (2, myargv, "+a") != '?')
-                 result |= 1;
-             }
-             /* This code succeeds on glibc 2.8, mingw,
-                and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-                IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
-             {
-               char *argv[] = { "program", "-p", "foo", "bar", NULL };
-
-               optind = 1;
-               if (getopt (4, argv, "p::") != 'p')
-                 result |= 2;
-               else if (optarg != NULL)
-                 result |= 4;
-               else if (getopt (4, argv, "p::") != -1)
-                 result |= 6;
-               else if (optind != 2)
-                 result |= 8;
-             }
-             /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0.  */
-             {
-               char *argv[] = { "program", "foo", "-p", NULL };
-               optind = 0;
-               if (getopt (3, argv, "-p") != 1)
-                 result |= 16;
-               else if (getopt (3, argv, "-p") != 'p')
-                 result |= 32;
-             }
-             /* This code fails on glibc 2.11.  */
-             {
-               char *argv[] = { "program", "-b", "-a", NULL };
-               optind = opterr = 0;
-               if (getopt (3, argv, "+:a:b") != 'b')
-                 result |= 64;
-               else if (getopt (3, argv, "+:a:b") != ':')
-                 result |= 64;
-             }
-             return result;
-
+long long int n = 1;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_getopt_gnu=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-gl_cv_func_getopt_gnu=no
+else
+  ac_cv_type_long_long_int=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-       case $gl_had_POSIXLY_CORRECT in
-         exported) ;;
-         yes) $as_unset POSIXLY_CORRECT || test "${POSIXLY_CORRECT+set}" != set || { POSIXLY_CORRECT=; export POSIXLY_CORRECT; }; POSIXLY_CORRECT=1 ;;
-         *) $as_unset POSIXLY_CORRECT || test "${POSIXLY_CORRECT+set}" != set || { POSIXLY_CORRECT=; export POSIXLY_CORRECT; } ;;
-       esac
-
+        fi
+      fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getopt_gnu" >&5
-$as_echo "$gl_cv_func_getopt_gnu" >&6; }
-    if test "$gl_cv_func_getopt_gnu" = "no"; then
-      gl_replace_getopt=yes
-    fi
-  fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+  if test $ac_cv_type_long_long_int = yes; then
 
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
 
+  fi
 
 
 
-  if test -n "$gl_replace_getopt"; then
 
 
 
-  GETOPT_H=getopt.h
+    gl_cv_c_multiarch=no
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+         not a universal capable compiler
+        #endif
+        typedef int dummy;
 
-cat >>confdefs.h <<\_ACEOF
-#define __GETOPT_PREFIX rpl_
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
-
-
-    GNULIB_UNISTD_H_GETOPT=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
-
-
-
-
-
-
-
-
+               arch=
+     prev=
+     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+       if test -n "$prev"; then
+         case $word in
+           i?86 | x86_64 | ppc | ppc64)
+             if test -z "$arch" || test "$arch" = "$word"; then
+               arch="$word"
+             else
+               gl_cv_c_multiarch=yes
+             fi
+             ;;
+         esac
+         prev=
+       else
+         if test "x$word" = "x-arch"; then
+           prev=arch
+         fi
+       fi
+     done
 
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  if test $gl_cv_c_multiarch = yes; then
+    APPLE_UNIVERSAL_BUILD=1
+  else
+    APPLE_UNIVERSAL_BUILD=0
+  fi
 
 
 
 
 
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
 
 
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
 
 
 
-
-  GNULIB_GETTIMEOFDAY=0;
-    HAVE_GETTIMEOFDAY=1;
-  HAVE_STRUCT_TIMEVAL=1;
-  HAVE_SYS_TIME_H=1;
-  REPLACE_GETTIMEOFDAY=0;
-
-
-
-
-
-
-
-
-
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
 
 
+      if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
 
 
+      if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
 
 
 
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_time_h='<'sys/time.h'>'
+       gl_cv_next_stdint_h='<'stdint.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <sys/time.h>" >&5
-$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
-if test "${gl_cv_next_sys_time_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if ${gl_cv_next_stdint_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_sys_time_h = yes; then
+             if test $ac_cv_header_stdint_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/time.h>
+#include <stdint.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/sys/time.h#{
-                    s#.*"\(.*/sys/time.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+
+               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"`'"'
           else
-               gl_cv_next_sys_time_h='<'sys/time.h'>'
+               gl_cv_next_stdint_h='<'stdint.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_time_h" >&5
-$as_echo "$gl_cv_next_sys_time_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
+$as_echo "$gl_cv_next_stdint_h" >&6; }
      fi
-     NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h
+     NEXT_STDINT_H=$gl_cv_next_stdint_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/time.h'>'
+       gl_next_as_first_directive='<'stdint.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_time_h
+       gl_next_as_first_directive=$gl_cv_next_stdint_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive
-
+     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_header_sys_time_h != yes; then
-    HAVE_SYS_TIME_H=0
+  if test $ac_cv_header_stdint_h = yes; then
+    HAVE_STDINT_H=1
+  else
+    HAVE_STDINT_H=0
   fi
 
-  { $as_echo "$as_me:$LINENO: checking for struct timeval" >&5
-$as_echo_n "checking for struct timeval... " >&6; }
-if test "${gl_cv_sys_struct_timeval+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_SYS_TIME_H
-             #include <sys/time.h>
-            #endif
-            #include <time.h>
-
-int
-main ()
-{
-static struct timeval x; x.tv_sec = x.tv_usec;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_sys_struct_timeval=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_sys_struct_timeval=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timeval" >&5
-$as_echo "$gl_cv_sys_struct_timeval" >&6; }
-  if test $gl_cv_sys_struct_timeval != yes; then
-    HAVE_STRUCT_TIMEVAL=0
-  fi
-
-
-
-  for gl_func in gettimeofday; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#if HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <time.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-
-      done
-
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
-$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if test "${ac_cv_header_stdbool_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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"
-             #endif
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
-
-             struct s { _Bool s: 1; _Bool t; } s;
-
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(_Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (_Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             _Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-              */
-             _Bool q = true;
-             _Bool *pq = &q;
-
-int
-main ()
-{
-
-             bool e = &s;
-             *pq |= q;
-             *pq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdbool_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdbool_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
-$as_echo "$ac_cv_header_stdbool_h" >&6; }
-   { $as_echo "$as_me:$LINENO: checking for _Bool" >&5
-$as_echo_n "checking for _Bool... " >&6; }
-if test "${ac_cv_type__Bool+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type__Bool=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (_Bool))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((_Bool)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type__Bool=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
-$as_echo "$ac_cv_type__Bool" >&6; }
-if test "x$ac_cv_type__Bool" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-  # Define two additional variables used in the Makefile substitution.
-
-  if test "$ac_cv_header_stdbool_h" = yes; then
-    STDBOOL_H=''
-  else
-    STDBOOL_H='stdbool.h'
-  fi
-
-
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
-  fi
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       cat >conftest.$ac_ext <<_ACEOF
-
-  /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;
-int
-main ()
-{
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
-
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_unsigned_long_long_int=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_UNSIGNED_LONG_LONG_INT 1
-_ACEOF
-
-  fi
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if test "${ac_cv_type_long_long_int+set}" = set; then
-  $as_echo_n "(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
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <limits.h>
-                 #ifndef LLONG_MAX
-                 # define HALF \
-                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-                 # define LLONG_MAX (HALF - 1 + HALF)
-                 #endif
-int
-main ()
-{
-long long int n = 1;
-                 int i;
-                 for (i = 0; ; i++)
-                   {
-                     long long int m = n << i;
-                     if (m >> i != n)
-                       return 1;
-                     if (LLONG_MAX / 2 < m)
-                       break;
-                   }
-                 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_type_long_long_int=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-        fi
-      fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_LONG_INT 1
-_ACEOF
-
-  fi
-
-
-
-
-
-
-    gl_cv_c_multiarch=no
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-         not a universal capable compiler
-        #endif
-        typedef int dummy;
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-               arch=
-     prev=
-     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
-       if test -n "$prev"; then
-         case $word in
-           i?86 | x86_64 | ppc | ppc64)
-             if test -z "$arch" || test "$arch" = "$word"; then
-               arch="$word"
-             else
-               gl_cv_c_multiarch=yes
-             fi
-             ;;
-         esac
-         prev=
-       else
-         if test "x$word" = "x-arch"; then
-           prev=arch
-         fi
-       fi
-     done
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  if test $gl_cv_c_multiarch = yes; then
-    APPLE_UNIVERSAL_BUILD=1
-  else
-    APPLE_UNIVERSAL_BUILD=0
-  fi
-
-
-
-
-
-
-  if test $ac_cv_type_long_long_int = yes; then
-    HAVE_LONG_LONG_INT=1
-  else
-    HAVE_LONG_LONG_INT=0
-  fi
-
-
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    HAVE_UNSIGNED_LONG_LONG_INT=1
-  else
-    HAVE_UNSIGNED_LONG_LONG_INT=0
-  fi
-
-
-
-
-
-
-
-
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
-
-
-      if test $ac_cv_header_inttypes_h = yes; then
-    HAVE_INTTYPES_H=1
-  else
-    HAVE_INTTYPES_H=0
-  fi
-
-
-      if test $ac_cv_header_sys_types_h = yes; then
-    HAVE_SYS_TYPES_H=1
-  else
-    HAVE_SYS_TYPES_H=0
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdint_h='<'stdint.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
-$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
-if test "${gl_cv_next_stdint_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_stdint_h = yes; then
-
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdint.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stdint.h#{
-                    s#.*"\(.*/stdint.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_stdint_h='<'stdint.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5
-$as_echo "$gl_cv_next_stdint_h" >&6; }
-     fi
-     NEXT_STDINT_H=$gl_cv_next_stdint_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='<'stdint.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdint_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_stdint_h = yes; then
-    HAVE_STDINT_H=1
-  else
-    HAVE_STDINT_H=0
-  fi
-
-
-    if test $ac_cv_header_stdint_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
-$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
-if test "${gl_cv_header_working_stdint_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_working_stdint_h=no
-       cat >conftest.$ac_ext <<_ACEOF
-
-         /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
-/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
-#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-#endif
-
-
-  /* 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
-
-
-#ifdef INT8_MAX
-int8_t a1 = INT8_MAX;
-int8_t a1min = INT8_MIN;
-#endif
-#ifdef INT16_MAX
-int16_t a2 = INT16_MAX;
-int16_t a2min = INT16_MIN;
-#endif
-#ifdef INT32_MAX
-int32_t a3 = INT32_MAX;
-int32_t a3min = INT32_MIN;
-#endif
-#ifdef INT64_MAX
-int64_t a4 = INT64_MAX;
-int64_t a4min = INT64_MIN;
-#endif
-#ifdef UINT8_MAX
-uint8_t b1 = UINT8_MAX;
-#else
-typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-#endif
-#ifdef UINT16_MAX
-uint16_t b2 = UINT16_MAX;
-#endif
-#ifdef UINT32_MAX
-uint32_t b3 = UINT32_MAX;
-#endif
-#ifdef UINT64_MAX
-uint64_t b4 = UINT64_MAX;
-#endif
-int_least8_t c1 = INT8_C (0x7f);
-int_least8_t c1max = INT_LEAST8_MAX;
-int_least8_t c1min = INT_LEAST8_MIN;
-int_least16_t c2 = INT16_C (0x7fff);
-int_least16_t c2max = INT_LEAST16_MAX;
-int_least16_t c2min = INT_LEAST16_MIN;
-int_least32_t c3 = INT32_C (0x7fffffff);
-int_least32_t c3max = INT_LEAST32_MAX;
-int_least32_t c3min = INT_LEAST32_MIN;
-int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-int_least64_t c4max = INT_LEAST64_MAX;
-int_least64_t c4min = INT_LEAST64_MIN;
-uint_least8_t d1 = UINT8_C (0xff);
-uint_least8_t d1max = UINT_LEAST8_MAX;
-uint_least16_t d2 = UINT16_C (0xffff);
-uint_least16_t d2max = UINT_LEAST16_MAX;
-uint_least32_t d3 = UINT32_C (0xffffffff);
-uint_least32_t d3max = UINT_LEAST32_MAX;
-uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-uint_least64_t d4max = UINT_LEAST64_MAX;
-int_fast8_t e1 = INT_FAST8_MAX;
-int_fast8_t e1min = INT_FAST8_MIN;
-int_fast16_t e2 = INT_FAST16_MAX;
-int_fast16_t e2min = INT_FAST16_MIN;
-int_fast32_t e3 = INT_FAST32_MAX;
-int_fast32_t e3min = INT_FAST32_MIN;
-int_fast64_t e4 = INT_FAST64_MAX;
-int_fast64_t e4min = INT_FAST64_MIN;
-uint_fast8_t f1 = UINT_FAST8_MAX;
-uint_fast16_t f2 = UINT_FAST16_MAX;
-uint_fast32_t f3 = UINT_FAST32_MAX;
-uint_fast64_t f4 = UINT_FAST64_MAX;
-#ifdef INTPTR_MAX
-intptr_t g = INTPTR_MAX;
-intptr_t gmin = INTPTR_MIN;
-#endif
-#ifdef UINTPTR_MAX
-uintptr_t h = UINTPTR_MAX;
-#endif
-intmax_t i = INTMAX_MAX;
-uintmax_t j = UINTMAX_MAX;
-
-#include <limits.h> /* for CHAR_BIT */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 \
-        ? (t) -1 \
-        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-struct s {
-  int check_PTRDIFF:
-      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-      ? 1 : -1;
-  /* Detect bug in FreeBSD 6.0 / ia64.  */
-  int check_SIG_ATOMIC:
-      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-      ? 1 : -1;
-  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-  int check_WCHAR:
-      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-      ? 1 : -1;
-  /* Detect bug in mingw.  */
-  int check_WINT:
-      WINT_MIN == TYPE_MINIMUM (wint_t)
-      && WINT_MAX == TYPE_MAXIMUM (wint_t)
-      ? 1 : -1;
-
-  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
-  int check_UINT8_C:
-        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-  int check_UINT16_C:
-        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
-
-  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
-#ifdef UINT8_MAX
-  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-#endif
-#ifdef UINT16_MAX
-  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-#endif
-#ifdef UINT32_MAX
-  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-#endif
-#ifdef UINT64_MAX
-  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-#endif
-  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-};
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-                                                    if test "$cross_compiling" = yes; then
-                 gl_cv_header_working_stdint_h=yes
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-
-            /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#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
-
-
-#include <stdio.h>
-#include <string.h>
-#define MVAL(macro) MVAL1(macro)
-#define MVAL1(expression) #expression
-static const char *macro_values[] =
-  {
-#ifdef INT8_MAX
-    MVAL (INT8_MAX),
-#endif
-#ifdef INT16_MAX
-    MVAL (INT16_MAX),
-#endif
-#ifdef INT32_MAX
-    MVAL (INT32_MAX),
-#endif
-#ifdef INT64_MAX
-    MVAL (INT64_MAX),
-#endif
-#ifdef UINT8_MAX
-    MVAL (UINT8_MAX),
-#endif
-#ifdef UINT16_MAX
-    MVAL (UINT16_MAX),
-#endif
-#ifdef UINT32_MAX
-    MVAL (UINT32_MAX),
-#endif
-#ifdef UINT64_MAX
-    MVAL (UINT64_MAX),
-#endif
-    NULL
-  };
-
-int
-main ()
-{
-
-  const char **mv;
-  for (mv = macro_values; *mv != NULL; mv++)
-    {
-      const char *value = *mv;
-      /* Test whether it looks like a cast expression.  */
-      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
-          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
-          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
-          || strncmp (value, "((int)"/*)*/, 6) == 0
-          || strncmp (value, "((signed short)"/*)*/, 15) == 0
-          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return mv - macro_values + 1;
-    }
-  return 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_working_stdint_h=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5
-$as_echo "$gl_cv_header_working_stdint_h" >&6; }
-  fi
-  if test "$gl_cv_header_working_stdint_h" = yes; then
-    STDINT_H=
-  else
-
-
-for ac_header in sys/inttypes.h sys/bitypes.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-    if test $ac_cv_header_sys_inttypes_h = yes; then
-      HAVE_SYS_INTTYPES_H=1
-    else
-      HAVE_SYS_INTTYPES_H=0
-    fi
-
-    if test $ac_cv_header_sys_bitypes_h = yes; then
-      HAVE_SYS_BITYPES_H=1
-    else
-      HAVE_SYS_BITYPES_H=0
-    fi
-
-
-
-
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
-
-
-
-
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) result=$ac_lo;;
-'') result=unknown ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
-static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof ($gltype) * CHAR_BIT) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  result=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=unknown
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-       eval gl_cv_bitsizeof_${gltype}=\$result
-
-fi
-ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
-
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
-
-
-  fi
-
-
-
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) result=$ac_lo;;
-'') result=unknown ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-#include <limits.h>
-static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
-static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof ($gltype) * CHAR_BIT) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  result=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=unknown
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-       eval gl_cv_bitsizeof_${gltype}=\$result
-
-fi
-ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
-
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
-
-
-
-
-
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking whether $gltype is signed" >&5
-$as_echo_n "checking whether $gltype is signed... " >&6; }
-if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  result=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       result=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       eval gl_cv_type_${gltype}_signed=\$result
-
-fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_signed'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_type_${gltype}_signed
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    if test "$result" = yes; then
-      cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNED_${GLTYPE} 1
-_ACEOF
-
-      eval HAVE_SIGNED_${GLTYPE}=1
-    else
-      eval HAVE_SIGNED_${GLTYPE}=0
-    fi
-  done
-
-
-  gl_cv_type_ptrdiff_t_signed=yes
-  gl_cv_type_size_t_signed=no
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
-
-
-
-
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
-
-  fi
-
-
-
-
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
-
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
-
-
-    STDINT_H=stdint.h
-  fi
-
-
-
-
-for ac_header in inttypes.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-  if test $ac_cv_header_inttypes_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5
-$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if test "${gt_cv_inttypes_pri_broken+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_inttypes_pri_broken=no
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_inttypes_pri_broken=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5
-$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
-  fi
-  if test "$gt_cv_inttypes_pri_broken" = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define PRI_MACROS_BROKEN 1
-_ACEOF
-
-    PRI_MACROS_BROKEN=1
-  else
-    PRI_MACROS_BROKEN=0
-  fi
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether imaxabs is declared" >&5
-$as_echo_n "checking whether imaxabs is declared... " >&6; }
-if test "${ac_cv_have_decl_imaxabs+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef imaxabs
-  (void) imaxabs;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_imaxabs=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_imaxabs=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxabs" >&5
-$as_echo "$ac_cv_have_decl_imaxabs" >&6; }
-if test "x$ac_cv_have_decl_imaxabs" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_IMAXABS 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_IMAXABS 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether imaxdiv is declared" >&5
-$as_echo_n "checking whether imaxdiv is declared... " >&6; }
-if test "${ac_cv_have_decl_imaxdiv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef imaxdiv
-  (void) imaxdiv;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_imaxdiv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_imaxdiv=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxdiv" >&5
-$as_echo "$ac_cv_have_decl_imaxdiv" >&6; }
-if test "x$ac_cv_have_decl_imaxdiv" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_IMAXDIV 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_IMAXDIV 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether strtoimax is declared" >&5
-$as_echo_n "checking whether strtoimax is declared... " >&6; }
-if test "${ac_cv_have_decl_strtoimax+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strtoimax
-  (void) strtoimax;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strtoimax=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strtoimax=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoimax" >&5
-$as_echo "$ac_cv_have_decl_strtoimax" >&6; }
-if test "x$ac_cv_have_decl_strtoimax" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOIMAX 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOIMAX 0
-_ACEOF
-
-
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking whether strtoumax is declared" >&5
-$as_echo_n "checking whether strtoumax is declared... " >&6; }
-if test "${ac_cv_have_decl_strtoumax+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strtoumax
-  (void) strtoumax;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strtoumax=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strtoumax=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoumax" >&5
-$as_echo "$ac_cv_have_decl_strtoumax" >&6; }
-if test "x$ac_cv_have_decl_strtoumax" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOUMAX 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOUMAX 0
-_ACEOF
-
-
-fi
-
-
-
-  GNULIB_IMAXABS=0;
-  GNULIB_IMAXDIV=0;
-  GNULIB_STRTOIMAX=0;
-  GNULIB_STRTOUMAX=0;
-    HAVE_DECL_IMAXABS=1;
-  HAVE_DECL_IMAXDIV=1;
-  HAVE_DECL_STRTOIMAX=1;
-  HAVE_DECL_STRTOUMAX=1;
-
-
-  GNULIB_ISWBLANK=0;
-  GNULIB_WCTYPE=0;
-  GNULIB_ISWCTYPE=0;
-  GNULIB_WCTRANS=0;
-  GNULIB_TOWCTRANS=0;
-    HAVE_ISWBLANK=1;
-  HAVE_WCTYPE_T=1;
-  HAVE_WCTRANS_T=1;
-  REPLACE_ISWBLANK=0;
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-            wint_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_wint_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_wint_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WINT_T 1
-_ACEOF
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_iswcntrl = yes; then
-    HAVE_ISWCNTRL=1
-  else
-    HAVE_ISWCNTRL=0
-  fi
-
-
-
-
-
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wctype_h='<'wctype.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
-$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
-if test "${gl_cv_next_wctype_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_wctype_h = yes; then
-
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <wctype.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/wctype.h#{
-                    s#.*"\(.*/wctype.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_wctype_h='<'wctype.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5
-$as_echo "$gl_cv_next_wctype_h" >&6; }
-     fi
-     NEXT_WCTYPE_H=$gl_cv_next_wctype_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='<'wctype.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wctype_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
-
-
-
-
-  if test $ac_cv_header_wctype_h = yes; then
-    if test $ac_cv_func_iswcntrl = yes; then
-                  { $as_echo "$as_me:$LINENO: checking whether iswcntrl works" >&5
-$as_echo_n "checking whether iswcntrl works... " >&6; }
-if test "${gl_cv_func_iswcntrl_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-          if test "$cross_compiling" = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-                          #if __GNU_LIBRARY__ == 1
-                          Linux libc5 i18n is broken.
-                          #endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_iswcntrl_works=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_iswcntrl_works=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-                  included before <wchar.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 <stdio.h>
-               #include <time.h>
-               #include <wchar.h>
-               #include <wctype.h>
-               int main () { return iswprint ('x') == 0; }
-
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_iswcntrl_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_iswcntrl_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_iswcntrl_works" >&5
-$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
-    fi
-    HAVE_WCTYPE_H=1
-  else
-    HAVE_WCTYPE_H=0
-  fi
-
-
-  if test "$gl_cv_func_iswcntrl_works" = no; then
-    REPLACE_ISWCNTRL=1
-  else
-    REPLACE_ISWCNTRL=0
-  fi
-
-
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-        :
-  fi
-
-          { $as_echo "$as_me:$LINENO: checking for wctype_t" >&5
-$as_echo_n "checking for wctype_t... " >&6; }
-if test "${gl_cv_type_wctype_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-               included before <wchar.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 <stdio.h>
-            #include <time.h>
-            #include <wchar.h>
-            #if HAVE_WCTYPE_H
-            # include <wctype.h>
-            #endif
-            wctype_t a;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_type_wctype_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_type_wctype_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_type_wctype_t" >&5
-$as_echo "$gl_cv_type_wctype_t" >&6; }
-  if test $gl_cv_type_wctype_t = no; then
-    HAVE_WCTYPE_T=0
-  fi
-
-      { $as_echo "$as_me:$LINENO: checking for wctrans_t" >&5
-$as_echo_n "checking for wctrans_t... " >&6; }
-if test "${gl_cv_type_wctrans_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
-               included before <wchar.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 <stdio.h>
-            #include <time.h>
-            #include <wchar.h>
-            #include <wctype.h>
-            wctrans_t a;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_type_wctrans_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_type_wctrans_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_type_wctrans_t" >&5
-$as_echo "$gl_cv_type_wctrans_t" >&6; }
-  if test $gl_cv_type_wctrans_t = no; then
-    HAVE_WCTRANS_T=0
-  fi
-
-
-
-
-
-
-  for gl_func in wctype iswctype wctrans towctrans     ; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-# include <wchar.h>
-#endif
-#include <wctype.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-
-      done
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether iswblank is declared" >&5
-$as_echo_n "checking whether iswblank is declared... " >&6; }
-if test "${ac_cv_have_decl_iswblank+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef iswblank
-  (void) iswblank;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_iswblank=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_iswblank=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_iswblank" >&5
-$as_echo "$ac_cv_have_decl_iswblank" >&6; }
-if test "x$ac_cv_have_decl_iswblank" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISWBLANK 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISWBLANK 0
-_ACEOF
-
-
-fi
-
-
-
-  GNULIB_NL_LANGINFO=0;
-    HAVE_NL_LANGINFO=1;
-  REPLACE_NL_LANGINFO=0;
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether lstat correctly handles trailing slash" >&5
-$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
-if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then
-  $as_echo_n "(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
-  # When cross-compiling, be pessimistic so we will end up using the
-          # replacement version of lstat that checks for trailing slashes and
-          # calls lstat a second time when necessary.
-          ac_cv_func_lstat_dereferences_slashed_symlink=no
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-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;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_lstat_dereferences_slashed_symlink=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-     else
-       # If the 'ln -s' command failed, then we probably don't even
-       # have an lstat function.
-       ac_cv_func_lstat_dereferences_slashed_symlink=no
-     fi
-     rm -f conftest.sym conftest.file
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5
-$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; }
-  test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
-
-cat >>confdefs.h <<_ACEOF
-#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
-_ACEOF
-
-  if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
-
-  fi
-
-
-
-
-    { $as_echo "$as_me:$LINENO: checking whether unlink honors trailing slashes" >&5
-$as_echo_n "checking whether unlink honors trailing slashes... " >&6; }
-if test "${gl_cv_func_unlink_honors_slashes+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  touch conftest.file
-     # Assume that if we have lstat, we can also check symlinks.
-     if test $ac_cv_func_lstat = yes; then
-       ln -s conftest.file conftest.lnk
-     fi
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_unlink_honors_slashes="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-           #include <errno.h>
-
-int
-main ()
-{
-int result = 0;
-           if (!unlink ("conftest.file/"))
-             result |= 1;
-           else if (errno != ENOTDIR)
-             result |= 2;
-#if HAVE_LSTAT
-           if (!unlink ("conftest.lnk/"))
-             result |= 4;
-           else if (errno != ENOTDIR)
-             result |= 8;
-#endif
-           return result;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_unlink_honors_slashes=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_unlink_honors_slashes=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-     rm -f conftest.file conftest.lnk
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_honors_slashes" >&5
-$as_echo "$gl_cv_func_unlink_honors_slashes" >&6; }
-      { $as_echo "$as_me:$LINENO: checking whether unlink of a parent directory fails as it should" >&5
-$as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; }
-if test "${gl_cv_func_unlink_parent_fails+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case "$host_os" in
-       darwin*)
-                                                      if {
-              # Use the mktemp program if available. If not available, hide the error
-              # message.
-              tmp=`(umask 077 && mktemp -d /tmp/gtXXXXXX) 2>/dev/null` &&
-              test -n "$tmp" && test -d "$tmp"
-            } ||
-            {
-              # Use a simple mkdir command. It is guaranteed to fail if the directory
-              # already exists.  $RANDOM is bash specific and expands to empty in shells
-              # other than bash, ksh and zsh.  Its use does not increase security;
-              # rather, it minimizes the probability of failure in a very cluttered /tmp
-              # directory.
-              tmp=/tmp/gt$$-$RANDOM
-              (umask 077 && mkdir "$tmp")
-            }; then
-           mkdir "$tmp/subdir"
-           GL_SUBDIR_FOR_UNLINK="$tmp/subdir"
-           export GL_SUBDIR_FOR_UNLINK
-           if test "$cross_compiling" = yes; then
-  gl_cv_func_unlink_parent_fails="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-                #include <stdlib.h>
-                #include <unistd.h>
-                int main ()
-                {
-                  int result = 0;
-                  if (chdir (getenv ("GL_SUBDIR_FOR_UNLINK")) != 0)
-                    result |= 1;
-                  else if (unlink ("..") == 0)
-                    result |= 2;
-                  return result;
-                }
-
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_unlink_parent_fails=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_unlink_parent_fails=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-           unset GL_SUBDIR_FOR_UNLINK
-           rm -rf "$tmp"
-         else
-           gl_cv_func_unlink_parent_fails="guessing no"
-         fi
-         ;;
-       *)
-         gl_cv_func_unlink_parent_fails="guessing yes"
-         ;;
-     esac
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_parent_fails" >&5
-$as_echo "$gl_cv_func_unlink_parent_fails" >&6; }
-  case "$gl_cv_func_unlink_parent_fails" in
-    *no)
-
-cat >>confdefs.h <<\_ACEOF
-#define UNLINK_PARENT_BUG 1
-_ACEOF
-
-      ;;
-  esac
-  if test "$gl_cv_func_unlink_honors_slashes" != yes \
-     || { case "$gl_cv_func_unlink_parent_fails" in
-            *yes) false;;
-            *no) true;;
-          esac
-        }; then
-    REPLACE_UNLINK=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unlink.$ac_objext"
-
-  fi
-
-
-
-  GNULIB_OPENAT=1
-
-
-  GNULIB_FCHMODAT=1
-  GNULIB_FSTATAT=1
-  GNULIB_MKDIRAT=1
-
-
-  GNULIB_FCHOWNAT=1
-  GNULIB_UNLINKAT=1
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in fchmodat fstatat mkdirat openat unlinkat
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
-fi
-done
-
-
-
-
-  case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
-  yes+yes)
-    # GNU/Hurd has unlinkat, but it has the same bug as unlink.
-    if test $REPLACE_UNLINK = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext"
-
-      REPLACE_UNLINKAT=1
-    fi ;;
-  yes+*)
-    # Solaris 9 has *at functions, but uniformly mishandles trailing
-    # slash in all of them.
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
-
-    REPLACE_OPENAT=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
-
-    REPLACE_FSTATAT=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext"
-
-    REPLACE_UNLINKAT=1
-    ;;
-  *)
-    HAVE_OPENAT=0
-    HAVE_UNLINKAT=0 # No known system with unlinkat but not openat
-    HAVE_FSTATAT=0 # No known system with fstatat but not openat
-
-
-
-  :
-;;
-  esac
-  if test $ac_cv_func_fchmodat != yes; then
-    HAVE_FCHMODAT=0
-  fi
-  if test $ac_cv_func_mkdirat != yes; then
-    HAVE_MKDIRAT=0
-  fi
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for fchownat" >&5
-$as_echo_n "checking for fchownat... " >&6; }
-if test "${ac_cv_func_fchownat+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define fchownat to an innocuous variant, in case <limits.h> declares fchownat.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define fchownat innocuous_fchownat
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char fchownat (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef fchownat
-
-/* 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 fchownat ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_fchownat || defined __stub___fchownat
-choke me
-#endif
-
-int
-main ()
-{
-return fchownat ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_fchownat=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_fchownat=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_fchownat" >&5
-$as_echo "$ac_cv_func_fchownat" >&6; }
-if test "x$ac_cv_func_fchownat" = x""yes; then
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5
-$as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; }
-if test "${gl_cv_func_fchownat_nofollow_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-     gl_dangle=conftest.dangle
-     # Remove any remnants of a previous test.
-     rm -f $gl_dangle
-     # Arrange for deletion of the temporary file this test creates.
-     ac_clean_files="$ac_clean_files $gl_dangle"
-     ln -s conftest.no-such $gl_dangle
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_fchownat_nofollow_works=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sys/types.h>
-int
-main ()
-{
-  return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (),
-                    AT_SYMLINK_NOFOLLOW) != 0
-          && errno == ENOENT);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fchownat_nofollow_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fchownat_nofollow_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_nofollow_works" >&5
-$as_echo "$gl_cv_func_fchownat_nofollow_works" >&6; }
-  if test $gl_cv_func_fchownat_nofollow_works = no; then
-  REPLACE_FCHOWNAT=1
-
-cat >>confdefs.h <<\_ACEOF
-#define FCHOWNAT_NOFOLLOW_BUG 1
-_ACEOF
-
-
-fi
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether fchownat works with an empty file name" >&5
-$as_echo_n "checking whether fchownat works with an empty file name... " >&6; }
-if test "${gl_cv_func_fchownat_empty_filename_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_fchownat_empty_filename_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-            #include <fcntl.h>
-
-int
-main ()
-{
-int fd;
-            int ret;
-            if (mkdir ("conftestdir", 0700) < 0)
-              return 2;
-            fd = open ("conftestdir", O_RDONLY);
-            if (fd < 0)
-              return 3;
-            ret = fchownat (fd, "", -1, -1, 0);
-            close (fd);
-            rmdir ("conftestdir");
-            return ret == 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fchownat_empty_filename_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fchownat_empty_filename_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_empty_filename_works" >&5
-$as_echo "$gl_cv_func_fchownat_empty_filename_works" >&6; }
-  if test "$gl_cv_func_fchownat_empty_filename_works" != yes; then
-  REPLACE_FCHOWNAT=1
-
-cat >>confdefs.h <<\_ACEOF
-#define FCHOWNAT_EMPTY_FILENAME_BUG 1
-_ACEOF
-
-
-fi
-
-
-     if test $REPLACE_CHOWN = 1; then
-       REPLACE_FCHOWNAT=1
-     fi
-else
-  HAVE_FCHOWNAT=0
-fi
-
-  if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fchownat.$ac_objext"
-
-  fi
-
-
-
-
-
-
-
-    { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
-$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
-if test "${ac_cv_gnu_library_2_1+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
-#ifdef __UCLIBC__
- Lucky user
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky" >/dev/null 2>&1; then
-  ac_cv_gnu_library_2_1=yes
-else
-  ac_cv_gnu_library_2_1=no
-fi
-rm -f conftest*
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
-$as_echo "$ac_cv_gnu_library_2_1" >&6; }
-
-    GLIBC21="$ac_cv_gnu_library_2_1"
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5
-$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
-if test "${gl_cv_func_malloc_posix+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-                        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-             choke me
-             #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_malloc_posix=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_malloc_posix=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5
-$as_echo "$gl_cv_func_malloc_posix" >&6; }
-
-
-
-for ac_header in stdlib.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_malloc_0_nonnull=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_malloc_0_nonnull=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_malloc_0_nonnull=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-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
-fi
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
-_ACEOF
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for a traditional japanese locale" >&5
-$as_echo_n "checking for a traditional japanese locale... " >&6; }
-if test "${gt_cv_locale_ja+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  return 0;
-}
-
-_ACEOF
-    if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Note that on native Win32, the Japanese locale is Japanese_Japan.932,
-          # and CP932 is very different from EUC-JP, so we cannot use it here.
-          gt_cv_locale_ja=none
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the AIX locale name.
-          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC-JP
-            else
-              # Test for the HP-UX, OSF/1, NetBSD locale name.
-              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja_JP.eucJP
-              else
-                # Test for the IRIX, FreeBSD locale name.
-                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                  gt_cv_locale_ja=ja_JP.EUC
-                else
-                  # Test for the Solaris 7 locale name.
-                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                    gt_cv_locale_ja=ja
-                  else
-                    # Special test for NetBSD 1.6.
-                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                      gt_cv_locale_ja=ja_JP.eucJP
-                    else
-                      # None found.
-                      gt_cv_locale_ja=none
-                    fi
-                  fi
-                fi
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_ja" >&5
-$as_echo "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for a transitional chinese locale" >&5
-$as_echo_n "checking for a transitional chinese locale... " >&6; }
-if test "${gt_cv_locale_zh_CN+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-#else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.
-     On MirBSD 10, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
-        || strcmp (cs, "UTF-8") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding (except on MirBSD).  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-}
-
-_ACEOF
-    if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Win32 locale name.
-          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=Chinese_China.54936
-          else
-            # None found.
-            gt_cv_locale_zh_CN=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the locale name without encoding suffix.
-          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_zh_CN=zh_CN
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_zh_CN=zh_CN.GB18030
-            else
-              # None found.
-              gt_cv_locale_zh_CN=none
-            fi
-          fi
-          ;;
-      esac
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_zh_CN" >&5
-$as_echo "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
-     not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
-     category of the locale to "C".  */
-  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
-      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
-    return 1;
-# else
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-# endif
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
-
-_ACEOF
-    if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest$ac_exeext; then
-      case "$host_os" in
-        # Handle native Windows specially, because there setlocale() interprets
-        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
-        # "fr" or "fra" as "French" or "French_France.1252",
-        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
-        # "ja" as "Japanese" or "Japanese_Japan.932",
-        # and similar.
-        mingw*)
-          # Test for the hypothetical native Win32 locale name.
-          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=French_France.65001
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-          ;;
-        *)
-          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-          # configure script would override the LC_ALL setting. Likewise for
-          # LC_CTYPE, which is also set at the beginning of the configure script.
-          # Test for the usual locale name.
-          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr_FR
-          else
-            # Test for the locale name with explicit encoding suffix.
-            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr_utf8=fr_FR.UTF-8
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr_utf8=fr.UTF-8
-              else
-                # None found.
-                gt_cv_locale_fr_utf8=none
-              fi
-            fi
-          fi
-          ;;
-      esac
-    fi
-    rm -fr conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
-
-
-
-  GNULIB_MEMCHR=0;
-  GNULIB_MEMMEM=0;
-  GNULIB_MEMPCPY=0;
-  GNULIB_MEMRCHR=0;
-  GNULIB_RAWMEMCHR=0;
-  GNULIB_STPCPY=0;
-  GNULIB_STPNCPY=0;
-  GNULIB_STRCHRNUL=0;
-  GNULIB_STRDUP=0;
-  GNULIB_STRNCAT=0;
-  GNULIB_STRNDUP=0;
-  GNULIB_STRNLEN=0;
-  GNULIB_STRPBRK=0;
-  GNULIB_STRSEP=0;
-  GNULIB_STRSTR=0;
-  GNULIB_STRCASESTR=0;
-  GNULIB_STRTOK_R=0;
-  GNULIB_MBSLEN=0;
-  GNULIB_MBSNLEN=0;
-  GNULIB_MBSCHR=0;
-  GNULIB_MBSRCHR=0;
-  GNULIB_MBSSTR=0;
-  GNULIB_MBSCASECMP=0;
-  GNULIB_MBSNCASECMP=0;
-  GNULIB_MBSPCASECMP=0;
-  GNULIB_MBSCASESTR=0;
-  GNULIB_MBSCSPN=0;
-  GNULIB_MBSPBRK=0;
-  GNULIB_MBSSPN=0;
-  GNULIB_MBSSEP=0;
-  GNULIB_MBSTOK_R=0;
-  GNULIB_STRERROR=0;
-  GNULIB_STRERROR_R=0;
-  GNULIB_STRSIGNAL=0;
-  GNULIB_STRVERSCMP=0;
-  HAVE_MBSLEN=0;
-    HAVE_MEMCHR=1;
-  HAVE_DECL_MEMMEM=1;
-  HAVE_MEMPCPY=1;
-  HAVE_DECL_MEMRCHR=1;
-  HAVE_RAWMEMCHR=1;
-  HAVE_STPCPY=1;
-  HAVE_STPNCPY=1;
-  HAVE_STRCHRNUL=1;
-  HAVE_DECL_STRDUP=1;
-  HAVE_DECL_STRNDUP=1;
-  HAVE_DECL_STRNLEN=1;
-  HAVE_STRPBRK=1;
-  HAVE_STRSEP=1;
-  HAVE_STRCASESTR=1;
-  HAVE_DECL_STRTOK_R=1;
-  HAVE_DECL_STRERROR_R=1;
-  HAVE_DECL_STRSIGNAL=1;
-  HAVE_STRVERSCMP=1;
-  REPLACE_MEMCHR=0;
-  REPLACE_MEMMEM=0;
-  REPLACE_STPNCPY=0;
-  REPLACE_STRDUP=0;
-  REPLACE_STRSTR=0;
-  REPLACE_STRCASESTR=0;
-  REPLACE_STRERROR=0;
-  REPLACE_STRERROR_R=0;
-  REPLACE_STRNCAT=0;
-  REPLACE_STRNDUP=0;
-  REPLACE_STRNLEN=0;
-  REPLACE_STRSIGNAL=0;
-  REPLACE_STRTOK_R=0;
-  UNDEFINE_STRTOK_R=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.
-  { $as_echo "$as_me:$LINENO: checking for mmap" >&5
-$as_echo_n "checking for mmap... " >&6; }
-if test "${ac_cv_func_mmap+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define mmap to an innocuous variant, in case <limits.h> declares mmap.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define mmap innocuous_mmap
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char mmap (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef mmap
-
-/* 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 mmap ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_mmap || defined __stub___mmap
-choke me
-#endif
-
-int
-main ()
-{
-return mmap ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_mmap=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_mmap=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap" >&5
-$as_echo "$ac_cv_func_mmap" >&6; }
-if test "x$ac_cv_func_mmap" = x""yes; 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
-    { $as_echo "$as_me:$LINENO: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
-
-    if test $gl_have_mmap_anonymous != yes; then
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then
-
-cat >>confdefs.h <<\_ACEOF
-#define MAP_ANONYMOUS MAP_ANON
-_ACEOF
-
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
-
-    fi
-    { $as_echo "$as_me:$LINENO: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MAP_ANONYMOUS 1
-_ACEOF
-
-    fi
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_memchr = yes; then
-    # Detect platform-specific bugs in some versions of glibc:
-    # memchr should not dereference anything with length 0
-    #   http://bugzilla.redhat.com/499689
-    # memchr should not dereference overestimated length after a match
-    #   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
-    #   http://sourceware.org/bugzilla/show_bug.cgi?id=10162
-    # Assume that memchr works on platforms that lack mprotect.
-    { $as_echo "$as_me:$LINENO: checking whether memchr works" >&5
-$as_echo_n "checking whether memchr works... " >&6; }
-if test "${gl_cv_func_memchr_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-         gl_cv_func_memchr_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <string.h>
-#if HAVE_SYS_MMAN_H
-# include <fcntl.h>
-# include <unistd.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# ifndef MAP_FILE
-#  define MAP_FILE 0
-# endif
-#endif
-
-int
-main ()
-{
-
-  int result = 0;
-  char *fence = NULL;
-#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
-# if HAVE_MAP_ANONYMOUS
-  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
-  const int fd = -1;
-# else /* !HAVE_MAP_ANONYMOUS */
-  const int flags = MAP_FILE | MAP_PRIVATE;
-  int fd = open ("/dev/zero", O_RDONLY, 0666);
-  if (fd >= 0)
-# endif
-    {
-      int pagesize = getpagesize ();
-      char *two_pages =
-        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
-                       flags, fd, 0);
-      if (two_pages != (char *)(-1)
-          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
-        fence = two_pages + pagesize;
-    }
-#endif
-  if (fence)
-    {
-      if (memchr (fence, 0, 0))
-        result |= 1;
-      strcpy (fence - 9, "12345678");
-      if (memchr (fence - 9, 0, 79) != fence - 1)
-        result |= 2;
-      if (memchr (fence - 1, 0, 3) != fence - 1)
-        result |= 4;
-    }
-  return result;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_memchr_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_memchr_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_memchr_works" >&5
-$as_echo "$gl_cv_func_memchr_works" >&6; }
-    if test "$gl_cv_func_memchr_works" != yes; then
-      REPLACE_MEMCHR=1
-    fi
-  else
-    HAVE_MEMCHR=0
-  fi
-  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
-
-
-
-for ac_header in bp-sym.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-  fi
-
-{ $as_echo "$as_me:$LINENO: checking whether memrchr is declared" >&5
-$as_echo_n "checking whether memrchr is declared... " >&6; }
-if test "${ac_cv_have_decl_memrchr+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef memrchr
-  (void) memrchr;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_memrchr=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_memrchr=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_memrchr" >&5
-$as_echo "$ac_cv_have_decl_memrchr" >&6; }
-if test "x$ac_cv_have_decl_memrchr" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MEMRCHR 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MEMRCHR 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-  GNULIB_MKTIME=0;
-  GNULIB_NANOSLEEP=0;
-  GNULIB_STRPTIME=0;
-  GNULIB_TIMEGM=0;
-  GNULIB_TIME_R=0;
-    HAVE_DECL_LOCALTIME_R=1;
-  HAVE_NANOSLEEP=1;
-  HAVE_STRPTIME=1;
-  HAVE_TIMEGM=1;
-        REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
-  REPLACE_MKTIME=GNULIB_PORTCHECK;
-  REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
-  REPLACE_TIMEGM=GNULIB_PORTCHECK;
-
-
-
-
-
-
-  # parse-datetime.y works with bison only.
-  : ${YACC='bison -y'}
-
-
-  { $as_echo "$as_me:$LINENO: checking for compound literals" >&5
-$as_echo_n "checking for compound literals... " >&6; }
-if test "${gl_cv_compound_literals+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-struct s { int i, j; };
-int
-main ()
-{
-struct s t = (struct s) { 3, 4 };
-        if (t.i != 0) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_compound_literals=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_compound_literals=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_compound_literals" >&5
-$as_echo "$gl_cv_compound_literals" >&6; }
-  if test $gl_cv_compound_literals = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_COMPOUND_LITERALS 1
-_ACEOF
-
-  fi
-
-{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
-$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if test "${ac_cv_struct_tm+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <time.h>
-
-int
-main ()
-{
-struct tm tm;
-                                    int *p = &tm.tm_sec;
-                                    return !p;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_struct_tm=time.h
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_struct_tm=sys/time.h
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
-$as_echo "$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TM_IN_SYS_TIME 1
-_ACEOF
-
-fi
-
-
- { $as_echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5
-$as_echo_n "checking for struct tm.tm_gmtoff... " >&6; }
-if test "${ac_cv_member_struct_tm_tm_gmtoff+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-int
-main ()
-{
-static struct tm ac_aggr;
-if (ac_aggr.tm_gmtoff)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_tm_tm_gmtoff=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-int
-main ()
-{
-static struct tm ac_aggr;
-if (sizeof ac_aggr.tm_gmtoff)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_tm_tm_gmtoff=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_tm_tm_gmtoff=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
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5
-$as_echo "$ac_cv_member_struct_tm_tm_gmtoff" >&6; }
-if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TM_GMTOFF 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether setenv is declared" >&5
-$as_echo_n "checking whether setenv is declared... " >&6; }
-if test "${ac_cv_have_decl_setenv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef setenv
-  (void) setenv;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_setenv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_setenv=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_setenv" >&5
-$as_echo "$ac_cv_have_decl_setenv" >&6; }
-if test "x$ac_cv_have_decl_setenv" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SETENV 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SETENV 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_have_decl_setenv = no; then
-    HAVE_DECL_SETENV=0
-  fi
-
-
-
-
-
-
-  if test $ac_cv_func_setenv = no; then
-    HAVE_SETENV=0
-  else
-    { $as_echo "$as_me:$LINENO: checking whether setenv validates arguments" >&5
-$as_echo_n "checking whether setenv validates arguments... " >&6; }
-if test "${gl_cv_func_setenv_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_setenv_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-       #include <stdlib.h>
-       #include <errno.h>
-       #include <string.h>
-
-int
-main ()
-{
-
-       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
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_setenv_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_setenv_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_setenv_works" >&5
-$as_echo "$gl_cv_func_setenv_works" >&6; }
-    if test "$gl_cv_func_setenv_works" != yes; then
-      REPLACE_SETENV=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
-
-    fi
-  fi
-
-
-
-
-
-
-
-
-
-
-for ac_header in search.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in tsearch
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-
-
-
-     { $as_echo "$as_me:$LINENO: checking whether snprintf returns a byte count as in C99" >&5
-$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
-if test "${gl_cv_func_snprintf_retval_c99+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-      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* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
-           darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on OpenBSD >= 3.9.
-           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                                 gl_cv_func_snprintf_retval_c99="guessing no";;
-           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on Solaris >= 2.10.
-           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
-           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
-                                 # Guess yes on AIX >= 4.
-           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
-           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on NetBSD >= 3.
-           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                 gl_cv_func_snprintf_retval_c99="guessing no";;
-           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on BeOS.
-           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # If we don't know, assume the worst.
-           *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
-         esac
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <string.h>
-static char buf[100];
-int main ()
-{
-  strcpy (buf, "ABCDEF");
-  if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
-    return 1;
-  if (snprintf (buf, 0, "%d %d", 4567, 89) != 7)
-    return 2;
-  if (snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
-    return 3;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_snprintf_retval_c99=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_snprintf_retval_c99=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_retval_c99" >&5
-$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking whether snprintf is declared" >&5
-$as_echo_n "checking whether snprintf is declared... " >&6; }
-if test "${ac_cv_have_decl_snprintf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef snprintf
-  (void) snprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_snprintf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_snprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5
-$as_echo "$ac_cv_have_decl_snprintf" >&6; }
-if test "x$ac_cv_have_decl_snprintf" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-
-    REPLACE_NULL=0;
-  HAVE_WCHAR_T=1;
-  STDDEF_H='';
-
-
-  { $as_echo "$as_me:$LINENO: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-            wchar_t foo = (wchar_t)'\0';
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_wchar_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_wchar_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WCHAR_T 1
-_ACEOF
-
-  fi
-
-
-    HAVE_STRCASECMP=1;
-  HAVE_DECL_STRNCASECMP=1;
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether strdup is declared" >&5
-$as_echo_n "checking whether strdup is declared... " >&6; }
-if test "${ac_cv_have_decl_strdup+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strdup
-  (void) strdup;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strdup=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strdup=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strdup" >&5
-$as_echo "$ac_cv_have_decl_strdup" >&6; }
-if test "x$ac_cv_have_decl_strdup" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRDUP 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRDUP 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-  if test -z "$ERRNO_H"; then
-    { $as_echo "$as_me:$LINENO: checking for working strerror function" >&5
-$as_echo_n "checking for working strerror function... " >&6; }
-if test "${gl_cv_func_working_strerror+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-int
-main ()
-{
-return !*strerror (-2);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_working_strerror=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_working_strerror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-int
-main ()
-{
-return !*strerror (-2);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_working_strerror=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_working_strerror=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5
-$as_echo "$gl_cv_func_working_strerror" >&6; }
-    if test $gl_cv_func_working_strerror = no; then
-                  REPLACE_STRERROR=1
-    fi
-  else
-            REPLACE_STRERROR=1
-  fi
-  if test $REPLACE_STRERROR = 1; then
-
-  { $as_echo "$as_me:$LINENO: checking whether strerror is declared" >&5
-$as_echo_n "checking whether strerror is declared... " >&6; }
-if test "${ac_cv_have_decl_strerror+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strerror
-  (void) strerror;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strerror=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strerror=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5
-$as_echo "$ac_cv_have_decl_strerror" >&6; }
-if test "x$ac_cv_have_decl_strerror" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-  if test $ac_cv_header_sys_socket_h != yes; then
-
-for ac_header in winsock2.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-  fi
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_string_h='<'string.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5
-$as_echo_n "checking absolute name of <string.h>... " >&6; }
-if test "${gl_cv_next_string_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/string.h#{
-                    s#.*"\(.*/string.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5
-$as_echo "$gl_cv_next_string_h" >&6; }
-     fi
-     NEXT_STRING_H=$gl_cv_next_string_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='<'string.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_string_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  for gl_func in memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup      strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r      strsignal strverscmp; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-
-      done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_strings_h='<'strings.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <strings.h>" >&5
-$as_echo_n "checking absolute name of <strings.h>... " >&6; }
-if test "${gl_cv_next_strings_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-             if test $ac_cv_header_strings_h = yes; then
-
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <strings.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/strings.h#{
-                    s#.*"\(.*/strings.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_strings_h='<'strings.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_strings_h" >&5
-$as_echo "$gl_cv_next_strings_h" >&6; }
-     fi
-     NEXT_STRINGS_H=$gl_cv_next_strings_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='<'strings.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_strings_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive
-
-
-
-
-
-
-
-
-  for gl_func in strcasecmp strncasecmp; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <strings.h>
-
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-
-      done
-
-
-{ $as_echo "$as_me:$LINENO: checking whether strndup is declared" >&5
-$as_echo_n "checking whether strndup is declared... " >&6; }
-if test "${ac_cv_have_decl_strndup+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strndup
-  (void) strndup;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strndup=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strndup=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strndup" >&5
-$as_echo "$ac_cv_have_decl_strndup" >&6; }
-if test "x$ac_cv_have_decl_strndup" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNDUP 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNDUP 0
-_ACEOF
-
-
-fi
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether strnlen is declared" >&5
-$as_echo_n "checking whether strnlen is declared... " >&6; }
-if test "${ac_cv_have_decl_strnlen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strnlen
-  (void) strnlen;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strnlen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strnlen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strnlen" >&5
-$as_echo "$ac_cv_have_decl_strnlen" >&6; }
-if test "x$ac_cv_have_decl_strnlen" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNLEN 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNLEN 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for struct timespec in <time.h>" >&5
-$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_time_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-int
-main ()
-{
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_sys_struct_timespec_in_time_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_sys_struct_timespec_in_time_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_time_h" >&5
-$as_echo "$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
-  if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
-    TIME_H_DEFINES_STRUCT_TIMESPEC=1
-  else
-    { $as_echo "$as_me:$LINENO: checking for struct timespec in <sys/time.h>" >&5
-$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_sys_time_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-
-int
-main ()
-{
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_sys_struct_timespec_in_sys_time_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_sys_struct_timespec_in_sys_time_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5
-$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
-    if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
-      SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
-    else
-      { $as_echo "$as_me:$LINENO: checking for struct timespec in <pthread.h>" >&5
-$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_pthread_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pthread.h>
-
-int
-main ()
-{
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_sys_struct_timespec_in_pthread_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_sys_struct_timespec_in_pthread_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
-$as_echo "$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
-      fi
-    fi
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_time_h='<'time.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <time.h>" >&5
-$as_echo_n "checking absolute name of <time.h>... " >&6; }
-if test "${gl_cv_next_time_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/time.h#{
-                    s#.*"\(.*/time.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_time_h" >&5
-$as_echo "$gl_cv_next_time_h" >&6; }
-     fi
-     NEXT_TIME_H=$gl_cv_next_time_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='<'time.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_time_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive
-
-
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking whether localtime_r is declared" >&5
-$as_echo_n "checking whether localtime_r is declared... " >&6; }
-if test "${ac_cv_have_decl_localtime_r+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef localtime_r
-  (void) localtime_r;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_localtime_r=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_localtime_r=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_localtime_r" >&5
-$as_echo "$ac_cv_have_decl_localtime_r" >&6; }
-if test "x$ac_cv_have_decl_localtime_r" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_LOCALTIME_R 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_LOCALTIME_R 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
-i\
-0
-q
-'
-gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
-i\
-0
-q
-'
-gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
-i\
-0
-q
-'
-
-
-  if test "$HAVE_LIBUNISTRING" = yes; then
-    LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
-    LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
-    LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
-  fi
-
-{ $as_echo "$as_me:$LINENO: checking whether unsetenv is declared" >&5
-$as_echo_n "checking whether unsetenv is declared... " >&6; }
-if test "${ac_cv_have_decl_unsetenv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef unsetenv
-  (void) unsetenv;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_unsetenv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_unsetenv=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_unsetenv" >&5
-$as_echo "$ac_cv_have_decl_unsetenv" >&6; }
-if test "x$ac_cv_have_decl_unsetenv" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_UNSETENV 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_UNSETENV 0
-_ACEOF
-
-
-fi
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether the utimes function works" >&5
-$as_echo_n "checking whether the utimes function works... " >&6; }
-if test "${gl_cv_func_working_utimes+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_working_utimes=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <utime.h>
-
-static int
-inorder (time_t a, time_t b, time_t c)
-{
-  return a <= b && b <= c;
-}
-
-int
-main ()
-{
-  int result = 0;
-  char const *file = "conftest.utimes";
-  static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
-
-  /* Test whether utimes() essentially works.  */
-  {
-    struct stat sbuf;
-    FILE *f = fopen (file, "w");
-    if (f == NULL)
-      result |= 1;
-    else if (fclose (f) != 0)
-      result |= 1;
-    else if (utimes (file, timeval) != 0)
-      result |= 2;
-    else if (lstat (file, &sbuf) != 0)
-      result |= 1;
-    else if (!(sbuf.st_atime == timeval[0].tv_sec
-               && sbuf.st_mtime == timeval[1].tv_sec))
-      result |= 4;
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  /* Test whether utimes() with a NULL argument sets the file's timestamp
-     to the current time.  Use 'fstat' as well as 'time' to
-     determine the "current" time, to accommodate NFS file systems
-     if there is a time skew between the host and the NFS server.  */
-  {
-    int fd = open (file, O_WRONLY|O_CREAT, 0644);
-    if (fd < 0)
-      result |= 1;
-    else
-      {
-        time_t t0, t2;
-        struct stat st0, st1, st2;
-        if (time (&t0) == (time_t) -1)
-          result |= 1;
-        else if (fstat (fd, &st0) != 0)
-          result |= 1;
-        else if (utimes (file, timeval) != 0)
-          result |= 2;
-        else if (utimes (file, NULL) != 0)
-          result |= 8;
-        else if (fstat (fd, &st1) != 0)
-          result |= 1;
-        else if (write (fd, "\n", 1) != 1)
-          result |= 1;
-        else if (fstat (fd, &st2) != 0)
-          result |= 1;
-        else if (time (&t2) == (time_t) -1)
-          result |= 1;
-        else
-          {
-            int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
-            int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
-            if (! (st1.st_atime == st1.st_mtime))
-              result |= 16;
-            if (! (m_ok_POSIX || m_ok_NFS))
-              result |= 32;
-          }
-        if (close (fd) != 0)
-          result |= 1;
-      }
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  /* Test whether utimes() with a NULL argument works on read-only files.  */
-  {
-    int fd = open (file, O_WRONLY|O_CREAT, 0444);
-    if (fd < 0)
-      result |= 1;
-    else if (close (fd) != 0)
-      result |= 1;
-    else if (utimes (file, NULL) != 0)
-      result |= 64;
-    if (unlink (file) != 0)
-      result |= 1;
-  }
-
-  return result;
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_working_utimes=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_working_utimes=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_utimes" >&5
-$as_echo "$gl_cv_func_working_utimes" >&6; }
-
-  if test $gl_cv_func_working_utimes = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WORKING_UTIMES 1
-_ACEOF
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for struct utimbuf" >&5
-$as_echo_n "checking for struct utimbuf... " >&6; }
-if test "${gl_cv_sys_struct_utimbuf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_SYS_TIME_H
-             #include <sys/time.h>
-            #endif
-            #include <time.h>
-            #ifdef HAVE_UTIME_H
-             #include <utime.h>
-            #endif
-
-int
-main ()
-{
-static struct utimbuf x; x.actime = x.modtime;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_sys_struct_utimbuf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_sys_struct_utimbuf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_utimbuf" >&5
-$as_echo "$gl_cv_sys_struct_utimbuf" >&6; }
-
-  if test $gl_cv_sys_struct_utimbuf = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_UTIMBUF 1
-_ACEOF
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_header_features_h = yes; then
-    HAVE_FEATURES_H=1
-  else
-    HAVE_FEATURES_H=0
-  fi
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5
-$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gl_cv_header_inttypes_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <inttypes.h>
-
-int
-main ()
-{
-uintmax_t i = (uintmax_t) -1; return !i;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_inttypes_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_header_inttypes_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5
-$as_echo "$gl_cv_header_inttypes_h" >&6; }
-  if test $gl_cv_header_inttypes_h = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H_WITH_UINTMAX 1
-_ACEOF
-
-  fi
-
-
-  { $as_echo "$as_me:$LINENO: checking for stdint.h" >&5
-$as_echo_n "checking for stdint.h... " >&6; }
-if test "${gl_cv_header_stdint_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-            #include <stdint.h>
-int
-main ()
-{
-uintmax_t i = (uintmax_t) -1; return !i;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_stdint_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_header_stdint_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5
-$as_echo "$gl_cv_header_stdint_h" >&6; }
-  if test $gl_cv_header_stdint_h = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STDINT_H_WITH_UINTMAX 1
-_ACEOF
-
-  fi
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for intmax_t" >&5
-$as_echo_n "checking for intmax_t... " >&6; }
-if test "${gt_cv_c_intmax_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
-
-int
-main ()
-{
-intmax_t x = -1; return !x;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_intmax_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_intmax_t=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_intmax_t" >&5
-$as_echo "$gt_cv_c_intmax_t" >&6; }
-  if test $gt_cv_c_intmax_t = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INTMAX_T 1
-_ACEOF
-
-  else
-
-    test $ac_cv_type_long_long_int = yes \
-      && ac_type='long long' \
-      || ac_type='long'
-
-cat >>confdefs.h <<_ACEOF
-#define intmax_t $ac_type
-_ACEOF
-
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-      { $as_echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5
-$as_echo_n "checking whether _snprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snprintf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-
-int
-main ()
-{
-#ifndef _snprintf
-  (void) _snprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl__snprintf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl__snprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5
-$as_echo "$ac_cv_have_decl__snprintf" >&6; }
-if test "x$ac_cv_have_decl__snprintf" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL__SNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL__SNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-
-  case "$gl_cv_func_snprintf_retval_c99" in
-    *yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SNPRINTF_RETVAL_C99 1
-_ACEOF
-
-      ;;
-  esac
-
-{ $as_echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5
-$as_echo_n "checking whether vsnprintf is declared... " >&6; }
-if test "${ac_cv_have_decl_vsnprintf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vsnprintf
-  (void) vsnprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_vsnprintf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_vsnprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5
-$as_echo "$ac_cv_have_decl_vsnprintf" >&6; }
-if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-   if false; then
-  GL_COND_LIBTOOL_TRUE=
-  GL_COND_LIBTOOL_FALSE='#'
-else
-  GL_COND_LIBTOOL_TRUE='#'
-  GL_COND_LIBTOOL_FALSE=
-fi
-
-  gl_cond_libtool=false
-  gl_libdeps=
-  gl_ltlibdeps=
-  gl_m4_base='m4'
-
-
-
-
-
-
-
-
-
-  gl_source_base='gnu'
-  # Code from module alloca:
-  # Code from module alloca-opt:
-
-
-  if test $ac_cv_func_alloca_works = no; then
-    :
-  fi
-
-  # Define an additional variable used in the Makefile substitution.
-  if test $ac_cv_working_alloca_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking for alloca as a compiler built-in" >&5
-$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
-if test "${gl_cv_rpl_alloca+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-        Need own alloca
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1; then
-  gl_cv_rpl_alloca=yes
-else
-  gl_cv_rpl_alloca=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_rpl_alloca" >&5
-$as_echo "$gl_cv_rpl_alloca" >&6; }
-    if test $gl_cv_rpl_alloca = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
-
-      ALLOCA_H=alloca.h
-    else
-                  ALLOCA_H=
-    fi
-  else
-    ALLOCA_H=alloca.h
-  fi
-
-
-  # Code from module areadlink:
-  # Code from module areadlinkat:
-
-
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_AREADLINKAT 1
-_ACEOF
-
-
-  # Code from module arg-nonnull:
-  # Code from module argmatch:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS argmatch.$ac_objext"
-
-
-  # Code from module argp:
-
-
-
-
-
-
-  GETOPT_H=getopt.h
-
-cat >>confdefs.h <<\_ACEOF
-#define __GETOPT_PREFIX rpl_
-_ACEOF
-
-
-
-    GNULIB_UNISTD_H_GETOPT=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is declared" >&5
-$as_echo_n "checking whether program_invocation_name is declared... " >&6; }
-if test "${ac_cv_have_decl_program_invocation_name+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <errno.h>
-
-int
-main ()
-{
-#ifndef program_invocation_name
-  (void) program_invocation_name;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_program_invocation_name=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_program_invocation_name=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_name" >&5
-$as_echo "$ac_cv_have_decl_program_invocation_name" >&6; }
-if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_PROGRAM_INVOCATION_NAME 1
-_ACEOF
-
-fi
-
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is declared" >&5
-$as_echo_n "checking whether program_invocation_short_name is declared... " >&6; }
-if test "${ac_cv_have_decl_program_invocation_short_name+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <errno.h>
-
-int
-main ()
-{
-#ifndef program_invocation_short_name
-  (void) program_invocation_short_name;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_program_invocation_short_name=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_program_invocation_short_name=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_short_name" >&5
-$as_echo "$ac_cv_have_decl_program_invocation_short_name" >&6; }
-if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1
-_ACEOF
-
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1
-_ACEOF
-
-fi
-
-
-  # Check if program_invocation_name and program_invocation_short_name
-  # are defined elsewhere. It is improbable that only one of them will
-  # be defined and other not, I prefer to stay on the safe side and to
-  # test each one separately.
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is defined" >&5
-$as_echo_n "checking whether program_invocation_name is defined... " >&6; }
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <argp.h>
-int
-main ()
-{
-program_invocation_name = "test";
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PROGRAM_INVOCATION_NAME 1
-_ACEOF
-
-                  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is defined" >&5
-$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; }
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <argp.h>
-int
-main ()
-{
-program_invocation_short_name = "test";
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1
-_ACEOF
-
-                  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format"
-
-
-
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format"
-
-  # Code from module argp-version-etc:
-  # Code from module backupfile:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS backupfile.$ac_objext"
-
-
-
-
-
-
-
-
-
-
-
-  # Code from module bitrotate:
-
-  # Code from module btowc:
-
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_btowc = no; then
-    HAVE_BTOWC=0
-  else
-
-
-
-
-        { $as_echo "$as_me:$LINENO: checking whether btowc(0) is correct" >&5
-$as_echo_n "checking whether btowc(0) is correct... " >&6; }
-if test "${gl_cv_func_btowc_nul+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-        if test "$cross_compiling" = yes; then
-
-           case "$host_os" in
-                      # Guess no on Cygwin.
-             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
-                      # Guess yes otherwise.
-             *)       gl_cv_func_btowc_nul="guessing yes" ;;
-           esac
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (btowc ('\0') != 0)
-    return 1;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_btowc_nul=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_btowc_nul=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_btowc_nul" >&5
-$as_echo "$gl_cv_func_btowc_nul" >&6; }
-
-        { $as_echo "$as_me:$LINENO: checking whether btowc(EOF) is correct" >&5
-$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
-if test "${gl_cv_func_btowc_eof+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-                        case "$host_os" in
-                 # Guess no on IRIX.
-          irix*) gl_cv_func_btowc_eof="guessing no" ;;
-                 # Guess yes otherwise.
-          *)     gl_cv_func_btowc_eof="guessing yes" ;;
-        esac
-        if test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      if (btowc (EOF) != WEOF)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_btowc_eof=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_btowc_eof=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-        fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_btowc_eof" >&5
-$as_echo "$gl_cv_func_btowc_eof" >&6; }
-
-    case "$gl_cv_func_btowc_nul" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-    case "$gl_cv_func_btowc_eof" in
-      *yes) ;;
-      *) REPLACE_BTOWC=1 ;;
-    esac
-  fi
-  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
-
-    :
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
-
-
-  :
-
-  fi
-
-
-
 
-  GNULIB_BTOWC=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_BTOWC 1
-_ACEOF
-
-
-
-  # Code from module c++defs:
-  # Code from module c-ctype:
-  # Code from module canonicalize-lgpl:
-
-
-  if test $ac_cv_func_canonicalize_file_name = no; then
-    HAVE_CANONICALIZE_FILE_NAME=0
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
-
-    if test $ac_cv_func_realpath = no; then
-      HAVE_REALPATH=0
-    elif test "$gl_cv_func_realpath_works" != yes; then
-      REPLACE_REALPATH=1
-    fi
-  elif test "$gl_cv_func_realpath_works" != yes; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
-
-    REPLACE_REALPATH=1
-    REPLACE_CANONICALIZE_FILE_NAME=1
-  fi
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_CANONICALIZE_LGPL 1
-_ACEOF
-
-
-
-
-
-  GNULIB_CANONICALIZE_FILE_NAME=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1
-_ACEOF
-
-
-
-
-
-
-  GNULIB_REALPATH=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_REALPATH 1
-_ACEOF
-
-
-
-  # Code from module chdir-long:
-
-  { $as_echo "$as_me:$LINENO: checking whether this system has an arbitrary file name length limit" >&5
-$as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; }
-if test "${gl_cv_have_arbitrary_file_name_length_limit+set}" = set; then
+    if test $ac_cv_header_stdint_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if ${gl_cv_header_working_stdint_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  gl_cv_header_working_stdint_h=no
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
-#include <limits.h>
-#if defined PATH_MAX || defined MAXPATHLEN
-have_arbitrary_file_name_length_limit
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then
-  gl_cv_have_arbitrary_file_name_length_limit=yes
-else
-  gl_cv_have_arbitrary_file_name_length_limit=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_have_arbitrary_file_name_length_limit" >&5
-$as_echo "$gl_cv_have_arbitrary_file_name_length_limit" >&6; }
-
-  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
-
-
-
-  :
-
-  fi
-
-  # Code from module chown:
-
-
-
-
-  GNULIB_CHOWN=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_CHOWN 1
-_ACEOF
-
-
-
-  # Code from module clock-time:
-
-
-
-  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
-  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
-
-  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
-  # programs in the package would end up linked with that potentially-shared
-  # library, inducing unnecessary run-time overhead.
-  LIB_CLOCK_GETTIME=
 
-  gl_saved_libs=$LIBS
-    { $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
-$as_echo_n "checking for library containing clock_gettime... " >&6; }
-if test "${ac_cv_search_clock_gettime+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* 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"
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
 #endif
-char clock_gettime ();
-int
-main ()
-{
-return clock_gettime ();
-  ;
-  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
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_search_clock_gettime=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_clock_gettime+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_clock_gettime+set}" = set; then
-  :
-else
-  ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5
-$as_echo "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-  test "$ac_cv_search_clock_gettime" = "none required" ||
-                    LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
-fi
 
 
+  /* 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
 
-for ac_func in clock_gettime clock_settime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
 #else
-# include <assert.h>
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
 #endif
-
-#undef $ac_func
-
-/* 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"
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
 #endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-  LIBS=$gl_saved_libs
-
-  # Code from module cloexec:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS cloexec.$ac_objext"
-
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_CLOEXEC 1
-_ACEOF
-
-
-  # Code from module close:
-
-
-
-
-
-
-  GNULIB_CLOSE=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_CLOSE 1
-_ACEOF
-
-
-
-  # Code from module close-hook:
-  # Code from module close-stream:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS close-stream.$ac_objext"
-
-
-    :
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_CLOSE_STREAM 1
-_ACEOF
-
-
-  # Code from module closeout:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS closeout.$ac_objext"
-
-
-    :
-
-  # Code from module configmake:
-
-          if test "x$datarootdir" = x; then
-    datarootdir='${datadir}'
-
-  fi
-    if test "x$docdir" = x; then
-    docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-
-  fi
-    if test "x$htmldir" = x; then
-    htmldir='${docdir}'
-
-  fi
-  if test "x$dvidir" = x; then
-    dvidir='${docdir}'
-
-  fi
-  if test "x$pdfdir" = x; then
-    pdfdir='${docdir}'
-
-  fi
-  if test "x$psdir" = x; then
-    psdir='${docdir}'
-
-  fi
-  if test "x$lispdir" = x; then
-    lispdir='${datarootdir}/emacs/site-lisp'
-
-  fi
-  if test "x$localedir" = x; then
-    localedir='${datarootdir}/locale'
-
-  fi
-
-      pkglibexecdir='${libexecdir}/${PACKAGE}'
-
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 \
+        ? (t) -1 \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
 
-  # Code from module d-ino:
-  { $as_echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5
-$as_echo_n "checking for d_ino member in directory struct... " >&6; }
-if test "${gl_cv_struct_dirent_d_ino+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  gl_cv_struct_dirent_d_ino=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-             #include <sys/stat.h>
-             #include <dirent.h>
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
 
-int
-main ()
-{
-DIR *dp = opendir (".");
-             struct dirent *e;
-             struct stat st;
-             if (! dp)
-               return 1;
-             e = readdir (dp);
-             if (! e)
-               return 2;
-             if (stat (e->d_name, &st) != 0)
-               return 3;
-             if (e->d_ino != st.st_ino)
-               return 4;
-             return 0;
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_struct_dirent_d_ino=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_struct_dirent_d_ino=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5
-$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
-   if test $gl_cv_struct_dirent_d_ino = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define D_INO_IN_DIRENT 1
-_ACEOF
-
-   fi
-
-
-  # Code from module dirent:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+if ac_fn_c_try_compile "$LINENO"; then :
+                                                    if test "$cross_compiling" = yes; then :
+                 gl_cv_header_working_stdint_h=yes
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_dirent_h='<'dirent.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <dirent.h>" >&5
-$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
-if test "${gl_cv_next_dirent_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-
-             if test $ac_cv_header_dirent_h = yes; then
-
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <dirent.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/dirent.h#{
-                    s#.*"\(.*/dirent.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_dirent_h='<'dirent.h'>'
-             fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_dirent_h" >&5
-$as_echo "$gl_cv_next_dirent_h" >&6; }
-     fi
-     NEXT_DIRENT_H=$gl_cv_next_dirent_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='<'dirent.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_dirent_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive
-
-
-
-
 
 
+#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
 
 
-  for gl_func in alphasort dirfd fdopendir scandir; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dirent.h>
+#include <stdio.h>
+#include <string.h>
+#define MVAL(macro) MVAL1(macro)
+#define MVAL1(expression) #expression
+static const char *macro_values[] =
+  {
+#ifdef INT8_MAX
+    MVAL (INT8_MAX),
+#endif
+#ifdef INT16_MAX
+    MVAL (INT16_MAX),
+#endif
+#ifdef INT32_MAX
+    MVAL (INT32_MAX),
+#endif
+#ifdef INT64_MAX
+    MVAL (INT64_MAX),
+#endif
+#ifdef UINT8_MAX
+    MVAL (UINT8_MAX),
+#endif
+#ifdef UINT16_MAX
+    MVAL (UINT16_MAX),
+#endif
+#ifdef UINT32_MAX
+    MVAL (UINT32_MAX),
+#endif
+#ifdef UINT64_MAX
+    MVAL (UINT64_MAX),
+#endif
+    NULL
+  };
 
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+
+  const char **mv;
+  for (mv = macro_values; *mv != NULL; mv++)
+    {
+      const char *value = *mv;
+      /* Test whether it looks like a cast expression.  */
+      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
+          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
+          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
+          || strncmp (value, "((int)"/*)*/, 6) == 0
+          || strncmp (value, "((signed short)"/*)*/, 15) == 0
+          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
+        return mv - macro_values + 1;
+    }
+  return 0;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+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 \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+
+fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
+$as_echo "$gl_cv_header_working_stdint_h" >&6; }
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+            for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+  as_ac_Header=`$as_echo "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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
 fi
 
-      done
+done
 
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
 
-  # Code from module dirent-safer:
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
+    fi
 
 
 
 
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
 
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* 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
 
+#include <limits.h>"; then :
 
+else
+  result=unknown
+fi
 
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
 
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
 
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS opendir-safer.$ac_objext"
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* 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
 
+#include <limits.h>"; then :
 
+else
+  result=unknown
+fi
 
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_DIRENT_SAFER 1
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
 _ACEOF
 
-
-  # Code from module dirfd:
-
-
-
-    :
-
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
 
 
 
-for ac_func in dirfd
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if eval \${gl_cv_type_${gltype}_signed+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+  /* 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
 
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
 int
 main ()
 {
-return $ac_func ();
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  result=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  result=no
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       eval gl_cv_type_${gltype}_signed=\$result
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$gl_cv_type_${gltype}_signed
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
 _ACEOF
 
-fi
-done
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
+
+
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+
 
-  { $as_echo "$as_me:$LINENO: checking whether dirfd is declared" >&5
-$as_echo_n "checking whether dirfd is declared... " >&6; }
-if test "${ac_cv_have_decl_dirfd+set}" = set; then
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-     #include <dirent.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
+
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
-#ifndef dirfd
-  (void) dirfd;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_dirfd=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_dirfd=no
+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
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_dirfd" >&5
-$as_echo "$ac_cv_have_decl_dirfd" >&6; }
-if test "x$ac_cv_have_decl_dirfd" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_DIRFD 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_DIRFD 0
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
 _ACEOF
 
-
-fi
+  done
 
 
-  if test $ac_cv_have_decl_dirfd = no; then
-    HAVE_DECL_DIRFD=0
   fi
 
-  { $as_echo "$as_me:$LINENO: checking whether dirfd is a macro" >&5
-$as_echo_n "checking whether dirfd is a macro... " >&6; }
-if test "${gl_cv_func_dirfd_macro+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <dirent.h>
-#ifdef dirfd
- dirent_header_defines_dirfd
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then
-  gl_cv_func_dirfd_macro=yes
-else
-  gl_cv_func_dirfd_macro=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_dirfd_macro" >&5
-$as_echo "$gl_cv_func_dirfd_macro" >&6; }
-
-  # Use the replacement only if we have no function or macro with that name.
-  if test $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro = no,no; then
-    if test $ac_cv_have_decl_dirfd = yes; then
-      # If the system declares dirfd already, let's declare rpl_dirfd instead.
-      REPLACE_DIRFD=1
-    fi
-
-
-
 
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
-
-    { $as_echo "$as_me:$LINENO: checking how to get the file descriptor associated with an open DIR*" >&5
-$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; }
-if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-        dirfd_save_CFLAGS=$CFLAGS
-        for ac_expr in d_fd dd_fd; do
-
-          CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
-          cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-             #include <sys/types.h>
-             #include <dirent.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
+
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
-DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  dir_fd_found=yes
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+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
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
+_ACEOF
 
+  done
 
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-          CFLAGS=$dirfd_save_CFLAGS
-          test "$dir_fd_found" = yes && break
-        done
-        test "$dir_fd_found" = yes || ac_expr=no_such_member
 
-        gl_cv_sys_dir_fd_member_name=$ac_expr
+          if test $BITSIZEOF_WINT_T -lt 32; then
+    BITSIZEOF_WINT_T=32
+  fi
 
+    STDINT_H=stdint.h
+  fi
 
+   if test -n "$STDINT_H"; then
+  GL_GENERATE_STDINT_H_TRUE=
+  GL_GENERATE_STDINT_H_FALSE='#'
+else
+  GL_GENERATE_STDINT_H_TRUE='#'
+  GL_GENERATE_STDINT_H_FALSE=
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_dir_fd_member_name" >&5
-$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; }
-    if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
 
-cat >>confdefs.h <<_ACEOF
-#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name
-_ACEOF
 
-    fi
 
 
-  fi
 
+  GNULIB_IMAXABS=0;
+  GNULIB_IMAXDIV=0;
+  GNULIB_STRTOIMAX=0;
+  GNULIB_STRTOUMAX=0;
+    HAVE_DECL_IMAXABS=1;
+  HAVE_DECL_IMAXDIV=1;
+  HAVE_DECL_STRTOIMAX=1;
+  HAVE_DECL_STRTOUMAX=1;
+  REPLACE_STRTOIMAX=0;
+  INT32_MAX_LT_INTMAX_MAX=1;
+  INT64_MAX_EQ_LONG_MAX='defined _LP64';
+  PRI_MACROS_BROKEN=0;
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;
+  UINT32_MAX_LT_UINTMAX_MAX=1;
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
 
 
 
-  GNULIB_DIRFD=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_DIRFD 1
-_ACEOF
 
 
 
-  # Code from module dirname:
 
 
 
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_inttypes_h='<'inttypes.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if ${gl_cv_next_inttypes_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+             if test $ac_cv_header_inttypes_h = yes; then
 
 
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <inttypes.h>
 
-  gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext"
+_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 '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"`'"'
+          else
+               gl_cv_next_inttypes_h='<'inttypes.h'>'
+             fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5
+$as_echo "$gl_cv_next_inttypes_h" >&6; }
+     fi
+     NEXT_INTTYPES_H=$gl_cv_next_inttypes_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='<'inttypes.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_inttypes_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext"
 
 
 
+    for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <inttypes.h>
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_DIRNAME 1
+int
+main ()
+{
+#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
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
-
-  # Code from module dirname-lgpl:
-
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
 
 
 
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H 1
+_ACEOF
 
+fi
 
+done
 
+  if test $ac_cv_header_inttypes_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
+$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
+if ${gt_cv_inttypes_pri_broken+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  gl_LIBOBJS="$gl_LIBOBJS basename-lgpl.$ac_objext"
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_inttypes_pri_broken=no
+else
+  gt_cv_inttypes_pri_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5
+$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define PRI_MACROS_BROKEN 1
+_ACEOF
 
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
+  fi
 
 
 
+  GNULIB_ISWBLANK=0;
+  GNULIB_WCTYPE=0;
+  GNULIB_ISWCTYPE=0;
+  GNULIB_WCTRANS=0;
+  GNULIB_TOWCTRANS=0;
+    HAVE_ISWBLANK=1;
+  HAVE_WCTYPE_T=1;
+  HAVE_WCTRANS_T=1;
+  REPLACE_ISWBLANK=0;
 
-  gl_LIBOBJS="$gl_LIBOBJS dirname-lgpl.$ac_objext"
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if ${gt_cv_c_wint_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+            wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wint_t=yes
+else
+  gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
+$as_echo "$gt_cv_c_wint_t" >&6; }
+  if test $gt_cv_c_wint_t = yes; then
 
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
 
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext"
 
 
 
 
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
 
-  # Code from module dosname:
-  # Code from module double-slash-root:
 
 
-  { $as_echo "$as_me:$LINENO: checking whether // is distinct from /" >&5
-$as_echo_n "checking whether // is distinct from /... " >&6; }
-if test "${gl_cv_double_slash_root+set}" = set; then
-  $as_echo_n "(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
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5
-$as_echo "$gl_cv_double_slash_root" >&6; }
-  if test "$gl_cv_double_slash_root" = yes; then
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1
-_ACEOF
 
-  fi
 
-  # Code from module dup2:
 
 
 
@@ -26554,171 +13452,342 @@ _ACEOF
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wctype_h='<'wctype.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+             if test $ac_cv_header_wctype_h = yes; then
 
 
-  if test $ac_cv_func_dup2 = no; then
-    HAVE_DUP2=0
+               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
+                 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"`'"'
+          else
+               gl_cv_next_wctype_h='<'wctype.h'>'
+             fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
+$as_echo "$gl_cv_next_wctype_h" >&6; }
+     fi
+     NEXT_WCTYPE_H=$gl_cv_next_wctype_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='<'wctype.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_wctype_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
 
-  else
-    { $as_echo "$as_me:$LINENO: checking whether dup2 works" >&5
-$as_echo_n "checking whether dup2 works... " >&6; }
-if test "${gl_cv_func_dup2_works+set}" = set; then
+  if test $ac_cv_header_wctype_h = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  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=no;;
-           cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
-             gl_cv_func_dup2_works=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=no;;
-           freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
-             gl_cv_func_dup2_works=no;;
-           haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
-             gl_cv_func_dup2_works=no;;
-           *) gl_cv_func_dup2_works=yes;;
-         esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
 
-         /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+          if test "$cross_compiling" = yes; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
+#include <stdlib.h>
+                          #if __GNU_LIBRARY__ == 1
+                          Linux libc5 i18n is broken.
+                          #endif
 int
 main ()
 {
-int result = 0;
-#if HAVE_FCNTL
-            if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
-              result |= 1;
-#endif HAVE_FCNTL
-            if (dup2 (1, 1) == 0)
-              result |= 2;
-#if HAVE_FCNTL
-            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;
-            return result;
 
   ;
   return 0;
 }
-
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_dup2_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_iswcntrl_works="guessing yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_dup2_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_iswcntrl_works="guessing no"
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+                  included before <wchar.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 <stdio.h>
+               #include <time.h>
+               #include <wchar.h>
+               #include <wctype.h>
+               int main () { return iswprint ('x') == 0; }
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_iswcntrl_works=yes
+else
+  gl_cv_func_iswcntrl_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
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_dup2_works" >&5
-$as_echo "$gl_cv_func_dup2_works" >&6; }
-    if test "$gl_cv_func_dup2_works" = no; then
 
 
-  if test $ac_cv_func_dup2 = yes; then
-    REPLACE_DUP2=1
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+    fi
+    HAVE_WCTYPE_H=1
+  else
+    HAVE_WCTYPE_H=0
   fi
 
 
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
 
 
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
+  fi
 
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
+  else
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
 
+fi
+done
 
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.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 <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
 
-  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
 
+      if test $ac_cv_have_decl_towlower = yes; then
+                                REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
     fi
   fi
 
 
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+        :
+  fi
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.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 <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #if HAVE_WCTYPE_H
+            # include <wctype.h>
+            #endif
+            wctype_t a;
 
+int
+main ()
+{
 
-  GNULIB_DUP2=1
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctype_t=yes
+else
+  gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+  if test $gl_cv_type_wctype_t = no; then
+    HAVE_WCTYPE_T=0
+  fi
 
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.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 <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #include <wctype.h>
+            wctrans_t a;
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_DUP2 1
-_ACEOF
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctrans_t=yes
+else
+  gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+  if test $gl_cv_type_wctrans_t = no; then
+    HAVE_WCTRANS_T=0
+  fi
 
-  # Code from module environ:
 
+    for gl_func in wctype iswctype wctrans towctrans     ; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
 
+int
+main ()
+{
+#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
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-  GNULIB_ENVIRON=1
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_ENVIRON 1
-_ACEOF
 
 
+  GNULIB_NL_LANGINFO=0;
+    HAVE_NL_LANGINFO=1;
+  REPLACE_NL_LANGINFO=0;
 
-  # Code from module errno:
 
-  # Code from module error:
 
 
 
@@ -26729,95 +13798,154 @@ _ACEOF
 
 
 
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+  yes+*yes)
+    ;;
+  yes+*)
+    # Solaris 9 has *at functions, but uniformly mishandles trailing
+    # slash in all of them.
+    REPLACE_OPENAT=1
+    ;;
+  *)
+    HAVE_OPENAT=0
+    ;;
+  esac
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for error_at_line" >&5
-$as_echo_n "checking for error_at_line... " >&6; }
-if test "${ac_cv_lib_error_at_line+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if ${ac_cv_gnu_library_2_1+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <error.h>
-int
-main ()
-{
-error_at_line (0, 0, "", 0, "an error occurred");
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_error_at_line=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_error_at_line=no
-fi
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky" >/dev/null 2>&1; then :
+  ac_cv_gnu_library_2_1=yes
+else
+  ac_cv_gnu_library_2_1=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5
-$as_echo "$ac_cv_lib_error_at_line" >&6; }
-  if test $ac_cv_lib_error_at_line = no; then
-
+rm -f conftest*
 
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
+$as_echo "$ac_cv_gnu_library_2_1" >&6; }
 
+    GLIBC21="$ac_cv_gnu_library_2_1"
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
+  GNULIB_LOCALECONV=0;
+  GNULIB_SETLOCALE=0;
+  GNULIB_DUPLOCALE=0;
+    HAVE_DUPLOCALE=1;
+  REPLACE_LOCALECONV=0;
+  REPLACE_SETLOCALE=0;
+  REPLACE_DUPLOCALE=0;
+  REPLACE_STRUCT_LCONV=0;
 
-  fi
 
+    REPLACE_NULL=0;
+  HAVE_WCHAR_T=1;
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if ${gt_cv_c_wchar_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+            wchar_t foo = (wchar_t)'\0';
+int
+main ()
+{
 
-  :
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wchar_t=yes
+else
+  gt_cv_c_wchar_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
+$as_echo "$gt_cv_c_wchar_t" >&6; }
+  if test $gt_cv_c_wchar_t = yes; then
 
+$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
 
+  fi
 
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
 
 
+  STDDEF_H=
+  if test $gt_cv_c_wchar_t = no; then
+    HAVE_WCHAR_T=0
+    STDDEF_H=stddef.h
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
+$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
+if ${gl_cv_decl_null_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+      int test[2 * (sizeof NULL == sizeof (void *)) -1];
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+int
+main ()
+{
 
-  # Code from module exclude:
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_decl_null_works=yes
+else
+  gl_cv_decl_null_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
+$as_echo "$gl_cv_decl_null_works" >&6; }
+  if test $gl_cv_decl_null_works = no; then
+    REPLACE_NULL=1
+    STDDEF_H=stddef.h
+  fi
 
+   if test -n "$STDDEF_H"; then
+  GL_GENERATE_STDDEF_H_TRUE=
+  GL_GENERATE_STDDEF_H_FALSE='#'
+else
+  GL_GENERATE_STDDEF_H_TRUE='#'
+  GL_GENERATE_STDDEF_H_FALSE=
+fi
 
+  if test -n "$STDDEF_H"; then
 
 
 
@@ -26825,23 +13953,66 @@ $as_echo "$ac_cv_lib_error_at_line" >&6; }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS exclude.$ac_objext"
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stddef_h='<'stddef.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module exitfail:
-  # Code from module extensions:
-  # Code from module fchdir:
+               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
+                 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"`'"'
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
+$as_echo "$gl_cv_next_stddef_h" >&6; }
+     fi
+     NEXT_STDDEF_H=$gl_cv_next_stddef_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='<'stddef.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stddef_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_have_decl_fchdir = no; then
-    HAVE_DECL_FCHDIR=0
   fi
 
 
@@ -26849,103 +14020,654 @@ $as_echo "$ac_cv_lib_error_at_line" >&6; }
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if ${gl_cv_func_malloc_posix+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  if test $ac_cv_func_fchdir = no; then
-    HAVE_FCHDIR=0
-
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+int
+main ()
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+             choke me
+             #endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_malloc_posix=yes
+else
+  gl_cv_func_malloc_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+$as_echo "$gl_cv_func_malloc_posix" >&6; }
 
 
 
+      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
 
-  gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
+fi
 
-    :
+done
 
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_FCHDIR 1
-_ACEOF
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+  $as_echo_n "(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
 
-                REPLACE_OPENDIR=1
-    REPLACE_CLOSEDIR=1
-    REPLACE_DUP=1
+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;
+}
 
-  REPLACE_OPEN=1
+_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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
+$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
+  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
+fi
 
 
+cat >>confdefs.h <<_ACEOF
+#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
+_ACEOF
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
 
 
 
 
-  :
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
+     on Cygwin 1.5.x.  */
+  if (MB_CUR_MAX == 1)
+    return 1;
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  return 0;
+}
 
-  REPLACE_CLOSE=1
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
+            else
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
+              else
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+  LOCALE_JA=$gt_cv_locale_ja
 
 
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
+#include <locale.h>
+#include <stdlib.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  /* Check whether a typical GB18030 multibyte sequence is recognized as a
+     single wide character.  This excludes the GB2312 and GBK encodings.  */
+  if (mblen ("\203\062\332\066", 5) != 4)
+    return 1;
+  return 0;
+}
 
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
+    else
+      # If there was a link error, due to mblen(), the system is so old that
+      # it certainly doesn't have a chinese locale.
+      gt_cv_locale_zh_CN=none
+    fi
+    rm -fr conftest*
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
+$as_echo "$gt_cv_locale_zh_CN" >&6; }
+  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
 
-  REPLACE_FCLOSE=1
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
 
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
-  gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext"
 
 
+  GNULIB_FFSL=0;
+  GNULIB_FFSLL=0;
+  GNULIB_MEMCHR=0;
+  GNULIB_MEMMEM=0;
+  GNULIB_MEMPCPY=0;
+  GNULIB_MEMRCHR=0;
+  GNULIB_RAWMEMCHR=0;
+  GNULIB_STPCPY=0;
+  GNULIB_STPNCPY=0;
+  GNULIB_STRCHRNUL=0;
+  GNULIB_STRDUP=0;
+  GNULIB_STRNCAT=0;
+  GNULIB_STRNDUP=0;
+  GNULIB_STRNLEN=0;
+  GNULIB_STRPBRK=0;
+  GNULIB_STRSEP=0;
+  GNULIB_STRSTR=0;
+  GNULIB_STRCASESTR=0;
+  GNULIB_STRTOK_R=0;
+  GNULIB_MBSLEN=0;
+  GNULIB_MBSNLEN=0;
+  GNULIB_MBSCHR=0;
+  GNULIB_MBSRCHR=0;
+  GNULIB_MBSSTR=0;
+  GNULIB_MBSCASECMP=0;
+  GNULIB_MBSNCASECMP=0;
+  GNULIB_MBSPCASECMP=0;
+  GNULIB_MBSCASESTR=0;
+  GNULIB_MBSCSPN=0;
+  GNULIB_MBSPBRK=0;
+  GNULIB_MBSSPN=0;
+  GNULIB_MBSSEP=0;
+  GNULIB_MBSTOK_R=0;
+  GNULIB_STRERROR=0;
+  GNULIB_STRERROR_R=0;
+  GNULIB_STRSIGNAL=0;
+  GNULIB_STRVERSCMP=0;
+  HAVE_MBSLEN=0;
+    HAVE_FFSL=1;
+  HAVE_FFSLL=1;
+  HAVE_MEMCHR=1;
+  HAVE_DECL_MEMMEM=1;
+  HAVE_MEMPCPY=1;
+  HAVE_DECL_MEMRCHR=1;
+  HAVE_RAWMEMCHR=1;
+  HAVE_STPCPY=1;
+  HAVE_STPNCPY=1;
+  HAVE_STRCHRNUL=1;
+  HAVE_DECL_STRDUP=1;
+  HAVE_DECL_STRNDUP=1;
+  HAVE_DECL_STRNLEN=1;
+  HAVE_STRPBRK=1;
+  HAVE_STRSEP=1;
+  HAVE_STRCASESTR=1;
+  HAVE_DECL_STRTOK_R=1;
+  HAVE_DECL_STRERROR_R=1;
+  HAVE_DECL_STRSIGNAL=1;
+  HAVE_STRVERSCMP=1;
+  REPLACE_MEMCHR=0;
+  REPLACE_MEMMEM=0;
+  REPLACE_STPNCPY=0;
+  REPLACE_STRDUP=0;
+  REPLACE_STRSTR=0;
+  REPLACE_STRCASESTR=0;
+  REPLACE_STRCHRNUL=0;
+  REPLACE_STRERROR=0;
+  REPLACE_STRERROR_R=0;
+  REPLACE_STRNCAT=0;
+  REPLACE_STRNDUP=0;
+  REPLACE_STRNLEN=0;
+  REPLACE_STRSIGNAL=0;
+  REPLACE_STRTOK_R=0;
+  UNDEFINE_STRTOK_R=0;
 
 
 
-  if test $ac_cv_func_dup2 = yes; then
-    REPLACE_DUP2=1
-  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
 
 
-  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "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 -f 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 :
 
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
 
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
 
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
+    fi
   fi
 
 
@@ -26953,627 +14675,397 @@ _ACEOF
 
 
 
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
-
-
-
-    :
-
-    { $as_echo "$as_me:$LINENO: checking whether open can visit directories" >&5
-$as_echo_n "checking whether open can visit directories... " >&6; }
-if test "${gl_cv_func_open_directory_works+set}" = set; then
+  if test $HAVE_MEMCHR = 1; then
+    # Detect platform-specific bugs in some versions of glibc:
+    # memchr should not dereference anything with length 0
+    #   http://bugzilla.redhat.com/499689
+    # memchr should not dereference overestimated length after a match
+    #   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
+    #   http://sourceware.org/bugzilla/show_bug.cgi?id=10162
+    # Assume that memchr works on platforms that lack mprotect.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
+$as_echo_n "checking whether memchr works... " >&6; }
+if ${gl_cv_func_memchr_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_open_directory_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+         gl_cv_func_memchr_works="guessing no"
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <fcntl.h>
+
+#include <string.h>
+#if HAVE_SYS_MMAN_H
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+# ifndef MAP_FILE
+#  define MAP_FILE 0
+# endif
+#endif
 
 int
 main ()
 {
-return open(".", O_RDONLY) < 0;
+
+  int result = 0;
+  char *fence = NULL;
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+# if HAVE_MAP_ANONYMOUS
+  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+  const int fd = -1;
+# else /* !HAVE_MAP_ANONYMOUS */
+  const int flags = MAP_FILE | MAP_PRIVATE;
+  int fd = open ("/dev/zero", O_RDONLY, 0666);
+  if (fd >= 0)
+# endif
+    {
+      int pagesize = getpagesize ();
+      char *two_pages =
+        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+                       flags, fd, 0);
+      if (two_pages != (char *)(-1)
+          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+        fence = two_pages + pagesize;
+    }
+#endif
+  if (fence)
+    {
+      if (memchr (fence, 0, 0))
+        result |= 1;
+      strcpy (fence - 9, "12345678");
+      if (memchr (fence - 9, 0, 79) != fence - 1)
+        result |= 2;
+      if (memchr (fence - 1, 0, 3) != fence - 1)
+        result |= 4;
+    }
+  return result;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_open_directory_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_memchr_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_open_directory_works=no
+  gl_cv_func_memchr_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_open_directory_works" >&5
-$as_echo "$gl_cv_func_open_directory_works" >&6; }
-    if test "$gl_cv_func_open_directory_works" != yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_OPEN_DIRECTORY 1
-_ACEOF
-
-      REPLACE_FSTAT=1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5
+$as_echo "$gl_cv_func_memchr_works" >&6; }
+    if test "$gl_cv_func_memchr_works" != yes; then
+      REPLACE_MEMCHR=1
     fi
   fi
 
+ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memrchr" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-
-
-  GNULIB_FCHDIR=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FCHDIR 1
-_ACEOF
-
-
-
-  # Code from module fclose:
-
-
-
-
-
-  GNULIB_FCLOSE=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FCLOSE 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MEMRCHR $ac_have_decl
 _ACEOF
 
 
 
-  # Code from module fcntl:
-
-
-
-
-
-
-
-
-
-
-  if test $ac_cv_func_fcntl = no; then
-
-
 
 
 
 
 
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
-  fi
 
 
 
+  GNULIB_MKTIME=0;
+  GNULIB_NANOSLEEP=0;
+  GNULIB_STRPTIME=0;
+  GNULIB_TIMEGM=0;
+  GNULIB_TIME_R=0;
+    HAVE_DECL_LOCALTIME_R=1;
+  HAVE_NANOSLEEP=1;
+  HAVE_STRPTIME=1;
+  HAVE_TIMEGM=1;
+        REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
+  REPLACE_MKTIME=GNULIB_PORTCHECK;
+  REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
+  REPLACE_TIMEGM=GNULIB_PORTCHECK;
 
+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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ALARM $ac_have_decl
+_ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
 
 
-  else
-            { $as_echo "$as_me:$LINENO: checking whether fcntl handles F_DUPFD correctly" >&5
-$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
-if test "${gl_cv_func_fcntl_f_dupfd_works+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+$as_echo_n "checking for promoted mode_t type... " >&6; }
+if ${gl_cv_promoted_mode_t+:} false; then :
   $as_echo_n "(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";;
-          esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <fcntl.h>
-#include <errno.h>
 
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
 int
 main ()
 {
-int result = 0;
-      if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
-      if (errno != EINVAL) result |= 2;
-      return result;
-
+typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fcntl_f_dupfd_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_promoted_mode_t='int'
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fcntl_f_dupfd_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  gl_cv_promoted_mode_t='mode_t'
 fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fcntl_f_dupfd_works" >&5
-$as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; }
-    case $gl_cv_func_fcntl_f_dupfd_works in
-      *yes) ;;
-      *)
-
-
-
-
-
-
-
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
-  else
-    REPLACE_FCNTL=1
-  fi
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5
+$as_echo "$gl_cv_promoted_mode_t" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define FCNTL_DUPFD_BUGGY 1
+cat >>confdefs.h <<_ACEOF
+#define PROMOTED_MODE_T $gl_cv_promoted_mode_t
 _ACEOF
- ;;
-    esac
 
-        { $as_echo "$as_me:$LINENO: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
-$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
-if test "${gl_cv_func_fcntl_f_dupfd_cloexec+set}" = set; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <fcntl.h>
-#ifndef F_DUPFD_CLOEXEC
-choke me
-#endif
-
-int
-main ()
-{
+             #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"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+             struct s { _Bool s: 1; _Bool t; } s;
 
-#ifdef __linux__
-/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
-   it to support the semantics on older kernels that failed with EINVAL.  */
-choke me
-#endif
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
 
 int
 main ()
 {
 
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_fcntl_f_dupfd_cloexec=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdbool_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
+  ac_cv_header_stdbool_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_fcntl_f_dupfd_cloexec=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$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 :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5
-$as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; }
-    if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
 
 
+fi
 
 
 
 
 
+  # Define two additional variables used in the Makefile substitution.
 
-  if test $ac_cv_func_fcntl = no; then
-    HAVE_FCNTL=0
+  if test "$ac_cv_header_stdbool_h" = yes; then
+    STDBOOL_H=''
   else
-    REPLACE_FCNTL=1
-  fi
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
-
-
-          fi
+    STDBOOL_H='stdbool.h'
   fi
 
-
-
-
-  GNULIB_FCNTL=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FCNTL 1
-_ACEOF
-
-
-
-  # Code from module fcntl-h:
-
-
-
-
-
-
-
-
-
-
-
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_fcntl_h='<'fcntl.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <fcntl.h>" >&5
-$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
-if test "${gl_cv_next_fcntl_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
+   if test -n "$STDBOOL_H"; then
+  GL_GENERATE_STDBOOL_H_TRUE=
+  GL_GENERATE_STDBOOL_H_FALSE='#'
 else
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <fcntl.h>
-
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/fcntl.h#{
-                    s#.*"\(.*/fcntl.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-
-
+  GL_GENERATE_STDBOOL_H_TRUE='#'
+  GL_GENERATE_STDBOOL_H_FALSE=
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_fcntl_h" >&5
-$as_echo "$gl_cv_next_fcntl_h" >&6; }
-     fi
-     NEXT_FCNTL_H=$gl_cv_next_fcntl_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='<'fcntl.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_fcntl_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive
-
 
 
+  if test "$ac_cv_type__Bool" = yes; then
+    HAVE__BOOL=1
+  else
+    HAVE__BOOL=0
+  fi
 
 
 
+  # parse-datetime.y works with bison only.
+  : ${YACC='bison -y'}
 
 
-  for gl_func in fcntl openat; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compound literals" >&5
+$as_echo_n "checking for compound literals... " >&6; }
+if ${gl_cv_compound_literals+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <fcntl.h>
-
+struct s { int i, j; };
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+struct s t = (struct s) { 3, 4 };
+        if (t.i != 0) return 0;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_compound_literals=yes
+else
+  gl_cv_compound_literals=no
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compound_literals" >&5
+$as_echo "$gl_cv_compound_literals" >&6; }
+  if test $gl_cv_compound_literals = yes; then
 
-      done
-
-
-  # Code from module fdopendir:
+$as_echo "#define HAVE_COMPOUND_LITERALS 1" >>confdefs.h
 
+  fi
 
-    { $as_echo "$as_me:$LINENO: checking whether fdopendir is declared" >&5
-$as_echo_n "checking whether fdopendir is declared... " >&6; }
-if test "${ac_cv_have_decl_fdopendir+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
+$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
+if ${ac_cv_struct_tm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <dirent.h>
-
+#include <sys/types.h>
+#include <time.h>
 
 int
 main ()
 {
-#ifndef fdopendir
-  (void) fdopendir;
-#endif
-
+struct tm tm;
+                                    int *p = &tm.tm_sec;
+                                    return !p;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fdopendir=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_struct_tm=time.h
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fdopendir=no
+  ac_cv_struct_tm=sys/time.h
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fdopendir" >&5
-$as_echo "$ac_cv_have_decl_fdopendir" >&6; }
-if test "x$ac_cv_have_decl_fdopendir" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FDOPENDIR 1
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FDOPENDIR 0
-_ACEOF
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
 
-HAVE_DECL_FDOPENDIR=0
 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 :
 
+$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
 
+fi
 
 
 
 
-  if test $ac_cv_func_fdopendir = no; then
-
-
-
 
+  GNULIB_PTHREAD_SIGMASK=0;
+  GNULIB_RAISE=0;
+  GNULIB_SIGNAL_H_SIGPIPE=0;
+  GNULIB_SIGPROCMASK=0;
+  GNULIB_SIGACTION=0;
+    HAVE_POSIX_SIGNALBLOCKING=1;
+  HAVE_PTHREAD_SIGMASK=1;
+  HAVE_RAISE=1;
+  HAVE_SIGSET_T=1;
+  HAVE_SIGINFO_T=1;
+  HAVE_SIGACTION=1;
+  HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
 
+  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
 
+  HAVE_SIGHANDLER_T=1;
+  REPLACE_PTHREAD_SIGMASK=0;
+  REPLACE_RAISE=0;
 
 
-  gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
 
+# Check whether --with-selinux was given.
+if test "${with_selinux+set}" = set; then :
+  withval=$with_selinux;
+else
+  with_selinux=maybe
+fi
 
-    :
 
-    HAVE_FDOPENDIR=0
-  else
-    { $as_echo "$as_me:$LINENO: checking whether fdopendir works" >&5
-$as_echo_n "checking whether fdopendir works... " >&6; }
-if test "${gl_cv_func_fdopendir_works+set}" = set; then
+  LIB_SELINUX=
+  if test "$with_selinux" != no; then
+    gl_save_LIBS=$LIBS
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setfilecon" >&5
+$as_echo_n "checking for library containing setfilecon... " >&6; }
+if ${ac_cv_search_setfilecon+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_fdopendir_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <dirent.h>
-#include <fcntl.h>
-#include <unistd.h>
-#if !HAVE_DECL_FDOPENDIR
-extern DIR *fdopendir (int);
+/* 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 setfilecon ();
 int
 main ()
 {
-int result = 0;
-     int fd = open ("conftest.c", O_RDONLY);
-     if (fd < 0) result |= 1;
-     if (fdopendir (fd)) result |= 2;
-     if (close (fd)) result |= 4;
-     return result;
+return setfilecon ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fdopendir_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fdopendir_works=no
+for ac_lib in '' selinux; 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_setfilecon=$ac_res
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_setfilecon+:} false; then :
+  break
 fi
+done
+if ${ac_cv_search_setfilecon+:} false; then :
 
-
+else
+  ac_cv_search_setfilecon=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setfilecon" >&5
+$as_echo "$ac_cv_search_setfilecon" >&6; }
+ac_res=$ac_cv_search_setfilecon
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  test "$ac_cv_search_setfilecon" = "none required" ||
+                    LIB_SELINUX=$ac_cv_search_setfilecon
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fdopendir_works" >&5
-$as_echo "$gl_cv_func_fdopendir_works" >&6; }
-    if test "$gl_cv_func_fdopendir_works" != yes; then
-      REPLACE_FDOPENDIR=1
-
-    :
-
-
-
-
-
-
-
 
+    LIBS=$gl_save_LIBS
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
 
-    fi
+  # Warn if SELinux is found but libselinux is absent;
+  if test "$ac_cv_search_setfilecon" = no &&
+     test "$host" = "$build" && test -d /selinux; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This system supports SELinux but libselinux is missing." >&5
+$as_echo "$as_me: WARNING: This system supports SELinux but libselinux is missing." >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNU tar will be compiled without SELinux support." >&5
+$as_echo "$as_me: WARNING: GNU tar will be compiled without SELinux support." >&2;}
   fi
 
 
 
+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
 
-  GNULIB_FDOPENDIR=1
-
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FDOPENDIR 1
-_ACEOF
 
 
 
 
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_FDOPENDIR 1
-_ACEOF
 
 
-  # Code from module fdutimensat:
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_FDUTIMENSAT 1
+  for ac_header in search.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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SEARCH_H 1
 _ACEOF
 
+fi
 
-  # Code from module fileblocks:
-
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5
-$as_echo_n "checking for struct stat.st_blocks... " >&6; }
-if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_blocks)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blocks=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+done
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_blocks)
-return 0;
-  ;
-  return 0;
-}
+  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
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blocks=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_member_struct_stat_st_blocks=no
 fi
+done
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5
-$as_echo "$ac_cv_member_struct_stat_st_blocks" >&6; }
-if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_BLOCKS 1
-_ACEOF
 
+  ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
+      #include <signal.h>
+      /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
+      #include <sys/types.h>
+
+"
+if test "x$ac_cv_type_sigset_t" = xyes; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ST_BLOCKS 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGSET_T 1
 _ACEOF
 
+gl_cv_type_sigset_t=yes
 else
+  gl_cv_type_sigset_t=no
+fi
 
+  if test $gl_cv_type_sigset_t != yes; then
+    HAVE_SIGSET_T=0
+  fi
 
 
 
@@ -27827,51 +15236,187 @@ else
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fileblocks.$ac_objext"
-
-fi
-
-
-    if test $ac_cv_member_struct_stat_st_blocks = no; then
 
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
+if ${gl_cv_func_snprintf_retval_c99+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      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* | 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";;
+           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
+         esac
 
-  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  fi
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+  strcpy (buf, "ABCDEF");
+  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+    return 1;
+  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+    return 2;
+  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+    return 3;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_snprintf_retval_c99=yes
+else
+  gl_cv_func_snprintf_retval_c99=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  # Code from module filenamecat-lgpl:
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
+$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
 
+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_SNPRINTF $ac_have_decl
+_ACEOF
 
 
+  GNULIB_FFS=0;
+    HAVE_FFS=1;
+  HAVE_STRCASECMP=1;
+  HAVE_DECL_STRNCASECMP=1;
 
 
 
+ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strdup" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  gl_LIBOBJS="$gl_LIBOBJS filenamecat-lgpl.$ac_objext"
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRDUP $ac_have_decl
+_ACEOF
 
 
+     REPLACE_STRERROR_0=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if ${gl_cv_func_strerror_0_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+           #include <errno.h>
 
+int
+main ()
+{
+int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strerror_0_works=yes
+else
+  gl_cv_func_strerror_0_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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
 
+$as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h
 
+      ;;
+  esac
 
-  # Code from module float:
 
 
 
-  FLOAT_H=
-  case "$host_os" in
-    beos* | openbsd* | mirbsd*)
-      FLOAT_H=float.h
 
 
 
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_float_h='<'float.h'>'
+       gl_cv_next_string_h='<'string.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <float.h>" >&5
-$as_echo_n "checking absolute name of <float.h>... " >&6; }
-if test "${gl_cv_next_float_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if ${gl_cv_next_string_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <float.h>
+#include <string.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/float.h#{
-                    s#.*"\(.*/float.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+
+               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"`'"'
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_float_h" >&5
-$as_echo "$gl_cv_next_float_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
+$as_echo "$gl_cv_next_string_h" >&6; }
      fi
-     NEXT_FLOAT_H=$gl_cv_next_float_h
+     NEXT_STRING_H=$gl_cv_next_string_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'float.h'>'
+       gl_next_as_first_directive='<'string.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_float_h
+       gl_next_as_first_directive=$gl_cv_next_string_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
-
-
-
-
-      ;;
-  esac
-
+     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
 
-  # Code from module fnmatch:
 
 
 
 
 
-  FNMATCH_H=
-  gl_fnmatch_required_lowercase=`
-    echo $gl_fnmatch_required | tr '[A-Z]' '[a-z]'
-  `
-  gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
-  { $as_echo "$as_me:$LINENO: checking for working $gl_fnmatch_required fnmatch" >&5
-$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
-if { as_var=$gl_fnmatch_cache_var; eval "test \"\${$as_var+set}\" = set"; }; then
+    for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r      strerror_r strsignal strverscmp; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-                           if test $gl_fnmatch_required = GNU; then
-       gl_fnmatch_gnu_start=
-       gl_fnmatch_gnu_end=
-     else
-       gl_fnmatch_gnu_start='#if 0'
-       gl_fnmatch_gnu_end='#endif'
-     fi
-     if test "$cross_compiling" = yes; then
-  eval "$gl_fnmatch_cache_var=\"guessing no\""
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <fnmatch.h>
-            static int
-            y (char const *pattern, char const *string, int flags)
-            {
-              return fnmatch (pattern, string, flags) == 0;
-            }
-            static int
-            n (char const *pattern, char const *string, int flags)
-            {
-              return fnmatch (pattern, string, flags) == FNM_NOMATCH;
-            }
+#include <string.h>
 
 int
 main ()
 {
-char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
-            char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
-            static char const A_1[] = { 'A' - 1, 0 };
-            static char const A01[] = { 'A' + 1, 0 };
-            static char const a_1[] = { 'a' - 1, 0 };
-            static char const a01[] = { 'a' + 1, 0 };
-            static char const bs_1[] = { '\\\\' - 1, 0 };
-            static char const bs01[] = { '\\\\' + 1, 0 };
-            int result = 0;
-            if (!n ("a*", "", 0))
-              return 1;
-            if (!y ("a*", "abc", 0))
-              return 1;
-            if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
-              return 2;
-            if (!y ("a\\\\bc", "abc", 0))
-              return 3;
-            if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
-              return 3;
-            if (!y ("*x", ".x", 0))
-              return 4;
-            if (!n ("*x", ".x", FNM_PERIOD))
-              return 4;
-            if (!y (Apat, "\\\\", 0))
-              return 5;
-            if (!y (Apat, "A", 0))
-              return 5;
-            if (!y (apat, "\\\\", 0))
-              return 5;
-            if (!y (apat, "a", 0))
-              return 5;
-            if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(y (apat, a01, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
-              return 5;
-            $gl_fnmatch_gnu_start
-            if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
-              result |= 8;
-            if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
-              result |= 16;
-            if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
-              result |= 32;
-            if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            $gl_fnmatch_gnu_end
-            return result;
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$gl_fnmatch_cache_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-eval "$gl_fnmatch_cache_var=no"
+  eval "$as_gl_Symbol=no"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$gl_fnmatch_cache_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
-  if test "$gl_fnmatch_result" = yes; then
-            rm -f "$gl_source_base/fnmatch.h"
-  else
-    FNMATCH_H=fnmatch.h
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
-
-
-cat >>confdefs.h <<_ACEOF
-#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
-_ACEOF
-
-
-    { $as_echo "$as_me:$LINENO: checking whether isblank is declared" >&5
-$as_echo_n "checking whether isblank is declared... " >&6; }
-if test "${ac_cv_have_decl_isblank+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-
-int
-main ()
-{
-#ifndef isblank
-  (void) isblank;
-#endif
-
-  ;
-  return 0;
-}
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_isblank=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_isblank=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5
-$as_echo "$ac_cv_have_decl_isblank" >&6; }
-if test "x$ac_cv_have_decl_isblank" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK 1
-_ACEOF
+      done
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK 0
-_ACEOF
 
 
-fi
 
 
 
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_strings_h='<'strings.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <strings.h>" >&5
+$as_echo_n "checking absolute name of <strings.h>... " >&6; }
+if ${gl_cv_next_strings_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+             if test $ac_cv_header_strings_h = yes; then
 
 
+               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
+                 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"`'"'
+          else
+               gl_cv_next_strings_h='<'strings.h'>'
+             fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5
+$as_echo "$gl_cv_next_strings_h" >&6; }
+     fi
+     NEXT_STRINGS_H=$gl_cv_next_strings_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='<'strings.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_strings_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive
 
 
 
 
+  if test $ac_cv_header_strings_h = yes; then
+    HAVE_STRINGS_H=1
+  else
+    HAVE_STRINGS_H=0
+  fi
 
 
 
+    for gl_func in ffs strcasecmp strncasecmp; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  fi
+    /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+       <strings.h>.  */
+    #include <sys/types.h>
+    #include <strings.h>
 
+int
+main ()
+{
+#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
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-  # Code from module fnmatch-gnu:
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
 
 
+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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNDUP $ac_have_decl
+_ACEOF
 
 
-  # Code from module fpending:
 
+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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNLEN $ac_have_decl
+_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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOUMAX $ac_have_decl
+_ACEOF
 
 
 
 
 
 
-  fp_headers='
-#     include <stdio.h>
-#     if HAVE_STDIO_EXT_H
-#      include <stdio_ext.h>
-#     endif
-'
-  { $as_echo "$as_me:$LINENO: checking whether __fpending is declared" >&5
-$as_echo_n "checking whether __fpending is declared... " >&6; }
-if test "${ac_cv_have_decl___fpending+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$fp_headers
+#include <time.h>
 
 int
 main ()
 {
-#ifndef __fpending
-  (void) __fpending;
-#endif
-
+static struct timespec x; x.tv_sec = x.tv_nsec;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl___fpending=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_time_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl___fpending=no
+  gl_cv_sys_struct_timespec_in_time_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___fpending" >&5
-$as_echo "$ac_cv_have_decl___fpending" >&6; }
-if test "x$ac_cv_have_decl___fpending" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL___FPENDING 1
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5
+$as_echo "$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
+  if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+    TIME_H_DEFINES_STRUCT_TIMESPEC=1
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL___FPENDING 0
-_ACEOF
-
-
-fi
-
-
-  if test $ac_cv_func___fpending = no; then
-    { $as_echo "$as_me:$LINENO: checking how to determine the number of pending output bytes on a stream" >&5
-$as_echo_n "checking how to determine the number of pending output bytes on a stream... " >&6; }
-if test "${ac_cv_sys_pending_output_n_bytes+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-        for ac_expr in                                                    \
-                                                                          \
-            '# glibc2'                                                    \
-            'fp->_IO_write_ptr - fp->_IO_write_base'                      \
-                                                                          \
-            '# traditional Unix'                                          \
-            'fp->_ptr - fp->_base'                                        \
-                                                                          \
-            '# BSD'                                                       \
-            'fp->_p - fp->_bf._base'                                      \
-                                                                          \
-            '# SCO, Unixware'                                             \
-            '(fp->__ptr ? fp->__ptr - fp->__base : 0)'                    \
-                                                                          \
-            '# QNX'                                                       \
-            '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
-                                                                          \
-            '# old glibc?'                                                \
-            'fp->__bufp - fp->__buffer'                                   \
-                                                                          \
-            '# old glibc iostream?'                                       \
-            'fp->_pptr - fp->_pbase'                                      \
-                                                                          \
-            '# emx+gcc'                                                   \
-            'fp->_ptr - fp->_buffer'                                      \
-                                                                          \
-            '# VMS'                                                       \
-            '(*fp)->_ptr - (*fp)->_base'                                  \
-                                                                          \
-            '# e.g., DGUX R4.11; the info is not available'               \
-            1                                                             \
-            ; do
-
-          # Skip each embedded comment.
-          case "$ac_expr" in '#'*) continue;; esac
-
-          cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdio.h>
+#include <sys/time.h>
+
 int
 main ()
 {
-FILE *fp = stdin; (void) ($ac_expr);
+static struct timespec x; x.tv_sec = x.tv_nsec;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  fp_done=yes
-
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_sys_time_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  gl_cv_sys_struct_timespec_in_sys_time_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-          test "$fp_done" = yes && break
-        done
-
-        ac_cv_sys_pending_output_n_bytes=$ac_expr
-
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_pending_output_n_bytes" >&5
-$as_echo "$ac_cv_sys_pending_output_n_bytes" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
+    if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
+      SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
 
-cat >>confdefs.h <<_ACEOF
-#define PENDING_OUTPUT_N_BYTES $ac_cv_sys_pending_output_n_bytes
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
 _ACEOF
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
-
+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
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$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
+      fi
+    fi
   fi
 
-  # Code from module fseeko:
 
 
 
@@ -28427,38 +15803,73 @@ _ACEOF
 
 
 
-  if test $ac_cv_have_decl_fseeko = no; then
-    HAVE_DECL_FSEEKO=0
-  fi
 
-  if test $gl_cv_func_fseeko = no; then
-    HAVE_FSEEKO=0
 
 
 
-  if test $gl_cv_func_fseeko = yes; then
-    REPLACE_FSEEKO=1
-  fi
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_time_h='<'time.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
+$as_echo_n "checking absolute name of <time.h>... " >&6; }
+if ${gl_cv_next_time_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+               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
+                 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"`'"'
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5
+$as_echo "$gl_cv_next_time_h" >&6; }
+     fi
+     NEXT_TIME_H=$gl_cv_next_time_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='<'time.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_time_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive
 
-  gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
 
 
 
-  else
-    if test $gl_cv_var_stdin_large_offset = no; then
 
 
 
-  if test $gl_cv_func_fseeko = yes; then
-    REPLACE_FSEEKO=1
-  fi
 
 
 
@@ -28467,1059 +15878,959 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
 
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
 
 
-    fi
+  if test "$HAVE_LIBUNISTRING" = yes; then
+    LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+    LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+    LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
   fi
 
 
 
+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
 
-  GNULIB_FSEEKO=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FSEEKO 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_UNSETENV $ac_have_decl
 _ACEOF
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5
+$as_echo_n "checking whether the utimes function works... " >&6; }
+if ${gl_cv_func_working_utimes+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module full-write:
-  # Code from module futimens:
-
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_working_utimes=no
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
 
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+  return a <= b && b <= c;
+}
 
+int
+main ()
+{
+  int result = 0;
+  char const *file = "conftest.utimes";
+  static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
 
+  /* Test whether utimes() essentially works.  */
+  {
+    struct stat sbuf;
+    FILE *f = fopen (file, "w");
+    if (f == NULL)
+      result |= 1;
+    else if (fclose (f) != 0)
+      result |= 1;
+    else if (utimes (file, timeval) != 0)
+      result |= 2;
+    else if (lstat (file, &sbuf) != 0)
+      result |= 1;
+    else if (!(sbuf.st_atime == timeval[0].tv_sec
+               && sbuf.st_mtime == timeval[1].tv_sec))
+      result |= 4;
+    if (unlink (file) != 0)
+      result |= 1;
+  }
 
+  /* Test whether utimes() with a NULL argument sets the file's timestamp
+     to the current time.  Use 'fstat' as well as 'time' to
+     determine the "current" time, to accommodate NFS file systems
+     if there is a time skew between the host and the NFS server.  */
+  {
+    int fd = open (file, O_WRONLY|O_CREAT, 0644);
+    if (fd < 0)
+      result |= 1;
+    else
+      {
+        time_t t0, t2;
+        struct stat st0, st1, st2;
+        if (time (&t0) == (time_t) -1)
+          result |= 1;
+        else if (fstat (fd, &st0) != 0)
+          result |= 1;
+        else if (utimes (file, timeval) != 0)
+          result |= 2;
+        else if (utimes (file, NULL) != 0)
+          result |= 8;
+        else if (fstat (fd, &st1) != 0)
+          result |= 1;
+        else if (write (fd, "\n", 1) != 1)
+          result |= 1;
+        else if (fstat (fd, &st2) != 0)
+          result |= 1;
+        else if (time (&t2) == (time_t) -1)
+          result |= 1;
+        else
+          {
+            int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+            int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+            if (! (st1.st_atime == st1.st_mtime))
+              result |= 16;
+            if (! (m_ok_POSIX || m_ok_NFS))
+              result |= 32;
+          }
+        if (close (fd) != 0)
+          result |= 1;
+      }
+    if (unlink (file) != 0)
+      result |= 1;
+  }
 
+  /* Test whether utimes() with a NULL argument works on read-only files.  */
+  {
+    int fd = open (file, O_WRONLY|O_CREAT, 0444);
+    if (fd < 0)
+      result |= 1;
+    else if (close (fd) != 0)
+      result |= 1;
+    else if (utimes (file, NULL) != 0)
+      result |= 64;
+    if (unlink (file) != 0)
+      result |= 1;
+  }
 
+  return result;
+}
 
-  if test $ac_cv_func_futimens = no; then
-    HAVE_FUTIMENS=0
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_utimes=yes
+else
+  gl_cv_func_working_utimes=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5
+$as_echo "$gl_cv_func_working_utimes" >&6; }
 
+  if test $gl_cv_func_working_utimes = yes; then
 
+$as_echo "#define HAVE_WORKING_UTIMES 1" >>confdefs.h
 
+  fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
 
-  else
-    { $as_echo "$as_me:$LINENO: checking whether futimens works" >&5
-$as_echo_n "checking whether futimens works... " >&6; }
-if test "${gl_cv_func_futimens_works+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
+$as_echo_n "checking for struct utimbuf... " >&6; }
+if ${gl_cv_sys_struct_utimbuf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_futimens_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <errno.h>
-
-int
-main ()
-{
-struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
-      int fd = creat ("conftest.file", 0600);
-      struct stat st;
-      if (fd < 0) return 1;
-      errno = 0;
-      if (futimens (AT_FDCWD, NULL) == 0) return 2;
-      if (errno != EBADF) return 3;
-      if (futimens (fd, ts)) return 4;
-      sleep (1);
-      ts[0].tv_nsec = UTIME_NOW;
-      ts[1].tv_nsec = UTIME_OMIT;
-      if (futimens (fd, ts)) return 5;
-      if (fstat (fd, &st)) return 6;
-      if (st.st_ctime < st.st_atime) return 7;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#ifdef __linux__
-/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
-   in several file systems as recently as 2.6.32.  Always replace futimens
-   to support older kernels.  */
-choke me
-#endif
+#if HAVE_SYS_TIME_H
+             #include <sys/time.h>
+            #endif
+            #include <time.h>
+            #ifdef HAVE_UTIME_H
+             #include <utime.h>
+            #endif
 
 int
 main ()
 {
-
+static struct utimbuf x; x.actime = x.modtime;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_futimens_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_utimbuf=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_futimens_works="needs runtime check"
+  gl_cv_sys_struct_utimbuf=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_futimens_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-      rm -f conftest.file
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_futimens_works" >&5
-$as_echo "$gl_cv_func_futimens_works" >&6; }
-    if test "$gl_cv_func_futimens_works" != yes; then
-      REPLACE_FUTIMENS=1
-
-
-
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_utimbuf" >&5
+$as_echo "$gl_cv_sys_struct_utimbuf" >&6; }
 
+  if test $gl_cv_sys_struct_utimbuf = yes; then
 
-  gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
+$as_echo "#define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
 
-    fi
   fi
 
 
 
 
-  GNULIB_FUTIMENS=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_FUTIMENS 1
-_ACEOF
-
-
-
-  # Code from module getcwd:
-
-
-
-
-  gl_abort_bug=no
-  case $gl_cv_func_getcwd_null,$host_os in
-  *,mingw*)
-    gl_cv_func_getcwd_path_max=yes;;
-  yes,*)
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether getcwd handles long file names properly" >&5
-$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
-if test "${gl_cv_func_getcwd_path_max+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  # Arrange for deletion of the temporary directory this test creates.
-     ac_clean_files="$ac_clean_files confdir3"
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_getcwd_path_max=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <limits.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-
-#ifndef AT_FDCWD
-# define AT_FDCWD 0
-#endif
-#ifdef ENAMETOOLONG
-# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
-#else
-# define is_ENAMETOOLONG(x) 0
-#endif
-
-/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
-#undef mkdir
-
-#ifndef S_IRWXU
-# define S_IRWXU 0700
-#endif
 
-/* The length of this name must be 8.  */
-#define DIR_NAME "confdir3"
-#define DIR_NAME_LEN 8
-#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
 
-/* The length of "../".  */
-#define DOTDOTSLASH_LEN 3
 
-/* Leftover bytes in the buffer, to work around library or OS bugs.  */
-#define BUF_SLOP 20
 
-int
-main ()
-{
-#ifndef PATH_MAX
-  /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
-     at least not on a local file system.  And if we were to start worrying
-     about remote file systems, we'd have to enable the wrapper function
-     all of the time, just to be safe.  That's not worth the cost.  */
-  exit (0);
-#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
-        - DIR_NAME_SIZE - BUF_SLOP) \
-       <= PATH_MAX)
-  /* FIXME: Assuming there's a system for which this is true,
-     this should be done in a compile test.  */
-  exit (0);
-#else
-  char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
-           + DIR_NAME_SIZE + BUF_SLOP];
-  char *cwd = getcwd (buf, PATH_MAX);
-  size_t initial_cwd_len;
-  size_t cwd_len;
-  int fail = 0;
-  size_t n_chdirs = 0;
 
-  if (cwd == NULL)
-    exit (10);
 
-  cwd_len = initial_cwd_len = strlen (cwd);
 
-  while (1)
-    {
-      size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
-      char *c = NULL;
 
-      cwd_len += DIR_NAME_SIZE;
-      /* If mkdir or chdir fails, it could be that this system cannot create
-         any file with an absolute name longer than PATH_MAX, such as cygwin.
-         If so, leave fail as 0, because the current working directory can't
-         be too long for getcwd if it can't even be created.  For other
-         errors, be pessimistic and consider that as a failure, too.  */
-      if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
-        {
-          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
-            fail = 20;
-          break;
-        }
 
-      if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
-        {
-          c = getcwd (buf, PATH_MAX);
-          if (!c && errno == ENOENT)
-            {
-              fail = 11;
-              break;
-            }
-          if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno)))
-            {
-              fail = 21;
-              break;
-            }
-        }
+  if test $ac_cv_header_features_h = yes; then
+    HAVE_FEATURES_H=1
+  else
+    HAVE_FEATURES_H=0
+  fi
 
-      if (dotdot_max <= cwd_len - initial_cwd_len)
-        {
-          if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
-            break;
-          c = getcwd (buf, cwd_len + 1);
-          if (!c)
-            {
-              if (! (errno == ERANGE || errno == ENOENT
-                     || is_ENAMETOOLONG (errno)))
-                {
-                  fail = 22;
-                  break;
-                }
-              if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
-                {
-                  fail = 12;
-                  break;
-                }
-            }
-        }
 
-      if (c && strlen (c) != cwd_len)
-        {
-          fail = 23;
-          break;
-        }
-      ++n_chdirs;
-    }
 
-  /* Leaving behind such a deep directory is not polite.
-     So clean up here, right away, even though the driving
-     shell script would also clean up.  */
-  {
-    size_t i;
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-    /* Try rmdir first, in case the chdir failed.  */
-    rmdir (DIR_NAME);
-    for (i = 0; i <= n_chdirs; i++)
-      {
-        if (chdir ("..") < 0)
-          break;
-        if (rmdir (DIR_NAME) != 0)
-          break;
-      }
-  }
+#include <sys/types.h>
+#include <inttypes.h>
 
-  exit (fail);
-#endif
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
 }
-
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_getcwd_path_max=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_inttypes_h=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-case $? in
-     10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
-     *) gl_cv_func_getcwd_path_max=no;;
-     esac
+  gl_cv_header_inttypes_h=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
+$as_echo "$gl_cv_header_inttypes_h" >&6; }
+  if test $gl_cv_header_inttypes_h = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
 
+  fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_path_max" >&5
-$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
-  case $gl_cv_func_getcwd_path_max in
-  no,*)
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PARTLY_WORKING_GETCWD 1
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
+}
 _ACEOF
-;;
-  esac
-
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_h=yes
+else
+  gl_cv_header_stdint_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
+$as_echo "$gl_cv_header_stdint_h" >&6; }
+  if test $gl_cv_header_stdint_h = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
 
+  fi
 
 
 
 
-for ac_func in getpagesize
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if ${gt_cv_c_intmax_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
-/* 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"
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
 #endif
 
 int
 main ()
 {
-return $ac_func ();
+intmax_t x = -1; return !x;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_intmax_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gt_cv_c_intmax_t=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
+$as_echo "$gt_cv_c_intmax_t" >&6; }
+  if test $gt_cv_c_intmax_t = yes; then
+
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+
+  else
+
+    test $ac_cv_type_long_long_int = yes \
+      && ac_type='long long' \
+      || ac_type='long'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
 _ACEOF
 
-fi
-done
+  fi
 
-  { $as_echo "$as_me:$LINENO: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5
-$as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; }
-if test "${gl_cv_func_getcwd_abort_bug+set}" = set; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # Remove any remnants of a previous test.
-     rm -rf confdir-14B---
-     # Arrange for deletion of the temporary directory this test creates.
-     ac_clean_files="$ac_clean_files confdir-14B---"
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_getcwd_abort_bug=yes
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <stdlib.h>
-#include <unistd.h>
-#include <limits.h>
-#include <string.h>
-#include <sys/stat.h>
+      if test "$cross_compiling" = yes; then :
 
-/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
-#undef mkdir
+                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-#ifndef S_IRWXU
-# define S_IRWXU 0700
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
 #endif
 
-/* FIXME: skip the run-test altogether on systems without getpagesize.  */
-#if ! HAVE_GETPAGESIZE
-# define getpagesize() 0
-#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+  gl_cv_cc_double_expbit0="unknown"
+else
 
-/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
-   the 16kB pagesize on ia64 linux.  Those conditions make the code below
-   trigger a bug in glibc's getcwd implementation before 2.4.90-10.  */
-#define TARGET_LEN (5 * 1024)
+                                                         :
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(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 ()
 {
-  char const *dir_name = "confdir-14B---";
-  char *cwd;
-  size_t initial_cwd_len;
-  int fail = 0;
-  size_t desired_depth;
-  size_t d;
-
-  /* The bug is triggered when PATH_MAX < getpagesize (), so skip
-     this relative expensive and invasive test if that's not true.  */
-  if (getpagesize () <= PATH_MAX)
-    return 0;
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
 
-  cwd = getcwd (NULL, 0);
-  if (cwd == NULL)
-    return 0;
+  ;
+  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>
 
-  initial_cwd_len = strlen (cwd);
-  free (cwd);
-  desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
-                   / (1 + strlen (dir_name)));
-  for (d = 0; d < desired_depth; d++)
-    {
-      if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
-        {
-          fail = 3; /* Unable to construct deep hierarchy.  */
-          break;
-        }
-    }
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
 
-  /* If libc has the bug in question, this invocation of getcwd
-     results in a failed assertion.  */
-  cwd = getcwd (NULL, 0);
-  if (cwd == NULL)
-    fail = 4; /* getcwd failed.  This is ok, and expected.  */
-  free (cwd);
+  ;
+  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>
 
-  /* Call rmdir first, in case the above chdir failed.  */
-  rmdir (dir_name);
-  while (0 < d--)
-    {
-      if (chdir ("..") < 0)
-        break;
-      rmdir (dir_name);
-    }
+int
+main ()
+{
+#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 ()
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_getcwd_abort_bug=no
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_getcwd_abort_bug=yes
+  ac_cv_c_bigendian=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+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 ()
+{
+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 ()
+{
 
+            /* 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
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_abort_bug" >&5
-$as_echo "$gl_cv_func_getcwd_abort_bug" >&6; }
-  if test $gl_cv_func_getcwd_abort_bug = yes; then
-  gl_abort_bug=yes
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-;;
-  esac
-
-  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in
-  *yes,yes,no) ;;
-  *)
-    REPLACE_GETCWD=1
+    fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+   yes)
+     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+   no)
+     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     gl_cv_cc_double_expbit0="unknown" ;;
+ esac
 
 
+fi
+rm -f conftest*
 
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+  gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      rm -f conftest.out
 
-  gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
 
-  :
-;;
+      ;;
   esac
 
 
 
 
-  GNULIB_GETCWD=1
 
 
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETCWD 1
+  for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
+do :
+  as_ac_var=`$as_echo "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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
+fi
+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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  # Code from module getdelim:
-
-
-
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNPRINTF $ac_have_decl
+_ACEOF
 
 
 
+  case "$gl_cv_func_snprintf_retval_c99" in
+    *yes)
 
+$as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
 
+      ;;
+  esac
 
+ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vsnprintf" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_VSNPRINTF $ac_have_decl
+_ACEOF
 
 
 
 
 
 
-  if test $ac_cv_func_getdelim = yes; then
-        { $as_echo "$as_me:$LINENO: checking for working getdelim function" >&5
-$as_echo_n "checking for working getdelim function... " >&6; }
-if test "${gl_cv_func_working_getdelim+set}" = set; then
-  $as_echo_n "(cached) " >&6
+   if false; then
+  GL_COND_LIBTOOL_TRUE=
+  GL_COND_LIBTOOL_FALSE='#'
 else
-  echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
-    if test "$cross_compiling" = yes; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  GL_COND_LIBTOOL_TRUE='#'
+  GL_COND_LIBTOOL_FALSE=
+fi
+
+  gl_cond_libtool=false
+  gl_libdeps=
+  gl_ltlibdeps=
+  gl_m4_base='m4'
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2) && !defined __UCLIBC__
-  Lucky GNU user
- #endif
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
-  gl_cv_func_working_getdelim=yes
-else
-  gl_cv_func_working_getdelim=no
-fi
-rm -f conftest*
 
 
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#    include <stdio.h>
-#    include <stdlib.h>
-#    include <string.h>
-    int main ()
-    {
-      FILE *in = fopen ("./conftest.data", "r");
-      if (!in)
-        return 1;
-      {
-        /* Test result for a NULL buffer and a zero size.
-           Based on a test program from Karl Heuer.  */
-        char *line = NULL;
-        size_t siz = 0;
-        int len = getdelim (&line, &siz, '\n', in);
-        if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
-          return 2;
-      }
-      {
-        /* Test result for a NULL buffer and a non-zero size.
-           This crashes on FreeBSD 8.0.  */
-        char *line = NULL;
-        size_t siz = (size_t)(~0) / 4;
-        if (getdelim (&line, &siz, '\n', in) == -1)
-          return 3;
-      }
-      return 0;
-    }
 
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_working_getdelim=yes
+
+
+
+  gl_source_base='gnu'
+
+
+  if test $ac_cv_func_alloca_works = no; then
+    :
+  fi
+
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if ${gl_cv_rpl_alloca+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_working_getdelim=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Need own alloca" >/dev/null 2>&1; then :
+  gl_cv_rpl_alloca=yes
+else
+  gl_cv_rpl_alloca=no
 fi
+rm -f conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_getdelim" >&5
-$as_echo "$gl_cv_func_working_getdelim" >&6; }
-  else
-    gl_cv_func_working_getdelim=no
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+    if test $gl_cv_rpl_alloca = yes; then
 
-  if test $ac_cv_have_decl_getdelim = no; then
-    HAVE_DECL_GETDELIM=0
-  fi
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
 
-  if test $gl_cv_func_working_getdelim = no; then
-    if test $ac_cv_func_getdelim = yes; then
-      REPLACE_GETDELIM=1
+      ALLOCA_H=alloca.h
+    else
+                  ALLOCA_H=
     fi
+  else
+    ALLOCA_H=alloca.h
+  fi
 
+   if test -n "$ALLOCA_H"; then
+  GL_GENERATE_ALLOCA_H_TRUE=
+  GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+  GL_GENERATE_ALLOCA_H_TRUE='#'
+  GL_GENERATE_ALLOCA_H_FALSE=
+fi
 
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_AREADLINKAT 1
+_ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
 
 
 
 
-for ac_func in flockfile funlockfile
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+  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 :
+  ac_have_decl=1
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+if test $ac_have_decl = 1; then :
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+else
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+$as_echo "#define GNULIB_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
 
-#undef $ac_func
+fi
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+  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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if test $ac_have_decl = 1; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
+$as_echo "#define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
 
-  { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
-$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  # Check if program_invocation_name and program_invocation_short_name
+  # are defined elsewhere. It is improbable that only one of them will
+  # be defined and other not, I prefer to stay on the safe side and to
+  # test each one separately.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5
+$as_echo_n "checking whether program_invocation_name is defined... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <argp.h>
 int
 main ()
 {
-#ifndef getc_unlocked
-  (void) getc_unlocked;
-#endif
-
+program_invocation_name = "test";
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getc_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_link "$LINENO"; then :
 
-       ac_cv_have_decl_getc_unlocked=no
-fi
+$as_echo "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
-if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 1
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5
+$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_short_name = "test";
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
 
+$as_echo "#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
 
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 0
-_ACEOF
-
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-
-
-
-  fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 
 
 
-  GNULIB_GETDELIM=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETDELIM 1
-_ACEOF
 
 
 
-  # Code from module getdtablesize:
 
 
 
@@ -29528,252 +16839,155 @@ _ACEOF
 
 
 
-  if test $ac_cv_func_getdtablesize != yes; then
-    HAVE_GETDTABLESIZE=0
 
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format"
 
 
 
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format"
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
 
-  fi
 
 
 
 
-  GNULIB_GETDTABLESIZE=1
+  gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETDTABLESIZE 1
-_ACEOF
 
 
 
-  # Code from module getline:
 
 
 
 
 
 
+  if test $ac_cv_func_btowc = no; then
+    HAVE_BTOWC=0
+  else
 
 
 
 
-  gl_getline_needs_run_time_check=no
-  { $as_echo "$as_me:$LINENO: checking for getline" >&5
-$as_echo_n "checking for getline... " >&6; }
-if test "${ac_cv_func_getline+set}" = set; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+$as_echo_n "checking whether btowc(0) is correct... " >&6; }
+if ${gl_cv_func_btowc_nul+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getline to an innocuous variant, in case <limits.h> declares getline.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getline innocuous_getline
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getline (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+        if test "$cross_compiling" = yes; then :
 
-#undef getline
+           case "$host_os" in
+                      # Guess no on Cygwin.
+             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+                      # Guess yes otherwise.
+             *)       gl_cv_func_btowc_nul="guessing yes" ;;
+           esac
 
-/* 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 getline ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getline || defined __stub___getline
-choke me
-#endif
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-int
-main ()
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
 {
-return getline ();
-  ;
+  if (btowc ('\0') != 0)
+    return 1;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_getline=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_btowc_nul=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getline=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+  gl_cv_func_btowc_nul=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getline" >&5
-$as_echo "$ac_cv_func_getline" >&6; }
-if test "x$ac_cv_func_getline" = x""yes; then
-                   gl_getline_needs_run_time_check=yes
-else
-  am_cv_func_working_getline=no
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-  if test $gl_getline_needs_run_time_check = yes; then
-    { $as_echo "$as_me:$LINENO: checking for working getline function" >&5
-$as_echo_n "checking for working getline function... " >&6; }
-if test "${am_cv_func_working_getline+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
-    if test "$cross_compiling" = yes; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2) && !defined __UCLIBC__
-  Lucky GNU user
- #endif
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
-  am_cv_func_working_getline=yes
-else
-  am_cv_func_working_getline=no
 fi
-rm -f conftest*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
+$as_echo "$gl_cv_func_btowc_nul" >&6; }
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
+if ${gl_cv_func_btowc_eof+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                        case "$host_os" in
+                 # Guess no on IRIX.
+          irix*) gl_cv_func_btowc_eof="guessing no" ;;
+                 # Guess yes otherwise.
+          *)     gl_cv_func_btowc_eof="guessing yes" ;;
+        esac
+        if test $LOCALE_FR != none; then
+          if test "$cross_compiling" = yes; then :
+  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#    include <stdio.h>
-#    include <stdlib.h>
-#    include <string.h>
-    int main ()
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
     {
-      FILE *in = fopen ("./conftest.data", "r");
-      if (!in)
+      if (btowc (EOF) != WEOF)
         return 1;
-      {
-        /* Test result for a NULL buffer and a zero size.
-           Based on a test program from Karl Heuer.  */
-        char *line = NULL;
-        size_t siz = 0;
-        int len = getline (&line, &siz, in);
-        if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
-          return 2;
-      }
-      {
-        /* Test result for a NULL buffer and a non-zero size.
-           This crashes on FreeBSD 8.0.  */
-        char *line = NULL;
-        size_t siz = (size_t)(~0) / 4;
-        if (getline (&line, &siz, in) == -1)
-          return 3;
-      }
-      return 0;
     }
-
+  return 0;
+}
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  am_cv_func_working_getline=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_btowc_eof=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-am_cv_func_working_getline=no
+  gl_cv_func_btowc_eof=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+        fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_working_getline" >&5
-$as_echo "$am_cv_func_working_getline" >&6; }
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+$as_echo "$gl_cv_func_btowc_eof" >&6; }
 
-  if test $ac_cv_have_decl_getline = no; then
-    HAVE_DECL_GETLINE=0
+    case "$gl_cv_func_btowc_nul" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    case "$gl_cv_func_btowc_eof" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
   fi
 
-  if test $am_cv_func_working_getline = no; then
-                REPLACE_GETLINE=1
+  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
 
 
 
@@ -29782,446 +16996,235 @@ $as_echo "$am_cv_func_working_getline" >&6; }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
 
 
+  :
 
+  fi
 
 
 
 
 
+          GNULIB_BTOWC=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
 
 
 
 
 
 
-  if test $ac_cv_func_getdelim = yes; then
-        { $as_echo "$as_me:$LINENO: checking for working getdelim function" >&5
-$as_echo_n "checking for working getdelim function... " >&6; }
-if test "${gl_cv_func_working_getdelim+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
-    if test "$cross_compiling" = yes; then
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  if test $ac_cv_func_canonicalize_file_name = no; then
+    HAVE_CANONICALIZE_FILE_NAME=0
+    if test $ac_cv_func_realpath = no; then
+      HAVE_REALPATH=0
+    else
+      case "$gl_cv_func_realpath_works" in
+       *yes) ;;
+       *)    REPLACE_REALPATH=1 ;;
+      esac
+    fi
+  else
+    case "$gl_cv_func_realpath_works" in
+      *yes)
+        ;;
+      *)
+        REPLACE_CANONICALIZE_FILE_NAME=1
+        REPLACE_REALPATH=1
+        ;;
+    esac
+  fi
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2) && !defined __UCLIBC__
-  Lucky GNU user
- #endif
-#endif
+  if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
-  gl_cv_func_working_getdelim=yes
-else
-  gl_cv_func_working_getdelim=no
-fi
-rm -f conftest*
 
 
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#    include <stdio.h>
-#    include <stdlib.h>
-#    include <string.h>
-    int main ()
-    {
-      FILE *in = fopen ("./conftest.data", "r");
-      if (!in)
-        return 1;
-      {
-        /* Test result for a NULL buffer and a zero size.
-           Based on a test program from Karl Heuer.  */
-        char *line = NULL;
-        size_t siz = 0;
-        int len = getdelim (&line, &siz, '\n', in);
-        if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
-          return 2;
-      }
-      {
-        /* Test result for a NULL buffer and a non-zero size.
-           This crashes on FreeBSD 8.0.  */
-        char *line = NULL;
-        size_t siz = (size_t)(~0) / 4;
-        if (getdelim (&line, &siz, '\n', in) == -1)
-          return 3;
-      }
-      return 0;
-    }
 
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_working_getdelim=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_working_getdelim=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_getdelim" >&5
-$as_echo "$gl_cv_func_working_getdelim" >&6; }
-  else
-    gl_cv_func_working_getdelim=no
-  fi
+  gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
 
-  if test $ac_cv_have_decl_getdelim = no; then
-    HAVE_DECL_GETDELIM=0
   fi
 
-  if test $gl_cv_func_working_getdelim = no; then
-    if test $ac_cv_func_getdelim = yes; then
-      REPLACE_GETDELIM=1
-    fi
-
-
-
-
-
 
-
-
-  gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_CANONICALIZE_LGPL 1
+_ACEOF
 
 
 
 
-for ac_func in flockfile funlockfile
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+          GNULIB_CANONICALIZE_FILE_NAME=1
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
+$as_echo "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
 
-  { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
-$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getc_unlocked
-  (void) getc_unlocked;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getc_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_getc_unlocked=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
-if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 0
-_ACEOF
 
+          GNULIB_REALPATH=1
 
-fi
 
 
 
-  fi
 
+$as_echo "#define GNULIB_TEST_REALPATH 1" >>confdefs.h
 
-  fi
 
 
 
 
-  GNULIB_GETLINE=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETLINE 1
-_ACEOF
+
+          GNULIB_CHDIR=1
+
 
 
 
-  # Code from module getopt-gnu:
 
+$as_echo "#define GNULIB_TEST_CHDIR 1" >>confdefs.h
 
 
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this system has an arbitrary file name length limit" >&5
+$as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; }
+if ${gl_cv_have_arbitrary_file_name_length_limit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETOPT_GNU 1
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then :
+  gl_cv_have_arbitrary_file_name_length_limit=yes
+else
+  gl_cv_have_arbitrary_file_name_length_limit=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_arbitrary_file_name_length_limit" >&5
+$as_echo "$gl_cv_have_arbitrary_file_name_length_limit" >&6; }
 
+  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
 
-  # Code from module getopt-posix:
 
 
 
 
 
-  if test -n "$gl_replace_getopt"; then
 
 
+  gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
 
-  GETOPT_H=getopt.h
+    :
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define __GETOPT_PREFIX rpl_
-_ACEOF
+  if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
 
 
 
-    GNULIB_UNISTD_H_GETOPT=1
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
 
+  fi
+  if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
 
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 
 
 
+          GNULIB_CHOWN=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_CHOWN 1" >>confdefs.h
 
-fi
 
 
 
-  # Code from module getpagesize:
 
 
+  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
 
+  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
+  # programs in the package would end up linked with that potentially-shared
+  # library, inducing unnecessary run-time overhead.
+  LIB_CLOCK_GETTIME=
 
-for ac_func in getpagesize
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  gl_saved_libs=$LIBS
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
@@ -30229,62 +17232,53 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+char clock_gettime ();
 int
 main ()
 {
-return $ac_func ();
+return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+for ac_lib in '' rt posix4; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_clock_gettime=$ac_res
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_clock_gettime+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_clock_gettime+:} false; then :
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+else
+  ac_cv_search_clock_gettime=no
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  test "$ac_cv_search_clock_gettime" = "none required" ||
+                    LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+fi
+
+    for ac_func in clock_gettime clock_settime
+do :
+  as_ac_var=`$as_echo "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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -30292,421 +17286,137 @@ _ACEOF
 fi
 done
 
-  if test $ac_cv_func_getpagesize = no; then
-    HAVE_GETPAGESIZE=0
+  LIBS=$gl_saved_libs
 
-for ac_header in OS.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+$as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_CLOSE=1
+  fi
+
+
+
+
+
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
 
 done
 
-    if test $ac_cv_header_OS_h = yes; then
-      HAVE_OS_H=1
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+                        REPLACE_CLOSE=1
     fi
 
-for ac_header in sys/param.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
-fi
+    if test $REPLACE_CLOSE = 0; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_CLOSE=1
+      fi
+    fi
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+  if test $REPLACE_CLOSE = 1; then
 
-fi
 
-done
 
-    if test $ac_cv_header_sys_param_h = yes; then
-      HAVE_SYS_PARAM_H=1
-    fi
-  fi
-  case "$host_os" in
-    mingw*)
-      REPLACE_GETPAGESIZE=1
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
 
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
 
-      ;;
-  esac
-      { $as_echo "$as_me:$LINENO: checking whether getpagesize is declared" >&5
-$as_echo_n "checking whether getpagesize is declared... " >&6; }
-if test "${ac_cv_have_decl_getpagesize+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getpagesize
-  (void) getpagesize;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getpagesize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_getpagesize=no
-fi
+          GNULIB_CLOSE=1
+
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getpagesize" >&5
-$as_echo "$ac_cv_have_decl_getpagesize" >&6; }
-if test "x$ac_cv_have_decl_getpagesize" = x""yes; then
-  :
-else
-  HAVE_DECL_GETPAGESIZE=0
-fi
 
 
+$as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
 
 
 
-  GNULIB_GETPAGESIZE=1
+
+  :
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETPAGESIZE 1
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_CLOSE_STREAM 1
 _ACEOF
 
 
 
-  # Code from module gettext:
 
-  # Code from module gettext-h:
 
+  for ac_func in closedir
+do :
+  ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir"
+if test "x$ac_cv_func_closedir" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_CLOSEDIR 1
+_ACEOF
 
-  # Code from module gettime:
+fi
+done
 
+  if test $ac_cv_func_closedir = no; then
+    HAVE_CLOSEDIR=0
+  fi
 
 
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_CLOSEDIR = 1; then
+        REPLACE_CLOSEDIR=1
+      fi
+    fi
 
 
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
 
-  gl_LIBOBJS="$gl_LIBOBJS gettime.$ac_objext"
 
 
 
@@ -30714,1174 +17424,701 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
 
+  fi
 
 
 
 
 
-  # Code from module gettimeofday:
+          GNULIB_CLOSEDIR=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
 
 
 
 
+  :
 
 
-  gl_gettimeofday_timezone=void
-  if test $ac_cv_func_gettimeofday != yes; then
-    HAVE_GETTIMEOFDAY=0
+          if test "x$datarootdir" = x; then
+    datarootdir='${datadir}'
 
+  fi
+    if test "x$docdir" = x; then
+    docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 
+  fi
+    if test "x$htmldir" = x; then
+    htmldir='${docdir}'
 
+  fi
+  if test "x$dvidir" = x; then
+    dvidir='${docdir}'
 
+  fi
+  if test "x$pdfdir" = x; then
+    pdfdir='${docdir}'
 
+  fi
+  if test "x$psdir" = x; then
+    psdir='${docdir}'
 
+  fi
+  if test "x$lispdir" = x; then
+    lispdir='${datarootdir}/emacs/site-lisp'
 
+  fi
+  if test "x$localedir" = x; then
+    localedir='${datarootdir}/locale'
 
-  gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+  fi
 
+      pkglibexecdir='${libexecdir}/${PACKAGE}'
 
 
-for ac_header in sys/timeb.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                           # Guess yes on glibc systems with Linux kernel.
+              linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+                           # If we don't know, assume the worst.
+              *)           gl_cv_struct_dirent_d_ino="guessing no" ;;
+            esac
 
-       ac_header_compiler=no
-fi
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+             #include <sys/stat.h>
+             #include <dirent.h>
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+int
+main ()
+{
+DIR *dp = opendir (".");
+             struct dirent *e;
+             struct stat st;
+             if (! dp)
+               return 1;
+             e = readdir (dp);
+             if (! e)
+               return 2;
+             if (stat (e->d_name, &st) != 0)
+               return 3;
+             if (e->d_ino != st.st_ino)
+               return 4;
+             return 0;
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
+  ;
+  return 0;
+}
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_struct_dirent_d_ino=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  gl_cv_struct_dirent_d_ino=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
 fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+   case "$gl_cv_struct_dirent_d_ino" in
+     *yes)
 
-fi
+$as_echo "#define D_INO_IN_DIRENT 1" >>confdefs.h
 
-done
+       ;;
+   esac
 
 
-for ac_func in _ftime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_dirent_h='<'dirent.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
+$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
+if ${gl_cv_next_dirent_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
+             if test $ac_cv_header_dirent_h = yes; then
+
+
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <dirent.h>
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _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 'dirent.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_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+                      sed -n "$gl_absolute_header_sed"`'"'
+          else
+               gl_cv_next_dirent_h='<'dirent.h'>'
+             fi
+
 
 fi
-done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5
+$as_echo "$gl_cv_next_dirent_h" >&6; }
+     fi
+     NEXT_DIRENT_H=$gl_cv_next_dirent_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='<'dirent.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_dirent_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive
+
+
 
 
+  if test $ac_cv_header_dirent_h = yes; then
+    HAVE_DIRENT_H=1
   else
+    HAVE_DIRENT_H=0
+  fi
 
 
 
- { $as_echo "$as_me:$LINENO: checking whether gettimeofday clobbers localtime buffer" >&5
-$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
-if test "${gl_cv_func_gettimeofday_clobber+set}" = set; then
+    for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-       gl_cv_func_gettimeofday_clobber=yes
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
-          #include <sys/time.h>
-          #include <time.h>
-          #include <stdlib.h>
+#include <dirent.h>
 
 int
 main ()
 {
-
-          time_t t = 0;
-          struct tm *lt;
-          struct tm saved_lt;
-          struct timeval tv;
-          lt = localtime (&t);
-          saved_lt = *lt;
-          gettimeofday (&tv, NULL);
-          return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0;
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_gettimeofday_clobber=no
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_gettimeofday_clobber=yes
+  eval "$as_gl_Symbol=no"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_clobber" >&5
-$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
+      done
 
- if test $gl_cv_func_gettimeofday_clobber = yes; then
-   REPLACE_GETTIMEOFDAY=1
 
 
 
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_DIRENT_SAFER 1
+_ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
 
 
 
-for ac_header in sys/timeb.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+
+  for ac_func in dirfd
+do :
+  ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
+if test "x$ac_cv_func_dirfd" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DIRFD 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
 fi
+done
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+  ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+      #include <dirent.h>
+"
+if test "x$ac_cv_have_decl_dirfd" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DIRFD $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  if test $ac_cv_have_decl_dirfd = no; then
+    HAVE_DECL_DIRFD=0
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
+$as_echo_n "checking whether dirfd is a macro... " >&6; }
+if ${gl_cv_func_dirfd_macro+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <$ac_header>
+
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
+  gl_cv_func_dirfd_macro=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_dirfd_macro=no
+fi
+rm -f conftest*
 
-  ac_header_preproc=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5
+$as_echo "$gl_cv_func_dirfd_macro" >&6; }
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+  # Use the replacement only if we have no function or macro with that name.
+  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+    if test $ac_cv_have_decl_dirfd = yes; then
+      # If the system declares dirfd already, let's declare rpl_dirfd instead.
+      REPLACE_DIRFD=1
+    fi
+  fi
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
 
-done
 
 
-for ac_func in _ftime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+  gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5
+$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; }
+if ${gl_cv_sys_dir_fd_member_name+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      dirfd_save_CFLAGS=$CFLAGS
+      for ac_expr in d_fd dd_fd; do
+
+        CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+           #include <sys/types.h>
+           #include <dirent.h>
 int
 main ()
 {
-return $ac_func ();
+DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
+  dir_fd_found=yes
 
-       eval "$as_ac_var=no"
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        CFLAGS=$dirfd_save_CFLAGS
+        test "$dir_fd_found" = yes && break
+      done
+      test "$dir_fd_found" = yes || ac_expr=no_such_member
+
+      gl_cv_sys_dir_fd_member_name=$ac_expr
+
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5
+$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; }
+  if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
+
+cat >>confdefs.h <<_ACEOF
+#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name
 _ACEOF
 
-fi
-done
+  fi
 
 
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define gmtime rpl_gmtime
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define localtime rpl_localtime
-_ACEOF
+
+
+          GNULIB_DIRFD=1
+
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1
+
+$as_echo "#define GNULIB_TEST_DIRFD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_DIRNAME 1
 _ACEOF
 
- fi
 
-    { $as_echo "$as_me:$LINENO: checking for gettimeofday with POSIX signature" >&5
-$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
-if test "${gl_cv_func_gettimeofday_posix_signature+set}" = set; then
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-              struct timeval c;
-              int gettimeofday (struct timeval *restrict, void *restrict);
+   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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
+$as_echo "$gl_cv_double_slash_root" >&6; }
+  if test "$gl_cv_double_slash_root" = yes; then
 
-int
-main ()
-{
-/* glibc uses struct timezone * rather than the POSIX void *
-                 if _GNU_SOURCE is defined.  However, since the only portable
-                 use of gettimeofday uses NULL as the second parameter, and
-                 since the glibc definition is actually more typesafe, it is
-                 not worth wrapping this to get a compliant signature.  */
-              int (*f) (struct timeval *restrict, void *restrict)
-                = gettimeofday;
-              int x = f (&c, 0);
-              return !(x | c.tv_sec | c.tv_usec);
+$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_gettimeofday_posix_signature=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-int gettimeofday (struct timeval *restrict, struct timezone *restrict);
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_gettimeofday_posix_signature=almost
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_func_gettimeofday_posix_signature=no
-fi
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_DUP=1
+  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
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_posix_signature" >&5
-$as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; }
-    if test $gl_cv_func_gettimeofday_posix_signature = almost; then
-      gl_gettimeofday_timezone='struct timezone'
-    elif test $gl_cv_func_gettimeofday_posix_signature != yes; then
-      REPLACE_GETTIMEOFDAY=1
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
+      REPLACE_DUP=1
+    fi
 
 
+  if test $REPLACE_DUP = 1; then
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
 
 
 
-for ac_header in sys/timeb.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+  gl_LIBOBJS="$gl_LIBOBJS dup.$ac_objext"
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    :
+  fi
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
+          GNULIB_DUP=1
 
-done
 
 
-for ac_func in _ftime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+$as_echo "#define GNULIB_TEST_DUP 1" >>confdefs.h
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
+
+
+
+
+
+$as_echo "#define HAVE_DUP2 1" >>confdefs.h
+
+
+  if test $HAVE_DUP2 = 1; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if ${gl_cv_func_dup2_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  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.
+             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" ;;
+           *) 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>
 int
 main ()
 {
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+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;
 
-       eval "$as_ac_var=no"
-fi
+  ;
+  return 0;
+}
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_dup2_works=yes
+else
+  gl_cv_func_dup2_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
-done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
+$as_echo "$gl_cv_func_dup2_works" >&6; }
+    case "$gl_cv_func_dup2_works" in
+      *yes) ;;
+      *)
+        REPLACE_DUP2=1
+        ;;
+    esac
+  fi
 
 
-    fi
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
   fi
 
-cat >>confdefs.h <<_ACEOF
-#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone
-_ACEOF
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_DUP2 = 1; then
+        REPLACE_DUP2=1
+      fi
+    fi
 
 
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
 
 
 
-  GNULIB_GETTIMEOFDAY=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_GETTIMEOFDAY 1
-_ACEOF
 
 
+  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
 
-  # Code from module gitlog-to-changelog:
-  # Code from module hash:
+
+  fi
 
 
 
 
 
+          GNULIB_DUP2=1
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS hash.$ac_objext"
 
+$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h
 
 
 
-  # Code from module havelib:
-  # Code from module human:
 
 
 
 
 
 
+          GNULIB_ENVIRON=1
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS human.$ac_objext"
 
 
-    :
+$as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
 
-  # Code from module include_next:
-  # Code from module inline:
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the compiler generally respects inline" >&5
-$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
-if test "${gl_cv_c_inline_effective+set}" = set; then
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test $ac_cv_c_inline = no; then
-       gl_cv_c_inline_effective=no
-     else
-                                          cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+#include <error.h>
 int
 main ()
 {
-#ifdef __NO_INLINE__
-               #error "inline is not effective"
-             #endif
+error_at_line (0, 0, "", 0, "an error occurred");
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_c_inline_effective=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_error_at_line=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_c_inline_effective=no
+  ac_cv_lib_error_at_line=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_c_inline_effective" >&5
-$as_echo "$gl_cv_c_inline_effective" >&6; }
-  if test $gl_cv_c_inline_effective = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+$as_echo "$ac_cv_lib_error_at_line" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INLINE 1
-_ACEOF
+  if test $ac_cv_lib_error_at_line = no; then
 
-  fi
 
-  # Code from module intprops:
-  # Code from module inttostr:
 
 
 
-  :
 
-  :
-  :
-  :
-  :
 
-  # Code from module inttypes:
 
+  gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
 
 
 
+  :
 
+  fi
 
 
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
 
 
 
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
 
 
 
@@ -31889,8 +18126,12 @@ _ACEOF
 
 
 
+  if test $ac_cv_have_decl_fchdir = no; then
+    HAVE_DECL_FCHDIR=0
+  fi
 
 
+  if test $HAVE_FCHDIR = 0; then
 
 
 
@@ -31898,775 +18139,459 @@ _ACEOF
 
 
 
-              { $as_echo "$as_me:$LINENO: checking whether inttypes.h conforms to C99" >&5
-$as_echo_n "checking whether inttypes.h conforms to C99... " >&6; }
-if test "${gl_cv_header_working_inttypes_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_working_inttypes_h=no
-     if test "$gl_cv_header_working_stdint_h" = yes \
-        && test $ac_cv_header_inttypes_h = yes \
-        && test "$ac_cv_have_decl_imaxabs" = yes \
-        && test "$ac_cv_have_decl_imaxdiv" = yes \
-        && test "$ac_cv_have_decl_strtoimax" = yes \
-        && test "$ac_cv_have_decl_strtoumax" = yes; then
-       cat >conftest.$ac_ext <<_ACEOF
 
-         /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
 
-#include <stddef.h>
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* work if build isn't clean */
-#include <inttypes.h>
+    :
 
-/* No need to duplicate the tests of stdint.m4; they are subsumed by
-   $gl_cv_header_working_stdint_h = yes.  */
+$as_echo "#define REPLACE_FCHDIR 1" >>confdefs.h
 
-/* Tests for macros supposed to be defined in inttypes.h.  */
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5
+$as_echo_n "checking whether open can visit directories... " >&6; }
+if ${gl_cv_func_open_directory_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_open_directory_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_open_directory_works="guessing no" ;;
+         esac
 
-const char *k = /* implicit string concatenation */
-#ifdef INT8_MAX
-  PRId8 PRIi8
-#endif
-#ifdef UINT8_MAX
-  PRIo8 PRIu8 PRIx8 PRIX8
-#endif
-#ifdef INT16_MAX
-  PRId16 PRIi16
-#endif
-#ifdef UINT16_MAX
-  PRIo16 PRIu16 PRIx16 PRIX16
-#endif
-#ifdef INT32_MAX
-  PRId32 PRIi32
-#endif
-#ifdef UINT32_MAX
-  PRIo32 PRIu32 PRIx32 PRIX32
-#endif
-#ifdef INT64_MAX
-  PRId64 PRIi64
-#endif
-#ifdef UINT64_MAX
-  PRIo64 PRIu64 PRIx64 PRIX64
-#endif
-  PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
-  PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
-  PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
-  PRIdLEAST64 PRIiLEAST64
-  PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
-  PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
-  PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
-  PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
-  PRIdFAST64 PRIiFAST64
-  PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
-  PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
-#ifdef INTPTR_MAX
-  PRIdPTR PRIiPTR
-#endif
-#ifdef UINTPTR_MAX
-  PRIoPTR PRIuPTR PRIxPTR PRIXPTR
-#endif
-  ;
-const char *l = /* implicit string concatenation */
-#ifdef INT8_MAX
-  SCNd8 SCNi8
-#endif
-#ifdef UINT8_MAX
-  SCNo8 SCNu8 SCNx8
-#endif
-#ifdef INT16_MAX
-  SCNd16 SCNi16
-#endif
-#ifdef UINT16_MAX
-  SCNo16 SCNu16 SCNx16
-#endif
-#ifdef INT32_MAX
-  SCNd32 SCNi32
-#endif
-#ifdef UINT32_MAX
-  SCNo32 SCNu32 SCNx32
-#endif
-#ifdef INT64_MAX
-  SCNd64 SCNi64
-#endif
-#ifdef UINT64_MAX
-  SCNo64 SCNu64 SCNx64
-#endif
-  SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
-  SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
-  SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
-  SCNdLEAST64 SCNiLEAST64
-  SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
-  SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
-  SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
-  SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
-  SCNdFAST64 SCNiFAST64
-  SCNoFAST64 SCNuFAST64 SCNxFAST64
-  SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
-#ifdef INTPTR_MAX
-  SCNdPTR SCNiPTR
-#endif
-#ifdef UINTPTR_MAX
-  SCNoPTR SCNuPTR SCNxPTR
-#endif
-  ;
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <fcntl.h>
 
 int
 main ()
 {
-
+return open(".", O_RDONLY) < 0;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_working_inttypes_h=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_open_directory_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  gl_cv_func_open_directory_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
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_inttypes_h" >&5
-$as_echo "$gl_cv_header_working_inttypes_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_directory_works" >&5
+$as_echo "$gl_cv_func_open_directory_works" >&6; }
+    case "$gl_cv_func_open_directory_works" in
+      *yes) ;;
+      *)
 
+$as_echo "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h
 
+        ;;
+    esac
+  fi
 
 
 
 
 
 
+          GNULIB_FCHDIR=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_inttypes_h='<'inttypes.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <inttypes.h>" >&5
-$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
-if test "${gl_cv_next_inttypes_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-             if test $ac_cv_header_inttypes_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <inttypes.h>
 
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/inttypes.h#{
-                    s#.*"\(.*/inttypes.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_inttypes_h='<'inttypes.h'>'
-             fi
+  if test $ac_cv_func_fchmodat != yes; then
+    HAVE_FCHMODAT=0
+  fi
 
+  if test $HAVE_FCHMODAT = 0; then
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_inttypes_h" >&5
-$as_echo "$gl_cv_next_inttypes_h" >&6; }
-     fi
-     NEXT_INTTYPES_H=$gl_cv_next_inttypes_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='<'inttypes.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_inttypes_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fchmodat.$ac_objext"
+
+  fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GL_TRIGGER_STDC_LIMIT_MACROS 1
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FCHMODAT 1
 _ACEOF
 
 
 
 
-  PRIPTR_PREFIX=
-  if test -n "$STDINT_H"; then
-        PRIPTR_PREFIX='"l"'
-  else
-        for glpfx in '' l ll I64; do
-      case $glpfx in
-        '')  gltype1='int';;
-        l)   gltype1='long int';;
-        ll)  gltype1='long long int';;
-        I64) gltype1='__int64';;
-      esac
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdint.h>
-           extern intptr_t foo;
-           extern $gltype1 foo;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  PRIPTR_PREFIX='"'$glpfx'"'
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+          GNULIB_FCHMODAT=1
 
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-      test -n "$PRIPTR_PREFIX" && break
-    done
-  fi
 
 
-  if test "$ac_cv_have_decl_imaxabs" = yes; then
-    HAVE_DECL_IMAXABS=1
-  else
-    HAVE_DECL_IMAXABS=0
-  fi
 
-  if test "$ac_cv_have_decl_imaxdiv" = yes; then
-    HAVE_DECL_IMAXDIV=1
-  else
-    HAVE_DECL_IMAXDIV=0
-  fi
+$as_echo "#define GNULIB_TEST_FCHMODAT 1" >>confdefs.h
 
-  if test "$ac_cv_have_decl_strtoimax" = yes; then
-    HAVE_DECL_STRTOIMAX=1
-  else
-    HAVE_DECL_STRTOIMAX=0
-  fi
 
-  if test "$ac_cv_have_decl_strtoumax" = yes; then
-    HAVE_DECL_STRTOUMAX=1
-  else
-    HAVE_DECL_STRTOUMAX=0
-  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking whether INT32_MAX < INTMAX_MAX" >&5
-$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
-if test "${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+set}" = set; then
+
+
+
+  ac_fn_c_check_func "$LINENO" "fchownat" "ac_cv_func_fchownat"
+if test "x$ac_cv_func_fchownat" = xyes; then :
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5
+$as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; }
+if ${gl_cv_func_fchownat_nofollow_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Work also in C++ mode.  */
-            #define __STDC_LIMIT_MACROS 1
-
-            /* Work if build is not clean.  */
-            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
 
-            #include <limits.h>
-            #if HAVE_STDINT_H
-             #include <stdint.h>
-            #endif
+     gl_dangle=conftest.dangle
+     # Remove any remnants of a previous test.
+     rm -f $gl_dangle
+     # Arrange for deletion of the temporary file this test creates.
+     ac_clean_files="$ac_clean_files $gl_dangle"
+     ln -s conftest.no-such $gl_dangle
+     if test "$cross_compiling" = yes; then :
+  gl_cv_func_fchownat_nofollow_works=no
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-            #if defined INT32_MAX && defined INTMAX_MAX
-             #define CONDITION (INT32_MAX < INTMAX_MAX)
-            #elif HAVE_LONG_LONG_INT
-             #define CONDITION (sizeof (int) < sizeof (long long int))
-            #else
-             #define CONDITION 0
-            #endif
-            int test[CONDITION ? 1 : -1];
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
 int
 main ()
 {
-
-  ;
-  return 0;
+  return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (),
+                    AT_SYMLINK_NOFOLLOW) != 0
+          && errno == ENOENT);
 }
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fchownat_nofollow_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_fchownat_nofollow_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
+
 
-       gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fchownat_nofollow_works" >&5
+$as_echo "$gl_cv_func_fchownat_nofollow_works" >&6; }
+  if test $gl_cv_func_fchownat_nofollow_works = no; then :
+  REPLACE_FCHOWNAT=1
+
+$as_echo "#define FCHOWNAT_NOFOLLOW_BUG 1" >>confdefs.h
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5
-$as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; }
-  if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then
-    INT32_MAX_LT_INTMAX_MAX=1;
-  else
-    INT32_MAX_LT_INTMAX_MAX=0;
-  fi
 
 
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
-  { $as_echo "$as_me:$LINENO: checking whether INT64_MAX == LONG_MAX" >&5
-$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
-if test "${gl_cv_test_INT64_MAX_EQ_LONG_MAX+set}" = set; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fchownat works with an empty file name" >&5
+$as_echo_n "checking whether fchownat works with an empty file name... " >&6; }
+if ${gl_cv_func_fchownat_empty_filename_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_fchownat_empty_filename_works="guessing no"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Work also in C++ mode.  */
-            #define __STDC_LIMIT_MACROS 1
-
-            /* Work if build is not clean.  */
-            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-
-            #include <limits.h>
-            #if HAVE_STDINT_H
-             #include <stdint.h>
-            #endif
+#include <unistd.h>
+            #include <fcntl.h>
 
-            #if defined INT64_MAX
-             #define CONDITION (INT64_MAX == LONG_MAX)
-            #elif HAVE_LONG_LONG_INT
-             #define CONDITION (sizeof (long long int) == sizeof (long int))
-            #else
-             #define CONDITION 0
-            #endif
-            int test[CONDITION ? 1 : -1];
 int
 main ()
 {
+int fd;
+            int ret;
+            if (mkdir ("conftestdir", 0700) < 0)
+              return 2;
+            fd = open ("conftestdir", O_RDONLY);
+            if (fd < 0)
+              return 3;
+            ret = fchownat (fd, "", -1, -1, 0);
+            close (fd);
+            rmdir ("conftestdir");
+            return ret == 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fchownat_empty_filename_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_fchownat_empty_filename_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
+
 
-       gl_cv_test_INT64_MAX_EQ_LONG_MAX=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fchownat_empty_filename_works" >&5
+$as_echo "$gl_cv_func_fchownat_empty_filename_works" >&6; }
+  if test "$gl_cv_func_fchownat_empty_filename_works" != yes; then :
+  REPLACE_FCHOWNAT=1
+
+$as_echo "#define FCHOWNAT_EMPTY_FILENAME_BUG 1" >>confdefs.h
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5
-$as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; }
-  if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then
-    INT64_MAX_EQ_LONG_MAX=1;
-  else
-    INT64_MAX_EQ_LONG_MAX=0;
-  fi
 
+     if test $REPLACE_CHOWN = 1; then
+       REPLACE_FCHOWNAT=1
+     fi
+else
+  HAVE_FCHOWNAT=0
+fi
+
+
+  if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fchownat.$ac_objext"
 
-  else
-    INT64_MAX_EQ_LONG_MAX=-1
   fi
 
-  { $as_echo "$as_me:$LINENO: checking whether UINT32_MAX < UINTMAX_MAX" >&5
-$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
-if test "${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FCHOWNAT 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Work also in C++ mode.  */
-            #define __STDC_LIMIT_MACROS 1
 
-            /* Work if build is not clean.  */
-            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
 
-            #include <limits.h>
-            #if HAVE_STDINT_H
-             #include <stdint.h>
-            #endif
 
-            #if defined UINT32_MAX && defined UINTMAX_MAX
-             #define CONDITION (UINT32_MAX < UINTMAX_MAX)
-            #elif HAVE_LONG_LONG_INT
-             #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int))
-            #else
-             #define CONDITION 0
-            #endif
-            int test[CONDITION ? 1 : -1];
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5
-$as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; }
-  if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then
-    UINT32_MAX_LT_UINTMAX_MAX=1;
-  else
-    UINT32_MAX_LT_UINTMAX_MAX=0;
-  fi
+          GNULIB_FCHOWNAT=1
 
 
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
-  { $as_echo "$as_me:$LINENO: checking whether UINT64_MAX == ULONG_MAX" >&5
-$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
-if test "${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+set}" = set; then
+
+
+$as_echo "#define GNULIB_TEST_FCHOWNAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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";;
+          esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Work also in C++ mode.  */
-            #define __STDC_LIMIT_MACROS 1
-
-            /* Work if build is not clean.  */
-            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-
-            #include <limits.h>
-            #if HAVE_STDINT_H
-             #include <stdint.h>
-            #endif
 
-            #if defined UINT64_MAX
-             #define CONDITION (UINT64_MAX == ULONG_MAX)
-            #elif HAVE_LONG_LONG_INT
-             #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int))
-            #else
-             #define CONDITION 0
-            #endif
-            int test[CONDITION ? 1 : -1];
+#include <fcntl.h>
+#include <errno.h>
+
 int
 main ()
 {
+int result = 0;
+      if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+      if (errno != EINVAL) result |= 2;
+      return result;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fcntl_f_dupfd_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no
+  gl_cv_func_fcntl_f_dupfd_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5
-$as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
-  if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then
-    UINT64_MAX_EQ_ULONG_MAX=1;
-  else
-    UINT64_MAX_EQ_ULONG_MAX=0;
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5
+$as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; }
+    case $gl_cv_func_fcntl_f_dupfd_works in
+      *yes) ;;
+      *)
 
 
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
   else
-    UINT64_MAX_EQ_ULONG_MAX=-1
+    REPLACE_FCNTL=1
   fi
 
 
+$as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+    esac
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
 
+int
+main ()
+{
 
-  for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  ;
+  return 0;
+}
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <inttypes.h>
+
+#ifdef __linux__
+/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
+   it to support the semantics on older kernels that failed with EINVAL.  */
+choke me
+#endif
 
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_fcntl_f_dupfd_cloexec=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  gl_cv_func_fcntl_f_dupfd_cloexec=no
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-      done
-
-
-  # Code from module iswblank:
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5
+$as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; }
+    if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then
 
 
 
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
 
+          fi
+  fi
 
 
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
 
 
 
-  if test $ac_cv_func_iswblank = no; then
-    HAVE_ISWBLANK=0
-    if test $ac_cv_have_decl_iswblank = yes; then
-      REPLACE_ISWBLANK=1
-    fi
-  fi
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-        :
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
   else
-    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
-
-
-
+    REPLACE_FCNTL=1
+  fi
 
+    fi
 
 
+  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
 
 
-  gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
 
-    fi
-  fi
 
 
 
 
 
-  GNULIB_ISWBLANK=1
+  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
 
+  fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_ISWBLANK 1
-_ACEOF
 
 
 
-  # Code from module langinfo:
+          GNULIB_FCNTL=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
 
 
 
@@ -32682,379 +18607,260 @@ _ACEOF
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_langinfo_h='<'langinfo.h'>'
+       gl_cv_next_fcntl_h='<'fcntl.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <langinfo.h>" >&5
-$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
-if test "${gl_cv_next_langinfo_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
+$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
+if ${gl_cv_next_fcntl_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_langinfo_h = yes; then
-
-
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <langinfo.h>
+#include <fcntl.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/langinfo.h#{
-                    s#.*"\(.*/langinfo.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
-          else
-               gl_cv_next_langinfo_h='<'langinfo.h'>'
-             fi
+
+               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"`'"'
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_langinfo_h" >&5
-$as_echo "$gl_cv_next_langinfo_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5
+$as_echo "$gl_cv_next_fcntl_h" >&6; }
      fi
-     NEXT_LANGINFO_H=$gl_cv_next_langinfo_h
+     NEXT_FCNTL_H=$gl_cv_next_fcntl_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='<'langinfo.h'>'
+       gl_next_as_first_directive='<'fcntl.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_langinfo_h
+       gl_next_as_first_directive=$gl_cv_next_fcntl_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive
-
+     NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive
 
 
 
 
-    HAVE_LANGINFO_CODESET=0
-  HAVE_LANGINFO_T_FMT_AMPM=0
-  HAVE_LANGINFO_ERA=0
-  HAVE_LANGINFO_YESEXPR=0
 
 
 
 
 
 
-  if test $ac_cv_header_langinfo_h = yes; then
-    HAVE_LANGINFO_H=1
-            { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines CODESET" >&5
-$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
-if test "${gl_cv_header_langinfo_codeset+set}" = set; then
+    for gl_func in fcntl openat; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <langinfo.h>
-int a = CODESET;
+#include <fcntl.h>
 
 int
 main ()
 {
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_langinfo_codeset=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_header_langinfo_codeset=no
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_codeset" >&5
-$as_echo "$gl_cv_header_langinfo_codeset" >&6; }
-    if test $gl_cv_header_langinfo_codeset = yes; then
-      HAVE_LANGINFO_CODESET=1
-    fi
-    { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines T_FMT_AMPM" >&5
-$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
-if test "${gl_cv_header_langinfo_t_fmt_ampm+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = T_FMT_AMPM;
 
-int
-main ()
-{
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_langinfo_t_fmt_ampm=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_header_langinfo_t_fmt_ampm=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
-$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
-    if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
-      HAVE_LANGINFO_T_FMT_AMPM=1
-    fi
-    { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines ERA" >&5
-$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
-if test "${gl_cv_header_langinfo_era+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <langinfo.h>
-int a = ERA;
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_langinfo_era=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_header_langinfo_era=no
+    ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" "
+#include <dirent.h>
+
+"
+if test "x$ac_cv_have_decl_fdopendir" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FDOPENDIR $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
 
+else
+  HAVE_DECL_FDOPENDIR=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_era" >&5
-$as_echo "$gl_cv_header_langinfo_era" >&6; }
-    if test $gl_cv_header_langinfo_era = yes; then
-      HAVE_LANGINFO_ERA=1
-    fi
-    { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines YESEXPR" >&5
-$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
-if test "${gl_cv_header_langinfo_yesexpr+set}" = set; then
+
+
+  if test $ac_cv_func_fdopendir = no; then
+    HAVE_FDOPENDIR=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5
+$as_echo_n "checking whether fdopendir works... " >&6; }
+if ${gl_cv_func_fdopendir_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_fdopendir_works="guessing no" ;;
+          esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <langinfo.h>
-int a = YESEXPR;
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
 
 int
 main ()
 {
-
+int result = 0;
+     int fd = open ("conftest.c", O_RDONLY);
+     if (fd < 0) result |= 1;
+     if (fdopendir (fd)) result |= 2;
+     if (close (fd)) result |= 4;
+     return result;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_langinfo_yesexpr=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fdopendir_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_fdopendir_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
 
-       gl_cv_header_langinfo_yesexpr=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopendir_works" >&5
+$as_echo "$gl_cv_func_fdopendir_works" >&6; }
+    case "$gl_cv_func_fdopendir_works" in
+      *yes) ;;
+      *)
+        REPLACE_FDOPENDIR=1
+        ;;
+    esac
+  fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_yesexpr" >&5
-$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
-    if test $gl_cv_header_langinfo_yesexpr = yes; then
-      HAVE_LANGINFO_YESEXPR=1
-    fi
-  else
-    HAVE_LANGINFO_H=0
   fi
 
 
 
 
 
+          GNULIB_FDOPENDIR=1
 
 
 
-  for gl_func in nl_langinfo; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+
+$as_echo "#define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FDOPENDIR 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <langinfo.h>
 
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FDUTIMENSAT 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_gl_Symbol=no"
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+
+
+    ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
 _ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
+
+$as_echo "#define HAVE_ST_BLOCKS 1" >>confdefs.h
+
+else
+  :
 fi
 
-      done
 
 
-  # Code from module lchown:
 
+  if test $ac_cv_member_struct_stat_st_blocks = no; then
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fileblocks.$ac_objext"
 
 
 
+  :
 
+  fi
 
 
 
 
 
-for ac_func in lchown
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  FLOAT_H=
+  REPLACE_FLOAT_LDBL=0
+  case "$host_os" in
+    aix* | beos* | openbsd* | mirbsd* | irix*)
+      FLOAT_H=float.h
+      ;;
+    freebsd*)
+      case "$host_cpu" in
+        i[34567]86 )
+          FLOAT_H=float.h
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+             yes
+             #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+else
+  FLOAT_H=float.h
+fi
+rm -f conftest*
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          FLOAT_H=float.h
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | linux*)
+      if test -n "$FLOAT_H"; then
+        REPLACE_FLOAT_LDBL=1
+      fi
+      ;;
+  esac
 
-#undef $ac_func
+    REPLACE_ITOLD=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if ${gl_cv_func_itold_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+      if test "$cross_compiling" = yes; then :
+  case "$host" in
+           sparc*-*-linux*)
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __arch64__
+                yes
+                #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_func_itold_works="guessing no"
+else
+  gl_cv_func_itold_works="guessing yes"
+fi
+rm -f conftest*
 
-int
-main ()
+             ;;
+           *) gl_cv_func_itold_works="guessing yes" ;;
+         esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int i = -1;
+volatile long double ld;
+int main ()
 {
-return $ac_func ();
-  ;
+  ld += i * 1.0L;
+  if (ld > 0)
+    return 1;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_itold_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_func_itold_works=no
 fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+                  FLOAT_H=float.h
+      ;;
+  esac
 
-else
+  if test -n "$FLOAT_H"; then
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
-fi
-done
 
 
-  if test $ac_cv_func_lchown = no; then
-    HAVE_LCHOWN=0
-  elif test "$gl_cv_func_chown_slash_works" != yes \
-      || test "$gl_cv_func_chown_ctime_works" != yes; then
 
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_float_h='<'float.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if ${gl_cv_next_float_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <float.h>
+
+_ACEOF
+                                                                                                                        case "$host_os" in
+                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
+                 *)    gl_absname_cpp="$ac_cpp" ;;
+               esac
+
+               case "$host_os" in
+                 mingw*)
+                                                                                                                                     gl_dirsep_regex='[/\\]'
+                   ;;
+                 *)
+                   gl_dirsep_regex='\/'
+                   ;;
+               esac
+                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+               gl_header_literal_regex=`echo 'float.h' \
+                                        | sed -e "$gl_make_literal_regex_sed"`
+               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+                   s|^/[^/]|//&|
+                   p
+                   q
+                 }'
+                                                            gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+                      sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
+$as_echo "$gl_cv_next_float_h" >&6; }
+     fi
+     NEXT_FLOAT_H=$gl_cv_next_float_h
 
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'float.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_float_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
 
-    REPLACE_LCHOWN=1
   fi
 
+   if test -n "$FLOAT_H"; then
+  GL_GENERATE_FLOAT_H_TRUE=
+  GL_GENERATE_FLOAT_H_FALSE='#'
+else
+  GL_GENERATE_FLOAT_H_TRUE='#'
+  GL_GENERATE_FLOAT_H_FALSE=
+fi
 
 
 
-  GNULIB_LCHOWN=1
+  if test $REPLACE_FLOAT_LDBL = 1; then
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_LCHOWN 1
-_ACEOF
 
 
 
-  # Code from module link:
 
 
+  gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
 
+  fi
+  if test $REPLACE_ITOLD = 1; then
 
 
 
 
 
-  if test $ac_cv_func_link = no; then
-    HAVE_LINK=0
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
 
+  fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
 
-  else
-    { $as_echo "$as_me:$LINENO: checking whether link handles trailing slash correctly" >&5
-$as_echo_n "checking whether link handles trailing slash correctly... " >&6; }
-if test "${gl_cv_func_link_works+set}" = set; then
+  FNMATCH_H=
+  gl_fnmatch_required_lowercase=`
+    echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
+  `
+  gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if eval \${$gl_fnmatch_cache_var+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  touch conftest.a
-       # Assume that if we have lstat, we can also check symlinks.
-       if test $ac_cv_func_lstat = yes; then
-         ln -s conftest.a conftest.lnk
-       fi
-       if test "$cross_compiling" = yes; then
-  gl_cv_func_link_works="guessing no"
+                           if test $gl_fnmatch_required = GNU; then
+       gl_fnmatch_gnu_start=
+       gl_fnmatch_gnu_end=
+     else
+       gl_fnmatch_gnu_start='#if 0'
+       gl_fnmatch_gnu_end='#endif'
+     fi
+     if test "$cross_compiling" = yes; then :
+  eval "$gl_fnmatch_cache_var=\"guessing no\""
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
+#include <fnmatch.h>
+            static int
+            y (char const *pattern, char const *string, int flags)
+            {
+              return fnmatch (pattern, string, flags) == 0;
+            }
+            static int
+            n (char const *pattern, char const *string, int flags)
+            {
+              return fnmatch (pattern, string, flags) == FNM_NOMATCH;
+            }
 
 int
 main ()
 {
-int result = 0;
-             if (!link ("conftest.a", "conftest.b/"))
-               result |= 1;
-#if HAVE_LSTAT
-             if (!link ("conftest.lnk/", "conftest.b"))
-               result |= 2;
-#endif
-             return result;
+char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
+            char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
+            static char const A_1[] = { 'A' - 1, 0 };
+            static char const A01[] = { 'A' + 1, 0 };
+            static char const a_1[] = { 'a' - 1, 0 };
+            static char const a01[] = { 'a' + 1, 0 };
+            static char const bs_1[] = { '\\\\' - 1, 0 };
+            static char const bs01[] = { '\\\\' + 1, 0 };
+            int result = 0;
+            if (!n ("a*", "", 0))
+              return 1;
+            if (!y ("a*", "abc", 0))
+              return 1;
+            if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+              return 1;
+            if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+              return 2;
+            if (!y ("a\\\\bc", "abc", 0))
+              return 3;
+            if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+              return 3;
+            if (!y ("*x", ".x", 0))
+              return 4;
+            if (!n ("*x", ".x", FNM_PERIOD))
+              return 4;
+            if (!y (Apat, "\\\\", 0))
+              return 5;
+            if (!y (Apat, "A", 0))
+              return 5;
+            if (!y (apat, "\\\\", 0))
+              return 5;
+            if (!y (apat, "a", 0))
+              return 5;
+            if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+              return 5;
+            $gl_fnmatch_gnu_start
+            if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+              result |= 8;
+            if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+              result |= 16;
+            if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+              result |= 32;
+            if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            $gl_fnmatch_gnu_end
+            return result;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_link_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  eval "$gl_fnmatch_cache_var=yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_link_works=no
+  eval "$gl_fnmatch_cache_var=no"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-       rm -f conftest.a conftest.b conftest.lnk
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_link_works" >&5
-$as_echo "$gl_cv_func_link_works" >&6; }
-    if test "$gl_cv_func_link_works" != yes; then
-      REPLACE_LINK=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
-
-    fi
+eval ac_res=\$$gl_fnmatch_cache_var
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
+  if test "$gl_fnmatch_result" = yes; then
+            rm -f "$gl_source_base/fnmatch.h"
+  else
+    FNMATCH_H=fnmatch.h
   fi
 
+   if test -n "$FNMATCH_H"; then
+  GL_GENERATE_FNMATCH_H_TRUE=
+  GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+  GL_GENERATE_FNMATCH_H_TRUE='#'
+  GL_GENERATE_FNMATCH_H_FALSE=
+fi
 
 
-
-  GNULIB_LINK=1
-
+  if test -n "$FNMATCH_H"; then
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_LINK 1
-_ACEOF
 
 
 
-  # Code from module link-follow:
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
 
 
-          gl_link_follows_symlinks=0 # assume GNU behavior
-  if test $ac_cv_func_readlink = yes; then
-                { $as_echo "$as_me:$LINENO: checking for __xpg4" >&5
-$as_echo_n "checking for __xpg4... " >&6; }
-if test "${gl_cv_have___xpg4+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-extern int __xpg4;
-int
-main ()
-{
-return __xpg4;
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gl_cv_have___xpg4=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_have___xpg4=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_have___xpg4" >&5
-$as_echo "$gl_cv_have___xpg4" >&6; }
-    if test $gl_cv_have___xpg4 = yes; then
-      gl_link_follows_symlinks=-1
-    else
-      { $as_echo "$as_me:$LINENO: checking whether link(2) dereferences a symlink" >&5
-$as_echo_n "checking whether link(2) dereferences a symlink... " >&6; }
-if test "${gl_cv_func_link_follows_symlink+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-         # Create a regular file.
-         echo > conftest.file
-         if test "$cross_compiling" = yes; then
-             gl_cv_func_link_follows_symlink=unknown
+  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 :
+  ac_have_decl=1
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#       include <sys/types.h>
-#       include <sys/stat.h>
-#       include <unistd.h>
-#       include <stdlib.h>
-
-#       define SAME_INODE(Stat_buf_1, Stat_buf_2) \
-          ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
-           && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
-
-        int
-        main ()
-        {
-          const char *file = "conftest.file";
-          const char *sym = "conftest.sym";
-          const char *hard = "conftest.hard";
-          struct stat sb_file, sb_hard;
-
-          /* Create a symlink to the regular file. */
-          if (symlink (file, sym))
-            return 2;
-
-          /* Create a hard link to that symlink.  */
-          if (link (sym, hard))
-            return 3;
-
-          if (lstat (hard, &sb_hard))
-            return 4;
-          if (lstat (file, &sb_file))
-            return 5;
-
-          /* If the dev/inode of hard and file are the same, then
-             the link call followed the symlink.  */
-          return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
-        }
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_link_follows_symlink=no
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-           gl_cv_func_link_follows_symlink=yes
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-         rm -f conftest.file conftest.sym conftest.hard
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_link_follows_symlink" >&5
-$as_echo "$gl_cv_func_link_follows_symlink" >&6; }
-      case $gl_cv_func_link_follows_symlink in
-        yes) gl_link_follows_symlinks=1 ;;
-        no) ;; # already defaulted to 0
-        *) gl_link_follows_symlinks=-2 ;;
-      esac
-    fi
   fi
 
-cat >>confdefs.h <<_ACEOF
-#define LINK_FOLLOWS_SYMLINKS $gl_link_follows_symlinks
-_ACEOF
-
-
-  # Code from module linkat:
 
 
 
 
+  if test -n "$FNMATCH_H"; then
 
 
 
@@ -33523,25 +19284,54 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
 
 
-  if test $ac_cv_func_linkat = no; then
-    HAVE_LINKAT=0
 
 
+  fi
 
 
 
+  fp_headers='
+#     include <stdio.h>
+#     if HAVE_STDIO_EXT_H
+#      include <stdio_ext.h>
+#     endif
+'
+  ac_fn_c_check_decl "$LINENO" "__fpending" "ac_cv_have_decl___fpending" "$fp_headers
+"
+if test "x$ac_cv_have_decl___fpending" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___FPENDING $ac_have_decl
+_ACEOF
 
 
-  gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
+  if test $ac_cv_func___fpending = no; then
 
 
 
@@ -33550,212 +19340,120 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
 
-  gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
 
-  else
-    { $as_echo "$as_me:$LINENO: checking whether linkat(,AT_SYMLINK_FOLLOW) works" >&5
-$as_echo_n "checking whether linkat(,AT_SYMLINK_FOLLOW) works... " >&6; }
-if test "${gl_cv_func_linkat_follow+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  rm -rf conftest.f1 conftest.f2
-       touch conftest.f1
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to determine the number of pending output bytes on a stream" >&5
+$as_echo_n "checking how to determine the number of pending output bytes on a stream... " >&6; }
+if ${ac_cv_sys_pending_output_n_bytes+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      for ac_expr in                                                    \
+                                                                        \
+          '# glibc2'                                                    \
+          'fp->_IO_write_ptr - fp->_IO_write_base'                      \
+                                                                        \
+          '# traditional Unix'                                          \
+          'fp->_ptr - fp->_base'                                        \
+                                                                        \
+          '# BSD'                                                       \
+          'fp->_p - fp->_bf._base'                                      \
+                                                                        \
+          '# SCO, Unixware'                                             \
+          '(fp->__ptr ? fp->__ptr - fp->__base : 0)'                    \
+                                                                        \
+          '# QNX'                                                       \
+          '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
+                                                                        \
+          '# old glibc?'                                                \
+          'fp->__bufp - fp->__buffer'                                   \
+                                                                        \
+          '# old glibc iostream?'                                       \
+          'fp->_pptr - fp->_pbase'                                      \
+                                                                        \
+          '# emx+gcc'                                                   \
+          'fp->_ptr - fp->_buffer'                                      \
+                                                                        \
+          '# Minix'                                                     \
+          'fp->_ptr - fp->_buf'                                         \
+                                                                        \
+          '# Plan9'                                                     \
+          'fp->wp - fp->buf'                                            \
+                                                                        \
+          '# VMS'                                                       \
+          '(*fp)->_ptr - (*fp)->_base'                                  \
+                                                                        \
+          '# e.g., DGUX R4.11; the info is not available'               \
+          1                                                             \
+          ; do
+
+        # Skip each embedded comment.
+        case "$ac_expr" in '#'*) continue;; esac
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <fcntl.h>
-#include <unistd.h>
-#ifdef __linux__
-/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
-   until 2.6.18.  Always replace linkat to support older kernels.  */
-choke me
-#endif
-
+#include <stdio.h>
 int
 main ()
 {
-return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
-                    AT_SYMLINK_FOLLOW);
+FILE *fp = stdin; (void) ($ac_expr);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_linkat_follow=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
+  fp_done=yes
 
-       gl_cv_func_linkat_follow="need runtime check"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       rm -rf conftest.f1 conftest.f2
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_linkat_follow" >&5
-$as_echo "$gl_cv_func_linkat_follow" >&6; }
-    { $as_echo "$as_me:$LINENO: checking whether linkat handles trailing slash correctly" >&5
-$as_echo_n "checking whether linkat handles trailing slash correctly... " >&6; }
-if test "${gl_cv_func_linkat_slash+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  rm -rf conftest.a conftest.b conftest.c conftest.d
-       if test "$cross_compiling" = yes; then
-  # Guess yes on glibc systems, no otherwise.
-          case "$host_os" in
-            *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
-            *)      gl_cv_func_linkat_slash="guessing no";;
-          esac
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-              #include <fcntl.h>
-              #include <errno.h>
-              #include <stdio.h>
+        test "$fp_done" = yes && break
+      done
 
-int
-main ()
-{
-int result;
-              int fd;
-              /* Create a regular file.  */
-              fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
-              if (fd < 0)
-                return 1;
-              if (write (fd, "hello", 5) < 5)
-                return 2;
-              if (close (fd) < 0)
-                return 3;
-              /* Test whether hard links are supported on the current
-                 device.  */
-              if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
-                          AT_SYMLINK_FOLLOW) < 0)
-                return 0;
-              result = 0;
-              /* Test whether a trailing "/" is treated like "/.".  */
-              if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
-                          AT_SYMLINK_FOLLOW) == 0)
-                result |= 4;
-              if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
-                          AT_SYMLINK_FOLLOW) == 0)
-                result |= 8;
-              return result;
+      ac_cv_sys_pending_output_n_bytes=$ac_expr
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_linkat_slash=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_linkat_slash=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_pending_output_n_bytes" >&5
+$as_echo "$ac_cv_sys_pending_output_n_bytes" >&6; }
 
-
-       rm -rf conftest.a conftest.b conftest.c conftest.d
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_linkat_slash" >&5
-$as_echo "$gl_cv_func_linkat_slash" >&6; }
-    case "$gl_cv_func_linkat_slash" in
-      *yes) gl_linkat_slash_bug=0 ;;
-      *)    gl_linkat_slash_bug=1 ;;
-    esac
-    if test "$gl_cv_func_linkat_follow" != yes \
-       || test $gl_linkat_slash_bug = 1; then
-      REPLACE_LINKAT=1
+cat >>confdefs.h <<_ACEOF
+#define PENDING_OUTPUT_N_BYTES $ac_cv_sys_pending_output_n_bytes
+_ACEOF
 
 
+  fi
 
 
 
+    if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+    REPLACE_FSEEK=1
+  fi
 
+  if test $REPLACE_FSEEK = 1; then
 
 
-  gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
 
 
-cat >>confdefs.h <<_ACEOF
-#define LINKAT_TRAILING_SLASH_BUG $gl_linkat_slash_bug
-_ACEOF
 
-    fi
-  fi
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext"
 
-  GNULIB_LINKAT=1
+  fi
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_LINKAT 1
-_ACEOF
 
 
+          GNULIB_FSEEK=1
 
-  # Code from module localcharset:
 
 
 
 
+$as_echo "#define GNULIB_TEST_FSEEK 1" >>confdefs.h
 
 
 
@@ -33763,423 +19461,332 @@ _ACEOF
 
 
 
-  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
 
-  # Code from module lseek:
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether lseek detects pipes" >&5
-$as_echo_n "checking whether lseek detects pipes... " >&6; }
-if test "${gl_cv_func_lseek_pipe+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test $cross_compiling = no; then
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdio.h>
 
-#include <sys/types.h> /* for off_t */
-#include <stdio.h> /* for SEEK_CUR */
-#include <unistd.h>
 int
 main ()
 {
-
-  /* Exit with success only if stdin is seekable.  */
-  return lseek (0, (off_t)0, SEEK_CUR) < 0;
-
+fseeko (stdin, 0, 0);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  if test -s conftest$ac_exeext \
-             && ./conftest$ac_exeext < conftest.$ac_ext \
-             && test 1 = "`echo hi \
-               | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then
-            gl_cv_func_lseek_pipe=yes
-          else
-            gl_cv_func_lseek_pipe=no
-          fi
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_fseeko=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-       gl_cv_func_lseek_pipe=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     else
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__
-/* mingw and BeOS mistakenly return 0 when trying to seek on pipes.  */
-  Choke me.
-#endif
+  if test $ac_cv_have_decl_fseeko = no; then
+    HAVE_DECL_FSEEKO=0
+  fi
+
+  if test $gl_cv_func_fseeko = no; then
+    HAVE_FSEEKO=0
+  else
+    if test $WINDOWS_64_BIT_OFF_T = 1; then
+      REPLACE_FSEEKO=1
+    fi
+    if test $gl_cv_var_stdin_large_offset = no; then
+      REPLACE_FSEEKO=1
+    fi
+
+  fi
+
+  if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
+
+
+      for ac_func in _fseeki64
+do :
+  ac_fn_c_check_func "$LINENO" "_fseeki64" "ac_cv_func__fseeki64"
+if test "x$ac_cv_func__fseeki64" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE__FSEEKI64 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_lseek_pipe=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_func_lseek_pipe=no
 fi
+done
+
+
+  fi
+
+
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_lseek_pipe" >&5
-$as_echo "$gl_cv_func_lseek_pipe" >&6; }
-  if test $gl_cv_func_lseek_pipe = no; then
 
+          GNULIB_FSEEKO=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
 
 
-  REPLACE_LSEEK=1
 
-cat >>confdefs.h <<\_ACEOF
-#define LSEEK_PIPE_BROKEN 1
-_ACEOF
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FSTAT=1
+  fi
 
 
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+    REPLACE_FSTAT=1
   fi
 
 
 
 
-  GNULIB_LSEEK=1
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
+
+    if test $HAVE_FCHDIR = 0; then
+      case "$gl_cv_func_open_directory_works" in
+        *yes) ;;
+        *)
+          REPLACE_FSTAT=1
+          ;;
+      esac
+    fi
 
 
+  if test $REPLACE_FSTAT = 1; then
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_LSEEK 1
-_ACEOF
 
 
 
-  # Code from module lstat:
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
 
+    :
+  fi
 
 
 
-  if test $ac_cv_func_lstat = yes; then
 
-    if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
-            REPLACE_LSTAT=1
-    fi
-    # Prerequisites of lib/lstat.c.
 
-  else
-    HAVE_LSTAT=0
-  fi
+          GNULIB_FSTAT=1
 
 
 
 
-  GNULIB_LSTAT=1
 
+$as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_LSTAT 1
-_ACEOF
 
 
 
-  # Code from module malloc-gnu:
 
 
 
-for ac_header in stdlib.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+  if test $ac_cv_func_fstatat = no; then
+    HAVE_FSTATAT=0
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5
+$as_echo_n "checking whether fstatat (..., 0) works... " >&6; }
+if ${gl_cv_func_fstatat_zero_flag+:} false; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+            aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+            *)    gl_cv_func_fstatat_zero_flag="guessing yes";;
+          esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+
+              #include <fcntl.h>
+              #include <sys/stat.h>
+              int
+              main (void)
+              {
+                struct stat a;
+                return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+              }
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fstatat_zero_flag=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_fstatat_zero_flag=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
 
-       ac_header_compiler=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5
+$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; }
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+    case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+    *yes+*yes) ;;
+    *) REPLACE_FSTATAT=1
+       case $gl_cv_func_fstatat_zero_flag in
+       *yes)
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h
 
-  ac_header_preproc=no
-fi
+         ;;
+       esac
+       ;;
+    esac
+  fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+  if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
 
-done
 
-{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_FSTATAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h
+
+
+
+
+
+
+
+  if test $ac_cv_func_futimens = no; then
+    HAVE_FUTIMENS=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimens works" >&5
+$as_echo_n "checking whether futimens works... " >&6; }
+if ${gl_cv_func_futimens_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_malloc_0_nonnull=no
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_futimens_works="guessing no"
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main ()
+{
+struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+      int fd = creat ("conftest.file", 0600);
+      struct stat st;
+      if (fd < 0) return 1;
+      errno = 0;
+      if (futimens (AT_FDCWD, NULL) == 0) return 2;
+      if (errno != EBADF) return 3;
+      if (futimens (fd, ts)) return 4;
+      sleep (1);
+      ts[0].tv_nsec = UTIME_NOW;
+      ts[1].tv_nsec = UTIME_OMIT;
+      if (futimens (fd, ts)) return 5;
+      if (fstat (fd, &st)) return 6;
+      if (st.st_ctime < st.st_atime) return 7;
+
+  ;
+  return 0;
+}
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
+
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+   in several file systems as recently as 2.6.32.  Always replace futimens
+   to support older kernels.  */
+choke me
 #endif
 
 int
 main ()
 {
-return ! malloc (0);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_malloc_0_nonnull=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_futimens_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_malloc_0_nonnull=no
+  gl_cv_func_futimens_works="needs runtime check"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  gl_cv_func_futimens_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
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLOC_GNU 1
-_ACEOF
-
-else
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLOC_GNU 0
-_ACEOF
 
+      rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimens_works" >&5
+$as_echo "$gl_cv_func_futimens_works" >&6; }
+    if test "$gl_cv_func_futimens_works" != yes; then
+      REPLACE_FUTIMENS=1
+    fi
+  fi
 
+  if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
 
 
 
@@ -34188,828 +19795,626 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
 
-  REPLACE_MALLOC=1
+  fi
 
 
-fi
 
 
 
+          GNULIB_FUTIMENS=1
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_MALLOC_GNU 1
-_ACEOF
 
 
-  # Code from module malloc-posix:
 
+$as_echo "#define GNULIB_TEST_FUTIMENS 1" >>confdefs.h
 
 
-  if test $gl_cv_func_malloc_posix = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MALLOC_POSIX 1
-_ACEOF
 
-  else
 
 
 
 
+  gl_abort_bug=no
+  case "$host_os" in
+    mingw*)
+      gl_cv_func_getcwd_path_max=yes
+      ;;
+    *)
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5
+$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
+if ${gl_cv_func_getcwd_path_max+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir3"
+          if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+       aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+       *) gl_cv_func_getcwd_path_max=no;;
+     esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  REPLACE_MALLOC=1
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
 
-  fi
 
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
 
 
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
 
-  GNULIB_MALLOC_POSIX=1
+/* Use the getcwd function, not any macro.  */
+#undef getcwd
 
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
 
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MALLOC_POSIX 1
-_ACEOF
+/* The length of this name must be 8.  */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
 
+/* The length of "../".  */
+#define DOTDOTSLASH_LEN 3
 
+/* Leftover bytes in the buffer, to work around library or OS bugs.  */
+#define BUF_SLOP 20
 
-  # Code from module malloca:
+int
+main ()
+{
+#ifndef PATH_MAX
+  /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+     at least not on a local file system.  And if we were to start worrying
+     about remote file systems, we'd have to enable the wrapper function
+     all of the time, just to be safe.  That's not worth the cost.  */
+  exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+        - DIR_NAME_SIZE - BUF_SLOP) \
+       <= PATH_MAX)
+  /* FIXME: Assuming there's a system for which this is true,
+     this should be done in a compile test.  */
+  exit (0);
+#else
+  char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+           + DIR_NAME_SIZE + BUF_SLOP];
+  char *cwd = getcwd (buf, PATH_MAX);
+  size_t initial_cwd_len;
+  size_t cwd_len;
+  int fail = 0;
+  size_t n_chdirs = 0;
 
+  if (cwd == NULL)
+    exit (10);
 
+  cwd_len = initial_cwd_len = strlen (cwd);
 
+  while (1)
+    {
+      size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+      char *c = NULL;
 
-  # Code from module mbchar:
+      cwd_len += DIR_NAME_SIZE;
+      /* If mkdir or chdir fails, it could be that this system cannot create
+         any file with an absolute name longer than PATH_MAX, such as cygwin.
+         If so, leave fail as 0, because the current working directory can't
+         be too long for getcwd if it can't even be created.  For other
+         errors, be pessimistic and consider that as a failure, too.  */
+      if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+        {
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            fail = 20;
+          break;
+        }
 
+      if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+        {
+          c = getcwd (buf, PATH_MAX);
+          if (!c && errno == ENOENT)
+            {
+              fail = 11;
+              break;
+            }
+          if (c)
+            {
+              fail = 31;
+              break;
+            }
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            {
+              fail = 21;
+              break;
+            }
+        }
 
+      if (dotdot_max <= cwd_len - initial_cwd_len)
+        {
+          if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
+            break;
+          c = getcwd (buf, cwd_len + 1);
+          if (!c)
+            {
+              if (! (errno == ERANGE || errno == ENOENT
+                     || is_ENAMETOOLONG (errno)))
+                {
+                  fail = 22;
+                  break;
+                }
+              if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+                {
+                  fail = 12;
+                  break;
+                }
+            }
+        }
 
+      if (c && strlen (c) != cwd_len)
+        {
+          fail = 23;
+          break;
+        }
+      ++n_chdirs;
+    }
 
-  # Code from module mbrtowc:
+  /* Leaving behind such a deep directory is not polite.
+     So clean up here, right away, even though the driving
+     shell script would also clean up.  */
+  {
+    size_t i;
 
+    /* Try rmdir first, in case the chdir failed.  */
+    rmdir (DIR_NAME);
+    for (i = 0; i <= n_chdirs; i++)
+      {
+        if (chdir ("..") < 0)
+          break;
+        if (rmdir (DIR_NAME) != 0)
+          break;
+      }
+  }
 
+  exit (fail);
+#endif
+}
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getcwd_path_max=yes
+else
+  case $? in
+     10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+     31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+     *) gl_cv_func_getcwd_path_max=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5
+$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
 
+      case "$gl_cv_func_getcwd_null" in
+        *yes)
 
 
 
 
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
 
+fi
+done
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5
+$as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; }
+if ${gl_cv_func_getcwd_abort_bug+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # Remove any remnants of a previous test.
+     rm -rf confdir-14B---
+     # Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir-14B---"
+          if test "$cross_compiling" = yes; then :
+  gl_cv_func_getcwd_abort_bug=yes
+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 */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
 
 
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
 
 
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
 
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
 
+/* FIXME: skip the run-test altogether on systems without getpagesize.  */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+   the 16kB pagesize on ia64 linux.  Those conditions make the code below
+   trigger a bug in glibc's getcwd implementation before 2.4.90-10.  */
+#define TARGET_LEN (5 * 1024)
 
+int
+main ()
+{
+  char *cwd;
+  size_t initial_cwd_len;
+  int fail = 0;
 
+  /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+     this relatively expensive and invasive test if that's not true.  */
+#ifdef PATH_MAX
+  int bug_possible = PATH_MAX < getpagesize ();
+#else
+  int bug_possible = 0;
+#endif
+  if (! bug_possible)
+    return 0;
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
+  cwd = getcwd (NULL, 0);
+  if (cwd == NULL)
+    return 2;
 
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  initial_cwd_len = strlen (cwd);
+  free (cwd);
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+  if (1)
     {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
+      static char const dir_name[] = "confdir-14B---";
+      size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+                              / sizeof dir_name);
+      size_t d;
+      for (d = 0; d < desired_depth; d++)
+        {
+          if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
+            {
+              if (! (errno == ERANGE || errno == ENAMETOOLONG
+                     || errno == ENOENT))
+                fail = 3; /* Unable to construct deep hierarchy.  */
+              break;
+            }
+        }
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
+      /* If libc has the bug in question, this invocation of getcwd
+         results in a failed assertion.  */
+      cwd = getcwd (NULL, 0);
+      if (cwd == NULL)
+        fail = 4; /* getcwd didn't assert, but it failed for a long name
+                     where the answer could have been learned.  */
+      free (cwd);
+
+      /* Call rmdir first, in case the above chdir failed.  */
+      rmdir (dir_name);
+      while (0 < d--)
+        {
+          if (chdir ("..") < 0)
+            {
+              fail = 5;
+              break;
+            }
+          rmdir (dir_name);
+        }
     }
-  return 0;
+
+  return fail;
 }
+
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_incomplete_state=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getcwd_abort_bug=no
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+                                ret=$?
+     if test $ret -ge 128 || test $ret = 4; then
+       gl_cv_func_getcwd_abort_bug=yes
+     else
+       gl_cv_func_getcwd_abort_bug=no
+     fi
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_incomplete_state=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_abort_bug" >&5
+$as_echo "$gl_cv_func_getcwd_abort_bug" >&6; }
+  if test $gl_cv_func_getcwd_abort_bug = yes; then :
+  gl_abort_bug=yes
 fi
 
+          ;;
+      esac
+      ;;
+  esac
+      case "$gl_cv_func_getcwd_path_max" in
+    "no"|"no, it has the AIX bug") ;;
+    *)
 
-      fi
+$as_echo "#define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+      ;;
+  esac
+  case "$gl_cv_func_getcwd_path_max" in
+    "no, but it is partly working")
 
+$as_echo "#define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h
 
+      ;;
+  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 \
+     || test $gl_abort_bug = yes; then
+    REPLACE_GETCWD=1
+  fi
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
+  if test $REPLACE_GETCWD = 1; then
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-  if test $REPLACE_MBSTATE_T = 1; then
+  gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
+
 
-    :
+
+
+  :
 
   fi
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_GETCWD 1
+_ACEOF
 
 
 
 
 
 
-  if test $ac_cv_func_mbrtowc = no; then
-    HAVE_MBRTOWC=0
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBRTOWC=1
-    else
 
+          GNULIB_GETCWD=1
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles a NULL pwc argument" >&5
-$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
-if test "${gl_cv_func_mbrtowc_null_arg1+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-                  # Guess no on Solaris.
-        solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
-                  # Guess yes otherwise.
-        *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
 
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      char input[] = "\303\237er";
-      mbstate_t state;
-      wchar_t wc;
-      size_t ret;
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      wc = (wchar_t) 0xBADFACE;
-      ret = mbrtowc (&wc, input, 5, &state);
-      if (ret != 2)
-        result |= 1;
-      if (!mbsinit (&state))
-        result |= 2;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      ret = mbrtowc (NULL, input, 5, &state);
-      if (ret != 2) /* Solaris 7 fails here: ret is -1.  */
-        result |= 4;
-      if (!mbsinit (&state))
-        result |= 8;
-    }
-  return result;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_null_arg1=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_null_arg1=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_null_arg1" >&5
-$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
 
 
+  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+  *yes,yes) ;;
+  *)
+        REPLACE_GETCWD=1
+    ;;
+  esac
 
+  if test $REPLACE_GETCWD = 1; then
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles a NULL string argument" >&5
-$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
-if test "${gl_cv_func_mbrtowc_null_arg2+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-              # Guess no on OSF/1.
-        osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc;
-      int ret;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      wc = (wchar_t) 0xBADFACE;
-      mbrtowc (&wc, NULL, 5, &state);
-      /* Check that wc was not modified.  */
-      if (wc != (wchar_t) 0xBADFACE)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_null_arg2=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_null_arg2=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_null_arg2" >&5
-$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
+  gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext"
 
+  fi
 
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether mbrtowc has a correct return value" >&5
-$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
-if test "${gl_cv_func_mbrtowc_retval+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
+          GNULIB_GETCWD=1
 
-                  case "$host_os" in
-                                   # Guess no on HP-UX, Solaris, native Windows.
-        hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
-                                   # Guess yes otherwise.
-        *)                         gl_cv_func_mbrtowc_retval="guessing yes" ;;
-      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
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-  int found_some_locale = 0;
-  /* This fails on Solaris.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 1)
-            result |= 1;
-        }
-      found_some_locale = 1;
-    }
-  /* This fails on HP-UX 11.11.  */
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 2)
-            result |= 2;
-        }
-      found_some_locale = 1;
-    }
-  /* This fails on native Windows.  */
-  if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
-    {
-      char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 4;
-        }
-      found_some_locale = 1;
-    }
-  if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
-    {
-      char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 8;
-        }
-      found_some_locale = 1;
-    }
-  if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
-    {
-      char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
-        {
-          input[3] = '\0';
-          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
-            result |= 16;
-        }
-      found_some_locale = 1;
-    }
-  return (found_some_locale ? result : 77);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_retval=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-if test $? != 77; then
-             gl_cv_func_mbrtowc_retval=no
-           fi
 
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
 
 
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
-$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
-if test "${gl_cv_func_mbrtowc_nul_retval+set}" = set; then
+  if test $ac_cv_func_getdelim = yes; then
+    HAVE_GETDELIM=1
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5
+$as_echo_n "checking for working getdelim function... " >&6; }
+if ${gl_cv_func_working_getdelim+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+    if test "$cross_compiling" = yes; then :
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+  Lucky GNU user
+ #endif
+#endif
 
-                  case "$host_os" in
-                       # Guess no on Solaris 8 and 9.
-        solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
-                       # Guess yes otherwise.
-        *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+  gl_cv_func_working_getdelim="guessing yes"
+else
+  gl_cv_func_working_getdelim="guessing no"
+fi
+rm -f conftest*
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8 and 9.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+#    include <stdio.h>
+#    include <stdlib.h>
+#    include <string.h>
+    int main ()
     {
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "", 1, &state) != 0)
+      FILE *in = fopen ("./conftest.data", "r");
+      if (!in)
         return 1;
+      {
+        /* Test result for a NULL buffer and a zero size.
+           Based on a test program from Karl Heuer.  */
+        char *line = NULL;
+        size_t siz = 0;
+        int len = getdelim (&line, &siz, '\n', in);
+        if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+          return 2;
+      }
+      {
+        /* Test result for a NULL buffer and a non-zero size.
+           This crashes on FreeBSD 8.0.  */
+        char *line = NULL;
+        size_t siz = (size_t)(~0) / 4;
+        if (getdelim (&line, &siz, '\n', in) == -1)
+          return 3;
+      }
+      return 0;
     }
-  return 0;
-}
+
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_nul_retval=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_getdelim=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mbrtowc_nul_retval=no
+  gl_cv_func_working_getdelim=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-      fi
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_nul_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
-
-      case "$gl_cv_func_mbrtowc_null_arg1" in
-        *yes) ;;
-        *)
-cat >>confdefs.h <<\_ACEOF
-#define MBRTOWC_NULL_ARG1_BUG 1
-_ACEOF
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_null_arg2" in
-        *yes) ;;
-        *)
-cat >>confdefs.h <<\_ACEOF
-#define MBRTOWC_NULL_ARG2_BUG 1
-_ACEOF
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_retval" in
-        *yes) ;;
-        *)
-cat >>confdefs.h <<\_ACEOF
-#define MBRTOWC_RETVAL_BUG 1
-_ACEOF
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_nul_retval" in
-        *yes) ;;
-        *)
-cat >>confdefs.h <<\_ACEOF
-#define MBRTOWC_NUL_RETVAL_BUG 1
-_ACEOF
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-    fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
+$as_echo "$gl_cv_func_working_getdelim" >&6; }
+    case "$gl_cv_func_working_getdelim" in
+      *no)
+        REPLACE_GETDELIM=1
+        ;;
+    esac
+  else
+    HAVE_GETDELIM=0
   fi
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
 
-    :
+  if test $ac_cv_have_decl_getdelim = no; then
+    HAVE_DECL_GETDELIM=0
+  fi
 
+  if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
 
 
 
@@ -35018,43 +20423,57 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
 
 
-  :
+  for ac_func in flockfile funlockfile
+do :
+  as_ac_var=`$as_echo "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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-  fi
+fi
+done
 
+  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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
 
 
-  GNULIB_MBRTOWC=1
+  fi
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MBRTOWC 1
-_ACEOF
 
 
+          GNULIB_GETDELIM=1
 
-  # Code from module mbscasecmp:
 
 
 
-  GNULIB_MBSCASECMP=1
 
+$as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MBSCASECMP 1
-_ACEOF
 
 
 
-  # Code from module mbsinit:
 
+  if test $ac_cv_func_getdtablesize != yes; then
+    HAVE_GETDTABLESIZE=0
+  fi
 
+  if test $HAVE_GETDTABLESIZE = 0; then
 
 
 
@@ -35063,250 +20482,126 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
 
+    :
+  fi
 
 
 
 
 
+          GNULIB_GETDTABLESIZE=1
 
 
 
 
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+$as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
 
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
+  gl_getline_needs_run_time_check=no
+  ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline"
+if test "x$ac_cv_func_getline" = xyes; then :
+                   gl_getline_needs_run_time_check=yes
+else
+  am_cv_func_working_getline=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
-
 
+  if test $gl_getline_needs_run_time_check = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5
+$as_echo_n "checking for working getline function... " >&6; }
+if ${am_cv_func_working_getline+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+    if test "$cross_compiling" = yes; then :
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+  Lucky GNU user
+ #endif
+#endif
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then
-  $as_echo_n "(cached) " >&6
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+  am_cv_func_working_getline="guessing yes"
 else
+  am_cv_func_working_getline="guessing no"
+fi
+rm -f conftest*
+
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then
-  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+#    include <stdio.h>
+#    include <stdlib.h>
+#    include <string.h>
+    int main ()
     {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
+      FILE *in = fopen ("./conftest.data", "r");
+      if (!in)
         return 1;
+      {
+        /* Test result for a NULL buffer and a zero size.
+           Based on a test program from Karl Heuer.  */
+        char *line = NULL;
+        size_t siz = 0;
+        int len = getline (&line, &siz, in);
+        if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+          return 2;
+      }
+      {
+        /* Test result for a NULL buffer and a non-zero size.
+           This crashes on FreeBSD 8.0.  */
+        char *line = NULL;
+        size_t siz = (size_t)(~0) / 4;
+        if (getline (&line, &siz, in) == -1)
+          return 3;
+      }
+      return 0;
     }
-  return 0;
-}
+
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_sanitycheck=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  am_cv_func_working_getline=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mbrtowc_sanitycheck=no
+  am_cv_func_working_getline=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-      fi
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-  if test $REPLACE_MBSTATE_T = 1; then
-
-    :
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
+$as_echo "$am_cv_func_working_getline" >&6; }
   fi
 
-
-
-
-
-
-
-
-  if test $ac_cv_func_mbsinit = no; then
-    HAVE_MBSINIT=0
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSINIT=1
-    else
-                        case "$host_os" in
-        mingw*) REPLACE_MBSINIT=1 ;;
-      esac
-    fi
+  if test $ac_cv_have_decl_getline = no; then
+    HAVE_DECL_GETLINE=0
   fi
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
-    :
+  case "$am_cv_func_working_getline" in
+    *no)
+                        REPLACE_GETLINE=1
+      ;;
+  esac
 
+  if test $REPLACE_GETLINE = 1; then
 
 
 
@@ -35315,7 +20610,7 @@ $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
 
 
   :
@@ -35325,25 +20620,14 @@ $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
 
 
-  GNULIB_MBSINIT=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MBSINIT 1
-_ACEOF
-
-
-
-  # Code from module mbsrtowcs:
-
-
 
+          GNULIB_GETLINE=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h
 
 
 
@@ -35352,387 +20636,56 @@ _ACEOF
 
 
 
+  if test $REPLACE_GETOPT = 1; then
 
 
 
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
-
-
-
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
+  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
 
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-      fi
+  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-  if test $REPLACE_MBSTATE_T = 1; then
 
-    :
 
+        GNULIB_GL_UNISTD_H_GETOPT=1
   fi
 
 
 
+$as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h
 
 
 
 
 
-  if test $ac_cv_func_mbsrtowcs = no; then
-    HAVE_MBSRTOWCS=0
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSRTOWCS=1
-    else
-
-
-
-
-
-
-     { $as_echo "$as_me:$LINENO: checking whether mbsrtowcs works" >&5
-$as_echo_n "checking whether mbsrtowcs works... " >&6; }
-if test "${gl_cv_func_mbsrtowcs_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-                  case "$host_os" in
-                                   # Guess no on HP-UX, Solaris, mingw.
-        hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
-                                   # Guess yes otherwise.
-        *)                         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
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-  /* Test whether the function supports a NULL destination argument.
-     This fails on native Windows.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      const char input[] = "\337er";
-      const char *src = input;
-      mbstate_t state;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbsrtowcs (NULL, &src, 1, &state) != 3
-          || src != input)
-        result |= 1;
-    }
-  /* Test whether the function works when started with a conversion state
-     in non-initial state.  This fails on HP-UX 11.11 and Solaris 10.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er";
-      mbstate_t state;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 2;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              result |= 2;
-          }
-    }
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "<\306\374\313\334\270\354>";
-      mbstate_t state;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 4;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 3)
-              result |= 4;
-          }
-    }
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      const char input[] = "B\250\271\201\060\211\070er";
-      mbstate_t state;
+    REPLACE_GETOPT=1
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 2;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              result |= 8;
-          }
-    }
-  return result;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mbsrtowcs_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test $REPLACE_GETOPT = 1; then
 
-( exit $ac_status )
-gl_cv_func_mbsrtowcs_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+  GETOPT_H=getopt.h
 
+$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
-      fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbsrtowcs_works" >&5
-$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
 
-      case "$gl_cv_func_mbsrtowcs_works" in
-        *yes) ;;
-        *) REPLACE_MBSRTOWCS=1 ;;
-      esac
-    fi
   fi
-  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
 
-    :
+  if test $REPLACE_GETOPT = 1; then
 
 
 
@@ -35741,8 +20694,8 @@ $as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
 
 
 
@@ -35751,370 +20704,660 @@ $as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
 
 
-  :
 
+        GNULIB_GL_UNISTD_H_GETOPT=1
   fi
 
 
 
 
-  GNULIB_MBSRTOWCS=1
-
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
 
+fi
+done
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MBSRTOWCS 1
+  if test $ac_cv_func_getpagesize = no; then
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OS_H 1
 _ACEOF
 
+fi
 
+done
 
-  # Code from module mbtowc:
+    if test $ac_cv_header_OS_h = yes; then
+      HAVE_OS_H=1
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_PARAM_H 1
+_ACEOF
 
+fi
 
+done
 
-  if false; then
-    REPLACE_MBTOWC=1
+    if test $ac_cv_header_sys_param_h = yes; then
+      HAVE_SYS_PARAM_H=1
+    fi
   fi
-  if test $REPLACE_MBTOWC = 1; then
+  case "$host_os" in
+    mingw*)
+      REPLACE_GETPAGESIZE=1
+      ;;
+  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 :
 
+else
+  HAVE_DECL_GETPAGESIZE=0
+fi
 
 
+  if test $REPLACE_GETPAGESIZE = 1; then
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
 
 
-  :
+
+  gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
 
   fi
 
 
 
 
-  GNULIB_MBTOWC=1
 
+          GNULIB_GETPAGESIZE=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MBTOWC 1
-_ACEOF
 
 
 
-  # Code from module mbuiter:
+$as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
+
 
 
 
-  :
 
-  # Code from module memchr:
 
 
 
 
-  GNULIB_MEMCHR=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MEMCHR 1
-_ACEOF
 
 
 
-  # Code from module mempcpy:
 
 
+  gl_gettimeofday_timezone=void
+  if test $ac_cv_func_gettimeofday != yes; then
+    HAVE_GETTIMEOFDAY=0
+  else
+
 
 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5
+$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
+if ${gl_cv_func_gettimeofday_clobber+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  # When cross-compiling:
+      case "$host_os" in
+                # Guess all is fine on glibc systems.
+        *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+                # If we don't know, assume the worst.
+        *)      gl_cv_func_gettimeofday_clobber="guessing yes" ;;
+      esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+          #include <sys/time.h>
+          #include <time.h>
+          #include <stdlib.h>
 
+int
+main ()
+{
 
+          time_t t = 0;
+          struct tm *lt;
+          struct tm saved_lt;
+          struct timeval tv;
+          lt = localtime (&t);
+          saved_lt = *lt;
+          gettimeofday (&tv, NULL);
+          return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_gettimeofday_clobber=no
+else
+  gl_cv_func_gettimeofday_clobber=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5
+$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
 
+ case "$gl_cv_func_gettimeofday_clobber" in
+   *yes)
+     REPLACE_GETTIMEOFDAY=1
 
 
+$as_echo "#define gmtime rpl_gmtime" >>confdefs.h
 
 
+$as_echo "#define localtime rpl_localtime" >>confdefs.h
 
-for ac_func in mempcpy
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+$as_echo "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
 
-#undef $ac_func
+     ;;
+ esac
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5
+$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
+if ${gl_cv_func_gettimeofday_posix_signature+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/time.h>
+              struct timeval c;
+              int gettimeofday (struct timeval *restrict, void *restrict);
 
 int
 main ()
 {
-return $ac_func ();
+/* glibc uses struct timezone * rather than the POSIX void *
+                 if _GNU_SOURCE is defined.  However, since the only portable
+                 use of gettimeofday uses NULL as the second parameter, and
+                 since the glibc definition is actually more typesafe, it is
+                 not worth wrapping this to get a compliant signature.  */
+              int (*f) (struct timeval *restrict, void *restrict)
+                = gettimeofday;
+              int x = f (&c, 0);
+              return !(x | c.tv_sec | c.tv_usec);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_gettimeofday_posix_signature=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/time.h>
+int gettimeofday (struct timeval *restrict, struct timezone *restrict);
 
-       eval "$as_ac_var=no"
-fi
+int
+main ()
+{
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_gettimeofday_posix_signature=almost
+else
+  gl_cv_func_gettimeofday_posix_signature=no
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_posix_signature" >&5
+$as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; }
+    if test $gl_cv_func_gettimeofday_posix_signature = almost; then
+      gl_gettimeofday_timezone='struct timezone'
+    elif test $gl_cv_func_gettimeofday_posix_signature != yes; then
+      REPLACE_GETTIMEOFDAY=1
+    fi
+        if test $REPLACE_STRUCT_TIMEVAL = 1; then
+      REPLACE_GETTIMEOFDAY=1
+    fi
+
+  fi
+
+cat >>confdefs.h <<_ACEOF
+#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone
 _ACEOF
 
-else
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+
+
+  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 :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE__FTIME 1
+_ACEOF
 
-  if test $ac_cv_func_mempcpy = no; then
-    HAVE_MEMPCPY=0
+fi
+done
 
-  :
 
   fi
 
 
 
 
-  GNULIB_MEMPCPY=1
 
+          GNULIB_GETTIMEOFDAY=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MEMPCPY 1
-_ACEOF
 
 
 
-  # Code from module memrchr:
+$as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
 
 
 
 
+  :
 
 
 
 
-  if test $ac_cv_have_decl_memrchr = no; then
-    HAVE_DECL_MEMRCHR=0
-  fi
+  :
+
+  :
+  :
+  :
+  :
 
 
 
 
 
 
+  PRIPTR_PREFIX=
+  if test -n "$STDINT_H"; then
+        PRIPTR_PREFIX='"l"'
+  else
+        for glpfx in '' l ll I64; do
+      case $glpfx in
+        '')  gltype1='int';;
+        l)   gltype1='long int';;
+        ll)  gltype1='long long int';;
+        I64) gltype1='__int64';;
+      esac
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdint.h>
+           extern intptr_t foo;
+           extern $gltype1 foo;
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  PRIPTR_PREFIX='"'$glpfx'"'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      test -n "$PRIPTR_PREFIX" && break
+    done
+  fi
 
 
 
-for ac_func in memrchr
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
+$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
+if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
 
-#undef $ac_func
+            #if defined INT32_MAX && defined INTMAX_MAX
+             #define CONDITION (INT32_MAX < INTMAX_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (int) < sizeof (long long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+  ;
+  return 0;
+}
+_ACEOF
+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
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5
+$as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; }
+  if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then
+    INT32_MAX_LT_INTMAX_MAX=1;
+  else
+    INT32_MAX_LT_INTMAX_MAX=0;
+  fi
+
+
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
+$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
+if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
 
+            #if defined INT64_MAX
+             #define CONDITION (INT64_MAX == LONG_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (long long int) == sizeof (long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
 int
 main ()
 {
-return $ac_func ();
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_test_INT64_MAX_EQ_LONG_MAX=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5
+$as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; }
+  if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then
+    INT64_MAX_EQ_LONG_MAX=1;
+  else
+    INT64_MAX_EQ_LONG_MAX=0;
+  fi
+
+
+  else
+    INT64_MAX_EQ_LONG_MAX=-1
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
+$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
+if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined UINT32_MAX && defined UINTMAX_MAX
+             #define CONDITION (UINT32_MAX < UINTMAX_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
+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
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5
+$as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; }
+  if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then
+    UINT32_MAX_LT_UINTMAX_MAX=1;
+  else
+    UINT32_MAX_LT_UINTMAX_MAX=0;
+  fi
+
+
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
+$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
+if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined UINT64_MAX
+             #define CONDITION (UINT64_MAX == ULONG_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+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
 fi
-done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5
+$as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
+  if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then
+    UINT64_MAX_EQ_ULONG_MAX=1;
+  else
+    UINT64_MAX_EQ_ULONG_MAX=0;
+  fi
 
 
-  if test $ac_cv_func_memrchr = no; then
+  else
+    UINT64_MAX_EQ_ULONG_MAX=-1
+  fi
+
+
+
+
+
+
+
+
+  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>.
+   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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+"
+if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISWBLANK $ac_have_decl
+_ACEOF
+
+  if test $ac_cv_func_iswblank = no; then
+    HAVE_ISWBLANK=0
+    if test $ac_cv_have_decl_iswblank = yes; then
+      REPLACE_ISWBLANK=1
+    fi
+  fi
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+            :
+    fi
+  fi
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
     :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
+
+    fi
   fi
 
 
 
 
-  GNULIB_MEMRCHR=1
+
+          GNULIB_ISWBLANK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
+
+
+
+
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MEMRCHR 1
-_ACEOF
 
 
 
-  # Code from module mkdir:
 
 
 
@@ -36122,370 +21365,355 @@ _ACEOF
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether mkdir handles trailing slash" >&5
-$as_echo_n "checking whether mkdir handles trailing slash... " >&6; }
-if test "${gl_cv_func_mkdir_trailing_slash_works+set}" = set; then
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_langinfo_h='<'langinfo.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
+$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
+if ${gl_cv_next_langinfo_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  rm -rf conftest.dir
-      if test "$cross_compiling" = yes; then
-  gl_cv_func_mkdir_trailing_slash_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#       include <sys/types.h>
-#       include <sys/stat.h>
+             if test $ac_cv_header_langinfo_h = yes; then
 
-int
-main ()
-{
-return mkdir ("conftest.dir/", 0700);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mkdir_trailing_slash_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_mkdir_trailing_slash_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+               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
 
-    rm -rf conftest.dir
+               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"`'"'
+          else
+               gl_cv_next_langinfo_h='<'langinfo.h'>'
+             fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mkdir_trailing_slash_works" >&5
-$as_echo "$gl_cv_func_mkdir_trailing_slash_works" >&6; }
-  if test "$gl_cv_func_mkdir_trailing_slash_works" != yes; then
-    REPLACE_MKDIR=1
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5
+$as_echo "$gl_cv_next_langinfo_h" >&6; }
+     fi
+     NEXT_LANGINFO_H=$gl_cv_next_langinfo_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='<'langinfo.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_langinfo_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext"
 
-  fi
+    HAVE_LANGINFO_CODESET=0
+  HAVE_LANGINFO_T_FMT_AMPM=0
+  HAVE_LANGINFO_ERA=0
+  HAVE_LANGINFO_YESEXPR=0
 
-  { $as_echo "$as_me:$LINENO: checking whether mkdir handles trailing dot" >&5
-$as_echo_n "checking whether mkdir handles trailing dot... " >&6; }
-if test "${gl_cv_func_mkdir_trailing_dot_works+set}" = set; then
+  if test $ac_cv_header_langinfo_h = yes; then
+    HAVE_LANGINFO_H=1
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
+$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
+if ${gl_cv_header_langinfo_codeset+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  rm -rf conftest.dir
-      if test "$cross_compiling" = yes; then
-  gl_cv_func_mkdir_trailing_dot_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#       include <sys/types.h>
-#       include <sys/stat.h>
+#include <langinfo.h>
+int a = CODESET;
 
 int
 main ()
 {
-return !mkdir ("conftest.dir/./", 0700);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mkdir_trailing_dot_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_langinfo_codeset=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mkdir_trailing_dot_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  gl_cv_header_langinfo_codeset=no
 fi
-
-
-    rm -rf conftest.dir
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mkdir_trailing_dot_works" >&5
-$as_echo "$gl_cv_func_mkdir_trailing_dot_works" >&6; }
-  if test "$gl_cv_func_mkdir_trailing_dot_works" != yes; then
-    REPLACE_MKDIR=1
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5
+$as_echo "$gl_cv_header_langinfo_codeset" >&6; }
+    if test $gl_cv_header_langinfo_codeset = yes; then
+      HAVE_LANGINFO_CODESET=1
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
+$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
+if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int a = T_FMT_AMPM;
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+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
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
+$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
+    if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+      HAVE_LANGINFO_T_FMT_AMPM=1
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
+$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
+if ${gl_cv_header_langinfo_era+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int a = ERA;
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_langinfo_era=yes
+else
+  gl_cv_header_langinfo_era=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5
+$as_echo "$gl_cv_header_langinfo_era" >&6; }
+    if test $gl_cv_header_langinfo_era = yes; then
+      HAVE_LANGINFO_ERA=1
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
+$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
+if ${gl_cv_header_langinfo_yesexpr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int a = YESEXPR;
 
+int
+main ()
+{
 
-cat >>confdefs.h <<\_ACEOF
-#define FUNC_MKDIR_DOT_BUG 1
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_langinfo_yesexpr=yes
+else
+  gl_cv_header_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
+    if test $gl_cv_header_langinfo_yesexpr = yes; then
+      HAVE_LANGINFO_YESEXPR=1
+    fi
+  else
+    HAVE_LANGINFO_H=0
   fi
 
-  # Code from module mkdtemp:
-
-
-
-
-
 
 
 
 
 
 
-for ac_func in mkdtemp
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+    for gl_func in nl_langinfo; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+#include <langinfo.h>
 
 int
 main ()
 {
-return $ac_func ();
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  eval "$as_gl_Symbol=no"
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-done
-
+      done
 
-  if test $ac_cv_func_mkdtemp = no; then
-    HAVE_MKDTEMP=0
-    :
 
-  fi
 
 
 
 
-  GNULIB_MKDTEMP=1
 
+  for ac_func in lchown
+do :
+  ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
+if test "x$ac_cv_func_lchown" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LCHOWN 1
+_ACEOF
 
+fi
+done
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKDTEMP 1
-_ACEOF
+  if test $ac_cv_func_lchown = no; then
+    HAVE_LCHOWN=0
+  else
+        case "$gl_cv_func_chown_slash_works" in
+      *yes) ;;
+      *)
+        REPLACE_LCHOWN=1
+        ;;
+    esac
+    case "$gl_cv_func_chown_ctime_works" in
+      *yes) ;;
+      *)
+        REPLACE_LCHOWN=1
+        ;;
+    esac
+  fi
 
+  if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
 
 
-  # Code from module mkfifo:
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
 
+  fi
 
-  if test $ac_cv_func_mkfifo = no; then
-    HAVE_MKFIFO=0
 
 
 
 
+          GNULIB_LCHOWN=1
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
 
-  else
+$as_echo "#define GNULIB_TEST_LCHOWN 1" >>confdefs.h
 
 
 
 
 
 
-    { $as_echo "$as_me:$LINENO: checking whether mkfifo rejects trailing slashes" >&5
-$as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; }
-if test "${gl_cv_func_mkfifo_works+set}" = set; then
+  if test $ac_cv_func_link = no; then
+    HAVE_LINK=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link obeys POSIX" >&5
+$as_echo_n "checking whether link obeys POSIX... " >&6; }
+if ${gl_cv_func_link_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # Assume that if we have lstat, we can also check symlinks.
+  touch conftest.a
+       # Assume that if we have lstat, we can also check symlinks.
        if test $ac_cv_func_lstat = yes; then
-         ln -s conftest.tmp conftest.lnk
+         ln -s conftest.a conftest.lnk
        fi
-       if test "$cross_compiling" = yes; then
-  gl_cv_func_mkfifo_works="guessing no"
+       if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_link_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_link_works="guessing no" ;;
+          esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/stat.h>
+#include <unistd.h>
 
 int
 main ()
 {
 int result = 0;
-             if (!mkfifo ("conftest.tmp/", 0600))
+             if (!link ("conftest.a", "conftest.b/"))
                result |= 1;
 #if HAVE_LSTAT
-             if (!mkfifo ("conftest.lnk/", 0600))
+             if (!link ("conftest.lnk/", "conftest.b"))
                result |= 2;
+             if (rename ("conftest.a", "conftest.b"))
+               result |= 4;
+             if (!link ("conftest.b", "conftest.lnk"))
+               result |= 8;
 #endif
              return result;
 
@@ -36493,53 +21721,28 @@ int result = 0;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mkfifo_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_link_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mkfifo_works=no
+  gl_cv_func_link_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-       rm -f conftest.tmp conftest.lnk
+       rm -f conftest.a conftest.b conftest.lnk
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mkfifo_works" >&5
-$as_echo "$gl_cv_func_mkfifo_works" >&6; }
-    if test "$gl_cv_func_mkfifo_works" != yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define MKFIFO_TRAILING_SLASH_BUG 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_works" >&5
+$as_echo "$gl_cv_func_link_works" >&6; }
+    case "$gl_cv_func_link_works" in
+      *yes) ;;
+      *)
+        REPLACE_LINK=1
+        ;;
+    esac
+  fi
 
-      REPLACE_MKFIFO=1
+  if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
 
 
 
@@ -36548,90 +21751,308 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
 
-    fi
   fi
 
 
 
 
-  GNULIB_MKFIFO=1
+
+          GNULIB_LINK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LINK 1" >>confdefs.h
+
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKFIFO 1
+          gl_link_follows_symlinks=0 # assume GNU behavior
+  if test $ac_cv_func_readlink = yes; then
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __xpg4" >&5
+$as_echo_n "checking for __xpg4... " >&6; }
+if ${gl_cv_have___xpg4+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+extern int __xpg4;
+int
+main ()
+{
+return __xpg4;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_have___xpg4=yes
+else
+  gl_cv_have___xpg4=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___xpg4" >&5
+$as_echo "$gl_cv_have___xpg4" >&6; }
+    if test $gl_cv_have___xpg4 = yes; then
+      gl_link_follows_symlinks=-1
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link(2) dereferences a symlink" >&5
+$as_echo_n "checking whether link(2) dereferences a symlink... " >&6; }
+if ${gl_cv_func_link_follows_symlink+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+         # Create a regular file.
+         echo > conftest.file
+         if test "$cross_compiling" = yes; then :
+                                                 case "$host_os" in
+                           # On glibc/Linux we know the result.
+              linux*-gnu*) gl_cv_func_link_follows_symlink="guessing no" ;;
+                           # Otherwise, we don't know.
+              *)           gl_cv_func_link_follows_symlink=unknown ;;
+            esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  # Code from module mkfifoat:
+#       include <sys/types.h>
+#       include <sys/stat.h>
+#       include <unistd.h>
+#       include <stdlib.h>
+
+#       define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+          ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+           && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+        int
+        main ()
+        {
+          const char *file = "conftest.file";
+          const char *sym = "conftest.sym";
+          const char *hard = "conftest.hard";
+          struct stat sb_file, sb_hard;
 
+          /* Create a symlink to the regular file. */
+          if (symlink (file, sym))
+            return 2;
 
+          /* Create a hard link to that symlink.  */
+          if (link (sym, hard))
+            return 3;
 
+          if (lstat (hard, &sb_hard))
+            return 4;
+          if (lstat (file, &sb_file))
+            return 5;
 
+          /* If the dev/inode of hard and file are the same, then
+             the link call followed the symlink.  */
+          return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+        }
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_link_follows_symlink=no
+else
+             gl_cv_func_link_follows_symlink=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+         rm -f conftest.file conftest.sym conftest.hard
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_follows_symlink" >&5
+$as_echo "$gl_cv_func_link_follows_symlink" >&6; }
+      case "$gl_cv_func_link_follows_symlink" in
+        *yes) gl_link_follows_symlinks=1 ;;
+        *no) ;; # already defaulted to 0
+        *) gl_link_follows_symlinks=-2 ;;
+      esac
+    fi
+  fi
 
+cat >>confdefs.h <<_ACEOF
+#define LINK_FOLLOWS_SYMLINKS $gl_link_follows_symlinks
+_ACEOF
 
 
 
 
-  if test $ac_cv_func_mkfifoat = no; then
-    # No known system has mkfifoat but not mknodat
-    HAVE_MKFIFOAT=0
-    HAVE_MKNODAT=0
 
 
 
 
 
+  if test $ac_cv_func_linkat = no; then
+    HAVE_LINKAT=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat(,AT_SYMLINK_FOLLOW) works" >&5
+$as_echo_n "checking whether linkat(,AT_SYMLINK_FOLLOW) works... " >&6; }
+if ${gl_cv_func_linkat_follow+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.f1 conftest.f2
+       touch conftest.f1
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+   until 2.6.18.  Always replace linkat to support older kernels.  */
+choke me
+#endif
+
+int
+main ()
+{
+return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+                    AT_SYMLINK_FOLLOW);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_linkat_follow=yes
+else
+  gl_cv_func_linkat_follow="need runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       rm -rf conftest.f1 conftest.f2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_follow" >&5
+$as_echo "$gl_cv_func_linkat_follow" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat handles trailing slash correctly" >&5
+$as_echo_n "checking whether linkat handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_linkat_slash+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.a conftest.b conftest.c conftest.d
+       if test "$cross_compiling" = yes; then :
+  # Guess yes on glibc systems, no otherwise.
+          case "$host_os" in
+            *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+            *)      gl_cv_func_linkat_slash="guessing no";;
+          esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+              #include <fcntl.h>
+              #include <errno.h>
+              #include <stdio.h>
+
+int
+main ()
+{
+int result;
+              int fd;
+              /* Create a regular file.  */
+              fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+              if (fd < 0)
+                return 1;
+              if (write (fd, "hello", 5) < 5)
+                return 2;
+              if (close (fd) < 0)
+                return 3;
+              /* Test whether hard links are supported on the current
+                 device.  */
+              if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+                          AT_SYMLINK_FOLLOW) < 0)
+                return 0;
+              result = 0;
+              /* Test whether a trailing "/" is treated like "/.".  */
+              if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+                          AT_SYMLINK_FOLLOW) == 0)
+                result |= 4;
+              if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+                          AT_SYMLINK_FOLLOW) == 0)
+                result |= 8;
+              return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_linkat_slash=yes
+else
+  gl_cv_func_linkat_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+       rm -rf conftest.a conftest.b conftest.c conftest.d
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_slash" >&5
+$as_echo "$gl_cv_func_linkat_slash" >&6; }
+    case "$gl_cv_func_linkat_slash" in
+      *yes) gl_linkat_slash_bug=0 ;;
+      *)    gl_linkat_slash_bug=1 ;;
+    esac
+    if test "$gl_cv_func_linkat_follow" != yes \
+       || test $gl_linkat_slash_bug = 1; then
+      REPLACE_LINKAT=1
+
+cat >>confdefs.h <<_ACEOF
+#define LINKAT_TRAILING_SLASH_BUG $gl_linkat_slash_bug
+_ACEOF
+
+    fi
+  fi
+
+  if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mkfifoat.$ac_objext"
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
 
+  fi
+  if test $HAVE_LINKAT = 0; then
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mknodat.$ac_objext"
 
-  fi
 
 
 
 
-  GNULIB_MKFIFOAT=1
+  gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
 
+  fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKFIFOAT 1
-_ACEOF
 
 
 
+          GNULIB_LINKAT=1
 
 
 
-  GNULIB_MKNODAT=1
 
 
+$as_echo "#define GNULIB_TEST_LINKAT 1" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKNODAT 1
-_ACEOF
 
 
 
-  # Code from module mknod:
 
 
 
@@ -36639,452 +22060,284 @@ _ACEOF
 
 
 
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
 
 
 
-  if test $ac_cv_func_mknod = no; then
-    HAVE_MKNOD=0
 
 
 
 
 
 
+  case "$host_os" in
+    solaris*)
 
+$as_echo "#define _LCONV_C99 1" >>confdefs.h
 
-  gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
+      ;;
+  esac
 
-  else
-        { $as_echo "$as_me:$LINENO: checking whether mknod can create fifo without root privileges" >&5
-$as_echo_n "checking whether mknod can create fifo without root privileges... " >&6; }
-if test "${gl_cv_func_mknod_works+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
+$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; }
+if ${gl_cv_header_locale_h_posix2001+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_mknod_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/stat.h>
-             #include <unistd.h>
-
+#include <locale.h>
+            int x = LC_MESSAGES;
+            int y = sizeof (((struct lconv *) 0)->decimal_point);
 int
 main ()
 {
-/* Indeterminate for super-user, assume no.  Why are you running
-         configure as root, anyway?  */
-      if (!geteuid ()) return 99;
-      if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_mknod_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_locale_h_posix2001=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
-            { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-          fi
-          gl_cv_func_mknod_works=no
+  gl_cv_header_locale_h_posix2001=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5
+$as_echo "$gl_cv_header_locale_h_posix2001" >&6; }
 
 
-       rm -f conftest.fifo
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mknod_works" >&5
-$as_echo "$gl_cv_func_mknod_works" >&6; }
-    if test "$gl_cv_func_mknod_works" != yes; then
+  if test $ac_cv_header_xlocale_h = yes; then
+    HAVE_XLOCALE_H=1
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5
+$as_echo_n "checking whether locale.h defines locale_t... " >&6; }
+if ${gl_cv_header_locale_has_locale_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+              locale_t x;
+int
+main ()
+{
 
-cat >>confdefs.h <<\_ACEOF
-#define MKNOD_FIFO_BUG 1
+  ;
+  return 0;
+}
 _ACEOF
+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
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5
+$as_echo "$gl_cv_header_locale_has_locale_t" >&6; }
+    if test $gl_cv_header_locale_has_locale_t = yes; then
+      gl_cv_header_locale_h_needs_xlocale_h=no
+    else
+      gl_cv_header_locale_h_needs_xlocale_h=yes
     fi
-        if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
-      REPLACE_MKNOD=1
-
-
-
-
-
+  else
+    HAVE_XLOCALE_H=0
+    gl_cv_header_locale_h_needs_xlocale_h=no
+  fi
 
 
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5
+$as_echo_n "checking whether struct lconv is properly defined... " >&6; }
+if ${gl_cv_sys_struct_lconv_ok+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+            struct lconv l;
+            int x = sizeof (l.decimal_point);
+            int y = sizeof (l.int_p_cs_precedes);
+int
+main ()
+{
 
-  gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_lconv_ok=yes
+else
+  gl_cv_sys_struct_lconv_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5
+$as_echo "$gl_cv_sys_struct_lconv_ok" >&6; }
+  if test $gl_cv_sys_struct_lconv_ok = no; then
+    REPLACE_STRUCT_LCONV=1
   fi
 
 
 
 
-  GNULIB_MKNOD=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKNOD 1
-_ACEOF
-
-
-
-  # Code from module mktime:
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_locale_h='<'locale.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5
+$as_echo_n "checking absolute name of <locale.h>... " >&6; }
+if ${gl_cv_next_locale_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+               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
+                 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"`'"'
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5
+$as_echo "$gl_cv_next_locale_h" >&6; }
+     fi
+     NEXT_LOCALE_H=$gl_cv_next_locale_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='<'locale.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_locale_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive
 
 
 
 
 
 
-if test $APPLE_UNIVERSAL_BUILD = 1; then
-  # A universal build on Apple MacOS X platforms.
-  # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
-  # But we need a configuration result that is valid in both modes.
-  ac_cv_func_working_mktime=no
-fi
-{ $as_echo "$as_me:$LINENO: checking for working mktime" >&5
-$as_echo_n "checking for working mktime... " >&6; }
-if test "${ac_cv_func_working_mktime+set}" = set; then
+    for gl_func in setlocale duplocale; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_working_mktime=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Test program from Paul Eggert and Tony Leneis.  */
-#include <limits.h>
-#include <stdlib.h>
-#include <time.h>
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifndef HAVE_ALARM
-# define alarm(X) /* empty */
+#include <locale.h>
+/* Some systems provide declarations in a non-standard header.  */
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
 #endif
 
-/* Work around redefinition to rpl_putenv by other config tests.  */
-#undef putenv
-
-static time_t time_t_max;
-static time_t time_t_min;
-
-/* Values we'll use to set the TZ environment variable.  */
-static char *tz_strings[] = {
-  (char *) 0, "TZ=GMT0", "TZ=JST-9",
-  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
-};
-#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-
-/* Return 0 if mktime fails to convert a date in the spring-forward gap.
-   Based on a problem report from Andreas Jaeger.  */
-static int
-spring_forward_gap ()
-{
-  /* glibc (up to about 1998-10-07) failed this test. */
-  struct tm tm;
-
-  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
-     instead of "TZ=America/Vancouver" in order to detect the bug even
-     on systems that don't support the Olson extension, or don't have the
-     full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
-
-  tm.tm_year = 98;
-  tm.tm_mon = 3;
-  tm.tm_mday = 5;
-  tm.tm_hour = 2;
-  tm.tm_min = 0;
-  tm.tm_sec = 0;
-  tm.tm_isdst = -1;
-  return mktime (&tm) != (time_t) -1;
-}
-
-static int
-mktime_test1 (time_t now)
-{
-  struct tm *lt;
-  return ! (lt = localtime (&now)) || mktime (lt) == now;
-}
-
-static int
-mktime_test (time_t now)
-{
-  return (mktime_test1 (now)
-          && mktime_test1 ((time_t) (time_t_max - now))
-          && mktime_test1 ((time_t) (time_t_min + now)));
-}
-
-static int
-irix_6_4_bug ()
-{
-  /* Based on code from Ariel Faigon.  */
-  struct tm tm;
-  tm.tm_year = 96;
-  tm.tm_mon = 3;
-  tm.tm_mday = 0;
-  tm.tm_hour = 0;
-  tm.tm_min = 0;
-  tm.tm_sec = 0;
-  tm.tm_isdst = -1;
-  mktime (&tm);
-  return tm.tm_mon == 2 && tm.tm_mday == 31;
-}
-
-static int
-bigtime_test (int j)
-{
-  struct tm tm;
-  time_t now;
-  tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
-  now = mktime (&tm);
-  if (now != (time_t) -1)
-    {
-      struct tm *lt = localtime (&now);
-      if (! (lt
-             && lt->tm_year == tm.tm_year
-             && lt->tm_mon == tm.tm_mon
-             && lt->tm_mday == tm.tm_mday
-             && lt->tm_hour == tm.tm_hour
-             && lt->tm_min == tm.tm_min
-             && lt->tm_sec == tm.tm_sec
-             && lt->tm_yday == tm.tm_yday
-             && lt->tm_wday == tm.tm_wday
-             && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
-                  == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
-        return 0;
-    }
-  return 1;
-}
-
-static int
-year_2050_test ()
-{
-  /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
-     ignoring leap seconds.  */
-  unsigned long int answer = 2527315200UL;
-
-  struct tm tm;
-  time_t t;
-  tm.tm_year = 2050 - 1900;
-  tm.tm_mon = 2 - 1;
-  tm.tm_mday = 1;
-  tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
-  tm.tm_isdst = -1;
-
-  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
-     instead of "TZ=America/Vancouver" in order to detect the bug even
-     on systems that don't support the Olson extension, or don't have the
-     full zoneinfo tables installed.  */
-  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
-
-  t = mktime (&tm);
-
-  /* Check that the result is either a failure, or close enough
-     to the correct answer that we can assume the discrepancy is
-     due to leap seconds.  */
-  return (t == (time_t) -1
-          || (0 < t && answer - 120 <= t && t <= answer + 120));
-}
-
 int
 main ()
 {
-  int result = 0;
-  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);
-
-  /* This test makes some buggy mktime implementations loop.
-     Give up after 60 seconds; a mktime slower than that
-     isn't worth using anyway.  */
-  alarm (60);
-
-  time_t_max = (! time_t_signed
-                ? (time_t) -1
-                : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
-                   * 2 + 1));
-  time_t_min = (! time_t_signed
-                ? (time_t) 0
-                : time_t_signed_magnitude
-                ? ~ (time_t) 0
-                : ~ time_t_max);
-
-  delta = time_t_max / 997; /* a suitable prime number */
-  for (i = 0; i < N_STRINGS; i++)
-    {
-      if (tz_strings[i])
-        putenv (tz_strings[i]);
-
-      for (t = 0; t <= time_t_max - delta; t += delta)
-        if (! mktime_test (t))
-          result |= 1;
-      if (! (mktime_test ((time_t) 1)
-             && mktime_test ((time_t) (60 * 60))
-             && mktime_test ((time_t) (60 * 60 * 24))))
-        result |= 2;
-
-      for (j = 1; ; j <<= 1)
-        if (! bigtime_test (j))
-          result |= 4;
-        else if (INT_MAX / 2 < j)
-          break;
-      if (! bigtime_test (INT_MAX))
-        result |= 8;
-    }
-  if (! irix_6_4_bug ())
-    result |= 16;
-  if (! spring_forward_gap ())
-    result |= 32;
-  if (! year_2050_test ())
-    result |= 64;
-  return result;
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_working_mktime=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_working_mktime=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5
-$as_echo "$ac_cv_func_working_mktime" >&6; }
-if test $ac_cv_func_working_mktime = no; then
-
-
+      done
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
+  if test $REPLACE_STRUCT_LCONV = 1; then
+    REPLACE_LOCALECONV=1
+  fi
 
-fi
+  if test $REPLACE_LOCALECONV = 1; then
 
-    if test $ac_cv_func_working_mktime = no; then
-    REPLACE_MKTIME=1
 
 
 
-  else
-    REPLACE_MKTIME=0
-  fi
 
 
 
 
-  GNULIB_MKTIME=1
+  gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext"
 
 
+  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 :
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_MKTIME 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1
 _ACEOF
 
 
-
-  # Code from module modechange:
+fi
 
 
+  fi
 
 
 
 
 
+          GNULIB_LOCALECONV=1
 
 
-  gl_LIBOBJS="$gl_LIBOBJS modechange.$ac_objext"
 
 
-  # Code from module multiarch:
 
-  # Code from module nl_langinfo:
+$as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h
 
 
 
@@ -37094,98 +22347,90 @@ _ACEOF
 
 
 
-     if test $ac_cv_func_nl_langinfo = yes; then
-    # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
-    { $as_echo "$as_me:$LINENO: checking whether YESEXPR works" >&5
-$as_echo_n "checking whether YESEXPR works... " >&6; }
-if test "${gl_cv_func_nl_langinfo_yesexpr_works+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5
+$as_echo_n "checking whether lseek detects pipes... " >&6; }
+if ${gl_cv_func_lseek_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-
-         case "$host_os" in
-                   # Guess no on irix systems.
-           irix*)  gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
-                   # Guess yes elsewhere.
-           *)      gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
-         esac
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  case "$host_os" in
+       mingw*)
+                                                               gl_cv_func_lseek_pipe=no
+         ;;
+       *)
+         if test $cross_compiling = no; then
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <langinfo.h>
+
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
 
 int
 main ()
 {
-return !*nl_langinfo(YESEXPR);
+
+  /* Exit with success only if stdin is seekable.  */
+  return lseek (0, (off_t)0, SEEK_CUR) < 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_nl_langinfo_yesexpr_works=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  if test -s conftest$ac_exeext \
+                 && ./conftest$ac_exeext < conftest.$ac_ext \
+                 && test 1 = "`echo hi \
+                   | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then
+                gl_cv_func_lseek_pipe=yes
+              else
+                gl_cv_func_lseek_pipe=no
+              fi
+
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+         else
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-( exit $ac_status )
-gl_cv_func_nl_langinfo_yesexpr_works=no
+#if defined __BEOS__
+/* BeOS mistakenly return 0 when trying to seek on pipes.  */
+  Choke me.
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_lseek_pipe=yes
+else
+  gl_cv_func_lseek_pipe=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         fi
+         ;;
+     esac
+
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lseek_pipe" >&5
+$as_echo "$gl_cv_func_lseek_pipe" >&6; }
+  if test $gl_cv_func_lseek_pipe = no; then
+    REPLACE_LSEEK=1
 
+$as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h
 
+  fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
-$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
-    case $gl_cv_func_nl_langinfo_yesexpr_works in
-      *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
-      *)    FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
-    esac
 
-cat >>confdefs.h <<_ACEOF
-#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
-_ACEOF
+  if test $WINDOWS_64_BIT_OFF_T = 1; then
+    REPLACE_LSEEK=1
+  fi
 
-    if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
-        && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
-      :
-    else
-      REPLACE_NL_LANGINFO=1
+  if test $REPLACE_LSEEK = 1; then
 
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_NL_LANGINFO 1
-_ACEOF
 
 
 
@@ -37193,1741 +22438,1512 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
 
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
 
-    fi
-  else
-    HAVE_NL_LANGINFO=0
 
 
 
+          GNULIB_LSEEK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
 
+  if test $ac_cv_func_lstat = yes; then
+
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        REPLACE_LSTAT=1
+        ;;
+    esac
+  else
+    HAVE_LSTAT=0
   fi
 
+  if test $REPLACE_LSTAT = 1; then
 
 
 
-  GNULIB_NL_LANGINFO=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_NL_LANGINFO 1
-_ACEOF
 
 
+  gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
 
-  # Code from module obstack:
+    :
+  fi
 
 
 
 
 
+          GNULIB_LSTAT=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h
 
 
-{ $as_echo "$as_me:$LINENO: checking for obstacks" >&5
-$as_echo_n "checking for obstacks... " >&6; }
-if test "${ac_cv_func_obstack+set}" = set; then
+
+
+
+
+      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
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  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.  */
-$ac_includes_default
-                     #include "obstack.h"
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+            # include <stdlib.h>
+            #else
+            char *malloc ();
+            #endif
+
 int
 main ()
 {
-struct obstack mem;
-                      #define obstack_chunk_alloc malloc
-                      #define obstack_chunk_free free
-                      obstack_init (&mem);
-                      obstack_free (&mem, 0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_obstack=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_obstack=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_obstack" >&5
-$as_echo "$ac_cv_func_obstack" >&6; }
-if test $ac_cv_func_obstack = yes; then
+return ! malloc (0);
+  ;
+  return 0;
+}
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_OBSTACK 1
 _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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
+$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
+  if test $ac_cv_func_malloc_0_nonnull = yes; then :
 
+$as_echo "#define HAVE_MALLOC_GNU 1" >>confdefs.h
 
+else
+  $as_echo "#define HAVE_MALLOC_GNU 0" >>confdefs.h
 
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS obstack.$ac_objext"
+     REPLACE_MALLOC=1
 
 fi
 
-    # Code from module open:
 
+  if test $REPLACE_MALLOC = 1; then
 
-  case "$host_os" in
-    mingw* | pw*)
 
 
-  REPLACE_OPEN=1
-
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_MALLOC_GNU 1
+_ACEOF
 
 
 
-  :
 
 
-      ;;
-    *)
+  if test $gl_cv_func_malloc_posix = yes; then
 
+$as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
+  else
+    REPLACE_MALLOC=1
+  fi
 
+  if test $REPLACE_MALLOC = 1; then
 
 
 
-      { $as_echo "$as_me:$LINENO: checking whether open recognizes a trailing slash" >&5
-$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
-if test "${gl_cv_func_open_slash+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  # Assume that if we have lstat, we can also check symlinks.
-          if test $ac_cv_func_lstat = yes; then
-            touch conftest.tmp
-            ln -s conftest.tmp conftest.lnk
-          fi
-          if test "$cross_compiling" = yes; then
 
-             case "$host_os" in
-               freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
-                 gl_cv_func_open_slash="guessing no" ;;
-               *)
-                 gl_cv_func_open_slash="guessing yes" ;;
-             esac
 
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <fcntl.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-int main ()
-{
-  int result = 0;
-#if HAVE_LSTAT
-  if (open ("conftest.lnk/", O_RDONLY) != -1)
-    result |= 1;
-#endif
-  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
-    result |= 2;
-  return result;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_open_slash=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_open_slash=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
-          rm -f conftest.sl conftest.tmp conftest.lnk
+  fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_open_slash" >&5
-$as_echo "$gl_cv_func_open_slash" >&6; }
-      case "$gl_cv_func_open_slash" in
-        *no)
 
-cat >>confdefs.h <<\_ACEOF
-#define OPEN_TRAILING_SLASH_BUG 1
-_ACEOF
 
 
 
-  REPLACE_OPEN=1
+          GNULIB_MALLOC_POSIX=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
 
 
 
 
-  :
 
 
-          ;;
-      esac
-      ;;
-  esac
 
 
 
 
-  GNULIB_OPEN=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_OPEN 1
-_ACEOF
 
 
 
-  # Code from module openat:
 
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
-  GNULIB_OPENAT=1
 
 
-  GNULIB_FCHMODAT=1
-  GNULIB_FSTATAT=1
-  GNULIB_MKDIRAT=1
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  GNULIB_FCHOWNAT=1
-  GNULIB_UNLINKAT=1
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
+else
+  gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else
+  gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
 
 
 
+  if test $ac_cv_func_mbrtowc = no; then
+    HAVE_MBRTOWC=0
+    ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
+"
+if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBRTOWC $ac_have_decl
+_ACEOF
 
+    if test $ac_cv_have_decl_mbrtowc = yes; then
+                        REPLACE_MBRTOWC=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBRTOWC=1
+    else
 
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+                  # Guess no on Solaris.
+        solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+                  # Guess yes otherwise.
+        *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
 
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      char input[] = "\303\237er";
+      mbstate_t state;
+      wchar_t wc;
+      size_t ret;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      wc = (wchar_t) 0xBADFACE;
+      ret = mbrtowc (&wc, input, 5, &state);
+      if (ret != 2)
+        result |= 1;
+      if (!mbsinit (&state))
+        result |= 2;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      ret = mbrtowc (NULL, input, 5, &state);
+      if (ret != 2) /* Solaris 7 fails here: ret is -1.  */
+        result |= 4;
+      if (!mbsinit (&state))
+        result |= 8;
+    }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_null_arg1=yes
+else
+  gl_cv_func_mbrtowc_null_arg1=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
 
 
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+              # Guess no on OSF/1.
+        osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+              # Guess yes otherwise.
+        *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      mbstate_t state;
+      wchar_t wc;
+      int ret;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      wc = (wchar_t) 0xBADFACE;
+      mbrtowc (&wc, NULL, 5, &state);
+      /* Check that wc was not modified.  */
+      if (wc != (wchar_t) 0xBADFACE)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_null_arg2=yes
+else
+  gl_cv_func_mbrtowc_null_arg2=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
 
 
 
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
+$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
+if ${gl_cv_func_mbrtowc_retval+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+                                   # Guess no on HP-UX, Solaris, native Windows.
+        hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
+                                   # Guess yes otherwise.
+        *)                         gl_cv_func_mbrtowc_retval="guessing yes" ;;
+      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 :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+  int found_some_locale = 0;
+  /* This fails on Solaris.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      char input[] = "B\303\274\303\237er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        {
+          input[1] = '\0';
+          if (mbrtowc (&wc, input + 2, 5, &state) != 1)
+            result |= 1;
+        }
+      found_some_locale = 1;
+    }
+  /* This fails on HP-UX 11.11.  */
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        {
+          input[1] = '\0';
+          if (mbrtowc (&wc, input + 2, 5, &state) != 2)
+            result |= 2;
+        }
+      found_some_locale = 1;
+    }
+  /* This fails on native Windows.  */
+  if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+    {
+      char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 4;
+        }
+      found_some_locale = 1;
+    }
+  if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+    {
+      char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 8;
+        }
+      found_some_locale = 1;
+    }
+  if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+    {
+      char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 16;
+        }
+      found_some_locale = 1;
+    }
+  return (found_some_locale ? result : 77);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_retval=yes
+else
+  if test $? != 77; then
+             gl_cv_func_mbrtowc_retval=no
+           fi
 
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
 
 
 
 
-for ac_func in fchmodat fstatat mkdirat openat unlinkat
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
+$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
+if ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+                  case "$host_os" in
+                       # Guess no on Solaris 8 and 9.
+        solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
+                       # Guess yes otherwise.
+        *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-       eval "$as_ac_var=no"
-fi
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8 and 9.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      mbstate_t state;
+      wchar_t wc;
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, "", 1, &state) != 0)
+        return 1;
+    }
+  return 0;
+}
 _ACEOF
-
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_nul_retval=yes
 else
+  gl_cv_func_mbrtowc_nul_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+      fi
 
 fi
-done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
 
+      case "$gl_cv_func_mbrtowc_null_arg1" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
 
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_null_arg2" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
 
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
 
-  case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
-  yes+yes)
-    # GNU/Hurd has unlinkat, but it has the same bug as unlink.
-    if test $REPLACE_UNLINK = 1; then
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_nul_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
 
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+    fi
+  fi
 
+  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext"
 
-      REPLACE_UNLINKAT=1
-    fi ;;
-  yes+*)
-    # Solaris 9 has *at functions, but uniformly mishandles trailing
-    # slash in all of them.
 
+  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
 
 
+  :
 
+  fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
 
-    REPLACE_OPENAT=1
+          GNULIB_MBRTOWC=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
 
-    REPLACE_FSTATAT=1
 
 
 
 
+          GNULIB_MBSCASECMP=1
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext"
 
-    REPLACE_UNLINKAT=1
-    ;;
-  *)
-    HAVE_OPENAT=0
-    HAVE_UNLINKAT=0 # No known system with unlinkat but not openat
-    HAVE_FSTATAT=0 # No known system with fstatat but not openat
+$as_echo "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
 
 
 
-  :
-;;
-  esac
-  if test $ac_cv_func_fchmodat != yes; then
-    HAVE_FCHMODAT=0
-  fi
-  if test $ac_cv_func_mkdirat != yes; then
-    HAVE_MKDIRAT=0
-  fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for fchownat" >&5
-$as_echo_n "checking for fchownat... " >&6; }
-if test "${ac_cv_func_fchownat+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define fchownat to an innocuous variant, in case <limits.h> declares fchownat.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define fchownat innocuous_fchownat
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char fchownat (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef fchownat
 
-/* 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 fchownat ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_fchownat || defined __stub___fchownat
-choke me
-#endif
 
-int
-main ()
-{
-return fchownat ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_fchownat=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_func_fchownat=no
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_fchownat" >&5
-$as_echo "$ac_cv_func_fchownat" >&6; }
-if test "x$ac_cv_func_fchownat" = x""yes; then
+
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5
-$as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; }
-if test "${gl_cv_func_fchownat_nofollow_works+set}" = set; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-     gl_dangle=conftest.dangle
-     # Remove any remnants of a previous test.
-     rm -f $gl_dangle
-     # Arrange for deletion of the temporary file this test creates.
-     ac_clean_files="$ac_clean_files $gl_dangle"
-     ln -s conftest.no-such $gl_dangle
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_fchownat_nofollow_works=no
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sys/types.h>
-int
-main ()
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
 {
-  return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (),
-                    AT_SYMLINK_NOFOLLOW) != 0
-          && errno == ENOENT);
-}
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
+  return 0;
+}
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fchownat_nofollow_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fchownat_nofollow_works=no
+  gl_cv_func_mbrtowc_incomplete_state=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_nofollow_works" >&5
-$as_echo "$gl_cv_func_fchownat_nofollow_works" >&6; }
-  if test $gl_cv_func_fchownat_nofollow_works = no; then
-  REPLACE_FCHOWNAT=1
-
-cat >>confdefs.h <<\_ACEOF
-#define FCHOWNAT_NOFOLLOW_BUG 1
-_ACEOF
 
+      fi
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
 
-
-  { $as_echo "$as_me:$LINENO: checking whether fchownat works with an empty file name" >&5
-$as_echo_n "checking whether fchownat works with an empty file name... " >&6; }
-if test "${gl_cv_func_fchownat_empty_filename_works+set}" = set; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_fchownat_empty_filename_works="guessing no"
+
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
-            #include <fcntl.h>
 
-int
-main ()
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
 {
-int fd;
-            int ret;
-            if (mkdir ("conftestdir", 0700) < 0)
-              return 2;
-            fd = open ("conftestdir", O_RDONLY);
-            if (fd < 0)
-              return 3;
-            ret = fchownat (fd, "", -1, -1, 0);
-            close (fd);
-            rmdir ("conftestdir");
-            return ret == 0;
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
-  ;
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_fchownat_empty_filename_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_fchownat_empty_filename_works=no
+  gl_cv_func_mbrtowc_sanitycheck=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
+      fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_empty_filename_works" >&5
-$as_echo "$gl_cv_func_fchownat_empty_filename_works" >&6; }
-  if test "$gl_cv_func_fchownat_empty_filename_works" != yes; then
-  REPLACE_FCHOWNAT=1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define FCHOWNAT_EMPTY_FILENAME_BUG 1
-_ACEOF
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
 
 
-fi
 
+  if test $ac_cv_func_mbsinit = no; then
+    HAVE_MBSINIT=0
+    ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
-     if test $REPLACE_CHOWN = 1; then
-       REPLACE_FCHOWNAT=1
-     fi
+"
+if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+  ac_have_decl=1
 else
-  HAVE_FCHOWNAT=0
+  ac_have_decl=0
 fi
 
-  if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
-
-
-
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
 
+    if test $ac_cv_have_decl_mbsinit = yes; then
+                        REPLACE_MBSINIT=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBSINIT=1
+    else
+                        case "$host_os" in
+        mingw*) REPLACE_MBSINIT=1 ;;
+      esac
+    fi
+  fi
 
+  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fchownat.$ac_objext"
 
-  fi
 
 
-  # Code from module openat-die:
-  # Code from module parse-datetime:
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
 
 
+  :
 
+  fi
 
-  { $as_echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5
-$as_echo_n "checking for struct tm.tm_zone... " >&6; }
-if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_cv_struct_tm>
 
 
-int
-main ()
-{
-static struct tm ac_aggr;
-if (ac_aggr.tm_zone)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_tm_tm_zone=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_cv_struct_tm>
 
+          GNULIB_MBSINIT=1
 
-int
-main ()
-{
-static struct tm ac_aggr;
-if (sizeof ac_aggr.tm_zone)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_tm_tm_zone=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_member_struct_tm_tm_zone=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
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5
-$as_echo "$ac_cv_member_struct_tm_tm_zone" >&6; }
-if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TM_TM_ZONE 1
-_ACEOF
+$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
 
 
-fi
 
-if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TM_ZONE 1
-_ACEOF
 
-else
-  { $as_echo "$as_me:$LINENO: checking whether tzname is declared" >&5
-$as_echo_n "checking whether tzname is declared... " >&6; }
-if test "${ac_cv_have_decl_tzname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
 
-int
-main ()
-{
-#ifndef tzname
-  (void) tzname;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_tzname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_tzname=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5
-$as_echo "$ac_cv_have_decl_tzname" >&6; }
-if test "x$ac_cv_have_decl_tzname" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TZNAME 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TZNAME 0
-_ACEOF
 
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
-fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for tzname" >&5
-$as_echo_n "checking for tzname... " >&6; }
-if test "${ac_cv_var_tzname+set}" = set; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <time.h>
-#if !HAVE_DECL_TZNAME
-extern char *tzname[];
-#endif
 
-int
-main ()
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
 {
-return tzname[0][0];
-  ;
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_var_tzname=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_var_tzname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+  gl_cv_func_mbrtowc_incomplete_state=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5
-$as_echo "$ac_cv_var_tzname" >&6; }
-  if test $ac_cv_var_tzname = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TZNAME 1
-_ACEOF
-
-  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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <time.h> /* for time_t */
-#include <limits.h> /* for CHAR_BIT, LONG_MIN, LONG_MAX */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 \
-        ? (t) -1 \
-        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-typedef int verify_min[2 * (LONG_MIN <= TYPE_MINIMUM (time_t)) - 1];
-typedef int verify_max[2 * (TYPE_MAXIMUM (time_t) <= LONG_MAX) - 1];
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_T_FITS_IN_LONG_INT 1
-_ACEOF
-
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
 
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module pathmax:
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else
+  gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
 
 
 
+  if test $ac_cv_func_mbsrtowcs = no; then
+    HAVE_MBSRTOWCS=0
+    ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
+"
+if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSRTOWCS $ac_have_decl
+_ACEOF
 
+    if test $ac_cv_have_decl_mbsrtowcs = yes; then
+                        REPLACE_MBSRTOWCS=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBSRTOWCS=1
+    else
 
 
 
-  # Code from module priv-set:
 
 
 
-for ac_func in getppriv
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
+$as_echo_n "checking whether mbsrtowcs works... " >&6; }
+if ${gl_cv_func_mbsrtowcs_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+                  case "$host_os" in
+                                   # Guess no on HP-UX, Solaris, mingw.
+        hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+                                   # Guess yes otherwise.
+        *)                         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 :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+  /* Test whether the function supports a NULL destination argument.
+     This fails on native Windows.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      const char input[] = "\337er";
+      const char *src = input;
+      mbstate_t state;
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbsrtowcs (NULL, &src, 1, &state) != 3
+          || src != input)
+        result |= 1;
+    }
+  /* Test whether the function works when started with a conversion state
+     in non-initial state.  This fails on HP-UX 11.11 and Solaris 10.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      const char input[] = "B\303\274\303\237er";
+      mbstate_t state;
 
-#undef $ac_func
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 2;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
+              result |= 2;
+          }
+    }
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "<\306\374\313\334\270\354>";
+      mbstate_t state;
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 4;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 3)
+              result |= 4;
+          }
+    }
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      const char input[] = "B\250\271\201\060\211\070er";
+      mbstate_t state;
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 2;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
+              result |= 8;
+          }
+    }
+  return result;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbsrtowcs_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_func_mbsrtowcs_works=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+
+      fi
 
 fi
-done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
+$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
 
+      case "$gl_cv_func_mbsrtowcs_works" in
+        *yes) ;;
+        *) REPLACE_MBSRTOWCS=1 ;;
+      esac
+    fi
+  fi
 
+  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
 
 
 
 
 
 
-  # Code from module progname:
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is declared" >&5
-$as_echo_n "checking whether program_invocation_name is declared... " >&6; }
-if test "${ac_cv_have_decl_program_invocation_name+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <errno.h>
 
-int
-main ()
-{
-#ifndef program_invocation_name
-  (void) program_invocation_name;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_program_invocation_name=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
 
-       ac_cv_have_decl_program_invocation_name=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_name" >&5
-$as_echo "$ac_cv_have_decl_program_invocation_name" >&6; }
-if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
-_ACEOF
 
 
-fi
 
 
-  { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is declared" >&5
-$as_echo_n "checking whether program_invocation_short_name is declared... " >&6; }
-if test "${ac_cv_have_decl_program_invocation_short_name+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <errno.h>
+  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
 
-int
-main ()
-{
-#ifndef program_invocation_short_name
-  (void) program_invocation_short_name;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_program_invocation_short_name=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  :
 
-       ac_cv_have_decl_program_invocation_short_name=no
-fi
+  fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_short_name" >&5
-$as_echo "$ac_cv_have_decl_program_invocation_short_name" >&6; }
-if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0
-_ACEOF
 
+          GNULIB_MBSRTOWCS=1
 
-fi
 
 
-  # Code from module quote:
 
 
+$as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
 
 
 
 
 
 
+  if false; then
+    REPLACE_MBTOWC=1
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS quote.$ac_objext"
+  if test $REPLACE_MBTOWC = 1; then
 
 
 
-  # Code from module quotearg:
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
 
 
+  :
 
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS quotearg.$ac_objext"
 
 
-  # Code from module quotearg-simple:
-  # Code from module rawmemchr:
 
 
+          GNULIB_MBTOWC=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
 
 
 
 
 
+  :
 
-for ac_func in rawmemchr
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-else
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
 
-fi
-done
 
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BP_SYM_H 1
+_ACEOF
 
-  if test $ac_cv_func_rawmemchr = no; then
-    HAVE_RAWMEMCHR=0
-    :
-  fi
+fi
 
+done
 
 
+  fi
 
-  GNULIB_RAWMEMCHR=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_RAWMEMCHR 1
-_ACEOF
 
+          GNULIB_MEMCHR=1
 
 
-  # Code from module readlink:
 
 
 
+$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
 
 
 
 
 
-  if test $ac_cv_func_readlink = no; then
-    HAVE_READLINK=0
 
 
 
 
+  for ac_func in mempcpy
+do :
+  ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMPCPY 1
+_ACEOF
 
+fi
+done
 
+  if test $ac_cv_func_mempcpy = no; then
+    HAVE_MEMPCPY=0
+  fi
 
+  if test $HAVE_MEMPCPY = 0; then
 
-  gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
 
 
-  :
 
-  else
-    { $as_echo "$as_me:$LINENO: checking whether readlink signature is correct" >&5
-$as_echo_n "checking whether readlink signature is correct... " >&6; }
-if test "${gl_cv_decl_readlink_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-      /* Cause compilation failure if original declaration has wrong type.  */
-      ssize_t readlink (const char *, char *, size_t);
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_decl_readlink_works=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gl_cv_decl_readlink_works=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_decl_readlink_works" >&5
-$as_echo "$gl_cv_decl_readlink_works" >&6; }
-            { $as_echo "$as_me:$LINENO: checking whether readlink handles trailing slash correctly" >&5
-$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; }
-if test "${gl_cv_func_readlink_works+set}" = set; then
-  $as_echo_n "(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
-  gl_cv_func_readlink_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
 
-int
-main ()
-{
-char buf[20];
-      return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_readlink_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
 
-( exit $ac_status )
-gl_cv_func_readlink_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
+  :
 
-      rm -f conftest.link conftest.lnk2
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_readlink_works" >&5
-$as_echo "$gl_cv_func_readlink_works" >&6; }
-    if test "$gl_cv_func_readlink_works" != yes; then
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define READLINK_TRAILING_SLASH_BUG 1
-_ACEOF
 
-      REPLACE_READLINK=1
 
 
 
+          GNULIB_MEMPCPY=1
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+$as_echo "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h
 
-    elif test "$gl_cv_decl_readlink_works" != yes; then
-      REPLACE_READLINK=1
 
 
 
@@ -38935,402 +23951,323 @@ _ACEOF
 
 
 
+  if test $ac_cv_have_decl_memrchr = no; then
+    HAVE_DECL_MEMRCHR=0
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+  for ac_func in memrchr
+do :
+  ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMRCHR 1
+_ACEOF
 
-    fi
-  fi
+fi
+done
 
 
+  if test $ac_cv_func_memrchr = no; then
 
 
-  GNULIB_READLINK=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_READLINK 1
-_ACEOF
 
 
 
-  # Code from module readlinkat:
+  gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext"
 
+    :
+  fi
 
 
 
 
 
+          GNULIB_MEMRCHR=1
 
 
 
 
-  if test $ac_cv_func_readlinkat = no; then
-    HAVE_READLINKAT=0
 
+$as_echo "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h
 
 
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5
+$as_echo_n "checking whether mkdir handles trailing slash... " >&6; }
+if ${gl_cv_func_mkdir_trailing_slash_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.dir
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
+       esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext"
+#       include <sys/types.h>
+#       include <sys/stat.h>
 
-  fi
+int
+main ()
+{
+return mkdir ("conftest.dir/", 0700);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mkdir_trailing_slash_works=yes
+else
+  gl_cv_func_mkdir_trailing_slash_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
 
+    rm -rf conftest.dir
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_slash_works" >&5
+$as_echo "$gl_cv_func_mkdir_trailing_slash_works" >&6; }
+  case "$gl_cv_func_mkdir_trailing_slash_works" in
+    *yes) ;;
+    *)
+      REPLACE_MKDIR=1
+      ;;
+  esac
 
-  GNULIB_READLINKAT=1
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5
+$as_echo_n "checking whether mkdir handles trailing dot... " >&6; }
+if ${gl_cv_func_mkdir_trailing_dot_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.dir
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+       esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#       include <sys/types.h>
+#       include <sys/stat.h>
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_READLINKAT 1
+int
+main ()
+{
+return !mkdir ("conftest.dir/./", 0700);
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mkdir_trailing_dot_works=yes
+else
+  gl_cv_func_mkdir_trailing_dot_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
 
+    rm -rf conftest.dir
 
 
-  # Code from module realloc-posix:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_dot_works" >&5
+$as_echo "$gl_cv_func_mkdir_trailing_dot_works" >&6; }
+  case "$gl_cv_func_mkdir_trailing_dot_works" in
+    *yes) ;;
+    *)
+      REPLACE_MKDIR=1
 
+$as_echo "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h
 
+      ;;
+  esac
 
-  if test $gl_cv_func_malloc_posix = yes; then
+  if test $REPLACE_MKDIR = 1; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_REALLOC_POSIX 1
-_ACEOF
 
-  else
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext"
 
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
 
-  REPLACE_REALLOC=1
 
+  if test $ac_cv_func_mkdirat != yes; then
+    HAVE_MKDIRAT=0
   fi
 
+  if test $HAVE_MKDIRAT = 0; then
 
 
 
-  GNULIB_REALLOC_POSIX=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_REALLOC_POSIX 1
-_ACEOF
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mkdirat.$ac_objext"
 
-  # Code from module regex:
 
 
-# Check whether --with-included-regex was given.
-if test "${with_included_regex+set}" = set; then
-  withval=$with_included_regex;
-fi
 
+  fi
 
-  case $with_included_regex in #(
-  yes|no) ac_use_included_regex=$with_included_regex
-        ;;
-  '')
-    # If the system regex support is good enough that it passes the
-    # following run test, then default to *not* using the included regex.c.
-    # If cross compiling, assume the test would fail and use the included
-    # regex.c.
-    { $as_echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5
-$as_echo_n "checking for working re_compile_pattern... " >&6; }
-if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-         gl_cv_func_re_compile_pattern_working=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-           #include <locale.h>
-           #include <limits.h>
-           #include <regex.h>
 
-int
-main ()
-{
-int result = 0;
-            static struct re_pattern_buffer regex;
-            unsigned char folded_chars[UCHAR_MAX + 1];
-            int i;
-            const char *s;
-            struct re_registers regs;
 
-            /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
-               This test needs valgrind to catch the bug on Debian
-               GNU/Linux 3.1 x86, but it might catch the bug better
-               on other platforms and it shouldn't hurt to try the
-               test here.  */
-            if (setlocale (LC_ALL, "en_US.UTF-8"))
-              {
-                static char const pat[] = "insert into";
-                static char const data[] =
-                  "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
-                re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
-                               | RE_ICASE);
-                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, &regs)
-                         != -1)
-                  result |= 1;
-                if (! setlocale (LC_ALL, "C"))
-                  return 1;
-              }
 
-            /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
-            re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("a[^x]b", 6, &regex);
-            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;
 
-            /* This regular expression is from Spencer ere test number 75
-               in grep-2.3.  */
-            re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-            memset (&regex, 0, sizeof regex);
-            for (i = 0; i <= UCHAR_MAX; i++)
-              folded_chars[i] = i;
-            regex.translate = folded_chars;
-            s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
-            /* This should fail with _Invalid character class name_ error.  */
-            if (!s)
-              result |= 4;
+          GNULIB_MKDIRAT=1
 
-            /* Ensure that [b-a] is diagnosed as invalid, when
-               using RE_NO_EMPTY_RANGES. */
-            re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("a[b-a]", 6, &regex);
-            if (s == 0)
-              result |= 8;
 
-            /* 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;
 
-            /* The following example is derived from a problem report
-               against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("[an\371]*n", 7, &regex);
-            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;
 
-            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;
 
-            /* The version of regex.c in older versions of gnulib
-               ignored RE_ICASE.  Detect that problem too.  */
-            re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("x", 1, &regex);
-            if (s)
-              result |= 16;
-            else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-              result |= 16;
+$as_echo "#define GNULIB_TEST_MKDIRAT 1" >>confdefs.h
 
-            /* Catch a bug reported by Vin Shelton in
-               http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
-               */
-            re_set_syntax (RE_SYNTAX_POSIX_BASIC
-                           & ~RE_CONTEXT_INVALID_DUP
-                           & ~RE_NO_EMPTY_RANGES);
-            memset (&regex, 0, sizeof regex);
-            s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
-            if (s)
-              result |= 32;
 
-            /* REG_STARTEND was added to glibc on 2004-01-15.
-               Reject older versions.  */
-            if (! REG_STARTEND)
-              result |= 64;
 
-#if 0
-            /* It would be nice to reject hosts whose regoff_t values are too
-               narrow (including glibc on hosts with 64-bit ptrdiff_t and
-               32-bit int), but we should wait until glibc implements this
-               feature.  Otherwise, support for equivalence classes and
-               multibyte collation symbols would always be broken except
-               when compiling --without-included-regex.   */
-            if (sizeof (regoff_t) < sizeof (ptrdiff_t)
-                || sizeof (regoff_t) < sizeof (ssize_t))
-              result |= 64;
-#endif
 
-            return result;
 
-  ;
-  return 0;
-}
+  for ac_func in mkdtemp
+do :
+  ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp"
+if test "x$ac_cv_func_mkdtemp" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MKDTEMP 1
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_re_compile_pattern_working=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_re_compile_pattern_working=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+done
 
+  if test $ac_cv_func_mkdtemp = no; then
+    HAVE_MKDTEMP=0
+  fi
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_re_compile_pattern_working" >&5
-$as_echo "$gl_cv_func_re_compile_pattern_working" >&6; }
-    case $gl_cv_func_re_compile_pattern_working in #(
-    yes) ac_use_included_regex=no;; #(
-    no) ac_use_included_regex=yes;;
-    esac
-    ;;
-  *) { { $as_echo "$as_me:$LINENO: error: Invalid value for --with-included-regex: $with_included_regex" >&5
-$as_echo "$as_me: error: Invalid value for --with-included-regex: $with_included_regex" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
+  if test $HAVE_MKDTEMP = 0; then
 
-  if test $ac_use_included_regex = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define _REGEX_LARGE_OFFSETS 1
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_syntax_options rpl_re_syntax_options
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_set_syntax rpl_re_set_syntax
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_compile_pattern rpl_re_compile_pattern
-_ACEOF
+  gl_LIBOBJS="$gl_LIBOBJS mkdtemp.$ac_objext"
 
+    :
 
-cat >>confdefs.h <<\_ACEOF
-#define re_compile_fastmap rpl_re_compile_fastmap
-_ACEOF
+  fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_search rpl_re_search
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_search_2 rpl_re_search_2
-_ACEOF
 
+          GNULIB_MKDTEMP=1
 
-cat >>confdefs.h <<\_ACEOF
-#define re_match rpl_re_match
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_match_2 rpl_re_match_2
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_set_registers rpl_re_set_registers
-_ACEOF
+$as_echo "#define GNULIB_TEST_MKDTEMP 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_comp rpl_re_comp
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define re_exec rpl_re_exec
-_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define regcomp rpl_regcomp
-_ACEOF
+  if test $ac_cv_func_mkfifo = no; then
+    HAVE_MKFIFO=0
+  else
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5
+$as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; }
+if ${gl_cv_func_mkfifo_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # Assume that if we have lstat, we can also check symlinks.
+       if test $ac_cv_func_lstat = yes; then
+         ln -s conftest.tmp conftest.lnk
+       fi
+       if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_mkfifo_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_mkfifo_works="guessing no" ;;
+          esac
 
-cat >>confdefs.h <<\_ACEOF
-#define regexec rpl_regexec
-_ACEOF
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/stat.h>
 
+int
+main ()
+{
+int result = 0;
+             if (!mkfifo ("conftest.tmp/", 0600))
+               result |= 1;
+#if HAVE_LSTAT
+             if (!mkfifo ("conftest.lnk/", 0600))
+               result |= 2;
+#endif
+             return result;
 
-cat >>confdefs.h <<\_ACEOF
-#define regerror rpl_regerror
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mkfifo_works=yes
+else
+  gl_cv_func_mkfifo_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
 
+       rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkfifo_works" >&5
+$as_echo "$gl_cv_func_mkfifo_works" >&6; }
+    case "$gl_cv_func_mkfifo_works" in
+      *yes) ;;
+      *)
 
-cat >>confdefs.h <<\_ACEOF
-#define regfree rpl_regfree
-_ACEOF
+$as_echo "#define MKFIFO_TRAILING_SLASH_BUG 1" >>confdefs.h
 
+        REPLACE_MKFIFO=1
+        ;;
+    esac
+  fi
 
+  if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
 
 
 
@@ -39338,685 +24275,436 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
 
+  gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
 
+  fi
 
 
 
 
 
-for ac_header in libintl.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+          GNULIB_MKFIFO=1
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+$as_echo "#define GNULIB_TEST_MKFIFO 1" >>confdefs.h
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
 
-done
 
 
 
 
+  if test $ac_cv_func_mkfifoat = no; then
+    # No known system has mkfifoat but not mknodat
+    HAVE_MKFIFOAT=0
+    HAVE_MKNODAT=0
+  fi
 
+  if test $HAVE_MKFIFOAT = 0; then
 
 
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether isblank is declared" >&5
-$as_echo_n "checking whether isblank is declared... " >&6; }
-if test "${ac_cv_have_decl_isblank+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
 
-int
-main ()
-{
-#ifndef isblank
-  (void) isblank;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_isblank=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_LIBOBJS="$gl_LIBOBJS mkfifoat.$ac_objext"
 
-       ac_cv_have_decl_isblank=no
-fi
+  fi
+  if test $HAVE_MKNODAT = 0; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5
-$as_echo "$ac_cv_have_decl_isblank" >&6; }
-if test "x$ac_cv_have_decl_isblank" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK 0
-_ACEOF
 
 
-fi
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mknodat.$ac_objext"
 
   fi
 
-  # Code from module rename:
 
 
 
 
+          GNULIB_MKFIFOAT=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_MKFIFOAT 1" >>confdefs.h
 
-                { $as_echo "$as_me:$LINENO: checking whether rename honors trailing slash on destination" >&5
-$as_echo_n "checking whether rename honors trailing slash on destination... " >&6; }
-if test "${gl_cv_func_rename_slash_dst_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
-    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
-      { { $as_echo "$as_me:$LINENO: error: cannot create temporary files" >&5
-$as_echo "$as_me: error: cannot create temporary files" >&2;}
-   { (exit 1); exit 1; }; }
-    # Assume that if we have lstat, we can also check symlinks.
-    if test $ac_cv_func_lstat = yes; then
-      ln -s conftest.f conftest.lnk
-    fi
-    if test "$cross_compiling" = yes; then
-        gl_cv_func_rename_slash_dst_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#        include <stdio.h>
-#        include <stdlib.h>
 
-int
-main ()
-{
-int result = 0;
-           if (rename ("conftest.f1", "conftest.f2/") == 0)
-             result |= 1;
-           if (rename ("conftest.d1", "conftest.d2/") != 0)
-             result |= 2;
-#if HAVE_LSTAT
-           if (rename ("conftest.f", "conftest.lnk/") == 0)
-             result |= 4;
-#endif
-           return result;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_rename_slash_dst_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_rename_slash_dst_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-    rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rename_slash_dst_works" >&5
-$as_echo "$gl_cv_func_rename_slash_dst_works" >&6; }
-  if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+          GNULIB_MKNODAT=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_MKNODAT 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
 
-    REPLACE_RENAME=1
 
-cat >>confdefs.h <<\_ACEOF
-#define RENAME_TRAILING_SLASH_DEST_BUG 1
-_ACEOF
 
-  fi
 
-            { $as_echo "$as_me:$LINENO: checking whether rename honors trailing slash on source" >&5
-$as_echo_n "checking whether rename honors trailing slash on source... " >&6; }
-if test "${gl_cv_func_rename_slash_src_works+set}" = set; then
+
+  if test $ac_cv_func_mknod = no; then
+    HAVE_MKNOD=0
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mknod can create fifo without root privileges" >&5
+$as_echo_n "checking whether mknod can create fifo without root privileges... " >&6; }
+if ${gl_cv_func_mknod_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
-    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
-      { { $as_echo "$as_me:$LINENO: error: cannot create temporary files" >&5
-$as_echo "$as_me: error: cannot create temporary files" >&2;}
-   { (exit 1); exit 1; }; }
-    # Assume that if we have lstat, we can also check symlinks.
-    if test $ac_cv_func_lstat = yes; then
-      ln -s conftest.f conftest.lnk
-    fi
-    if test "$cross_compiling" = yes; then
-        gl_cv_func_rename_slash_src_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_mknod_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_mknod_works="guessing no" ;;
+          esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <sys/stat.h>
+             #include <unistd.h>
 
-#        include <stdio.h>
-#        include <stdlib.h>
+             /* Copied from root-uid.h.  FIXME: Just use root-uid.h.  */
+             #ifdef __TANDEM
+             # define ROOT_UID 65535
+             #else
+             # define ROOT_UID 0
+             #endif
 
 int
 main ()
 {
-int result = 0;
-           if (rename ("conftest.f1/", "conftest.d3") == 0)
-             result |= 1;
-           if (rename ("conftest.d1/", "conftest.d2") != 0)
-             result |= 2;
-#if HAVE_LSTAT
-           if (rename ("conftest.lnk/", "conftest.f") == 0)
-             result |= 4;
-#endif
-           return result;
-
+/* Indeterminate for super-user, assume no.  Why are you running
+         configure as root, anyway?  */
+      if (geteuid () == ROOT_UID) return 99;
+      if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_rename_slash_src_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mknod_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_rename_slash_src_works=no
+  if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+            { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
+See \`config.log' for more details" "$LINENO" 5; }
+          fi
+          gl_cv_func_mknod_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-    rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
-
+       rm -f conftest.fifo
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rename_slash_src_works" >&5
-$as_echo "$gl_cv_func_rename_slash_src_works" >&6; }
-  if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mknod_works" >&5
+$as_echo "$gl_cv_func_mknod_works" >&6; }
+    case "$gl_cv_func_mknod_works" in
+      *yes) ;;
+      *)
+        REPLACE_MKNOD=1
 
+$as_echo "#define MKNOD_FIFO_BUG 1" >>confdefs.h
 
+        ;;
+    esac
+        if test $REPLACE_MKFIFO = 1; then
+      REPLACE_MKNOD=1
+    fi
+  fi
 
+  if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
 
-    REPLACE_RENAME=1
 
-cat >>confdefs.h <<\_ACEOF
-#define RENAME_TRAILING_SLASH_SOURCE_BUG 1
-_ACEOF
 
-  fi
+  gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
 
-        { $as_echo "$as_me:$LINENO: checking whether rename manages hard links correctly" >&5
-$as_echo_n "checking whether rename manages hard links correctly... " >&6; }
-if test "${gl_cv_func_rename_link_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  rm -rf conftest.f conftest.f1
-    if touch conftest.f && ln conftest.f conftest.f1 &&
-        set x `ls -i conftest.f conftest.f1` && test "" = ""; then
-      if test "$cross_compiling" = yes; then
-          gl_cv_func_rename_link_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  fi
 
-#          include <stdio.h>
-#          include <stdlib.h>
-#          include <unistd.h>
 
-int
-main ()
-{
-int result = 0;
-             if (rename ("conftest.f", "conftest.f1"))
-               result |= 1;
-             if (unlink ("conftest.f1"))
-               result |= 2;
-             if (rename ("conftest.f", "conftest.f"))
-               result |= 4;
-             if (rename ("conftest.f1", "conftest.f1") == 0)
-               result |= 8;
-             return result;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_rename_link_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_rename_link_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
+          GNULIB_MKNOD=1
 
-    else
-      gl_cv_func_rename_link_works="guessing no"
-    fi
-    rm -rf conftest.f conftest.f1
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rename_link_works" >&5
-$as_echo "$gl_cv_func_rename_link_works" >&6; }
-  if test "x$gl_cv_func_rename_link_works" != xyes; then
 
 
 
+$as_echo "#define GNULIB_TEST_MKNOD 1" >>confdefs.h
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
 
-    REPLACE_RENAME=1
 
-cat >>confdefs.h <<\_ACEOF
-#define RENAME_HARD_LINK_BUG 1
-_ACEOF
 
-  fi
 
-          { $as_echo "$as_me:$LINENO: checking whether rename manages existing destinations correctly" >&5
-$as_echo_n "checking whether rename manages existing destinations correctly... " >&6; }
-if test "${gl_cv_func_rename_dest_works+set}" = set; then
+  if test $APPLE_UNIVERSAL_BUILD = 1; then
+    # A universal build on Apple Mac OS X platforms.
+    # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+    # But we need a configuration result that is valid in both modes.
+    gl_cv_func_working_mktime=no
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
+$as_echo_n "checking for working mktime... " >&6; }
+if ${gl_cv_func_working_mktime+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  rm -rf conftest.f conftest.d1 conftest.d2
-    touch conftest.f && mkdir conftest.d1 conftest.d2 ||
-      { { $as_echo "$as_me:$LINENO: error: cannot create temporary files" >&5
-$as_echo "$as_me: error: cannot create temporary files" >&2;}
-   { (exit 1); exit 1; }; }
-    if test "$cross_compiling" = yes; then
-        gl_cv_func_rename_dest_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_working_mktime=no
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+/* Test program from Paul Eggert and Tony Leneis.  */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
 
-#        include <stdio.h>
-#        include <stdlib.h>
-
-int
-main ()
-{
-int result = 0;
-           if (rename ("conftest.d1", "conftest.d2") != 0)
-             result |= 1;
-           if (rename ("conftest.d2", "conftest.f") == 0)
-             result |= 2;
-           return result;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_rename_dest_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 
-( exit $ac_status )
-gl_cv_func_rename_dest_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+#if HAVE_DECL_ALARM
+# include <signal.h>
+#endif
 
+/* Work around redefinition to rpl_putenv by other config tests.  */
+#undef putenv
 
-    rm -rf conftest.f conftest.d1 conftest.d2
+static time_t time_t_max;
+static time_t time_t_min;
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rename_dest_works" >&5
-$as_echo "$gl_cv_func_rename_dest_works" >&6; }
-  if test "x$gl_cv_func_rename_dest_works" != xyes; then
+/* Values we'll use to set the TZ environment variable.  */
+static char *tz_strings[] = {
+  (char *) 0, "TZ=GMT0", "TZ=JST-9",
+  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
 
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+   Based on a problem report from Andreas Jaeger.  */
+static int
+spring_forward_gap ()
+{
+  /* glibc (up to about 1998-10-07) failed this test. */
+  struct tm tm;
 
+  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+     instead of "TZ=America/Vancouver" in order to detect the bug even
+     on systems that don't support the Olson extension, or don't have the
+     full zoneinfo tables installed.  */
+  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
 
+  tm.tm_year = 98;
+  tm.tm_mon = 3;
+  tm.tm_mday = 5;
+  tm.tm_hour = 2;
+  tm.tm_min = 0;
+  tm.tm_sec = 0;
+  tm.tm_isdst = -1;
+  return mktime (&tm) != (time_t) -1;
+}
 
+static int
+mktime_test1 (time_t now)
+{
+  struct tm *lt;
+  return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
 
+static int
+mktime_test (time_t now)
+{
+  return (mktime_test1 (now)
+          && mktime_test1 ((time_t) (time_t_max - now))
+          && mktime_test1 ((time_t) (time_t_min + now)));
+}
 
+static int
+irix_6_4_bug ()
+{
+  /* Based on code from Ariel Faigon.  */
+  struct tm tm;
+  tm.tm_year = 96;
+  tm.tm_mon = 3;
+  tm.tm_mday = 0;
+  tm.tm_hour = 0;
+  tm.tm_min = 0;
+  tm.tm_sec = 0;
+  tm.tm_isdst = -1;
+  mktime (&tm);
+  return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
 
+static int
+bigtime_test (int j)
+{
+  struct tm tm;
+  time_t now;
+  tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+  now = mktime (&tm);
+  if (now != (time_t) -1)
+    {
+      struct tm *lt = localtime (&now);
+      if (! (lt
+             && lt->tm_year == tm.tm_year
+             && lt->tm_mon == tm.tm_mon
+             && lt->tm_mday == tm.tm_mday
+             && lt->tm_hour == tm.tm_hour
+             && lt->tm_min == tm.tm_min
+             && lt->tm_sec == tm.tm_sec
+             && lt->tm_yday == tm.tm_yday
+             && lt->tm_wday == tm.tm_wday
+             && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
+                  == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
+        return 0;
+    }
+  return 1;
+}
 
-  gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+static int
+year_2050_test ()
+{
+  /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+     ignoring leap seconds.  */
+  unsigned long int answer = 2527315200UL;
 
-    REPLACE_RENAME=1
+  struct tm tm;
+  time_t t;
+  tm.tm_year = 2050 - 1900;
+  tm.tm_mon = 2 - 1;
+  tm.tm_mday = 1;
+  tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+  tm.tm_isdst = -1;
 
-cat >>confdefs.h <<\_ACEOF
-#define RENAME_DEST_EXISTS_BUG 1
-_ACEOF
+  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+     instead of "TZ=America/Vancouver" in order to detect the bug even
+     on systems that don't support the Olson extension, or don't have the
+     full zoneinfo tables installed.  */
+  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
 
-  fi
+  t = mktime (&tm);
 
+  /* Check that the result is either a failure, or close enough
+     to the correct answer that we can assume the discrepancy is
+     due to leap seconds.  */
+  return (t == (time_t) -1
+          || (0 < t && answer - 120 <= t && t <= answer + 120));
+}
 
+int
+main ()
+{
+  int result = 0;
+  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.
+     Give up after 60 seconds; a mktime slower than that
+     isn't worth using anyway.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (60);
+#endif
 
-  GNULIB_RENAME=1
+  time_t_max = (! time_t_signed
+                ? (time_t) -1
+                : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+                   * 2 + 1));
+  time_t_min = (! time_t_signed
+                ? (time_t) 0
+                : time_t_signed_magnitude
+                ? ~ (time_t) 0
+                : ~ time_t_max);
 
+  delta = time_t_max / 997; /* a suitable prime number */
+  for (i = 0; i < N_STRINGS; i++)
+    {
+      if (tz_strings[i])
+        putenv (tz_strings[i]);
 
+      for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta)
+        if (! mktime_test (t))
+          result |= 1;
+      if ((result & 2) == 0
+          && ! (mktime_test ((time_t) 1)
+                && mktime_test ((time_t) (60 * 60))
+                && mktime_test ((time_t) (60 * 60 * 24))))
+        result |= 2;
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_RENAME 1
+      for (j = 1; (result & 4) == 0; j <<= 1)
+        {
+          if (! bigtime_test (j))
+            result |= 4;
+          if (INT_MAX / 2 < j)
+            break;
+        }
+      if ((result & 8) == 0 && ! bigtime_test (INT_MAX))
+        result |= 8;
+    }
+  if (! irix_6_4_bug ())
+    result |= 16;
+  if (! spring_forward_gap ())
+    result |= 32;
+  if (! year_2050_test ())
+    result |= 64;
+  return result;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_mktime=yes
+else
+  gl_cv_func_working_mktime=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5
+$as_echo "$gl_cv_func_working_mktime" >&6; }
 
-  # Code from module renameat:
-
-
+  if test $gl_cv_func_working_mktime = no; then
+    REPLACE_MKTIME=1
+  else
+    REPLACE_MKTIME=0
+  fi
 
+  if test $REPLACE_MKTIME = 1; then
 
 
 
@@ -40025,177 +24713,162 @@ _ACEOF
 
 
 
-  if test $ac_cv_func_renameat = no; then
-    HAVE_RENAMEAT=0
+  gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
 
+    :
+  fi
 
 
 
 
 
+          GNULIB_MKTIME=1
 
 
-  gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
 
 
 
+$as_echo "#define GNULIB_TEST_MKTIME 1" >>confdefs.h
 
 
 
 
+  :
 
 
-  gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
 
-  elif test $REPLACE_RENAME = 1; then
-        REPLACE_RENAMEAT=1
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
 
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
 
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
 
+  fi
 
 
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
-  gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
 
-  fi
 
 
 
 
-  GNULIB_RENAMEAT=1
 
 
+  gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_RENAMEAT 1
-_ACEOF
+  fi
 
 
 
-  # Code from module rmdir:
 
 
-    { $as_echo "$as_me:$LINENO: checking whether rmdir works" >&5
-$as_echo_n "checking whether rmdir works... " >&6; }
-if test "${gl_cv_func_rmdir_works+set}" = set; then
+     if test $ac_cv_func_nl_langinfo = yes; then
+    # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
+$as_echo_n "checking whether YESEXPR works... " >&6; }
+if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  mkdir conftest.dir
-     touch conftest.file
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_rmdir_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+
+         case "$host_os" in
+                   # Guess no on irix systems.
+           irix*)  gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+                   # Guess yes elsewhere.
+           *)      gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+         esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdio.h>
-           #include <errno.h>
-           #include <unistd.h>
+#include <langinfo.h>
 
 int
 main ()
 {
-int result = 0;
-      if (!rmdir ("conftest.file/"))
-        result |= 1;
-      else if (errno != ENOTDIR)
-        result |= 2;
-      if (!rmdir ("conftest.dir/./"))
-        result |= 4;
-      return result;
+return !*nl_langinfo(YESEXPR);
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_rmdir_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_nl_langinfo_yesexpr_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_rmdir_works=no
+  gl_cv_func_nl_langinfo_yesexpr_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-     rm -rf conftest.dir conftest.file
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rmdir_works" >&5
-$as_echo "$gl_cv_func_rmdir_works" >&6; }
-  if test x"$gl_cv_func_rmdir_works" != xyes; then
-    REPLACE_RMDIR=1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
+$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
+    case $gl_cv_func_nl_langinfo_yesexpr_works in
+      *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+      *)    FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+    esac
 
+cat >>confdefs.h <<_ACEOF
+#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
+_ACEOF
 
+    if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+        && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+      :
+    else
+      REPLACE_NL_LANGINFO=1
 
+$as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h
 
+    fi
+  else
+    HAVE_NL_LANGINFO=0
+  fi
 
+  if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
 
-  fi
 
 
 
 
-  GNULIB_RMDIR=1
+  gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
 
+  fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_RMDIR 1
-_ACEOF
 
 
 
-  # Code from module rpmatch:
+          GNULIB_NL_LANGINFO=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
+
 
 
 
@@ -40204,1130 +24877,655 @@ _ACEOF
 
 
 
-for ac_func in rpmatch
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
+$as_echo_n "checking for obstacks... " >&6; }
+if ${ac_cv_func_obstack+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+                     #include "obstack.h"
 int
 main ()
 {
-return $ac_func ();
+struct obstack mem;
+                      #define obstack_chunk_alloc malloc
+                      #define obstack_chunk_free free
+                      obstack_init (&mem);
+                      obstack_free (&mem, 0);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_func_obstack=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  ac_cv_func_obstack=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_obstack" >&5
+$as_echo "$ac_cv_func_obstack" >&6; }
+if test $ac_cv_func_obstack = yes; then
+
+$as_echo "#define HAVE_OBSTACK 1" >>confdefs.h
 
 else
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS obstack.$ac_objext"
 
 fi
-done
 
 
-  if test $ac_cv_func_rpmatch = no; then
-    HAVE_RPMATCH=0
 
-  { $as_echo "$as_me:$LINENO: checking for nl_langinfo and YESEXPR" >&5
-$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; }
-if test "${gl_cv_langinfo_yesexpr+set}" = set; then
+  case "$host_os" in
+    mingw* | pw*)
+      REPLACE_OPEN=1
+      ;;
+    *)
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
+$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
+if ${gl_cv_func_open_slash+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  # Assume that if we have lstat, we can also check symlinks.
+          if test $ac_cv_func_lstat = yes; then
+            touch conftest.tmp
+            ln -s conftest.tmp conftest.lnk
+          fi
+          if test "$cross_compiling" = yes; then :
+
+             case "$host_os" in
+               freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+                 gl_cv_func_open_slash="guessing no" ;;
+               *)
+                 gl_cv_func_open_slash="guessing yes" ;;
+             esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
+
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
 {
-char* cs = nl_langinfo(YESEXPR); return !cs;
-  ;
-  return 0;
+  int result = 0;
+#if HAVE_LSTAT
+  if (open ("conftest.lnk/", O_RDONLY) != -1)
+    result |= 1;
+#endif
+  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+    result |= 2;
+  return result;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gl_cv_langinfo_yesexpr=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_open_slash=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_langinfo_yesexpr=no
+  gl_cv_func_open_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+          rm -f conftest.sl conftest.tmp conftest.lnk
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_langinfo_yesexpr" >&5
-$as_echo "$gl_cv_langinfo_yesexpr" >&6; }
-  if test $gl_cv_langinfo_yesexpr = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
+$as_echo "$gl_cv_func_open_slash" >&6; }
+      case "$gl_cv_func_open_slash" in
+        *no)
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LANGINFO_YESEXPR 1
-_ACEOF
+$as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+          REPLACE_OPEN=1
+          ;;
+      esac
+      ;;
+  esac
 
+    if test $REPLACE_OPEN = 0; then
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
   fi
 
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_OPEN=1
+      fi
+    fi
+
+
+
+  if test $REPLACE_OPEN = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
+
+
+
+  :
+
   fi
 
 
 
 
-  GNULIB_RPMATCH=1
 
+          GNULIB_OPEN=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_RPMATCH 1
-_ACEOF
 
 
 
-  # Code from module safe-read:
+$as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
 
 
 
 
 
 
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+  yes+*yes)
+    ;;
+  yes+*)
+    # Solaris 9 has *at functions, but uniformly mishandles trailing
+    # slash in all of them.
+    REPLACE_OPENAT=1
+    ;;
+  *)
+    HAVE_OPENAT=0
+    ;;
+  esac
 
+  if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
 
 
-  gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext"
 
 
 
 
 
 
-  # Code from module safe-write:
+  gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
 
 
 
+  :
+
+  fi
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_OPENAT 1
+_ACEOF
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext"
 
 
+          GNULIB_OPENAT=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_OPENAT 1" >>confdefs.h
 
-  # Code from module same-inode:
-  # Code from module save-cwd:
 
 
 
 
 
+  for ac_func in opendir
+do :
+  ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir"
+if test "x$ac_cv_func_opendir" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENDIR 1
+_ACEOF
 
+fi
+done
 
+  if test $ac_cv_func_opendir = no; then
+    HAVE_OPENDIR=0
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS save-cwd.$ac_objext"
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_OPENDIR = 1; then
+        REPLACE_OPENDIR=1
+      fi
+    fi
 
 
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
 
 
 
-  # Code from module savedir:
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
 
+  fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS savedir.$ac_objext"
 
 
-  # Code from module setenv:
+          GNULIB_OPENDIR=1
 
 
-  if test $HAVE_SETENV$REPLACE_SETENV != 10; then
 
 
 
+$as_echo "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
 
-  fi
 
 
 
+  ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
+#include <$ac_cv_struct_tm>
 
-  GNULIB_SETENV=1
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_TM_TM_ZONE 1
+_ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_SETENV 1
-_ACEOF
+fi
 
+if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
 
+$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
 
-  # Code from module size_max:
+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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TZNAME $ac_have_decl
+_ACEOF
 
-for ac_header in stdint.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+$as_echo_n "checking for tzname... " >&6; }
+if ${ac_cv_var_tzname+:} false; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif
+
+int
+main ()
+{
+return tzname[0][0];
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_var_tzname=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_var_tzname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+$as_echo "$ac_cv_var_tzname" >&6; }
+  if test $ac_cv_var_tzname = yes; then
+
+$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
 
-       ac_header_compiler=no
+  fi
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <$ac_header>
+
+#include <time.h> /* for time_t */
+#include <limits.h> /* for CHAR_BIT, LONG_MIN, LONG_MAX */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 \
+        ? (t) -1 \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+typedef int verify_min[2 * (LONG_MIN <= TYPE_MINIMUM (time_t)) - 1];
+typedef int verify_max[2 * (TYPE_MAXIMUM (time_t) <= LONG_MAX) - 1];
+
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-  ac_header_preproc=no
-fi
+$as_echo "#define TIME_T_FITS_IN_LONG_INT 1" >>confdefs.h
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+
+
+
+
+  for ac_func in getppriv
+do :
+  ac_fn_c_check_func "$LINENO" "getppriv" "ac_cv_func_getppriv"
+if test "x$ac_cv_func_getppriv" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_GETPPRIV 1
 _ACEOF
 
 fi
-
 done
 
-    { $as_echo "$as_me:$LINENO: checking for SIZE_MAX" >&5
-$as_echo_n "checking for SIZE_MAX... " >&6; }
-if test "${gl_cv_size_max+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-    gl_cv_size_max=
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
+  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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Found it" >/dev/null 2>&1; then
-  gl_cv_size_max=yes
+
+  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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-rm -f conftest*
 
-    if test -z "$gl_cv_size_max"; then
-                        if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) * CHAR_BIT - 1) >= 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) * CHAR_BIT - 1) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+  # Check whether --enable-acl was given.
+if test "${enable_acl+set}" = set; then :
+  enableval=$enable_acl;
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
+  enable_acl=auto
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  LIB_ACL=
+  use_acl=0
+  if test "x$enable_acl" != "xno"; then
+        for ac_header in sys/acl.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_acl_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_ACL_H 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) * CHAR_BIT - 1) < 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+fi
+
+done
+
+    if test $ac_cv_header_sys_acl_h = yes; then
+      ac_save_LIBS=$LIBS
+
+                  if test $use_acl = 0; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing acl_get_file" >&5
+$as_echo_n "checking for library containing acl_get_file... " >&6; }
+if ${ac_cv_search_acl_get_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.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 acl_get_file ();
 int
 main ()
 {
-static int test_array [1 - 2 * !((sizeof (size_t) * CHAR_BIT - 1) >= $ac_mid)];
-test_array [0] = 0
-
+return acl_get_file ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+for ac_lib in '' acl pacl; 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_acl_get_file=$ac_res
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_acl_get_file+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_acl_get_file+:} false; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
+  ac_cv_search_acl_get_file=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) * CHAR_BIT - 1) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_get_file" >&5
+$as_echo "$ac_cv_search_acl_get_file" >&6; }
+ac_res=$ac_cv_search_acl_get_file
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  if test "$ac_cv_search_acl_get_file" != "none required"; then
+             LIB_ACL=$ac_cv_search_acl_get_file
+           fi
+           for ac_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \
+              acl_free acl_from_mode acl_from_text \
+              acl_delete_def_file acl_extended_file \
+              acl_delete_fd_np acl_delete_file_np \
+              acl_copy_ext_native acl_create_entry_np \
+              acl_to_short_text acl_free_text
+do :
+  as_ac_var=`$as_echo "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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 done
-case $ac_lo in
-?*) size_t_bits_minus_1=$ac_lo;;
-'') size_t_bits_minus_1= ;;
-esac
+
+           # If the acl_get_file bug is detected, don't enable the ACL support.
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working acl_get_file" >&5
+$as_echo_n "checking for working acl_get_file... " >&6; }
+if ${gl_cv_func_working_acl_get_file+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_working_acl_get_file=cross-compiling
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-#include <limits.h>
-static long int longval () { return sizeof (size_t) * CHAR_BIT - 1; }
-static unsigned long int ulongval () { return sizeof (size_t) * CHAR_BIT - 1; }
-#include <stdio.h>
-#include <stdlib.h>
+#include <sys/types.h>
+           #include <sys/acl.h>
+           #include <errno.h>
+
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof (size_t) * CHAR_BIT - 1) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof (size_t) * CHAR_BIT - 1))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof (size_t) * CHAR_BIT - 1))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+if (!acl_get_file (".", ACL_TYPE_ACCESS) && errno == ENOENT)
+              return 1;
+            return 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  size_t_bits_minus_1=`cat conftest.val`
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_acl_get_file=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-size_t_bits_minus_1=
+  gl_cv_func_working_acl_get_file=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest.val
-      if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)];
-test_array [0] = 0
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_acl_get_file" >&5
+$as_echo "$gl_cv_func_working_acl_get_file" >&6; }
 
-  ;
-  return 0;
-}
+  if test $gl_cv_func_working_acl_get_file = yes; then :
+  use_acl=1
+fi
+
+           if test $use_acl = 1; then
+                          for ac_header in acl/libacl.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "acl/libacl.h" "ac_cv_header_acl_libacl_h" "$ac_includes_default"
+if test "x$ac_cv_header_acl_libacl_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACL_LIBACL_H 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+done
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) < 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo= ac_hi=
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
+  for ac_func in acl_entries
+do :
+  ac_fn_c_check_func "$LINENO" "acl_entries" "ac_cv_func_acl_entries"
+if test "x$ac_cv_func_acl_entries" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACL_ENTRIES 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
+    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
 done
-case $ac_lo in
-?*) fits_in_uint=$ac_lo;;
-'') fits_in_uint= ;;
-esac
+
+
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ACL_FIRST_ENTRY" >&5
+$as_echo_n "checking for ACL_FIRST_ENTRY... " >&6; }
+if ${gl_cv_acl_ACL_FIRST_ENTRY+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-static long int longval () { return sizeof (size_t) <= sizeof (unsigned int); }
-static unsigned long int ulongval () { return sizeof (size_t) <= sizeof (unsigned int); }
-#include <stdio.h>
-#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/acl.h>
+int type = ACL_FIRST_ENTRY;
 int
 main ()
 {
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof (size_t) <= sizeof (unsigned int)) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof (size_t) <= sizeof (unsigned int)))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof (size_t) <= sizeof (unsigned int)))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  fits_in_uint=`cat conftest.val`
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_acl_ACL_FIRST_ENTRY=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-fits_in_uint=
+  gl_cv_acl_ACL_FIRST_ENTRY=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.val
-      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-        if test $fits_in_uint = 1; then
-                              cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-                 extern size_t foo;
-                 extern unsigned long foo;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_acl_ACL_FIRST_ENTRY" >&5
+$as_echo "$gl_cv_acl_ACL_FIRST_ENTRY" >&6; }
+             if test $gl_cv_acl_ACL_FIRST_ENTRY = yes; then
+
+$as_echo "#define HAVE_ACL_FIRST_ENTRY 1" >>confdefs.h
 
+             fi
+                          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ACL_TYPE_EXTENDED" >&5
+$as_echo_n "checking for ACL_TYPE_EXTENDED... " >&6; }
+if ${gl_cv_acl_ACL_TYPE_EXTENDED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/acl.h>
+int type = ACL_TYPE_EXTENDED;
 int
 main ()
 {
@@ -41336,1684 +25534,1298 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  fits_in_uint=0
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_acl_ACL_TYPE_EXTENDED=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  gl_cv_acl_ACL_TYPE_EXTENDED=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        fi
-                                if test $fits_in_uint = 1; then
-          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        else
-          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        fi
-      else
-                gl_cv_size_max='((size_t)~(size_t)0)'
-      fi
-    fi
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_size_max" >&5
-$as_echo "$gl_cv_size_max" >&6; }
-  if test "$gl_cv_size_max" != yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_acl_ACL_TYPE_EXTENDED" >&5
+$as_echo "$gl_cv_acl_ACL_TYPE_EXTENDED" >&6; }
+             if test $gl_cv_acl_ACL_TYPE_EXTENDED = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define SIZE_MAX $gl_cv_size_max
-_ACEOF
+$as_echo "#define HAVE_ACL_TYPE_EXTENDED 1" >>confdefs.h
 
-  fi
+             fi
+           else
+             LIB_ACL=
+           fi
 
+fi
 
+      fi
 
-  # Code from module sleep:
+            if test $use_acl = 0; then
+        for ac_func in facl
+do :
+  ac_fn_c_check_func "$LINENO" "facl" "ac_cv_func_facl"
+if test "x$ac_cv_func_facl" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_FACL 1
+_ACEOF
 
+fi
+done
 
-            { $as_echo "$as_me:$LINENO: checking whether sleep is declared" >&5
-$as_echo_n "checking whether sleep is declared... " >&6; }
-if test "${ac_cv_have_decl_sleep+set}" = set; then
+        if test $ac_cv_func_facl = yes; then
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing acl_trivial" >&5
+$as_echo_n "checking for library containing acl_trivial... " >&6; }
+if ${ac_cv_search_acl_trivial+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.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 acl_trivial ();
 int
 main ()
 {
-#ifndef sleep
-  (void) sleep;
-#endif
-
+return acl_trivial ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_sleep=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+for ac_lib in '' sec; 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_acl_trivial=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_acl_trivial+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_acl_trivial+:} false; then :
 
-       ac_cv_have_decl_sleep=no
+else
+  ac_cv_search_acl_trivial=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_trivial" >&5
+$as_echo "$ac_cv_search_acl_trivial" >&6; }
+ac_res=$ac_cv_search_acl_trivial
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  if test "$ac_cv_search_acl_trivial" != "none required"; then
+               LIB_ACL=$ac_cv_search_acl_trivial
+             fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sleep" >&5
-$as_echo "$ac_cv_have_decl_sleep" >&6; }
-if test "x$ac_cv_have_decl_sleep" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SLEEP 1
+          for ac_func in acl_trivial
+do :
+  ac_fn_c_check_func "$LINENO" "acl_trivial" "ac_cv_func_acl_trivial"
+if test "x$ac_cv_func_acl_trivial" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACL_TRIVIAL 1
 _ACEOF
 
+fi
+done
+
+          use_acl=1
+        fi
+      fi
 
-else
+            if test $use_acl = 0; then
+        for ac_func in getacl
+do :
+  ac_fn_c_check_func "$LINENO" "getacl" "ac_cv_func_getacl"
+if test "x$ac_cv_func_getacl" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SLEEP 0
+#define HAVE_GETACL 1
 _ACEOF
 
+fi
+done
+
+        if test $ac_cv_func_getacl = yes; then
+          use_acl=1
+        fi
+                for ac_header in aclv.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "aclv.h" "ac_cv_header_aclv_h" "#include <sys/types.h>
+"
+if test "x$ac_cv_header_aclv_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACLV_H 1
+_ACEOF
 
 fi
 
+done
+
+      fi
+
+            if test $use_acl = 0; then
+        for ac_func in aclx_get
+do :
+  ac_fn_c_check_func "$LINENO" "aclx_get" "ac_cv_func_aclx_get"
+if test "x$ac_cv_func_aclx_get" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACLX_GET 1
+_ACEOF
 
+fi
+done
 
+        if test $ac_cv_func_aclx_get = yes; then
+          use_acl=1
+        fi
+      fi
 
+            if test $use_acl = 0 || test "$ac_cv_func_aclx_get" = yes; then
+        for ac_func in statacl
+do :
+  ac_fn_c_check_func "$LINENO" "statacl" "ac_cv_func_statacl"
+if test "x$ac_cv_func_statacl" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STATACL 1
+_ACEOF
 
+fi
+done
 
+        if test $ac_cv_func_statacl = yes; then
+          use_acl=1
+        fi
+      fi
 
+            if test $use_acl = 0; then
+        for ac_func in aclsort
+do :
+  ac_fn_c_check_func "$LINENO" "aclsort" "ac_cv_func_aclsort"
+if test "x$ac_cv_func_aclsort" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ACLSORT 1
+_ACEOF
 
-  if test $ac_cv_have_decl_sleep != yes; then
-    HAVE_SLEEP=0
+fi
+done
 
+        if test $ac_cv_func_aclsort = yes; then
+          use_acl=1
+        fi
+      fi
 
+      LIBS=$ac_save_LIBS
+    fi
+    if test "x$enable_acl$use_acl" = "xyes0"; then
+      as_fn_error $? "ACLs enabled but support not detected" "$LINENO" 5
+    elif test "x$enable_acl$use_acl" = "xauto0"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libacl development library was not found or not usable." >&5
+$as_echo "$as_me: WARNING: libacl development library was not found or not usable." >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNU tar will be built without ACL support." >&5
+$as_echo "$as_me: WARNING: GNU tar will be built without ACL support." >&2;}
+    fi
+  fi
 
 
+cat >>confdefs.h <<_ACEOF
+#define USE_ACL $use_acl
+_ACEOF
 
+  USE_ACL=$use_acl
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
+      :
 
-  else
-        { $as_echo "$as_me:$LINENO: checking for working sleep" >&5
-$as_echo_n "checking for working sleep... " >&6; }
-if test "${gl_cv_func_sleep_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_sleep_works="guessing no"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <errno.h>
-#include <unistd.h>
-#include <signal.h>
-static void
-handle_alarm (int sig)
-{
-  if (sig != SIGALRM)
-    _exit (2);
-}
+  :
 
-int
-main ()
-{
 
-    /* Failure to compile this test due to missing alarm is okay,
-       since all such platforms (mingw) also lack sleep.  */
-    unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days.  */
-    unsigned int remaining;
-    signal (SIGALRM, handle_alarm);
-    alarm (1);
-    remaining = sleep (pentecost);
-    if (remaining > pentecost)
-      return 3;
-    if (remaining <= pentecost - 10)
-      return 4;
-    return 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_sleep_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_sleep_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_RAISE 1
+_ACEOF
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_sleep_works" >&5
-$as_echo "$gl_cv_func_sleep_works" >&6; }
-    if test "$gl_cv_func_sleep_works" != yes; then
-      REPLACE_SLEEP=1
+done
 
+  if test $ac_cv_func_raise = no; then
+    HAVE_RAISE=0
+  else
+    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+      REPLACE_RAISE=1
+    fi
 
+  fi
 
+  if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
 
-    fi
-  fi
 
 
+  gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext"
 
+    :
+  fi
 
-  GNULIB_SLEEP=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_SLEEP 1
-_ACEOF
 
+          GNULIB_RAISE=1
 
 
-  # Code from module snprintf:
 
 
-  gl_cv_func_snprintf_usable=no
 
-for ac_func in snprintf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+$as_echo "#define GNULIB_TEST_RAISE 1" >>confdefs.h
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_RAWMEMCHR 1
 _ACEOF
 
 fi
 done
 
-  if test $ac_cv_func_snprintf = yes; then
+  if test $ac_cv_func_rawmemchr = no; then
+    HAVE_RAWMEMCHR=0
+  fi
 
+  if test $HAVE_RAWMEMCHR = 0; then
 
-  { $as_echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5
-$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
-if test "${gl_cv_func_snprintf_size1+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then
-  gl_cv_func_snprintf_size1="guessing yes"
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <stdio.h>
-int main()
-{
-  static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
-  snprintf (buf, 1, "%d", 12345);
-  return buf[1] != 'E';
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_snprintf_size1=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gl_cv_func_snprintf_size1=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5
-$as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
-    case "$gl_cv_func_snprintf_size1" in
-      *yes)
+  gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
 
-        case "$gl_cv_func_snprintf_retval_c99" in
-          *yes)
-            gl_cv_func_snprintf_usable=yes
-            ;;
-        esac
-        ;;
-    esac
+    :
   fi
-  if test $gl_cv_func_snprintf_usable = no; then
 
 
 
 
 
+          GNULIB_RAWMEMCHR=1
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
+$as_echo "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
+
+
 
-  if test $ac_cv_func_snprintf = yes; then
-    REPLACE_SNPRINTF=1
-  fi
-  :
 
+
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_READ=1
   fi
 
 
+  if test $REPLACE_READ = 1; then
 
 
-  if test $ac_cv_have_decl_snprintf = no; then
-    HAVE_DECL_SNPRINTF=0
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS read.$ac_objext"
+
+    :
   fi
 
 
 
 
-  GNULIB_SNPRINTF=1
 
+          GNULIB_READ=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_SNPRINTF 1
-_ACEOF
 
 
 
+$as_echo "#define GNULIB_TEST_READ 1" >>confdefs.h
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_SNPRINTF 1
-_ACEOF
 
 
-  # Code from module ssize_t:
 
-  { $as_echo "$as_me:$LINENO: checking for ssize_t" >&5
-$as_echo_n "checking for ssize_t... " >&6; }
-if test "${gt_cv_ssize_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-int
-main ()
-{
-int x = sizeof (ssize_t *) + sizeof (ssize_t);
-            return !x;
-  ;
-  return 0;
-}
+
+  for ac_func in readdir
+do :
+  ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir"
+if test "x$ac_cv_func_readdir" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_READDIR 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_ssize_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gt_cv_ssize_t=no
 fi
+done
+
+  if test $ac_cv_func_readdir = no; then
+    HAVE_READDIR=0
+  fi
+
+  if test $HAVE_READDIR = 0; then
+
+
+
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5
-$as_echo "$gt_cv_ssize_t" >&6; }
-  if test $gt_cv_ssize_t = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define ssize_t int
-_ACEOF
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
 
   fi
 
-  # Code from module stat:
 
 
 
 
+          GNULIB_READDIR=1
 
 
 
 
-    { $as_echo "$as_me:$LINENO: checking whether stat handles trailing slashes on directories" >&5
-$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
-if test "${gl_cv_func_stat_dir_slash+set}" = set; then
+
+$as_echo "#define GNULIB_TEST_READDIR 1" >>confdefs.h
+
+
+
+
+
+
+  if test $ac_cv_func_readlink = no; then
+    HAVE_READLINK=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5
+$as_echo_n "checking whether readlink signature is correct... " >&6; }
+if ${gl_cv_decl_readlink_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  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";;
-          esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/stat.h>
-
+#include <unistd.h>
+      /* Cause compilation failure if original declaration has wrong type.  */
+      ssize_t readlink (const char *, char *, size_t);
 int
 main ()
 {
-struct stat st; return stat (".", &st) != stat ("./", &st);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_stat_dir_slash=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_decl_readlink_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_stat_dir_slash=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  gl_cv_decl_readlink_works=no
 fi
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_stat_dir_slash" >&5
-$as_echo "$gl_cv_func_stat_dir_slash" >&6; }
-      { $as_echo "$as_me:$LINENO: checking whether stat handles trailing slashes on files" >&5
-$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; }
-if test "${gl_cv_func_stat_file_slash+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5
+$as_echo "$gl_cv_decl_readlink_works" >&6; }
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_readlink_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  touch conftest.tmp
-       # Assume that if we have lstat, we can also check symlinks.
-       if test $ac_cv_func_lstat = yes; then
-         ln -s conftest.tmp conftest.lnk
-       fi
-       if test "$cross_compiling" = yes; then
-  gl_cv_func_stat_file_slash="guessing no"
+  # 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 :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_readlink_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_readlink_works="guessing no" ;;
+          esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/stat.h>
+#include <unistd.h>
 
 int
 main ()
 {
-int result = 0;
-      struct stat st;
-      if (!stat ("conftest.tmp/", &st))
-        result |= 1;
-#if HAVE_LSTAT
-      if (!stat ("conftest.lnk/", &st))
-        result |= 2;
-#endif
-      return result;
-
+char buf[20];
+      return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_stat_file_slash=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_readlink_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_readlink_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
+
+      rm -f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_readlink_works" >&5
+$as_echo "$gl_cv_func_readlink_works" >&6; }
+    case "$gl_cv_func_readlink_works" in
+      *yes)
+        if test "$gl_cv_decl_readlink_works" != yes; then
+          REPLACE_READLINK=1
+        fi
+        ;;
+      *)
+
+$as_echo "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+        REPLACE_READLINK=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+          GNULIB_READLINK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+  if test $ac_cv_func_readlinkat = no; then
+    HAVE_READLINKAT=0
+  fi
+
+  if test $HAVE_READLINKAT = 0; then
 
-( exit $ac_status )
-gl_cv_func_stat_file_slash=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-       rm -f conftest.tmp conftest.lnk
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_stat_file_slash" >&5
-$as_echo "$gl_cv_func_stat_file_slash" >&6; }
-  case $gl_cv_func_stat_dir_slash in
-    *no) REPLACE_STAT=1
 
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_FUNC_STAT_DIR 1
-_ACEOF
-;;
-  esac
-  case $gl_cv_func_stat_file_slash in
-    *no) REPLACE_STAT=1
 
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_FUNC_STAT_FILE 1
-_ACEOF
-;;
-  esac
-  if test $REPLACE_STAT = 1; then
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext"
+
+  fi
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+          GNULIB_READLINKAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READLINKAT 1" >>confdefs.h
+
+
+
 
 
+
+  if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+  else
+    REPLACE_REALLOC=1
   fi
 
+  if test $REPLACE_REALLOC = 1; then
 
 
 
-  GNULIB_STAT=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STAT 1
-_ACEOF
 
 
+  gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
 
-  # Code from module stat-macros:
-  # Code from module stat-time:
+  fi
 
 
 
 
 
+          GNULIB_REALLOC_POSIX=1
 
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5
-$as_echo_n "checking for struct stat.st_atim.tv_nsec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
+$as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_atim.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atim_tv_nsec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_atim.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atim_tv_nsec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_member_struct_stat_st_atim_tv_nsec=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then :
+  withval=$with_included_regex;
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
-_ACEOF
+  case $with_included_regex in #(
+  yes|no) ac_use_included_regex=$with_included_regex
+        ;;
+  '')
+    # If the system regex support is good enough that it passes the
+    # following run test, then default to *not* using the included regex.c.
+    # If cross compiling, assume the test would fail and use the included
+    # regex.c.
 
-{ $as_echo "$as_me:$LINENO: checking whether struct stat.st_atim is of type struct timespec" >&5
-$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; }
-if test "${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
+$as_echo_n "checking for working re_compile_pattern... " >&6; }
+if ${gl_cv_func_re_compile_pattern_working+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+         gl_cv_func_re_compile_pattern_working=no
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <regex.h>
 
-            #include <sys/types.h>
-            #include <sys/stat.h>
-            #if HAVE_SYS_TIME_H
-            # include <sys/time.h>
+            #include <locale.h>
+            #include <limits.h>
+            #include <string.h>
+            #if HAVE_DECL_ALARM
+            # include <unistd.h>
+            # include <signal.h>
             #endif
-            #include <time.h>
-            struct timespec ts;
-            struct stat st;
 
 int
 main ()
 {
+int result = 0;
+            static struct re_pattern_buffer regex;
+            unsigned char folded_chars[UCHAR_MAX + 1];
+            int i;
+            const char *s;
+            struct re_registers regs;
 
-            st.st_atim = ts;
+#if HAVE_DECL_ALARM
+            /* Some builds of glibc go into an infinite loop on this test.  */
+            signal (SIGALRM, SIG_DFL);
+            alarm (2);
+#endif
+            if (setlocale (LC_ALL, "en_US.UTF-8"))
+              {
+                {
+                  /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+                     This test needs valgrind to catch the bug on Debian
+                     GNU/Linux 3.1 x86, but it might catch the bug better
+                     on other platforms and it shouldn't hurt to try the
+                     test here.  */
+                  static char const pat[] = "insert into";
+                  static char const data[] =
+                    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
+                  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
+                                 | RE_ICASE);
+                  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, &regs)
+                           != -1)
+                    result |= 1;
+                }
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+                {
+                  /* This test is from glibc bug 15078.
+                     The test case is from Andreas Schwab in
+                     <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
+                     */
+                  static char const pat[] = "[^x]x";
+                  static char const data[] =
+                    /* <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
+                    {
+                      i = re_search (&regex, data, sizeof data - 1,
+                                     0, sizeof data - 1, 0);
+                      if (i != 0 && i != 21)
+                        result |= 1;
+                    }
+                }
 
-       ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
-fi
+                if (! setlocale (LC_ALL, "C"))
+                  return 1;
+              }
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5
-$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; }
-     if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
+            /* This test is from glibc bug 3957, reported by Andrew Mackey.  */
+            re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+            memset (&regex, 0, sizeof regex);
+            s = re_compile_pattern ("a[^x]b", 6, &regex);
+            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;
 
-cat >>confdefs.h <<\_ACEOF
-#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1
-_ACEOF
+            /* This regular expression is from Spencer ere test number 75
+               in grep-2.3.  */
+            re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+            memset (&regex, 0, sizeof regex);
+            for (i = 0; i <= UCHAR_MAX; i++)
+              folded_chars[i] = i;
+            regex.translate = folded_chars;
+            s = re_compile_pattern ("a[[:]:]]b\n", 11, &regex);
+            /* This should fail with _Invalid character class name_ error.  */
+            if (!s)
+              result |= 4;
 
-     fi
-else
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5
-$as_echo_n "checking for struct stat.st_atimespec.tv_nsec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-        #include <sys/stat.h>
+            /* Ensure that [b-a] is diagnosed as invalid, when
+               using RE_NO_EMPTY_RANGES. */
+            re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+            memset (&regex, 0, sizeof regex);
+            s = re_compile_pattern ("a[b-a]", 6, &regex);
+            if (s == 0)
+              result |= 8;
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_atimespec.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+            /* 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;
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-        #include <sys/stat.h>
+            /* The following example is derived from a problem report
+               against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
+            memset (&regex, 0, sizeof regex);
+            s = re_compile_pattern ("[an\371]*n", 7, &regex);
+            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;
+
+            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;
+
+            /* The version of regex.c in older versions of gnulib
+               ignored RE_ICASE.  Detect that problem too.  */
+            re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE);
+            memset (&regex, 0, sizeof regex);
+            s = re_compile_pattern ("x", 1, &regex);
+            if (s)
+              result |= 16;
+            else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+              result |= 16;
+
+            /* Catch a bug reported by Vin Shelton in
+               http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+               */
+            re_set_syntax (RE_SYNTAX_POSIX_BASIC
+                           & ~RE_CONTEXT_INVALID_DUP
+                           & ~RE_NO_EMPTY_RANGES);
+            memset (&regex, 0, sizeof regex);
+            s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+            if (s)
+              result |= 32;
+
+            /* REG_STARTEND was added to glibc on 2004-01-15.
+               Reject older versions.  */
+            if (! REG_STARTEND)
+              result |= 64;
+
+#if 0
+            /* It would be nice to reject hosts whose regoff_t values are too
+               narrow (including glibc on hosts with 64-bit ptrdiff_t and
+               32-bit int), but we should wait until glibc implements this
+               feature.  Otherwise, support for equivalence classes and
+               multibyte collation symbols would always be broken except
+               when compiling --without-included-regex.   */
+            if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+                || sizeof (regoff_t) < sizeof (ssize_t))
+              result |= 64;
+#endif
+
+            return result;
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_atimespec.tv_nsec)
-return 0;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_re_compile_pattern_working=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_atimespec_tv_nsec=no
+  gl_cv_func_re_compile_pattern_working=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5
+$as_echo "$gl_cv_func_re_compile_pattern_working" >&6; }
+    case $gl_cv_func_re_compile_pattern_working in #(
+    yes) ac_use_included_regex=no;; #(
+    no) ac_use_included_regex=yes;;
+    esac
+    ;;
+  *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
+    ;;
+  esac
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
-_ACEOF
+  if test $ac_use_included_regex = yes; then
 
+$as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h
 
-else
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5
-$as_echo_n "checking for struct stat.st_atimensec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_atimensec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-           #include <sys/stat.h>
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_atimensec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atimensec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-           #include <sys/stat.h>
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_atimensec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atimensec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h
 
-       ac_cv_member_struct_stat_st_atimensec=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
+$as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_atimensec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_atimensec" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
-_ACEOF
+$as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h
 
 
-else
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.st__tim.tv_nsec" >&5
-$as_echo_n "checking for struct stat.st_atim.st__tim.tv_nsec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-              #include <sys/stat.h>
+$as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_atim.st__tim.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-              #include <sys/stat.h>
+$as_echo "#define re_search rpl_re_search" >>confdefs.h
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_atim.st__tim.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=no
-fi
+$as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = x""yes; then
+$as_echo "#define re_match rpl_re_match" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
-_ACEOF
 
+$as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h
 
-fi
 
-fi
+$as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h
 
-fi
 
-fi
+$as_echo "#define re_comp rpl_re_comp" >>confdefs.h
 
 
+$as_echo "#define re_exec rpl_re_exec" >>confdefs.h
 
 
+$as_echo "#define regcomp rpl_regcomp" >>confdefs.h
 
 
+$as_echo "#define regexec rpl_regexec" >>confdefs.h
 
 
+$as_echo "#define regerror rpl_regerror" >>confdefs.h
 
 
+$as_echo "#define regfree rpl_regfree" >>confdefs.h
 
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimespec.tv_nsec" >&5
-$as_echo_n "checking for struct stat.st_birthtimespec.tv_nsec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_birthtimespec_tv_nsec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
+  fi
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_birthtimespec.tv_nsec)
-return 0;
-  ;
-  return 0;
-}
+  if test $ac_use_included_regex = yes; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBINTL_H 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes
+
+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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_have_decl=0
+fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+
+  fi
+
+
+
+
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5
+$as_echo_n "checking whether rename honors trailing slash on destination... " >&6; }
+if ${gl_cv_func_rename_slash_dst_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+      as_fn_error $? "cannot create temporary files" "$LINENO" 5
+    # Assume that if we have lstat, we can also check symlinks.
+    if test $ac_cv_func_lstat = yes; then
+      ln -s conftest.f conftest.lnk
+    fi
+    if test "$cross_compiling" = yes; then :
+        case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_slash_dst_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
+
+#        include <stdio.h>
+#        include <stdlib.h>
 
 int
 main ()
 {
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_birthtimespec.tv_nsec)
-return 0;
+int result = 0;
+           if (rename ("conftest.f1", "conftest.f2/") == 0)
+             result |= 1;
+           if (rename ("conftest.d1", "conftest.d2/") != 0)
+             result |= 2;
+#if HAVE_LSTAT
+           if (rename ("conftest.f", "conftest.lnk/") == 0)
+             result |= 4;
+#endif
+           return result;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_rename_slash_dst_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=no
+  gl_cv_func_rename_slash_dst_works=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5
+$as_echo "$gl_cv_func_rename_slash_dst_works" >&6; }
+  case "$gl_cv_func_rename_slash_dst_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
-_ACEOF
+$as_echo "#define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h
 
+      ;;
+  esac
 
-else
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimensec" >&5
-$as_echo_n "checking for struct stat.st_birthtimensec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_birthtimensec+set}" = set; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5
+$as_echo_n "checking whether rename honors trailing slash on source... " >&6; }
+if ${gl_cv_func_rename_slash_src_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-        #include <sys/stat.h>
+  rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+      as_fn_error $? "cannot create temporary files" "$LINENO" 5
+    # Assume that if we have lstat, we can also check symlinks.
+    if test $ac_cv_func_lstat = yes; then
+      ln -s conftest.f conftest.lnk
+    fi
+    if test "$cross_compiling" = yes; then :
+        case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_slash_src_works="guessing no" ;;
+       esac
 
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_birthtimensec)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtimensec=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-        #include <sys/stat.h>
+
+#        include <stdio.h>
+#        include <stdlib.h>
 
 int
 main ()
 {
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_birthtimensec)
-return 0;
+int result = 0;
+           if (rename ("conftest.f1/", "conftest.d3") == 0)
+             result |= 1;
+           if (rename ("conftest.d1/", "conftest.d2") != 0)
+             result |= 2;
+#if HAVE_LSTAT
+           if (rename ("conftest.lnk/", "conftest.f") == 0)
+             result |= 4;
+#endif
+           return result;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtimensec=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_rename_slash_src_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_birthtimensec=no
+  gl_cv_func_rename_slash_src_works=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimensec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_birthtimensec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_birthtimensec" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5
+$as_echo "$gl_cv_func_rename_slash_src_works" >&6; }
+  case "$gl_cv_func_rename_slash_src_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
-_ACEOF
+$as_echo "#define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h
+
+      ;;
+  esac
 
 
-else
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtim.tv_nsec" >&5
-$as_echo_n "checking for struct stat.st_birthtim.tv_nsec... " >&6; }
-if test "${ac_cv_member_struct_stat_st_birthtim_tv_nsec+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5
+$as_echo_n "checking whether rename manages hard links correctly... " >&6; }
+if ${gl_cv_func_rename_link_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test $ac_cv_func_link = yes; then
+       rm -rf conftest.f conftest.f1
+       if touch conftest.f && ln conftest.f conftest.f1 &&
+           set x `ls -i conftest.f conftest.f1` && test "" = ""; then
+         if test "$cross_compiling" = yes; then :
+             case "$host_os" in
+                      # Guess yes on glibc systems.
+              *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;;
+                      # If we don't know, assume the worst.
+              *)      gl_cv_func_rename_link_works="guessing no" ;;
+            esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-          #include <sys/stat.h>
+
+#             include <stdio.h>
+#             include <stdlib.h>
+#             include <unistd.h>
 
 int
 main ()
 {
-static struct stat ac_aggr;
-if (ac_aggr.st_birthtim.tv_nsec)
-return 0;
+int result = 0;
+                if (rename ("conftest.f", "conftest.f1"))
+                  result |= 1;
+                if (unlink ("conftest.f1"))
+                  result |= 2;
+                if (rename ("conftest.f", "conftest.f"))
+                  result |= 4;
+                if (rename ("conftest.f1", "conftest.f1") == 0)
+                  result |= 8;
+                return result;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtim_tv_nsec=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_rename_link_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_rename_link_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
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+       else
+         gl_cv_func_rename_link_works="guessing no"
+       fi
+       rm -rf conftest.f conftest.f1
+     else
+       gl_cv_func_rename_link_works=yes
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5
+$as_echo "$gl_cv_func_rename_link_works" >&6; }
+  case "$gl_cv_func_rename_link_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
+
+$as_echo "#define RENAME_HARD_LINK_BUG 1" >>confdefs.h
+
+      ;;
+  esac
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5
+$as_echo_n "checking whether rename manages existing destinations correctly... " >&6; }
+if ${gl_cv_func_rename_dest_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -rf conftest.f conftest.d1 conftest.d2
+    touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+      as_fn_error $? "cannot create temporary files" "$LINENO" 5
+    if test "$cross_compiling" = yes; then :
+        case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_dest_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-          #include <sys/stat.h>
+
+#        include <stdio.h>
+#        include <stdlib.h>
 
 int
 main ()
 {
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_birthtim.tv_nsec)
-return 0;
+int result = 0;
+           if (rename ("conftest.d1", "conftest.d2") != 0)
+             result |= 1;
+           if (rename ("conftest.d2", "conftest.f") == 0)
+             result |= 2;
+           return result;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_birthtim_tv_nsec=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_rename_dest_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_birthtim_tv_nsec=no
+  gl_cv_func_rename_dest_works=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    rm -rf conftest.f conftest.d1 conftest.d2
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&5
-$as_echo "$ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&6; }
-if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5
+$as_echo "$gl_cv_func_rename_dest_works" >&6; }
+  case "$gl_cv_func_rename_dest_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
-_ACEOF
+$as_echo "#define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h
 
+      ;;
+  esac
 
-fi
+  if test $REPLACE_RENAME = 1; then
 
-fi
 
-fi
 
 
-  # Code from module stdarg:
 
-  STDARG_H='';
-  NEXT_STDARG_H='<stdarg.h>';
-  { $as_echo "$as_me:$LINENO: checking for va_copy" >&5
-$as_echo_n "checking for va_copy... " >&6; }
-  if test "${gl_cv_func_va_copy+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-int
-main ()
-{
 
-#ifndef va_copy
-void (*func) (va_list, va_list) = va_copy;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_va_copy=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_RENAME=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RENAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_renameat = no; then
+    HAVE_RENAMEAT=0
+  elif test $REPLACE_RENAME = 1; then
+        REPLACE_RENAMEAT=1
+  fi
+
+  if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+
 
-       gl_cv_func_va_copy=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-  { $as_echo "$as_me:$LINENO: result: $gl_cv_func_va_copy" >&5
-$as_echo "$gl_cv_func_va_copy" >&6; }
-  if test $gl_cv_func_va_copy = no; then
-                                    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if defined _AIX && !defined __GNUC__
-        AIX vaccine
-       #endif
 
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
+
+  fi
+  if test $HAVE_RENAMEAT = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_RENAMEAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RENAMEAT 1" >>confdefs.h
+
+
+
+
+
+
+  for ac_func in rewinddir
+do :
+  ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir"
+if test "x$ac_cv_func_rewinddir" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_REWINDDIR 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "vaccine" >/dev/null 2>&1; then
-  gl_aixcc=yes
-else
-  gl_aixcc=no
+
 fi
-rm -f conftest*
+done
 
-    if test $gl_aixcc = yes; then
-            STDARG_H=stdarg.h
+  if test $ac_cv_func_rewinddir = no; then
+    HAVE_REWINDDIR=0
+  fi
 
+  if test $HAVE_REWINDDIR = 0; then
 
 
 
@@ -43021,330 +26833,315 @@ rm -f conftest*
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdarg_h='<'stdarg.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stdarg.h>" >&5
-$as_echo_n "checking absolute name of <stdarg.h>... " >&6; }
-if test "${gl_cv_next_stdarg_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
+  gl_LIBOBJS="$gl_LIBOBJS rewinddir.$ac_objext"
 
-_ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stdarg.h#{
-                    s#.*"\(.*/stdarg.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+  fi
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdarg_h" >&5
-$as_echo "$gl_cv_next_stdarg_h" >&6; }
-     fi
-     NEXT_STDARG_H=$gl_cv_next_stdarg_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='<'stdarg.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdarg_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive
 
 
+          GNULIB_REWINDDIR=1
 
 
-            if test "$gl_cv_next_stdarg_h" = '""'; then
-        gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
-        NEXT_STDARG_H="$gl_cv_next_stdarg_h"
-      fi
-    else
 
-  saved_as_echo_n="$as_echo_n"
-  as_echo_n=':'
-  if test "${gl_cv_func___va_copy+set}" = set; then
+
+
+$as_echo "#define GNULIB_TEST_REWINDDIR 1" >>confdefs.h
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5
+$as_echo_n "checking whether rmdir works... " >&6; }
+if ${gl_cv_func_rmdir_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  mkdir conftest.dir
+     touch conftest.file
+     if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                  # Guess yes on glibc systems.
+          *-gnu*) gl_cv_func_rmdir_works="guessing yes" ;;
+                  # If we don't know, assume the worst.
+          *)      gl_cv_func_rmdir_works="guessing no" ;;
+        esac
 
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdarg.h>
+#include <stdio.h>
+           #include <errno.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <direct.h>
+           #endif
+
 int
 main ()
 {
-
-#ifndef __va_copy
-error, bail out
-#endif
+int result = 0;
+      if (!rmdir ("conftest.file/"))
+        result |= 1;
+      else if (errno != ENOTDIR)
+        result |= 2;
+      if (!rmdir ("conftest.dir/./"))
+        result |= 4;
+      return result;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func___va_copy=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_rmdir_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func___va_copy=no
+  gl_cv_func_rmdir_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
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     rm -rf conftest.dir conftest.file
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rmdir_works" >&5
+$as_echo "$gl_cv_func_rmdir_works" >&6; }
+  case "$gl_cv_func_rmdir_works" in
+    *yes) ;;
+    *)
+      REPLACE_RMDIR=1
+      ;;
+  esac
 
-  as_echo_n="$saved_as_echo_n"
+  if test $REPLACE_RMDIR = 1; then
 
-      if test $gl_cv_func___va_copy = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define va_copy __va_copy
-_ACEOF
 
-      else
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define va_copy gl_va_copy
-_ACEOF
 
-      fi
-    fi
+
+  gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+
   fi
 
-  # Code from module stdbool:
 
 
 
-  # Define two additional variables used in the Makefile substitution.
 
-  if test "$ac_cv_header_stdbool_h" = yes; then
-    STDBOOL_H=''
-  else
-    STDBOOL_H='stdbool.h'
-  fi
+          GNULIB_RMDIR=1
 
 
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
-  fi
 
 
-  # Code from module stddef:
 
+$as_echo "#define GNULIB_TEST_RMDIR 1" >>confdefs.h
 
 
-  if test $gt_cv_c_wchar_t = no; then
-    HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
+
+
+
+
+
+  for ac_func in rpmatch
+do :
+  ac_fn_c_check_func "$LINENO" "rpmatch" "ac_cv_func_rpmatch"
+if test "x$ac_cv_func_rpmatch" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_RPMATCH 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_rpmatch = no; then
+    HAVE_RPMATCH=0
   fi
-  { $as_echo "$as_me:$LINENO: checking whether NULL can be used in arbitrary expressions" >&5
-$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if test "${gl_cv_decl_null_works+set}" = set; then
+
+  if test $HAVE_RPMATCH = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS rpmatch.$ac_objext"
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and YESEXPR" >&5
+$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; }
+if ${gl_cv_langinfo_yesexpr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-      int test[2 * (sizeof NULL == sizeof (void *)) -1];
-
+#include <langinfo.h>
 int
 main ()
 {
-
+char* cs = nl_langinfo(YESEXPR); return !cs;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_decl_null_works=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_langinfo_yesexpr=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_decl_null_works=no
+  gl_cv_langinfo_yesexpr=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_decl_null_works" >&5
-$as_echo "$gl_cv_decl_null_works" >&6; }
-  if test $gl_cv_decl_null_works = no; then
-    REPLACE_NULL=1
-    STDDEF_H=stddef.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_langinfo_yesexpr" >&6; }
+  if test $gl_cv_langinfo_yesexpr = yes; then
+
+$as_echo "#define HAVE_LANGINFO_YESEXPR 1" >>confdefs.h
+
   fi
-  if test -n "$STDDEF_H"; then
 
+  fi
 
 
 
 
 
+          GNULIB_RPMATCH=1
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stddef_h='<'stddef.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stddef.h>" >&5
-$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
-if test "${gl_cv_next_stddef_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
 
+
+$as_echo "#define GNULIB_TEST_RPMATCH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  :
+
+
+
+
+
+
+  if test $ac_cv_func_secure_getenv = no; then
+    HAVE_SECURE_GETENV=0
+  fi
+
+  if test $HAVE_SECURE_GETENV = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS secure_getenv.$ac_objext"
+
+
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE___SECURE_GETENV 1
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stddef.h#{
-                    s#.*"\(.*/stddef.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
 
+fi
+done
+
+  if test $ac_cv_func___secure_getenv = no; then
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ISSETUGID 1
+_ACEOF
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stddef_h" >&5
-$as_echo "$gl_cv_next_stddef_h" >&6; }
-     fi
-     NEXT_STDDEF_H=$gl_cv_next_stddef_h
+done
 
-     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='<'stddef.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stddef_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
+  fi
 
+  fi
 
 
 
-  fi
 
-  # Code from module stdint:
 
+          GNULIB_SECURE_GETENV=1
 
 
-  if test $ac_cv_type_long_long_int = yes; then
-    HAVE_LONG_LONG_INT=1
-  else
-    HAVE_LONG_LONG_INT=0
-  fi
 
 
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    HAVE_UNSIGNED_LONG_LONG_INT=1
-  else
-    HAVE_UNSIGNED_LONG_LONG_INT=0
-  fi
 
+$as_echo "#define GNULIB_TEST_SECURE_GETENV 1" >>confdefs.h
 
 
 
+  for ac_header in selinux/flask.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "selinux/flask.h" "ac_cv_header_selinux_flask_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_flask_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_FLASK_H 1
+_ACEOF
 
+fi
 
+done
 
 
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
 
 
-      if test $ac_cv_header_inttypes_h = yes; then
-    HAVE_INTTYPES_H=1
-  else
-    HAVE_INTTYPES_H=0
-  fi
 
 
-      if test $ac_cv_header_sys_types_h = yes; then
-    HAVE_SYS_TYPES_H=1
-  else
-    HAVE_SYS_TYPES_H=0
-  fi
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS selinux-at.$ac_objext"
 
 
 
+  if test "$with_selinux" != no; then
+    for ac_header in selinux/selinux.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_selinux_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_SELINUX_H 1
+_ACEOF
+
+fi
+
+done
 
 
+    if test "$ac_cv_header_selinux_selinux_h" = yes; then
+      # We do have <selinux/selinux.h>, so do compile getfilecon.c
+      # and arrange to use its wrappers.
+
 
 
 
@@ -43354,1852 +27151,1187 @@ $as_echo "$gl_cv_next_stddef_h" >&6; }
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdint_h='<'stdint.h'>'
+       gl_cv_next_selinux_selinux_h='<'selinux/selinux.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
-$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
-if test "${gl_cv_next_stdint_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <selinux/selinux.h>" >&5
+$as_echo_n "checking absolute name of <selinux/selinux.h>... " >&6; }
+if ${gl_cv_next_selinux_selinux_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_stdint_h = yes; then
+             if test $ac_cv_header_selinux_selinux_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdint.h>
+#include <selinux/selinux.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stdint.h#{
-                    s#.*"\(.*/stdint.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+
+               case "$host_os" in
+                 mingw*)
+                                                                                                                                     gl_dirsep_regex='[/\\]'
+                   ;;
+                 *)
+                   gl_dirsep_regex='\/'
+                   ;;
+               esac
+                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+               gl_header_literal_regex=`echo 'selinux/selinux.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_selinux_selinux_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
-               gl_cv_next_stdint_h='<'stdint.h'>'
+               gl_cv_next_selinux_selinux_h='<'selinux/selinux.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5
-$as_echo "$gl_cv_next_stdint_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_selinux_selinux_h" >&5
+$as_echo "$gl_cv_next_selinux_selinux_h" >&6; }
      fi
-     NEXT_STDINT_H=$gl_cv_next_stdint_h
+     NEXT_SELINUX_SELINUX_H=$gl_cv_next_selinux_selinux_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='<'stdint.h'>'
+       gl_next_as_first_directive='<'selinux/selinux.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdint_h
+       gl_next_as_first_directive=$gl_cv_next_selinux_selinux_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_header_stdint_h = yes; then
-    HAVE_STDINT_H=1
+
+$as_echo "#define getfilecon rpl_getfilecon" >>confdefs.h
+
+
+$as_echo "#define lgetfilecon rpl_lgetfilecon" >>confdefs.h
+
+
+$as_echo "#define fgetfilecon rpl_fgetfilecon" >>confdefs.h
+
+    fi
+
+    case "$ac_cv_search_setfilecon:$ac_cv_header_selinux_selinux_h" in
+      no:*) # already warned
+        ;;
+      *:no)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libselinux was found but selinux/selinux.h is missing." >&5
+$as_echo "$as_me: WARNING: libselinux was found but selinux/selinux.h is missing." >&2;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNU tar will be compiled without SELinux support." >&5
+$as_echo "$as_me: WARNING: GNU tar will be compiled without SELinux support." >&2;}
+    esac
   else
-    HAVE_STDINT_H=0
+    # Do as if <selinux/selinux.h> does not exist, even if
+    # AC_CHECK_HEADERS_ONCE has already determined that it exists.
+    $as_echo "#define HAVE_SELINUX_SELINUX_H 0" >>confdefs.h
+
   fi
 
 
-    if test $ac_cv_header_stdint_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
-$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
-if test "${gl_cv_header_working_stdint_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_working_stdint_h=no
-       cat >conftest.$ac_ext <<_ACEOF
 
-         /* confdefs.h.  */
+  if test "$with_selinux" != no; then
+    for ac_header in selinux/context.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "selinux/context.h" "ac_cv_header_selinux_context_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_context_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_CONTEXT_H 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+ SELINUX_CONTEXT_H=
+else
+  SELINUX_CONTEXT_H=selinux/context.h
+fi
 
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
-/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
-#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-#endif
+done
 
+  else
+    SELINUX_CONTEXT_H=selinux/context.h
+  fi
 
-  /* 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
+   if test -n "$SELINUX_CONTEXT_H"; then
+  GL_GENERATE_SELINUX_CONTEXT_H_TRUE=
+  GL_GENERATE_SELINUX_CONTEXT_H_FALSE='#'
+else
+  GL_GENERATE_SELINUX_CONTEXT_H_TRUE='#'
+  GL_GENERATE_SELINUX_CONTEXT_H_FALSE=
+fi
 
 
-#ifdef INT8_MAX
-int8_t a1 = INT8_MAX;
-int8_t a1min = INT8_MIN;
-#endif
-#ifdef INT16_MAX
-int16_t a2 = INT16_MAX;
-int16_t a2min = INT16_MIN;
-#endif
-#ifdef INT32_MAX
-int32_t a3 = INT32_MAX;
-int32_t a3min = INT32_MIN;
-#endif
-#ifdef INT64_MAX
-int64_t a4 = INT64_MAX;
-int64_t a4min = INT64_MIN;
-#endif
-#ifdef UINT8_MAX
-uint8_t b1 = UINT8_MAX;
-#else
-typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-#endif
-#ifdef UINT16_MAX
-uint16_t b2 = UINT16_MAX;
-#endif
-#ifdef UINT32_MAX
-uint32_t b3 = UINT32_MAX;
-#endif
-#ifdef UINT64_MAX
-uint64_t b4 = UINT64_MAX;
-#endif
-int_least8_t c1 = INT8_C (0x7f);
-int_least8_t c1max = INT_LEAST8_MAX;
-int_least8_t c1min = INT_LEAST8_MIN;
-int_least16_t c2 = INT16_C (0x7fff);
-int_least16_t c2max = INT_LEAST16_MAX;
-int_least16_t c2min = INT_LEAST16_MIN;
-int_least32_t c3 = INT32_C (0x7fffffff);
-int_least32_t c3max = INT_LEAST32_MAX;
-int_least32_t c3min = INT_LEAST32_MIN;
-int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-int_least64_t c4max = INT_LEAST64_MAX;
-int_least64_t c4min = INT_LEAST64_MIN;
-uint_least8_t d1 = UINT8_C (0xff);
-uint_least8_t d1max = UINT_LEAST8_MAX;
-uint_least16_t d2 = UINT16_C (0xffff);
-uint_least16_t d2max = UINT_LEAST16_MAX;
-uint_least32_t d3 = UINT32_C (0xffffffff);
-uint_least32_t d3max = UINT_LEAST32_MAX;
-uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-uint_least64_t d4max = UINT_LEAST64_MAX;
-int_fast8_t e1 = INT_FAST8_MAX;
-int_fast8_t e1min = INT_FAST8_MIN;
-int_fast16_t e2 = INT_FAST16_MAX;
-int_fast16_t e2min = INT_FAST16_MIN;
-int_fast32_t e3 = INT_FAST32_MAX;
-int_fast32_t e3min = INT_FAST32_MIN;
-int_fast64_t e4 = INT_FAST64_MAX;
-int_fast64_t e4min = INT_FAST64_MIN;
-uint_fast8_t f1 = UINT_FAST8_MAX;
-uint_fast16_t f2 = UINT_FAST16_MAX;
-uint_fast32_t f3 = UINT_FAST32_MAX;
-uint_fast64_t f4 = UINT_FAST64_MAX;
-#ifdef INTPTR_MAX
-intptr_t g = INTPTR_MAX;
-intptr_t gmin = INTPTR_MIN;
-#endif
-#ifdef UINTPTR_MAX
-uintptr_t h = UINTPTR_MAX;
-#endif
-intmax_t i = INTMAX_MAX;
-uintmax_t j = UINTMAX_MAX;
+  if test "$with_selinux" != no && test "$ac_cv_header_selinux_selinux_h" = yes; then
 
-#include <limits.h> /* for CHAR_BIT */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 \
-        ? (t) -1 \
-        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-struct s {
-  int check_PTRDIFF:
-      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-      ? 1 : -1;
-  /* Detect bug in FreeBSD 6.0 / ia64.  */
-  int check_SIG_ATOMIC:
-      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-      ? 1 : -1;
-  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-  int check_WCHAR:
-      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-      ? 1 : -1;
-  /* Detect bug in mingw.  */
-  int check_WINT:
-      WINT_MIN == TYPE_MINIMUM (wint_t)
-      && WINT_MAX == TYPE_MAXIMUM (wint_t)
-      ? 1 : -1;
 
-  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
-  int check_UINT8_C:
-        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-  int check_UINT16_C:
-        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
 
-  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
-#ifdef UINT8_MAX
-  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-#endif
-#ifdef UINT16_MAX
-  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-#endif
-#ifdef UINT32_MAX
-  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-#endif
-#ifdef UINT64_MAX
-  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-#endif
-  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-};
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-                                                    if test "$cross_compiling" = yes; then
-                 gl_cv_header_working_stdint_h=yes
 
-else
-  cat >conftest.$ac_ext <<_ACEOF
 
-            /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
+  gl_LIBOBJS="$gl_LIBOBJS getfilecon.$ac_objext"
 
+  fi
 
-  /* 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
 
+     if test $ac_cv_func_setenv = no; then
+    HAVE_SETENV=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if ${gl_cv_func_setenv_works+:} false; then :
+  $as_echo_n "(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
 
-#include <stdio.h>
-#include <string.h>
-#define MVAL(macro) MVAL1(macro)
-#define MVAL1(expression) #expression
-static const char *macro_values[] =
-  {
-#ifdef INT8_MAX
-    MVAL (INT8_MAX),
-#endif
-#ifdef INT16_MAX
-    MVAL (INT16_MAX),
-#endif
-#ifdef INT32_MAX
-    MVAL (INT32_MAX),
-#endif
-#ifdef INT64_MAX
-    MVAL (INT64_MAX),
-#endif
-#ifdef UINT8_MAX
-    MVAL (UINT8_MAX),
-#endif
-#ifdef UINT16_MAX
-    MVAL (UINT16_MAX),
-#endif
-#ifdef UINT32_MAX
-    MVAL (UINT32_MAX),
-#endif
-#ifdef UINT64_MAX
-    MVAL (UINT64_MAX),
-#endif
-    NULL
-  };
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       #include <string.h>
 
 int
 main ()
 {
 
-  const char **mv;
-  for (mv = macro_values; *mv != NULL; mv++)
-    {
-      const char *value = *mv;
-      /* Test whether it looks like a cast expression.  */
-      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
-          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
-          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
-          || strncmp (value, "((int)"/*)*/, 6) == 0
-          || strncmp (value, "((signed short)"/*)*/, 15) == 0
-          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return mv - macro_values + 1;
-    }
-  return 0;
+       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
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_header_working_stdint_h=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_setenv_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  gl_cv_func_setenv_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
+$as_echo "$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
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
 
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5
-$as_echo "$gl_cv_header_working_stdint_h" >&6; }
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+
   fi
-  if test "$gl_cv_header_working_stdint_h" = yes; then
-    STDINT_H=
-  else
 
 
-for ac_header in sys/inttypes.h sys/bitypes.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+
+
+          GNULIB_SETENV=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_signal_h='<'signal.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <signal.h>" >&5
+$as_echo_n "checking absolute name of <signal.h>... " >&6; }
+if ${gl_cv_next_signal_h+:} false; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+#include <signal.h>
+
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+                                                                                                                        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"`'"'
+
 
-       ac_header_compiler=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5
+$as_echo "$gl_cv_next_signal_h" >&6; }
+     fi
+     NEXT_SIGNAL_H=$gl_cv_next_signal_h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+     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='<'signal.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_signal_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive
+
+
+
+
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'.  C99 requires that it compile.
+  ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then :
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
+fi
 
-  ac_header_preproc=no
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_sighandler_t" = xyes; then :
+
+else
+  HAVE_SIGHANDLER_T=0
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+    for gl_func in pthread_sigmask sigaction     sigaddset sigdelset sigemptyset sigfillset sigismember     sigpending sigprocmask; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <signal.h>
+
+int
+main ()
+{
+#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
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+      done
+
+
+
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_STDINT_H 1
 _ACEOF
 
 fi
 
 done
 
-    if test $ac_cv_header_sys_inttypes_h = yes; then
-      HAVE_SYS_INTTYPES_H=1
-    else
-      HAVE_SYS_INTTYPES_H=0
-    fi
-
-    if test $ac_cv_header_sys_bitypes_h = yes; then
-      HAVE_SYS_BITYPES_H=1
-    else
-      HAVE_SYS_BITYPES_H=0
-    fi
-
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+if ${gl_cv_size_max+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    gl_cv_size_max=
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
 
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Found it" >/dev/null 2>&1; then :
+  gl_cv_size_max=yes
+fi
+rm -f 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 :
 
+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 :
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  fits_in_uint=
+fi
 
-  /* 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
+      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+        if test $fits_in_uint = 1; then
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+                 extern size_t foo;
+                 extern unsigned long foo;
 
-#include <limits.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+if ac_fn_c_try_compile "$LINENO"; then :
+  fits_in_uint=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        fi
+                                if test $fits_in_uint = 1; then
+          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        else
+          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        fi
+      else
+                gl_cv_size_max='((size_t)~(size_t)0)'
+      fi
+    fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5
+$as_echo "$gl_cv_size_max" >&6; }
+  if test "$gl_cv_size_max" != yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define SIZE_MAX $gl_cv_size_max
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
+  fi
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+               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 :
+  ac_have_decl=1
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_have_decl=0
+fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SLEEP $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
-test_array [0] = 0
+  if test $ac_cv_have_decl_sleep != yes; then
+    HAVE_SLEEP=0
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5
+$as_echo_n "checking for working sleep... " >&6; }
+if ${gl_cv_func_sleep_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_sleep_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_sleep_works="guessing no" ;;
+       esac
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.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
+#include <errno.h>
+#include <unistd.h>
+#include <signal.h>
+static void
+handle_alarm (int sig)
+{
+  if (sig != SIGALRM)
+    _exit (2);
+}
 
-#include <limits.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
-test_array [0] = 0
+
+    /* Failure to compile this test due to missing alarm is okay,
+       since all such platforms (mingw) also lack sleep.  */
+    unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days.  */
+    unsigned int remaining;
+    signal (SIGALRM, handle_alarm);
+    alarm (1);
+    remaining = sleep (pentecost);
+    if (remaining > pentecost)
+      return 3;
+    if (remaining <= pentecost - 10)
+      return 4;
+    return 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_sleep_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_sleep_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
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_sleep_works" >&5
+$as_echo "$gl_cv_func_sleep_works" >&6; }
+    case "$gl_cv_func_sleep_works" in
+      *yes) ;;
+      *)
+        REPLACE_SLEEP=1
+        ;;
+    esac
+  fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
 
-       ac_lo= ac_hi=
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_SLEEP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SLEEP 1" >>confdefs.h
+
+
+
+
+
+  gl_cv_func_snprintf_usable=no
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SNPRINTF 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
+fi
+done
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
+  if test $ac_cv_func_snprintf = yes; then
 
-  ;
-  return 0;
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+  gl_cv_func_snprintf_size1="guessing yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
+int main()
+{
+  static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+  my_snprintf (buf, 1, "%d", 12345);
+  return buf[1] != 'E';
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_snprintf_size1=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) result=$ac_lo;;
-'') result=unknown ;;
-esac
+    case "$gl_cv_func_snprintf_size1" in
+      *yes)
+
+        case "$gl_cv_func_snprintf_retval_c99" in
+          *yes)
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
+      if test "$cross_compiling" = yes; then :
 
-#include <limits.h>
-static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
-static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+         case "$host_os" in
+           netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+                         gl_cv_func_printf_positions="guessing no";;
+           beos*)        gl_cv_func_printf_positions="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+           *)            gl_cv_func_printf_positions="guessing yes";;
+         esac
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof ($gltype) * CHAR_BIT) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  ;
-  return 0;
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+   dollar expansion (possibly an autoconf bug).  */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+  sprintf (buf, format, 33, 55);
+  return (strcmp (buf, "55 33") != 0);
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  result=`cat conftest.val`
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_positions=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=unknown
+  gl_cv_func_printf_positions=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest.val
-       eval gl_cv_bitsizeof_${gltype}=\$result
+
 
 fi
-ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
 
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
+            case "$gl_cv_func_printf_positions" in
+              *yes)
+                gl_cv_func_snprintf_usable=yes
+                ;;
+            esac
+            ;;
+        esac
+        ;;
+    esac
+  fi
+  if test $gl_cv_func_snprintf_usable = no; then
 
 
-  fi
 
 
 
 
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
 
-  /* 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
+  if test $ac_cv_func_snprintf = yes; then
+    REPLACE_SNPRINTF=1
+  fi
+  :
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test $ac_cv_have_decl_snprintf = no; then
+    HAVE_DECL_SNPRINTF=0
+  fi
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
 
-#include <limits.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+          GNULIB_SNPRINTF=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SNPRINTF 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_SNPRINTF 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
 
-#include <limits.h>
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
-test_array [0] = 0
-
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+            return !x;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_ssize_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+  gt_cv_ssize_t=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+  if test $gt_cv_ssize_t = no; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
+$as_echo "#define ssize_t int" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  fi
 
-  /* 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
 
-#include <limits.h>
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
+$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
+if ${gl_cv_func_stat_dir_slash+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  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";;
+          esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/stat.h>
+
 int
 main ()
 {
-static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
-test_array [0] = 0
-
+struct stat st; return stat (".", &st) != stat ("./", &st);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_stat_dir_slash=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_func_stat_dir_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5
+$as_echo "$gl_cv_func_stat_dir_slash" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5
+$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; }
+if ${gl_cv_func_stat_file_slash+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  touch conftest.tmp
+       # Assume that if we have lstat, we can also check symlinks.
+       if test $ac_cv_func_lstat = yes; then
+         ln -s conftest.tmp conftest.lnk
+       fi
+       if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_stat_file_slash="guessing no" ;;
+          esac
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) result=$ac_lo;;
-'') result=unknown ;;
-esac
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <sys/stat.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
-
-#include <limits.h>
-static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
-static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
-#include <stdio.h>
-#include <stdlib.h>
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof ($gltype) * CHAR_BIT) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof ($gltype) * CHAR_BIT))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+int result = 0;
+      struct stat st;
+      if (!stat ("conftest.tmp/", &st))
+        result |= 1;
+#if HAVE_LSTAT
+      if (!stat ("conftest.lnk/", &st))
+        result |= 2;
+#endif
+      return result;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  result=`cat conftest.val`
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_stat_file_slash=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=unknown
+  gl_cv_func_stat_file_slash=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest.val
-       eval gl_cv_bitsizeof_${gltype}=\$result
 
+       rm -f conftest.tmp conftest.lnk
 fi
-ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
-
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5
+$as_echo "$gl_cv_func_stat_file_slash" >&6; }
+  case $gl_cv_func_stat_dir_slash in
+    *no) REPLACE_STAT=1
 
+$as_echo "#define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h
+;;
+  esac
+  case $gl_cv_func_stat_file_slash in
+    *no) REPLACE_STAT=1
 
+$as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
+;;
+  esac
 
+  if test $REPLACE_STAT = 1; then
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking whether $gltype is signed" >&5
-$as_echo_n "checking whether $gltype is signed... " >&6; }
-if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.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
 
-            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  result=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       result=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       eval gl_cv_type_${gltype}_signed=\$result
 
-fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_signed'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_type_${gltype}_signed
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    if test "$result" = yes; then
-      cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNED_${GLTYPE} 1
-_ACEOF
 
-      eval HAVE_SIGNED_${GLTYPE}=1
-    else
-      eval HAVE_SIGNED_${GLTYPE}=0
-    fi
-  done
+  gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
 
+    :
+  fi
 
-  gl_cv_type_ptrdiff_t_signed=yes
-  gl_cv_type_size_t_signed=no
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
 
 
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+          GNULIB_STAT=1
 
-  /* 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
 
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
 
-fi
+$as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
 
-  done
 
 
-  fi
 
 
 
+  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 :
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+_ACEOF
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5
+$as_echo_n "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 :
   $as_echo_n "(cached) " >&6
 else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.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
+            #include <sys/types.h>
+            #include <sys/stat.h>
+            #if HAVE_SYS_TIME_H
+            # include <sys/time.h>
+            #endif
+            #include <time.h>
+            struct timespec ts;
+            struct stat st;
 
-              extern $gltype foo;
-              extern $gltype1 foo;
 int
 main ()
 {
 
+            st.st_atim = ts;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
 fi
-ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5
+$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; }
+     if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
 
-  done
+$as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
 
+     fi
+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 :
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+_ACEOF
 
-    STDINT_H=stdint.h
-  fi
 
+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 :
 
-  # Code from module stdio:
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
+_ACEOF
 
 
+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 :
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
+_ACEOF
 
 
+fi
 
+fi
 
+fi
 
+fi
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdio_h='<'stdio.h'>'
-     else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stdio.h>" >&5
-$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
-if test "${gl_cv_next_stdio_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+  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 :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
 
+
+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 :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-                                                            gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stdio.h#{
-                    s#.*"\(.*/stdio.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdio_h" >&5
-$as_echo "$gl_cv_next_stdio_h" >&6; }
-     fi
-     NEXT_STDIO_H=$gl_cv_next_stdio_h
+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 $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='<'stdio.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdio_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
+_ACEOF
 
 
+fi
 
+fi
 
-      GNULIB_FPRINTF=1
-  GNULIB_PRINTF=1
-  GNULIB_VFPRINTF=1
-  GNULIB_VPRINTF=1
-  GNULIB_FPUTC=1
-  GNULIB_PUTC=1
-  GNULIB_PUTCHAR=1
-  GNULIB_FPUTS=1
-  GNULIB_PUTS=1
-  GNULIB_FWRITE=1
+fi
 
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_STATAT 1
+_ACEOF
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5
+$as_echo_n "checking for working stdalign.h... " >&6; }
+if ${gl_cv_header_working_stdalign_h+:} false; then :
+  $as_echo_n "(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 \
+                (__GNUC__ || __IBMC__ || __IBMCPP__ \
+                 || 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 ()
+{
 
+  ;
+  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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5
+$as_echo "$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
 
 
 
-  for gl_func in dprintf fpurge fseeko ftello getdelim getline popen renameat     snprintf tmpfile vdprintf vsnprintf; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+  STDARG_H=''
+  NEXT_STDARG_H='<stdarg.h>'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+  if ${gl_cv_func_va_copy+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
 
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_va_copy=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  gl_cv_func_va_copy=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-
-      done
-
 
-  # Code from module stdlib:
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5
+$as_echo "$gl_cv_func_va_copy" >&6; }
+  if test $gl_cv_func_va_copy = no; then
+                                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined _AIX && !defined __GNUC__
+        AIX vaccine
+       #endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "vaccine" >/dev/null 2>&1; then :
+  gl_aixcc=yes
+else
+  gl_aixcc=no
+fi
+rm -f conftest*
 
+    if test $gl_aixcc = yes; then
+            STDARG_H=stdarg.h
 
 
 
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdlib_h='<'stdlib.h'>'
+       gl_cv_next_stdarg_h='<'stdarg.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5
-$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
-if test "${gl_cv_next_stdlib_h+set}" = set; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5
+$as_echo_n "checking absolute name of <stdarg.h>... " >&6; }
+if ${gl_cv_next_stdarg_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
+#include <stdarg.h>
 
 _ACEOF
                                                                                                                         case "$host_os" in
                  aix*) gl_absname_cpp="$ac_cpp -C" ;;
                  *)    gl_absname_cpp="$ac_cpp" ;;
                esac
-                                                            gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/stdlib.h#{
-                    s#.*"\(.*/stdlib.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+
+               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"`'"'
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5
-$as_echo "$gl_cv_next_stdlib_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5
+$as_echo "$gl_cv_next_stdarg_h" >&6; }
      fi
-     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
+     NEXT_STDARG_H=$gl_cv_next_stdarg_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='<'stdlib.h'>'
+       gl_next_as_first_directive='<'stdarg.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdlib_h
+       gl_next_as_first_directive=$gl_cv_next_stdarg_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+     NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive
 
 
 
 
+            if test "$gl_cv_next_stdarg_h" = '""'; then
+        gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+        NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+      fi
+    else
 
-  for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp     mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r     setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt     unsetenv; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+  saved_as_echo_n="$as_echo_n"
+  as_echo_n=':'
+  if ${gl_cv_func___va_copy+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#if HAVE_SYS_LOADAVG_H
-# include <sys/loadavg.h>
-#endif
-#if HAVE_RANDOM_H
-# include <random.h>
-#endif
 
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+
+#ifndef __va_copy
+error, bail out
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func___va_copy=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  gl_cv_func___va_copy=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
+  as_echo_n="$saved_as_echo_n"
 
-      done
+      if test $gl_cv_func___va_copy = yes; then
 
+$as_echo "#define va_copy __va_copy" >>confdefs.h
 
-  # Code from module stpcpy:
+      else
 
 
+$as_echo "#define va_copy gl_va_copy" >>confdefs.h
 
+      fi
+    fi
+  fi
 
+   if test -n "$STDARG_H"; then
+  GL_GENERATE_STDARG_H_TRUE=
+  GL_GENERATE_STDARG_H_FALSE='#'
+else
+  GL_GENERATE_STDARG_H_TRUE='#'
+  GL_GENERATE_STDARG_H_FALSE=
+fi
 
 
 
 
 
 
+  # Define two additional variables used in the Makefile substitution.
 
+  if test "$ac_cv_header_stdbool_h" = yes; then
+    STDBOOL_H=''
+  else
+    STDBOOL_H='stdbool.h'
+  fi
 
+   if test -n "$STDBOOL_H"; then
+  GL_GENERATE_STDBOOL_H_TRUE=
+  GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+  GL_GENERATE_STDBOOL_H_TRUE='#'
+  GL_GENERATE_STDBOOL_H_FALSE=
+fi
 
 
+  if test "$ac_cv_type__Bool" = yes; then
+    HAVE__BOOL=1
+  else
+    HAVE__BOOL=0
+  fi
 
-for ac_func in stpcpy
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+  STDDEF_H=
+  if test $gt_cv_c_wchar_t = no; then
+    HAVE_WCHAR_T=0
+    STDDEF_H=stddef.h
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
+$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
+if ${gl_cv_decl_null_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+      int test[2 * (sizeof NULL == sizeof (void *)) -1];
 
 int
 main ()
 {
-return $ac_func ();
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_decl_null_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_decl_null_works=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
+$as_echo "$gl_cv_decl_null_works" >&6; }
+  if test $gl_cv_decl_null_works = no; then
+    REPLACE_NULL=1
+    STDDEF_H=stddef.h
+  fi
 
+   if test -n "$STDDEF_H"; then
+  GL_GENERATE_STDDEF_H_TRUE=
+  GL_GENERATE_STDDEF_H_FALSE='#'
 else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
+  GL_GENERATE_STDDEF_H_TRUE='#'
+  GL_GENERATE_STDDEF_H_FALSE=
 fi
-done
 
+  if test -n "$STDDEF_H"; then
 
-  if test $ac_cv_func_stpcpy = no; then
-    HAVE_STPCPY=0
 
-  :
 
-  fi
 
 
 
 
-  GNULIB_STPCPY=1
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stddef_h='<'stddef.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STPCPY 1
 _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 '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"`'"'
 
 
-  # Code from module strcase:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
+$as_echo "$gl_cv_next_stddef_h" >&6; }
+     fi
+     NEXT_STDDEF_H=$gl_cv_next_stddef_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='<'stddef.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stddef_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
 
 
 
 
+  fi
 
 
 
@@ -45512,314 +28610,150 @@ _ACEOF
 
 
 
-for ac_func in strcasecmp
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdio_h='<'stdio.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
+$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
+if ${gl_cv_next_stdio_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
+                                                                                                                        case "$host_os" in
+                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
+                 *)    gl_absname_cpp="$ac_cpp" ;;
+               esac
 
-else
+               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"`'"'
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
 fi
-done
-
-
-  if test $ac_cv_func_strcasecmp = no; then
-    HAVE_STRCASECMP=0
-
-  :
-
-  fi
-
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5
+$as_echo "$gl_cv_next_stdio_h" >&6; }
+     fi
+     NEXT_STDIO_H=$gl_cv_next_stdio_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='<'stdio.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stdio_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive
 
 
 
 
 
+      GNULIB_FSCANF=1
 
 
-for ac_func in strncasecmp
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FSCANF 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+  GNULIB_SCANF=1
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_SCANF 1
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-else
+  GNULIB_FGETC=1
+  GNULIB_GETC=1
+  GNULIB_GETCHAR=1
+  GNULIB_FGETS=1
+  GNULIB_FREAD=1
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
-fi
-done
+      GNULIB_FPRINTF=1
+  GNULIB_PRINTF=1
+  GNULIB_VFPRINTF=1
+  GNULIB_VPRINTF=1
+  GNULIB_FPUTC=1
+  GNULIB_PUTC=1
+  GNULIB_PUTCHAR=1
+  GNULIB_FPUTS=1
+  GNULIB_PUTS=1
+  GNULIB_FWRITE=1
 
 
-  if test $ac_cv_func_strncasecmp = no; then
 
-  :
 
-  fi
-  { $as_echo "$as_me:$LINENO: checking whether strncasecmp is declared" >&5
-$as_echo_n "checking whether strncasecmp is declared... " >&6; }
-if test "${ac_cv_have_decl_strncasecmp+set}" = set; then
+    for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen     renameat snprintf tmpfile vdprintf vsnprintf; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdio.h>
+
 int
 main ()
 {
-#ifndef strncasecmp
-  (void) strncasecmp;
-#endif
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strncasecmp=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_strncasecmp=no
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strncasecmp" >&5
-$as_echo "$ac_cv_have_decl_strncasecmp" >&6; }
-if test "x$ac_cv_have_decl_strncasecmp" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNCASECMP 1
-_ACEOF
-
-
-else
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNCASECMP 0
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
+      done
 
 
-  if test $ac_cv_have_decl_strncasecmp = no; then
-    HAVE_DECL_STRNCASECMP=0
-  fi
 
 
-  # Code from module strchrnul:
 
 
 
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdlib_h='<'stdlib.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
+$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+if ${gl_cv_next_stdlib_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+               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
+                 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"`'"'
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5
+$as_echo "$gl_cv_next_stdlib_h" >&6; }
+     fi
+     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
 
-for ac_func in strchrnul
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+     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='<'stdlib.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stdlib_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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"
+
+
+    for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps     posix_openpt ptsname ptsname_r random random_r realpath rpmatch     secure_getenv setenv setstate setstate_r srandom srandom_r     strtod strtoll strtoull unlockpt unsetenv; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#if HAVE_RANDOM_H
+# include <random.h>
 #endif
 
 int
 main ()
 {
-return $ac_func ();
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  eval "$as_gl_Symbol=no"
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
-else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-done
-
+      done
 
-  if test $ac_cv_func_strchrnul = no; then
-    HAVE_STRCHRNUL=0
-    :
-  fi
 
 
 
 
-  GNULIB_STRCHRNUL=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRCHRNUL 1
+  for ac_func in stpcpy
+do :
+  ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STPCPY 1
 _ACEOF
 
+fi
+done
 
+  if test $ac_cv_func_stpcpy = no; then
+    HAVE_STPCPY=0
+  fi
 
-  # Code from module strdup-posix:
-
-
+  if test $HAVE_STPCPY = 0; then
 
 
 
@@ -45966,402 +28898,258 @@ _ACEOF
 
 
 
-  if test $ac_cv_func_strdup = yes; then
-    if test $gl_cv_func_malloc_posix != yes; then
-      REPLACE_STRDUP=1
 
+  gl_LIBOBJS="$gl_LIBOBJS stpcpy.$ac_objext"
 
 
+  :
 
+  fi
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
 
-      :
-    fi
-  else
+          GNULIB_STPCPY=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_STPCPY 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
 
-    :
-  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRCASECMP 1
+_ACEOF
 
+fi
+done
 
-  if test $ac_cv_have_decl_strdup = no; then
-    HAVE_DECL_STRDUP=0
+  if test $ac_cv_func_strcasecmp = no; then
+    HAVE_STRCASECMP=0
   fi
 
 
 
-
-  GNULIB_STRDUP=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRDUP 1
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRNCASECMP 1
 _ACEOF
 
+fi
+done
 
-
-  # Code from module streq:
-  # Code from module strerror:
-
-
-  if test $REPLACE_STRERROR = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
-
+  if test $ac_cv_func_strncasecmp = yes; then
+    HAVE_STRNCASECMP=1
+  else
+    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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
 cat >>confdefs.h <<_ACEOF
-#define REPLACE_STRERROR $REPLACE_STRERROR
+#define HAVE_DECL_STRNCASECMP $ac_have_decl
 _ACEOF
 
+  if test $ac_cv_have_decl_strncasecmp = no; then
+    HAVE_DECL_STRNCASECMP=0
   fi
 
 
+  if test $HAVE_STRCASECMP = 0; then
 
 
-  GNULIB_STRERROR=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRERROR 1
-_ACEOF
-
 
 
-  # Code from module string:
 
+  gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
 
 
-  # Code from module strings:
+  :
 
+  fi
+  if test $HAVE_STRNCASECMP = 0; then
 
 
-  # Code from module strndup:
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext"
 
 
+  :
 
+  fi
 
 
 
 
+  for ac_func in strchrnul
+do :
+  ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul"
+if test "x$ac_cv_func_strchrnul" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRCHRNUL 1
+_ACEOF
 
-  if test $ac_cv_have_decl_strndup = no; then
-    HAVE_DECL_STRNDUP=0
-  fi
+fi
+done
 
-  if test $ac_cv_func_strndup = yes; then
-    # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
-    { $as_echo "$as_me:$LINENO: checking for working strndup" >&5
-$as_echo_n "checking for working strndup... " >&6; }
-if test "${gl_cv_func_strndup_works+set}" = set; then
+  if test $ac_cv_func_strchrnul = no; then
+    HAVE_STRCHRNUL=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5
+$as_echo_n "checking whether strchrnul works... " >&6; }
+if ${gl_cv_func_strchrnul_works+:} false; then :
   $as_echo_n "(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.  */
 
-          case $host_os in
-            aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
-            *)               gl_cv_func_strndup_works="guessing yes";;
-          esac
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_strchrnul_works="guessing yes"
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  gl_cv_func_strchrnul_works="guessing no"
+fi
+rm -f conftest*
 
-         /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
-                           #include <stdlib.h>
+
+#include <string.h> /* for strchrnul */
+
 int
 main ()
 {
+const char *buf = "a";
+      return strchrnul (buf, 'b') != buf + 1;
 
-#ifndef HAVE_DECL_STRNDUP
-  extern char *strndup (const char *, size_t);
-#endif
-  char *s;
-  s = strndup ("some longer string", 15);
-  free (s);
-  s = strndup ("shorter string", 13);
-  return s[13] != '\0';
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gl_cv_func_strndup_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strchrnul_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_strndup_works=no
+  gl_cv_func_strchrnul_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strndup_works" >&5
-$as_echo "$gl_cv_func_strndup_works" >&6; }
-    case $gl_cv_func_strndup_works in
-      *no)
-        REPLACE_STRNDUP=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
-
-        ;;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5
+$as_echo "$gl_cv_func_strchrnul_works" >&6; }
+    case "$gl_cv_func_strchrnul_works" in
+      *yes) ;;
+      *) REPLACE_STRCHRNUL=1 ;;
     esac
-  else
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
-
   fi
 
+  if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
 
 
 
-  GNULIB_STRNDUP=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRNDUP 1
-_ACEOF
-
-
-
-  # Code from module strnlen:
-
-
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext"
 
+    :
+  fi
 
-  if test $ac_cv_have_decl_strnlen = no; then
-    HAVE_DECL_STRNLEN=0
-  else
-    { $as_echo "$as_me:$LINENO: checking for working strnlen" >&5
-$as_echo_n "checking for working strnlen... " >&6; }
-if test "${ac_cv_func_strnlen_working+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_strnlen_working=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
 
-#define S "foobar"
-#define S_LEN (sizeof S - 1)
 
-  /* At least one implementation is buggy: that of AIX 4.3 would
-     give strnlen (S, 1) == 3.  */
 
-  int i;
-  for (i = 0; i < S_LEN + 1; ++i)
-    {
-      int expected = i <= S_LEN ? i : S_LEN;
-      if (strnlen (S, i) != expected)
-       return 1;
-    }
-  return 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_strnlen_working=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+          GNULIB_STRCHRNUL=1
 
-( exit $ac_status )
-ac_cv_func_strnlen_working=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5
-$as_echo "$ac_cv_func_strnlen_working" >&6; }
-test $ac_cv_func_strnlen_working = no &&
 
 
+$as_echo "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
 
 
-        if test $ac_cv_func_strnlen_working = no; then
-      REPLACE_STRNLEN=1
+  if test $ac_cv_func_strdup = yes; then
+    if test $gl_cv_func_malloc_posix != yes; then
+      REPLACE_STRDUP=1
     fi
   fi
-  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
-
-
 
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
 
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
 
-    :
-  fi
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
 
-  GNULIB_STRNLEN=1
+    :
+  fi
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRNLEN 1
-_ACEOF
 
 
+          GNULIB_STRDUP=1
 
-  # Code from module strnlen1:
-  # Code from module strtoimax:
 
-  { $as_echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoimax as a macro" >&5
-$as_echo_n "checking whether <inttypes.h> defines strtoimax as a macro... " >&6; }
-if test "${gl_cv_func_strtoimax_macro+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <inttypes.h>
-#ifdef strtoimax
- inttypes_h_defines_strtoimax
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "inttypes_h_defines_strtoimax" >/dev/null 2>&1; then
-  gl_cv_func_strtoimax_macro=yes
-else
-  gl_cv_func_strtoimax_macro=no
-fi
-rm -f conftest*
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strtoimax_macro" >&5
-$as_echo "$gl_cv_func_strtoimax_macro" >&6; }
 
-  if test "$gl_cv_func_strtoimax_macro" != yes; then
 
+$as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h
 
 
 
@@ -46370,315 +29158,135 @@ $as_echo "$gl_cv_func_strtoimax_macro" >&6; }
 
 
 
-for ac_func in strtoimax
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if ${gl_cv_func_working_strerror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
 
 int
 main ()
 {
-return $ac_func ();
+if (!*strerror (-2)) return 1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_strerror=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+                        REPLACE_STRERROR=1
+        ;;
+    esac
 
-else
+  else
+            REPLACE_STRERROR=1
+  fi
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+  if test $REPLACE_STRERROR = 1; then
 
-fi
-done
 
 
-    if test $ac_cv_func_strtoimax = no; then
 
-  { $as_echo "$as_me:$LINENO: checking whether strtoll is declared" >&5
-$as_echo_n "checking whether strtoll is declared... " >&6; }
-if test "${ac_cv_have_decl_strtoll+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strtoll
-  (void) strtoll;
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strtoll=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_strtoll=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoll" >&5
-$as_echo "$ac_cv_have_decl_strtoll" >&6; }
-if test "x$ac_cv_have_decl_strtoll" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOLL 1
-_ACEOF
+  gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+  fi
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOLL 0
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_STRERROR 1
 _ACEOF
 
 
-fi
 
 
 
 
-    fi
-  fi
 
+          GNULIB_STRERROR=1
 
 
 
-  GNULIB_STRTOIMAX=1
 
 
-  # Code from module strtol:
+$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
 
 
 
 
 
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
 
 
 
 
 
-for ac_func in strtol
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+  gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_WINSOCK2_H 1
 _ACEOF
 
-else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
 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
 
 
-  # Code from module strtoll:
+  fi
 
 
 
-  if test "$ac_cv_type_long_long_int" = yes; then
 
 
 
@@ -46688,133 +29296,94 @@ done
 
 
 
-for ac_func in strtoll
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  if test $ac_cv_have_decl_strndup = no; then
+    HAVE_DECL_STRNDUP=0
+  fi
+
+  if test $ac_cv_func_strndup = yes; then
+    HAVE_STRNDUP=1
+    # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5
+$as_echo_n "checking for working strndup... " >&6; }
+if ${gl_cv_func_strndup_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+  if test "$cross_compiling" = yes; then :
 
-#undef $ac_func
+          case $host_os in
+            aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+            *)               gl_cv_func_strndup_works="guessing yes";;
+          esac
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+         #include <string.h>
+                           #include <stdlib.h>
 int
 main ()
 {
-return $ac_func ();
+
+#if !HAVE_DECL_STRNDUP
+  extern
+  #ifdef __cplusplus
+  "C"
+  #endif
+  char *strndup (const char *, size_t);
+#endif
+  char *s;
+  s = strndup ("some longer string", 15);
+  free (s);
+  s = strndup ("shorter string", 13);
+  return s[13] != '\0';
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strndup_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_func_strndup_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
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strndup_works" >&5
+$as_echo "$gl_cv_func_strndup_works" >&6; }
+    case $gl_cv_func_strndup_works in
+      *no) REPLACE_STRNDUP=1 ;;
+    esac
+  else
+    HAVE_STRNDUP=0
+  fi
 
-else
+  if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
-fi
-done
 
 
-    if test $ac_cv_func_strtoll = no; then
-      HAVE_STRTOLL=0
 
-  :
 
-    fi
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+
   fi
 
 
 
 
-  GNULIB_STRTOLL=1
 
+          GNULIB_STRNDUP=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRTOLL 1
-_ACEOF
 
 
 
-  # Code from module strtoul:
+$as_echo "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h
 
 
 
@@ -46824,515 +29393,262 @@ _ACEOF
 
 
 
+  if test $ac_cv_have_decl_strnlen = no; then
+    HAVE_DECL_STRNLEN=0
+  else
 
-for ac_func in strtoul
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5
+$as_echo_n "checking for working strnlen... " >&6; }
+if ${ac_cv_func_strnlen_working+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  # Guess no on AIX systems, yes otherwise.
+               case "$host_os" in
+                 aix*) ac_cv_func_strnlen_working=no;;
+                 *)    ac_cv_func_strnlen_working=yes;;
+               esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+$ac_includes_default
+int
+main ()
+{
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+#define S "foobar"
+#define S_LEN (sizeof S - 1)
 
-#undef $ac_func
+  /* At least one implementation is buggy: that of AIX 4.3 would
+     give strnlen (S, 1) == 3.  */
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+  int i;
+  for (i = 0; i < S_LEN + 1; ++i)
+    {
+      int expected = i <= S_LEN ? i : S_LEN;
+      if (strnlen (S, i) != expected)
+       return 1;
+    }
+  return 0;
 
-int
-main ()
-{
-return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_func_strnlen_working=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  ac_cv_func_strnlen_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5
+$as_echo "$ac_cv_func_strnlen_working" >&6; }
+test $ac_cv_func_strnlen_working = no && :
 
-else
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+    if test $ac_cv_func_strnlen_working = no; then
+      REPLACE_STRNLEN=1
+    fi
+  fi
 
-fi
-done
+  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
 
 
 
-  # Code from module strtoull:
 
 
 
-  if test "$ac_cv_type_unsigned_long_long_int" = yes; then
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
 
+    :
+  fi
 
 
 
 
 
+          GNULIB_STRNLEN=1
 
-for ac_func in strtoull
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+$as_echo "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+
+  for ac_func in strtol
+do :
+  ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STRTOL 1
 _ACEOF
 
-else
-
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
-
 fi
 done
 
 
-    if test $ac_cv_func_strtoull = no; then
-      HAVE_STRTOULL=0
+  if test $ac_cv_func_strtol = no; then
+
 
-  :
 
-    fi
-  fi
 
 
 
 
-  GNULIB_STRTOULL=1
 
+  gl_LIBOBJS="$gl_LIBOBJS strtol.$ac_objext"
 
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_STRTOULL 1
+  for ac_func in strtoul
+do :
+  ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRTOUL 1
 _ACEOF
 
+fi
+done
 
 
-  # Code from module strtoumax:
+  if test $ac_cv_func_strtoul = no; then
 
-  { $as_echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoumax as a macro" >&5
-$as_echo_n "checking whether <inttypes.h> defines strtoumax as a macro... " >&6; }
-if test "${gl_cv_func_strtoumax_macro+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <inttypes.h>
-#ifdef strtoumax
- inttypes_h_defines_strtoumax
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "inttypes_h_defines_strtoumax" >/dev/null 2>&1; then
-  gl_cv_func_strtoumax_macro=yes
-else
-  gl_cv_func_strtoumax_macro=no
-fi
-rm -f conftest*
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strtoumax_macro" >&5
-$as_echo "$gl_cv_func_strtoumax_macro" >&6; }
 
-  if test "$gl_cv_func_strtoumax_macro" != yes; then
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strtoul.$ac_objext"
 
+  fi
 
 
 
-for ac_func in strtoumax
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRTOULL 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+fi
+done
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+    if test $ac_cv_func_strtoull = no; then
+      HAVE_STRTOULL=0
+    fi
+  fi
 
-#undef $ac_func
+  if test $HAVE_STRTOULL = 0; then
 
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-else
 
-    gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
 
-fi
-done
 
+  gl_LIBOBJS="$gl_LIBOBJS strtoull.$ac_objext"
 
-    if test $ac_cv_func_strtoumax = no; then
 
-  { $as_echo "$as_me:$LINENO: checking whether strtoull is declared" >&5
-$as_echo_n "checking whether strtoull is declared... " >&6; }
-if test "${ac_cv_have_decl_strtoull+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strtoull
-  (void) strtoull;
-#endif
+  :
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strtoull=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  fi
 
-       ac_cv_have_decl_strtoull=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoull" >&5
-$as_echo "$ac_cv_have_decl_strtoull" >&6; }
-if test "x$ac_cv_have_decl_strtoull" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOULL 1
-_ACEOF
 
 
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOULL 0
-_ACEOF
+          GNULIB_STRTOULL=1
 
 
-fi
 
 
 
+$as_echo "#define GNULIB_TEST_STRTOULL 1" >>confdefs.h
 
-    fi
+
+
+
+
+
+
+
+  if test "$ac_cv_have_decl_strtoumax" != yes; then
+    HAVE_DECL_STRTOUMAX=0
   fi
 
+  if test $ac_cv_func_strtoumax = no; then
+
 
 
 
-  GNULIB_STRTOUMAX=1
 
 
-  # Code from module symlink:
 
 
+  gl_LIBOBJS="$gl_LIBOBJS strtoumax.$ac_objext"
 
 
+  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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOULL $ac_have_decl
+_ACEOF
 
 
 
-        if test $ac_cv_func_symlink = no; then
-    HAVE_SYMLINK=0
+  fi
 
 
 
 
 
+          GNULIB_STRTOUMAX=1
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS symlink.$ac_objext"
 
+
+
+
+        if test $ac_cv_func_symlink = no; then
+    HAVE_SYMLINK=0
   else
-    { $as_echo "$as_me:$LINENO: checking whether symlink handles trailing slash correctly" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5
 $as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; }
-if test "${gl_cv_func_symlink_works+set}" = set; then
+if ${gl_cv_func_symlink_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_symlink_works="guessing no"
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_symlink_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_symlink_works="guessing no" ;;
+          esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -47352,48 +29668,28 @@ int result = 0;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_symlink_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_symlink_works=no
+  gl_cv_func_symlink_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       rm -f conftest.f conftest.link conftest.lnk2
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_symlink_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5
 $as_echo "$gl_cv_func_symlink_works" >&6; }
-    if test "$gl_cv_func_symlink_works" != yes; then
-      REPLACE_SYMLINK=1
+    case "$gl_cv_func_symlink_works" in
+      *yes) ;;
+      *)
+        REPLACE_SYMLINK=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
 
 
 
@@ -47404,25 +29700,19 @@ $as_echo "$gl_cv_func_symlink_works" >&6; }
 
   gl_LIBOBJS="$gl_LIBOBJS symlink.$ac_objext"
 
-    fi
   fi
 
 
 
 
-  GNULIB_SYMLINK=1
-
 
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_SYMLINK 1
-_ACEOF
+          GNULIB_SYMLINK=1
 
 
 
-  # Code from module symlinkat:
 
 
+$as_echo "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h
 
 
 
@@ -47433,6 +29723,9 @@ _ACEOF
 
   if test $ac_cv_func_symlinkat = no; then
     HAVE_SYMLINKAT=0
+  fi
+
+  if test $HAVE_SYMLINKAT = 0; then
 
 
 
@@ -47448,21 +29741,14 @@ _ACEOF
 
 
 
-  GNULIB_SYMLINKAT=1
-
 
+          GNULIB_SYMLINKAT=1
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_SYMLINKAT 1
-_ACEOF
-
-
-
-  # Code from module sys_stat:
 
 
 
 
+$as_echo "#define GNULIB_TEST_SYMLINKAT 1" >>confdefs.h
 
 
 
@@ -47483,20 +29769,16 @@ _ACEOF
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_sys_stat_h='<'sys/stat.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <sys/stat.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
 $as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
-if test "${gl_cv_next_sys_stat_h+set}" = set; then
+if ${gl_cv_next_sys_stat_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
              if test $ac_cv_header_sys_stat_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/stat.h>
 
@@ -47505,20 +29787,34 @@ _ACEOF
                  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 '\#/sys/stat.h#{
-                    s#.*"\(.*/sys/stat.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
                gl_cv_next_sys_stat_h='<'sys/stat.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_stat_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5
 $as_echo "$gl_cv_next_sys_stat_h" >&6; }
      fi
      NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h
@@ -47536,140 +29832,39 @@ $as_echo "$gl_cv_next_sys_stat_h" >&6; }
 
 
 
-      { $as_echo "$as_me:$LINENO: checking for nlink_t" >&5
-$as_echo_n "checking for nlink_t... " >&6; }
-if test "${ac_cv_type_nlink_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_nlink_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
-
-int
-main ()
-{
-if (sizeof (nlink_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <sys/stat.h>
-
-int
-main ()
-{
-if (sizeof ((nlink_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_nlink_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_nlink_t" >&5
-$as_echo "$ac_cv_type_nlink_t" >&6; }
-if test "x$ac_cv_type_nlink_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define nlink_t int
-_ACEOF
-
-fi
 
 
 
 
 
 
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
 
+$as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h
 
+  fi
 
+      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 :
 
+else
 
+$as_echo "#define nlink_t int" >>confdefs.h
 
+fi
 
 
 
-  for gl_func in fchmodat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat     mknod mknodat stat utimensat; do
+    for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat     mknod mknodat stat utimensat; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/stat.h>
 
@@ -47682,142 +29877,28 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
                      eval ac_cv_have_decl_$gl_func=yes
 fi
-
       done
 
 
-  { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
-        for ac_exec_ext in '' $ac_executable_extensions; do
-          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 (fileutils) '4.1*)
-              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-              break 3;;
-          esac
-        done
-       done
-done
-IFS=$as_save_IFS
-
-fi
-
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-
-  # Code from module sys_time:
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
-        for ac_exec_ext in '' $ac_executable_extensions; do
-          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 (fileutils) '4.1*)
-              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-              break 3;;
-          esac
-        done
-       done
-done
-IFS=$as_save_IFS
-
-fi
-
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
 
 
-  # Code from module sysexits:
 
 
 
@@ -47836,28 +29917,19 @@ $as_echo "$MKDIR_P" >&6; }
 
 
 
-
-
-
-
-
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_sysexits_h='<'sysexits.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <sysexits.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sysexits.h>" >&5
 $as_echo_n "checking absolute name of <sysexits.h>... " >&6; }
-if test "${gl_cv_next_sysexits_h+set}" = set; then
+if ${gl_cv_next_sysexits_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
              if test $ac_cv_header_sysexits_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sysexits.h>
 
@@ -47866,20 +29938,34 @@ _ACEOF
                  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 'sysexits.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_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                  sed -n '\#/sysexits.h#{
-                    s#.*"\(.*/sysexits.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
                gl_cv_next_sysexits_h='<'sysexits.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sysexits_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sysexits_h" >&5
 $as_echo "$gl_cv_next_sysexits_h" >&6; }
      fi
      NEXT_SYSEXITS_H=$gl_cv_next_sysexits_h
@@ -47896,11 +29982,7 @@ $as_echo "$gl_cv_next_sysexits_h" >&6; }
 
 
 
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sysexits.h>
 int
@@ -47931,32 +30013,11 @@ switch (0)
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   SYSEXITS_H=
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       SYSEXITS_H=sysexits.h
+  SYSEXITS_H=sysexits.h
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   else
     HAVE_SYSEXITS_H=0
@@ -47964,62 +30025,54 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   fi
 
 
-
-  # Code from module tempname:
-
-
-
-
-
-
-
-
-
+   if test -n "$SYSEXITS_H"; then
+  GL_GENERATE_SYSEXITS_H_TRUE=
+  GL_GENERATE_SYSEXITS_H_FALSE='#'
+else
+  GL_GENERATE_SYSEXITS_H_TRUE='#'
+  GL_GENERATE_SYSEXITS_H_FALSE=
+fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS tempname.$ac_objext"
 
 
   :
 
 
-  # Code from module time:
 
 
 
-  # Code from module time_r:
-
-
 
 
 
 
 
 
+      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 :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_LOCALTIME_R $ac_have_decl
+_ACEOF
 
   if test $ac_cv_have_decl_localtime_r = no; then
     HAVE_DECL_LOCALTIME_R=0
   fi
 
 
-
-
-
-
-
   if test $ac_cv_func_localtime_r = yes; then
     HAVE_LOCALTIME_R=1
-    { $as_echo "$as_me:$LINENO: checking whether localtime_r is compatible with its POSIX signature" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5
 $as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; }
-if test "${gl_cv_time_r_posix+set}" = set; then
+if ${gl_cv_time_r_posix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
 int
@@ -48038,36 +30091,15 @@ main ()
 }
 
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_time_r_posix=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_time_r_posix=no
+  gl_cv_time_r_posix=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_time_r_posix" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_r_posix" >&5
 $as_echo "$gl_cv_time_r_posix" >&6; }
     if test $gl_cv_time_r_posix = yes; then
       REPLACE_LOCALTIME_R=0
@@ -48077,6 +30109,7 @@ $as_echo "$gl_cv_time_r_posix" >&6; }
   else
     HAVE_LOCALTIME_R=0
   fi
+
   if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
 
 
@@ -48096,27 +30129,18 @@ $as_echo "$gl_cv_time_r_posix" >&6; }
 
 
 
-  GNULIB_TIME_R=1
 
+          GNULIB_TIME_R=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_TIME_R 1
-_ACEOF
-
-
-
-  # Code from module timespec:
-
-
-
-  # Code from module unistd:
 
 
 
+$as_echo "#define GNULIB_TEST_TIME_R 1" >>confdefs.h
 
 
 
+  :
 
 
 
@@ -48132,20 +30156,16 @@ _ACEOF
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_unistd_h='<'unistd.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
 $as_echo_n "checking absolute name of <unistd.h>... " >&6; }
-if test "${gl_cv_next_unistd_h+set}" = set; then
+if ${gl_cv_next_unistd_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
              if test $ac_cv_header_unistd_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 
@@ -48154,20 +30174,34 @@ _ACEOF
                  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 '\#/unistd.h#{
-                    s#.*"\(.*/unistd.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
                gl_cv_next_unistd_h='<'unistd.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
 $as_echo "$gl_cv_next_unistd_h" >&6; }
      fi
      NEXT_UNISTD_H=$gl_cv_next_unistd_h
@@ -48196,55 +30230,19 @@ $as_echo "$gl_cv_next_unistd_h" >&6; }
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  for gl_func in chown dup2 dup3 environ euidaccess faccessat fchdir fchownat     fsync ftruncate getcwd getdomainname getdtablesize getgroups     gethostname getlogin getlogin_r getpagesize getusershell setusershell     endusershell lchown link linkat lseek pipe pipe2 pread pwrite readlink     readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat     usleep; do
+    for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat     fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups     gethostname getlogin getlogin_r getpagesize     getusershell setusershell endusershell     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite     readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r     unlink unlinkat usleep; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 /* Some systems declare various items in the wrong headers.  */
 #if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <fcntl.h>
@@ -48264,93 +30262,31 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
                      eval ac_cv_have_decl_$gl_func=yes
 fi
-
       done
 
 
-  # Code from module unistd-safer:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS dup-safer.$ac_objext"
-
-
-
-
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fd-safer.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS pipe-safer.$ac_objext"
-
-
-  # Code from module unitypes:
-
-
       if  { test "$HAVE_LIBUNISTRING" != yes \
     || {
 
@@ -48376,7 +30312,6 @@ fi
   fi
 
 
-  # Code from module uniwidth/base:
 
 
       if  { test "$HAVE_LIBUNISTRING" != yes \
@@ -48404,7 +30339,6 @@ fi
   fi
 
 
-  # Code from module uniwidth/width:
 
 
        if  { test "$HAVE_LIBUNISTRING" != yes \
@@ -48434,13 +30368,14 @@ else
 fi
 
 
-  # Code from module unlink:
 
 
 
-    { $as_echo "$as_me:$LINENO: checking whether unlink honors trailing slashes" >&5
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5
 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; }
-if test "${gl_cv_func_unlink_honors_slashes+set}" = set; then
+if ${gl_cv_func_unlink_honors_slashes+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   touch conftest.file
@@ -48448,16 +30383,22 @@ else
      if test $ac_cv_func_lstat = yes; then
        ln -s conftest.file conftest.lnk
      fi
-     if test "$cross_compiling" = yes; then
-  gl_cv_func_unlink_honors_slashes="guessing no"
+     if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unlink_honors_slashes="guessing no" ;;
+       esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
+#if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           #endif
            #include <errno.h>
 
 int
@@ -48480,49 +30421,28 @@ int result = 0;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_unlink_honors_slashes=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_unlink_honors_slashes=no
+  gl_cv_func_unlink_honors_slashes=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
      rm -f conftest.file conftest.lnk
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_honors_slashes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_honors_slashes" >&5
 $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; }
-      { $as_echo "$as_me:$LINENO: checking whether unlink of a parent directory fails as it should" >&5
+  case "$gl_cv_func_unlink_honors_slashes" in
+    *no)
+      REPLACE_UNLINK=1
+      ;;
+  esac
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5
 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; }
-if test "${gl_cv_func_unlink_parent_fails+set}" = set; then
+if ${gl_cv_func_unlink_parent_fails+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$host_os" in
@@ -48545,18 +30465,21 @@ else
            mkdir "$tmp/subdir"
            GL_SUBDIR_FOR_UNLINK="$tmp/subdir"
            export GL_SUBDIR_FOR_UNLINK
-           if test "$cross_compiling" = yes; then
-  gl_cv_func_unlink_parent_fails="guessing no"
+           if test "$cross_compiling" = yes; then :
+  # If we don't know, assume the worst.
+              gl_cv_func_unlink_parent_fails="guessing no"
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
                 #include <stdlib.h>
-                #include <unistd.h>
+                #if HAVE_UNISTD_H
+                # include <unistd.h>
+                #else /* on Windows with MSVC */
+                # include <direct.h>
+                # include <io.h>
+                #endif
                 int main ()
                 {
                   int result = 0;
@@ -48568,42 +30491,15 @@ cat >>conftest.$ac_ext <<_ACEOF
                 }
 
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_unlink_parent_fails=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_unlink_parent_fails=no
+  gl_cv_func_unlink_parent_fails=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
            unset GL_SUBDIR_FOR_UNLINK
            rm -rf "$tmp"
          else
      esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_parent_fails" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_parent_fails" >&5
 $as_echo "$gl_cv_func_unlink_parent_fails" >&6; }
   case "$gl_cv_func_unlink_parent_fails" in
     *no)
+      REPLACE_UNLINK=1
 
-cat >>confdefs.h <<\_ACEOF
-#define UNLINK_PARENT_BUG 1
-_ACEOF
+$as_echo "#define UNLINK_PARENT_BUG 1" >>confdefs.h
 
       ;;
   esac
-  if test "$gl_cv_func_unlink_honors_slashes" != yes \
-     || { case "$gl_cv_func_unlink_parent_fails" in
-            *yes) false;;
-            *no) true;;
-          esac
-        }; then
-    REPLACE_UNLINK=1
+
+  if test $REPLACE_UNLINK = 1; then
 
 
 
@@ -48649,65 +30539,14 @@ _ACEOF
 
 
 
-  GNULIB_UNLINK=1
 
+          GNULIB_UNLINK=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_UNLINK 1
-_ACEOF
 
 
 
-  # Code from module unlinkdir:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unlinkdir.$ac_objext"
-
-
-  # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
-  # Cygwin, and mingw never let anyone (even root) unlink directories.
-  # If anyone knows of another system for which unlink can never
-  # remove a directory, please report it to <bug-coreutils@gnu.org>.
-  # Unfortunately this is difficult to test for, since it requires root access
-  # and might create garbage in the file system,
-  # so the code below simply relies on the kernel name and version number.
-  case $host_os in
-  gnu[0-9]* | \
-  linux-* | linux | \
-  freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \
-  cygwin | \
-  mingw*)
-
-cat >>confdefs.h <<\_ACEOF
-#define UNLINK_CANNOT_UNLINK_DIR 1
-_ACEOF
-;;
-  esac
-
-  # Code from module unlocked-io:
-
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_UNLOCKED_IO 1
-_ACEOF
-
-
+$as_echo "#define GNULIB_TEST_UNLINK 1" >>confdefs.h
 
 
 
@@ -48717,7 +30556,25 @@ _ACEOF
 
 
 
+  if test $ac_cv_func_unlinkat = no; then
+    HAVE_UNLINKAT=0
+  else
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        # Solaris 9 has *at functions, but uniformly mishandles trailing
+        # slash in all of them.
+        REPLACE_UNLINKAT=1
+        ;;
+      *)
+        # GNU/Hurd has unlinkat, but it has the same bug as unlink.
+        if test $REPLACE_UNLINK = 1; then
+          REPLACE_UNLINKAT=1
+        fi
+        ;;
+    esac
+  fi
 
+  if test $HAVE_UNLINKAT = 0 || test $REPLACE_UNLINKAT = 1; then
 
 
 
@@ -48726,17 +30583,21 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext"
 
+  fi
 
 
 
 
 
+          GNULIB_UNLINKAT=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_UNLINKAT 1" >>confdefs.h
 
 
 
@@ -48744,10 +30605,27 @@ _ACEOF
 
 
 
+  # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+  # Cygwin, and mingw never let anyone (even root) unlink directories.
+  # If anyone knows of another system for which unlink can never
+  # remove a directory, please report it to <bug-coreutils@gnu.org>.
+  # Unfortunately this is difficult to test for, since it requires root access
+  # and might create garbage in the file system,
+  # so the code below simply relies on the kernel name and version number.
+  case $host_os in
+  gnu[0-9]* | \
+  linux-* | linux | \
+  freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \
+  cygwin | \
+  mingw*)
 
+$as_echo "#define UNLINK_CANNOT_UNLINK_DIR 1" >>confdefs.h
+;;
+  esac
 
 
 
+$as_echo "#define USE_UNLOCKED_IO 1" >>confdefs.h
 
 
 
@@ -48763,7 +30641,6 @@ _ACEOF
 
 
 
-  # Code from module unsetenv:
 
 
 
@@ -48773,138 +30650,27 @@ _ACEOF
   if test $ac_cv_have_decl_unsetenv = no; then
     HAVE_DECL_UNSETENV=0
   fi
-
-for ac_func in unsetenv
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_UNSETENV 1
 _ACEOF
 
 fi
 done
 
   if test $ac_cv_func_unsetenv = no; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
-
-
-
-
-
-
-
-
-
-
+    HAVE_UNSETENV=0
   else
-        { $as_echo "$as_me:$LINENO: checking for unsetenv() return type" >&5
+    HAVE_UNSETENV=1
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
 $as_echo_n "checking for unsetenv() return type... " >&6; }
-if test "${gt_cv_func_unsetenv_ret+set}" = set; then
+if ${gt_cv_func_unsetenv_ret+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #undef _BSD
@@ -48914,11 +30680,7 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
 int unsetenv (const char *name);
-#else
-int unsetenv();
-#endif
 
 int
 main ()
@@ -48928,68 +30690,37 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gt_cv_func_unsetenv_ret='int'
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_unsetenv_ret='void'
+  gt_cv_func_unsetenv_ret='void'
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_unsetenv_ret" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
 $as_echo "$gt_cv_func_unsetenv_ret" >&6; }
     if test $gt_cv_func_unsetenv_ret = 'void'; then
 
-cat >>confdefs.h <<\_ACEOF
-#define VOID_UNSETENV 1
-_ACEOF
+$as_echo "#define VOID_UNSETENV 1" >>confdefs.h
 
       REPLACE_UNSETENV=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
-
     fi
 
-                { $as_echo "$as_me:$LINENO: checking whether unsetenv obeys POSIX" >&5
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
 $as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
-if test "${gl_cv_func_unsetenv_works+set}" = set; then
+if ${gl_cv_func_unsetenv_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  gl_cv_func_unsetenv_works="guessing no"
+  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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
        #include <stdlib.h>
@@ -49020,95 +30751,54 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_unsetenv_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_unsetenv_works=no
+  gl_cv_func_unsetenv_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unsetenv_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
 $as_echo "$gl_cv_func_unsetenv_works" >&6; }
-    if test "$gl_cv_func_unsetenv_works" != yes; then
-      REPLACE_UNSETENV=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
-
-    fi
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
   fi
 
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
 
 
 
-  GNULIB_UNSETENV=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_UNSETENV 1
-_ACEOF
-
-
-
-  # Code from module utimens:
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS utimens.$ac_objext"
 
+  fi
 
 
 
 
 
+          GNULIB_UNSETENV=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
 
 
 
@@ -49119,20 +30809,22 @@ _ACEOF
 
 
   if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
-                { $as_echo "$as_me:$LINENO: checking whether futimesat handles NULL file" >&5
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5
 $as_echo_n "checking whether futimesat handles NULL file... " >&6; }
-if test "${gl_cv_func_futimesat_works+set}" = set; then
+if ${gl_cv_func_futimesat_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   touch conftest.file
-       if test "$cross_compiling" = yes; then
-  gl_cv_func_futimesat_works="guessing no"
+       if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_futimesat_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_futimesat_works="guessing no" ;;
+         esac
+
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stddef.h>
@@ -49150,91 +30842,45 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_futimesat_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_futimesat_works=no
+  gl_cv_func_futimesat_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       rm -f conftest.file
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_futimesat_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5
 $as_echo "$gl_cv_func_futimesat_works" >&6; }
-    if test "$gl_cv_func_futimesat_works" != yes; then
+    case "$gl_cv_func_futimesat_works" in
+      *yes) ;;
+      *)
 
-cat >>confdefs.h <<\_ACEOF
-#define FUTIMESAT_NULL_BUG 1
-_ACEOF
+$as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h
 
-    fi
+        ;;
+    esac
   fi
 
-  # Code from module utimensat:
-
-
-
-
-
 
 
 
 
   if test $ac_cv_func_utimensat = no; then
     HAVE_UTIMENSAT=0
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS utimensat.$ac_objext"
-
   else
-    { $as_echo "$as_me:$LINENO: checking whether utimensat works" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utimensat works" >&5
 $as_echo_n "checking whether utimensat works... " >&6; }
-if test "${gl_cv_func_utimensat_works+set}" = set; then
+if ${gl_cv_func_utimensat_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   gl_cv_func_utimensat_works="guessing no"
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <fcntl.h>
@@ -49276,33 +30922,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #ifdef __linux__
@@ -49320,51 +30941,28 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_func_utimensat_works=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_utimensat_works="needs runtime check"
+  gl_cv_func_utimensat_works="needs runtime check"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_utimensat_works=no
+  gl_cv_func_utimensat_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_utimensat_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utimensat_works" >&5
 $as_echo "$gl_cv_func_utimensat_works" >&6; }
     if test "$gl_cv_func_utimensat_works" != yes; then
       REPLACE_UTIMENSAT=1
+    fi
+  fi
+
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
 
 
 
@@ -49375,25 +30973,19 @@ $as_echo "$gl_cv_func_utimensat_works" >&6; }
 
   gl_LIBOBJS="$gl_LIBOBJS utimensat.$ac_objext"
 
-    fi
   fi
 
 
 
 
-  GNULIB_UTIMENSAT=1
 
+          GNULIB_UTIMENSAT=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_UTIMENSAT 1
-_ACEOF
-
 
 
-  # Code from module vasnprintf:
-
 
+$as_echo "#define GNULIB_TEST_UTIMENSAT 1" >>confdefs.h
 
 
 
@@ -49410,11 +31002,6 @@ _ACEOF
 
 
 
-
-
-
-
-
   gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
 
 
@@ -49449,9 +31036,7 @@ _ACEOF
 
   if test $ac_cv_func_vasnprintf = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define REPLACE_VASNPRINTF 1
-_ACEOF
+$as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h
 
   fi
 
@@ -49465,107 +31050,12 @@ _ACEOF
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5
-$as_echo_n "checking for ptrdiff_t... " >&6; }
-if test "${ac_cv_type_ptrdiff_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_ptrdiff_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (ptrdiff_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((ptrdiff_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_ptrdiff_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
-  :
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define ptrdiff_t long
-_ACEOF
+$as_echo "#define ptrdiff_t long" >>confdefs.h
 
 
 fi
 
   fi
 
-  # Code from module vasprintf:
-
-
-for ac_func in vasprintf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_VASPRINTF 1
 _ACEOF
 
 fi
@@ -49722,13 +31121,15 @@ done
 
 
 
-  GNULIB_VASPRINTF=1
+
+
+          GNULIB_VASPRINTF=1
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_VASPRINTF 1
-_ACEOF
+
+
+$as_echo "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
 
 
 
@@ -49740,11 +31141,9 @@ _ACEOF
 
   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format"
 
-  # Code from module verify:
-  # Code from module version-etc:
 
 # Check whether --with-packager was given.
-if test "${with_packager+set}" = set; then
+if test "${with_packager+set}" = set; then :
   withval=$with_packager;       case $withval in
         yes|no) ;;
         *)
@@ -49759,7 +31158,7 @@ fi
 
 
 # Check whether --with-packager-version was given.
-if test "${with_packager_version+set}" = set; then
+if test "${with_packager_version+set}" = set; then :
   withval=$with_packager_version;       case $withval in
         yes|no) ;;
         *)
@@ -49774,7 +31173,7 @@ fi
 
 
 # Check whether --with-packager-bug-reports was given.
-if test "${with_packager_bug_reports+set}" = set; then
+if test "${with_packager_bug_reports+set}" = set; then :
   withval=$with_packager_bug_reports;       case $withval in
         yes|no) ;;
         *)
   if test "X$with_packager" = "X" && \
      test "X$with_packager_version$with_packager_bug_reports" != "X"
   then
-    { { $as_echo "$as_me:$LINENO: error: The --with-packager-{bug-reports,version} options require --with-packager" >&5
-$as_echo "$as_me: error: The --with-packager-{bug-reports,version} options require --with-packager" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5
   fi
 
-  # Code from module version-etc-fsf:
-  # Code from module vsnprintf:
 
 
   gl_cv_func_vsnprintf_usable=no
-
-for ac_func in vsnprintf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  for ac_func in vsnprintf
+do :
+  ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_VSNPRINTF 1
 _ACEOF
 
 fi
@@ -49904,69 +31209,53 @@ done
   if test $ac_cv_func_vsnprintf = yes; then
 
 
-  { $as_echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
 $as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
-if test "${gl_cv_func_snprintf_size1+set}" = set; then
+if ${gl_cv_func_snprintf_size1+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then
+      if test "$cross_compiling" = yes; then :
   gl_cv_func_snprintf_size1="guessing yes"
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 int main()
 {
   static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
-  snprintf (buf, 1, "%d", 12345);
+  my_snprintf (buf, 1, "%d", 12345);
   return buf[1] != 'E';
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_snprintf_size1=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_snprintf_size1=no
+  gl_cv_func_snprintf_size1=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
 $as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
     case "$gl_cv_func_snprintf_size1" in
@@ -49974,7 +31263,59 @@ $as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
         case "$gl_cv_func_snprintf_retval_c99" in
           *yes)
-            gl_cv_func_vsnprintf_usable=yes
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+
+         case "$host_os" in
+           netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+                         gl_cv_func_printf_positions="guessing no";;
+           beos*)        gl_cv_func_printf_positions="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+           *)            gl_cv_func_printf_positions="guessing yes";;
+         esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+   dollar expansion (possibly an autoconf bug).  */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+  sprintf (buf, format, 33, 55);
+  return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_positions=yes
+else
+  gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+            case "$gl_cv_func_printf_positions" in
+              *yes)
+                gl_cv_func_vsnprintf_usable=yes
+                ;;
+            esac
             ;;
         esac
         ;;
@@ -50000,9 +31341,6 @@ $as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
   fi
 
-
-
-
   if test $ac_cv_have_decl_vsnprintf = no; then
     HAVE_DECL_VSNPRINTF=0
   fi
@@ -50010,20 +31348,15 @@ $as_echo "$gl_cv_func_snprintf_size1" >&6; }
 
 
 
-  GNULIB_VSNPRINTF=1
 
 
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_VSNPRINTF 1
-_ACEOF
+          GNULIB_VSNPRINTF=1
 
 
 
-  # Code from module warn-on-use:
-  # Code from module wchar:
 
 
+$as_echo "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h
 
 
 
@@ -50042,20 +31375,16 @@ _ACEOF
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_wchar_h='<'wchar.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
 $as_echo_n "checking absolute name of <wchar.h>... " >&6; }
-if test "${gl_cv_next_wchar_h+set}" = set; then
+if ${gl_cv_next_wchar_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
              if test $ac_cv_header_wchar_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wchar.h>
 
@@ -50064,20 +31393,34 @@ _ACEOF
                  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 '\#/wchar.h#{
-                    s#.*"\(.*/wchar.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
                gl_cv_next_wchar_h='<'wchar.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
 $as_echo "$gl_cv_next_wchar_h" >&6; }
      fi
      NEXT_WCHAR_H=$gl_cv_next_wchar_h
@@ -50112,57 +31455,14 @@ $as_echo "$gl_cv_next_wchar_h" >&6; }
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb      wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset      wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp      wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr      wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth     ; do
+    for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb      wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset      wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp      wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr      wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth     ; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
@@ -50185,62 +31485,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
                      eval ac_cv_have_decl_$gl_func=yes
 fi
-
       done
 
 
-  # Code from module wcrtomb:
-
-
-
-
-
-
-
-
-
-
 
 
 
@@ -50255,9 +31519,9 @@ fi
 
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -50268,14 +31532,10 @@ 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -50304,54 +31564,27 @@ int main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_mbrtowc_incomplete_state=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mbrtowc_incomplete_state=no
+  gl_cv_func_mbrtowc_incomplete_state=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
 
-     { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -50362,14 +31595,10 @@ 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -50402,46 +31631,19 @@ int main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_mbrtowc_sanitycheck=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_mbrtowc_sanitycheck=no
+  gl_cv_func_mbrtowc_sanitycheck=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
     REPLACE_MBSTATE_T=0
@@ -50456,21 +31658,35 @@ $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
   else
     REPLACE_MBSTATE_T=1
   fi
-  if test $REPLACE_MBSTATE_T = 1; then
-
-    :
-
-  fi
-
-
 
 
 
+  if test $ac_cv_func_wcrtomb = no; then
+    HAVE_WCRTOMB=0
+    ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
+"
+if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCRTOMB $ac_have_decl
+_ACEOF
 
-  if test $ac_cv_func_wcrtomb = no; then
-    HAVE_WCRTOMB=0
+    if test $ac_cv_have_decl_wcrtomb = yes; then
+                        REPLACE_WCRTOMB=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_WCRTOMB=1
@@ -50480,9 +31696,9 @@ $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
 
 
-             { $as_echo "$as_me:$LINENO: checking whether wcrtomb return value is correct" >&5
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
-if test "${gl_cv_func_wcrtomb_retval+set}" = set; then
+if ${gl_cv_func_wcrtomb_retval+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -50493,14 +31709,10 @@ 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 >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -50539,46 +31751,19 @@ int main ()
   return result;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_wcrtomb_retval=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_wcrtomb_retval=no
+  gl_cv_func_wcrtomb_retval=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
           fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_wcrtomb_retval" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5
 $as_echo "$gl_cv_func_wcrtomb_retval" >&6; }
       case "$gl_cv_func_wcrtomb_retval" in
         *yes) ;;
@@ -50586,10 +31771,8 @@ $as_echo "$gl_cv_func_wcrtomb_retval" >&6; }
       esac
     fi
   fi
-  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
-
-    :
 
+  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
 
 
 
@@ -50608,19 +31791,14 @@ $as_echo "$gl_cv_func_wcrtomb_retval" >&6; }
 
 
 
-  GNULIB_WCRTOMB=1
 
+          GNULIB_WCRTOMB=1
 
 
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_WCRTOMB 1
-_ACEOF
-
 
 
-  # Code from module wctype-h:
-
 
+$as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
 
 
 
@@ -50637,8 +31815,6 @@ _ACEOF
 
 
 
-
-
   if test $gt_cv_c_wint_t = yes; then
     HAVE_WINT_T=1
   else
@@ -50655,28 +31831,19 @@ _ACEOF
 
 
 
-
-
-
-
-
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_wctype_h='<'wctype.h'>'
      else
-       { $as_echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
 $as_echo_n "checking absolute name of <wctype.h>... " >&6; }
-if test "${gl_cv_next_wctype_h+set}" = set; then
+if ${gl_cv_next_wctype_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
              if test $ac_cv_header_wctype_h = yes; then
 
 
-               cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wctype.h>
 
@@ -50685,20 +31852,34 @@ _ACEOF
                  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 '\#/wctype.h#{
-                    s#.*"\(.*/wctype.h\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'
+                      sed -n "$gl_absolute_header_sed"`'"'
           else
                gl_cv_next_wctype_h='<'wctype.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
 $as_echo "$gl_cv_next_wctype_h" >&6; }
      fi
      NEXT_WCTYPE_H=$gl_cv_next_wctype_h
@@ -50717,18 +31898,14 @@ $as_echo "$gl_cv_next_wctype_h" >&6; }
 
   if test $ac_cv_header_wctype_h = yes; then
     if test $ac_cv_func_iswcntrl = yes; then
-                  { $as_echo "$as_me:$LINENO: checking whether iswcntrl works" >&5
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
 $as_echo_n "checking whether iswcntrl works... " >&6; }
-if test "${gl_cv_func_iswcntrl_works+set}" = set; then
+if ${gl_cv_func_iswcntrl_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test "$cross_compiling" = yes; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+          if test "$cross_compiling" = yes; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
                           #if __GNU_LIBRARY__ == 1
@@ -50742,40 +31919,15 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_func_iswcntrl_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_iswcntrl_works="guessing yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_func_iswcntrl_works=no
+  gl_cv_func_iswcntrl_works="guessing no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
                /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
@@ -50790,45 +31942,18 @@ cat >>conftest.$ac_ext <<_ACEOF
                int main () { return iswprint ('x') == 0; }
 
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_iswcntrl_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_iswcntrl_works=no
+  gl_cv_func_iswcntrl_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_iswcntrl_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
 $as_echo "$gl_cv_func_iswcntrl_works" >&6; }
     fi
     HAVE_WCTYPE_H=1
@@ -50837,27 +31962,75 @@ $as_echo "$gl_cv_func_iswcntrl_works" >&6; }
   fi
 
 
-  if test "$gl_cv_func_iswcntrl_works" = no; then
-    REPLACE_ISWCNTRL=1
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
+  fi
+
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
   else
-    REPLACE_ISWCNTRL=0
+    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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.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 <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+      if test $ac_cv_have_decl_towlower = yes; then
+                                REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
+    fi
   fi
 
 
-  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
         :
   fi
 
-          { $as_echo "$as_me:$LINENO: checking for wctype_t" >&5
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
 $as_echo_n "checking for wctype_t... " >&6; }
-if test "${gl_cv_type_wctype_t+set}" = set; then
+if ${gl_cv_type_wctype_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
                included before <wchar.h>.
@@ -50880,51 +32053,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_type_wctype_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_type_wctype_t=no
+  gl_cv_type_wctype_t=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_type_wctype_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
 $as_echo "$gl_cv_type_wctype_t" >&6; }
   if test $gl_cv_type_wctype_t = no; then
     HAVE_WCTYPE_T=0
   fi
 
-      { $as_echo "$as_me:$LINENO: checking for wctrans_t" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
 $as_echo_n "checking for wctrans_t... " >&6; }
-if test "${gl_cv_type_wctrans_t+set}" = set; then
+if ${gl_cv_type_wctrans_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
                included before <wchar.h>.
@@ -50945,58 +32093,29 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   gl_cv_type_wctrans_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_type_wctrans_t=no
+  gl_cv_type_wctrans_t=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_type_wctrans_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
 $as_echo "$gl_cv_type_wctrans_t" >&6; }
   if test $gl_cv_type_wctrans_t = no; then
     HAVE_WCTRANS_T=0
   fi
 
 
-
-
-
-
-  for gl_func in wctype iswctype wctrans towctrans     ; do
+    for gl_func in wctype iswctype wctrans towctrans     ; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
@@ -51020,57 +32139,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_gl_Symbol=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_gl_Symbol=no"
+  eval "$as_gl_Symbol=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-     as_val=`eval 'as_val=${'$as_gl_Symbol'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
                      eval ac_cv_have_decl_$gl_func=yes
 fi
-
       done
 
 
-  # Code from module wcwidth:
-
-
-
-
-
 
 
 
 
 
 
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5
-$as_echo_n "checking whether wcwidth is declared... " >&6; }
-if test "${ac_cv_have_decl_wcwidth+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* AIX 3.2.5 declares wcwidth in <string.h>. */
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.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 <stdio.h>
-#include <time.h>
-#include <wchar.h>
-
-
-int
-main ()
-{
-#ifndef wcwidth
-  (void) wcwidth;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_wcwidth=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_wcwidth=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5
-$as_echo "$ac_cv_have_decl_wcwidth" >&6; }
-if test "x$ac_cv_have_decl_wcwidth" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCWIDTH 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCWIDTH 0
-_ACEOF
-
-
+
+
+  ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+"
+if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCWIDTH $ac_have_decl
+_ACEOF
 
   if test $ac_cv_have_decl_wcwidth != yes; then
     HAVE_DECL_WCWIDTH=0
   fi
 
   if test $ac_cv_func_wcwidth = yes; then
-                { $as_echo "$as_me:$LINENO: checking whether wcwidth works reasonably in UTF-8 locales" >&5
+    HAVE_WCWIDTH=1
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
 $as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
-if test "${gl_cv_func_wcwidth_works+set}" = set; then
+if ${gl_cv_func_wcwidth_works+:} false; then :
   $as_echo_n "(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.
@@ -51188,11 +32214,7 @@ else
            esac
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <locale.h>
@@ -51220,59 +32242,36 @@ int main ()
     {
       if (wcwidth (0x0301) > 0)
         result |= 1;
-      if (wcwidth (0x200B) > 0)
+      if (wcwidth (0x05B0) > 0)
         result |= 2;
+      if (wcwidth (0x200B) > 0)
+        result |= 4;
     }
   return result;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   gl_cv_func_wcwidth_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gl_cv_func_wcwidth_works=no
+  gl_cv_func_wcwidth_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_wcwidth_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5
 $as_echo "$gl_cv_func_wcwidth_works" >&6; }
     case "$gl_cv_func_wcwidth_works" in
       *yes) ;;
       *no) REPLACE_WCWIDTH=1 ;;
     esac
+  else
+    HAVE_WCWIDTH=0
   fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1; then
 
+  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
 
 
 
@@ -51280,233 +32279,74 @@ $as_echo "$gl_cv_func_wcwidth_works" >&6; }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
-
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1 \
-     || test $HAVE_DECL_WCWIDTH = 0; then
 
-    :
+  gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
 
   fi
 
 
 
 
-  GNULIB_WCWIDTH=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_WCWIDTH 1
-_ACEOF
-
-
-
-  # Code from module write:
-
-
-
-
-
 
+          GNULIB_WCWIDTH=1
 
-  GNULIB_WRITE=1
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define GNULIB_TEST_WRITE 1
-_ACEOF
-
-
-
-  # Code from module xalloc:
 
 
 
 
+$as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS xmalloc.$ac_objext"
-
-
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_WRITE=1
+  fi
 
-  :
 
 
-  :
+  if test $REPLACE_WRITE = 1; then
 
 
-  # Code from module xalloc-die:
-  # Code from module xgetcwd:
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext"
 
+    :
+  fi
 
 
-  gl_LIBOBJS="$gl_LIBOBJS xgetcwd.$ac_objext"
 
 
 
+          GNULIB_WRITE=1
 
-  # Code from module xsize:
 
 
 
 
-for ac_header in stdint.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define GNULIB_TEST_WRITE 1" >>confdefs.h
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  :
 
-  ac_header_preproc=no
-fi
+  :
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_STDINT_H 1
 _ACEOF
 
 fi
 done
 
 
-  # Code from module xstrndup:
 
 
   :
 
 
-  # Code from module xstrtol:
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS xstrtol.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS xstrtoul.$ac_objext"
-
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS xstrtol-error.$ac_objext"
-
-
-  # Code from module xstrtoumax:
-  # Code from module xvasprintf:
-
 
+  :
 
+  :
 
 
   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
@@ -51610,16 +32415,12 @@ done
 
 
 
-{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then
+if ${ac_cv_header_time+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/time.h>
@@ -51634,149 +32435,30 @@ return 0;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_time=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_time=no
+  ac_cv_header_time=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
 $as_echo "$ac_cv_header_time" >&6; }
 if test $ac_cv_header_time = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
-$as_echo_n "checking for struct stat.st_blksize... " >&6; }
-if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_blksize)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blksize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_blksize)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blksize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_blksize=no
-fi
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5
-$as_echo "$ac_cv_member_struct_stat_st_blksize" >&6; }
-if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then
+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 :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
 _ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ST_BLKSIZE 1
-_ACEOF
+$as_echo "#define HAVE_ST_BLKSIZE 1" >>confdefs.h
 
 fi
 
   # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
   pu_save_LIBS=$LIBS
   LIB_SETSOCKOPT=
-  { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
 $as_echo_n "checking for library containing setsockopt... " >&6; }
-if test "${ac_cv_search_setsockopt+set}" = set; then
+if ${ac_cv_search_setsockopt+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -51823,68 +32501,37 @@ for ac_lib in '' socket; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_setsockopt=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_setsockopt+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_setsockopt+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_setsockopt+set}" = set; then
-  :
+if ${ac_cv_search_setsockopt+:} false; then :
+
 else
   ac_cv_search_setsockopt=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
 $as_echo "$ac_cv_search_setsockopt" >&6; }
 ac_res=$ac_cv_search_setsockopt
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
 $as_echo_n "checking for library containing setsockopt... " >&6; }
-if test "${ac_cv_search_setsockopt+set}" = set; then
+if ${ac_cv_search_setsockopt+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -51909,71 +32556,40 @@ for ac_lib in '' socket; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_setsockopt=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_setsockopt+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_setsockopt+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_setsockopt+set}" = set; then
-  :
+if ${ac_cv_search_setsockopt+:} false; then :
+
 else
   ac_cv_search_setsockopt=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
 $as_echo "$ac_cv_search_setsockopt" >&6; }
 ac_res=$ac_cv_search_setsockopt
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 fi
 
-  { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
 $as_echo_n "checking for library containing setsockopt... " >&6; }
-if test "${ac_cv_search_setsockopt+set}" = set; then
+if ${ac_cv_search_setsockopt+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -51998,54 +32614,27 @@ for ac_lib in '' nsl; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_setsockopt=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_setsockopt+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_setsockopt+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_setsockopt+set}" = set; then
-  :
+if ${ac_cv_search_setsockopt+:} false; then :
+
 else
   ac_cv_search_setsockopt=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
 $as_echo "$ac_cv_search_setsockopt" >&6; }
 ac_res=$ac_cv_search_setsockopt
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
   enable_rmt() {
     if test $ac_cv_header_sys_mtio_h = yes; then
-      { $as_echo "$as_me:$LINENO: checking for remote tape header files" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote tape header files" >&5
 $as_echo_n "checking for remote tape header files... " >&6; }
-if test "${pu_cv_header_rmt+set}" = set; then
+if ${pu_cv_header_rmt+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #if HAVE_SGTTY_H
@@ -52076,207 +32661,44 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 #include <sys/socket.h>
 _ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   pu_cv_header_rmt=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   pu_cv_header_rmt=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $pu_cv_header_rmt" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pu_cv_header_rmt" >&5
 $as_echo "$pu_cv_header_rmt" >&6; }
       test $pu_cv_header_rmt = yes && PU_RMT_PROG='rmt$(EXEEXT)'
 
     fi
   }
 
-
-for ac_header in sys/mtio.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  for ac_header in sys/mtio.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/mtio.h" "ac_cv_header_sys_mtio_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mtio_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_MTIO_H 1
 _ACEOF
 
 fi
 
 done
 
-  { $as_echo "$as_me:$LINENO: checking which ioctl field to test for reversed bytes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which ioctl field to test for reversed bytes" >&5
 $as_echo_n "checking which ioctl field to test for reversed bytes... " >&6; }
-if test "${pu_cv_header_mtio_check_field+set}" = set; then
+if ${pu_cv_header_mtio_check_field+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/mtio.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mt_model" >/dev/null 2>&1; then
+  $EGREP "mt_model" >/dev/null 2>&1; then :
   pu_cv_header_mtio_check_field=mt_model
 else
   pu_cv_header_mtio_check_field=mt_type
@@ -52284,7 +32706,7 @@ fi
 rm -f conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $pu_cv_header_mtio_check_field" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pu_cv_header_mtio_check_field" >&5
 $as_echo "$pu_cv_header_mtio_check_field" >&6; }
 
 cat >>confdefs.h <<_ACEOF
@@ -52300,28 +32722,24 @@ _ACEOF
        DEFAULT_RMT_DIR='$(libexecdir)'
   fi
 
-  { $as_echo "$as_me:$LINENO: checking whether to build rmt" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build rmt" >&5
 $as_echo_n "checking whether to build rmt... " >&6; }
 
 # Check whether --with-rmt was given.
-if test "${with_rmt+set}" = set; then
+if test "${with_rmt+set}" = set; then :
   withval=$with_rmt; case $withval in
-              yes|no) { { $as_echo "$as_me:$LINENO: error: Invalid argument to --with-rmt" >&5
-$as_echo "$as_me: error: Invalid argument to --with-rmt" >&2;}
-   { (exit 1); exit 1; }; };;
+              yes|no) as_fn_error $? "Invalid argument to --with-rmt" "$LINENO" 5;;
               /*)     DEFAULT_RMT_COMMAND=$withval
-                      { $as_echo "$as_me:$LINENO: result: no, use $withval instead" >&5
+                      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, use $withval instead" >&5
 $as_echo "no, use $withval instead" >&6; };;
-              *)      { { $as_echo "$as_me:$LINENO: error: Argument to --with-rmt must be an absolute file name" >&5
-$as_echo "$as_me: error: Argument to --with-rmt must be an absolute file name" >&2;}
-   { (exit 1); exit 1; }; };;
+              *)      as_fn_error $? "Argument to --with-rmt must be an absolute file name" "$LINENO" 5;;
                esac
 else
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
                 enable_rmt
                 if test "$PU_RMT_PROG" = ""; then
-                  { $as_echo "$as_me:$LINENO: WARNING: not building rmt, required header files are missing" >&5
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: not building rmt, required header files are missing" >&5
 $as_echo "$as_me: WARNING: not building rmt, required header files are missing" >&2;}
                 fi
 fi
@@ -52344,106 +32762,15 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in sys/buf.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_SYS_PARAM_H
+  for ac_header in sys/buf.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_BUF_H 1
 _ACEOF
 
 fi
@@ -52453,102 +32780,8 @@ done
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
-$as_echo_n "checking for struct stat.st_blksize... " >&6; }
-if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_blksize)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blksize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (sizeof ac_aggr.st_blksize)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_stat_st_blksize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_member_struct_stat_st_blksize=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
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5
-$as_echo "$ac_cv_member_struct_stat_st_blksize" >&6; }
-if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then
+  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 :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
 
 
 
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
 $as_echo_n "checking for library containing gethostbyname... " >&6; }
-if test "${ac_cv_search_gethostbyname+set}" = set; then
+if ${ac_cv_search_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -52607,54 +32827,27 @@ for ac_lib in '' nsl; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_gethostbyname=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_gethostbyname+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_gethostbyname+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_gethostbyname+set}" = set; then
-  :
+if ${ac_cv_search_gethostbyname+:} false; then :
+
 else
   ac_cv_search_gethostbyname=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5
 $as_echo "$ac_cv_search_gethostbyname" >&6; }
 ac_res=$ac_cv_search_gethostbyname
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
 
+# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
+# ------------------------------------------------
+# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
+# Otherwise, run RUN-IF-NOT-FOUND.
 
 
+# Check whether --enable-gcc-warnings was given.
+if test "${enable_gcc_warnings+set}" = set; then :
+  enableval=$enable_gcc_warnings; case $enableval in
+     yes|no) ;;
+     *)      as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;;
+   esac
+   gl_gcc_warnings=$enableval
+else
+  gl_gcc_warnings=no
+   if test -d "$srcdir"/.git; then
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#if (4) < __GNUC__ || ((4) == __GNUC__ && (6) <= __GNUC_MINOR__)
+/* ok */
+#else
+# error "your version of gcc is older than 4.6"
+#endif
 
+int
+main ()
+{
 
+  ;
+  return 0;
+},
 
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  gl_gcc_warnings=yes
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 
+   fi
 
+fi
+
+
+if test "$gl_gcc_warnings" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_c__Werror__Wunknown_warning_option+:} false; then :
+  $as_echo_n "(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 ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5
+$as_echo "$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
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5
+$as_echo_n "checking whether C compiler handles -Werror... " >&6; }
+if ${gl_cv_warn_c__Werror+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror" >&5
+$as_echo "$gl_cv_warn_c__Werror" >&6; }
+if test "x$gl_cv_warn_c__Werror" = xyes; then :
+  as_fn_append WERROR_CFLAGS " -Werror"
+fi
 
 
 
 
+  nw=
+  # This, $nw, is the list of warnings we disable.
+  nw="$nw -Wformat-nonliteral"      # warnings in Fedora 17 stdio.h
+  nw="$nw -Wvla"                    # warnings in gettext.h
+  nw="$nw -Wswitch-default"         # Too many warnings for now
+  nw="$nw -Wunsafe-loop-optimizations" # It's OK to omit unsafe optimizations.
+  nw="$nw -Winline"                 # It's OK to not inline.
+  nw="$nw -Wstrict-overflow"       # It's OK to optimize strictly.
+  nw="$nw -Wsuggest-attribute=pure" # Too many warnings for now.
 
 
 
+  if test -n "$GCC"; then
 
-{ $as_echo "$as_me:$LINENO: checking whether getgrgid is declared" >&5
-$as_echo_n "checking whether getgrgid is declared... " >&6; }
-if test "${ac_cv_have_decl_getgrgid+set}" = set; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5
+$as_echo_n "checking whether -Wno-missing-field-initializers is supported... " >&6; }
+    if ${gl_cv_cc_nomfi_supported+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <grp.h>
 
 int
 main ()
 {
-#ifndef getgrgid
-  (void) getgrgid;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getgrgid=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_cc_nomfi_supported=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getgrgid=no
+  gl_cv_cc_nomfi_supported=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      CFLAGS="$gl_save_CFLAGS"
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getgrgid" >&5
-$as_echo "$ac_cv_have_decl_getgrgid" >&6; }
-if test "x$ac_cv_have_decl_getgrgid" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETGRGID 1
-_ACEOF
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5
+$as_echo "$gl_cv_cc_nomfi_supported" >&6; }
 
+    if test "$gl_cv_cc_nomfi_supported" = yes; then
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5
+$as_echo_n "checking whether -Wno-missing-field-initializers is needed... " >&6; }
+      if ${gl_cv_cc_nomfi_needed+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETGRGID 0
-_ACEOF
 
+        gl_save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS -W -Werror"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+void f (void)
+               {
+                 typedef struct { int a; int b; } s_t;
+                 s_t s1 = { 0, };
+               }
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_cc_nomfi_needed=no
+else
+  gl_cv_cc_nomfi_needed=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        CFLAGS="$gl_save_CFLAGS"
 
 fi
 
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
+$as_echo "$gl_cv_cc_nomfi_needed" >&6; }
+    fi
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
+$as_echo_n "checking whether -Wuninitialized is supported... " >&6; }
+    if ${gl_cv_cc_uninitialized_supported+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -Werror -Wuninitialized"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_cc_uninitialized_supported=yes
+else
+  gl_cv_cc_uninitialized_supported=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      CFLAGS="$gl_save_CFLAGS"
+fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
+$as_echo "$gl_cv_cc_uninitialized_supported" >&6; }
+
+  fi
+
+  # List all gcc warning categories.
+  gl_manywarn_set=
+  for gl_manywarn_item in \
+    -W \
+    -Wabi \
+    -Waddress \
+    -Waggressive-loop-optimizations \
+    -Wall \
+    -Warray-bounds \
+    -Wattributes \
+    -Wbad-function-cast \
+    -Wbuiltin-macro-redefined \
+    -Wcast-align \
+    -Wchar-subscripts \
+    -Wclobbered \
+    -Wcomment \
+    -Wcomments \
+    -Wcoverage-mismatch \
+    -Wcpp \
+    -Wdeprecated \
+    -Wdeprecated-declarations \
+    -Wdisabled-optimization \
+    -Wdiv-by-zero \
+    -Wdouble-promotion \
+    -Wempty-body \
+    -Wendif-labels \
+    -Wenum-compare \
+    -Wextra \
+    -Wformat-contains-nul \
+    -Wformat-extra-args \
+    -Wformat-nonliteral \
+    -Wformat-security \
+    -Wformat-y2k \
+    -Wformat-zero-length \
+    -Wfree-nonheap-object \
+    -Wignored-qualifiers \
+    -Wimplicit \
+    -Wimplicit-function-declaration \
+    -Wimplicit-int \
+    -Winit-self \
+    -Winline \
+    -Wint-to-pointer-cast \
+    -Winvalid-memory-model \
+    -Winvalid-pch \
+    -Wjump-misses-init \
+    -Wlogical-op \
+    -Wmain \
+    -Wmaybe-uninitialized \
+    -Wmissing-braces \
+    -Wmissing-declarations \
+    -Wmissing-field-initializers \
+    -Wmissing-include-dirs \
+    -Wmissing-parameter-type \
+    -Wmissing-prototypes \
+    -Wmudflap \
+    -Wmultichar \
+    -Wnarrowing \
+    -Wnested-externs \
+    -Wnonnull \
+    -Wnormalized=nfc \
+    -Wold-style-declaration \
+    -Wold-style-definition \
+    -Woverflow \
+    -Woverlength-strings \
+    -Woverride-init \
+    -Wpacked \
+    -Wpacked-bitfield-compat \
+    -Wparentheses \
+    -Wpointer-arith \
+    -Wpointer-sign \
+    -Wpointer-to-int-cast \
+    -Wpragmas \
+    -Wreturn-local-addr \
+    -Wreturn-type \
+    -Wsequence-point \
+    -Wshadow \
+    -Wsizeof-pointer-memaccess \
+    -Wstack-protector \
+    -Wstrict-aliasing \
+    -Wstrict-overflow \
+    -Wstrict-prototypes \
+    -Wsuggest-attribute=const \
+    -Wsuggest-attribute=format \
+    -Wsuggest-attribute=noreturn \
+    -Wsuggest-attribute=pure \
+    -Wswitch \
+    -Wswitch-default \
+    -Wsync-nand \
+    -Wsystem-headers \
+    -Wtrampolines \
+    -Wtrigraphs \
+    -Wtype-limits \
+    -Wuninitialized \
+    -Wunknown-pragmas \
+    -Wunsafe-loop-optimizations \
+    -Wunused \
+    -Wunused-but-set-parameter \
+    -Wunused-but-set-variable \
+    -Wunused-function \
+    -Wunused-label \
+    -Wunused-local-typedefs \
+    -Wunused-macros \
+    -Wunused-parameter \
+    -Wunused-result \
+    -Wunused-value \
+    -Wunused-variable \
+    -Wvarargs \
+    -Wvariadic-macros \
+    -Wvector-operation-performance \
+    -Wvla \
+    -Wvolatile-register-var \
+    -Wwrite-strings \
+    \
+    ; do
+    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
+  done
+
+  # Disable specific options as needed.
+  if test "$gl_cv_cc_nomfi_needed" = yes; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
+  fi
+
+  if test "$gl_cv_cc_uninitialized_supported" = no; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
+  fi
+
+  ws=$gl_manywarn_set
+
 
-{ $as_echo "$as_me:$LINENO: checking whether getpwuid is declared" >&5
-$as_echo_n "checking whether getpwuid is declared... " >&6; }
-if test "${ac_cv_have_decl_getpwuid+set}" = set; then
+  gl_warn_set=
+  set x $ws; shift
+  for gl_warn_item
+  do
+    case " $nw " in
+      *" $gl_warn_item "*)
+        ;;
+      *)
+        gl_warn_set="$gl_warn_set $gl_warn_item"
+        ;;
+    esac
+  done
+  ws=$gl_warn_set
+
+  for w in $ws; do
+
+as_gl_Warn=`$as_echo "gl_cv_warn_c_$w" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5
+$as_echo_n "checking whether C compiler handles $w... " >&6; }
+if eval \${$as_gl_Warn+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $w"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pwd.h>
 
 int
 main ()
 {
-#ifndef getpwuid
-  (void) getpwuid;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getpwuid=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Warn=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getpwuid=no
+  eval "$as_gl_Warn=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+eval ac_res=\$$as_gl_Warn
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_gl_Warn"\" = x"yes"; then :
+  as_fn_append WARN_CFLAGS " $w"
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getpwuid" >&5
-$as_echo "$ac_cv_have_decl_getpwuid" >&6; }
-if test "x$ac_cv_have_decl_getpwuid" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETPWUID 1
-_ACEOF
 
+  done
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-sign-compare" >&5
+$as_echo_n "checking whether C compiler handles -Wno-sign-compare... " >&6; }
+if ${gl_cv_warn_c__Wno_sign_compare+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETPWUID 0
-_ACEOF
 
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-sign-compare"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_sign_compare" >&5
+$as_echo "$gl_cv_warn_c__Wno_sign_compare" >&6; }
+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
 
-{ $as_echo "$as_me:$LINENO: checking whether time is declared" >&5
-$as_echo_n "checking whether time is declared... " >&6; }
-if test "${ac_cv_have_decl_time+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-type-limits" >&5
+$as_echo_n "checking whether C compiler handles -Wno-type-limits... " >&6; }
+if ${gl_cv_warn_c__Wno_type_limits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-type-limits"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <time.h>
 
 int
 main ()
 {
-#ifndef time
-  (void) time;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_time=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_warn_c__Wno_type_limits=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_warn_c__Wno_type_limits=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
 
-       ac_cv_have_decl_time=no
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_type_limits" >&5
+$as_echo "$gl_cv_warn_c__Wno_type_limits" >&6; }
+if test "x$gl_cv_warn_c__Wno_type_limits" = xyes; then :
+  as_fn_append WARN_CFLAGS " -Wno-type-limits"
 fi
 
+      # It's OK to optimize based on types.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
+$as_echo_n "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
+if ${gl_cv_warn_c__Wno_unused_parameter+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-unused-parameter"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_unused_parameter" >&5
+$as_echo "$gl_cv_warn_c__Wno_unused_parameter" >&6; }
+if test "x$gl_cv_warn_c__Wno_unused_parameter" = xyes; then :
+  as_fn_append WARN_CFLAGS " -Wno-unused-parameter"
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_time" >&5
-$as_echo "$ac_cv_have_decl_time" >&6; }
-if test "x$ac_cv_have_decl_time" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TIME 1
+ # Too many warnings for now
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-nonliteral" >&5
+$as_echo_n "checking whether C compiler handles -Wno-format-nonliteral... " >&6; }
+if ${gl_cv_warn_c__Wno_format_nonliteral+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-format-nonliteral"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_format_nonliteral" >&5
+$as_echo "$gl_cv_warn_c__Wno_format_nonliteral" >&6; }
+if test "x$gl_cv_warn_c__Wno_format_nonliteral" = xyes; then :
+  as_fn_append WARN_CFLAGS " -Wno-format-nonliteral"
+fi
+
 
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
+$as_echo_n "checking whether C compiler handles -fdiagnostics-show-option... " >&6; }
+if ${gl_cv_warn_c__fdiagnostics_show_option+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TIME 0
-_ACEOF
 
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fdiagnostics-show-option"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__fdiagnostics_show_option" >&5
+$as_echo "$gl_cv_warn_c__fdiagnostics_show_option" >&6; }
+if test "x$gl_cv_warn_c__fdiagnostics_show_option" = xyes; then :
+  as_fn_append WARN_CFLAGS " -fdiagnostics-show-option"
+fi
 
 
 
-for ac_func in waitpid
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -funit-at-a-time" >&5
+$as_echo_n "checking whether C compiler handles -funit-at-a-time... " >&6; }
+if ${gl_cv_warn_c__funit_at_a_time+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -funit-at-a-time"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+int
+main ()
+{
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$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
+  CFLAGS="$gl_save_compiler_FLAGS"
 
-#undef $ac_func
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__funit_at_a_time" >&5
+$as_echo "$gl_cv_warn_c__funit_at_a_time" >&6; }
+if test "x$gl_cv_warn_c__funit_at_a_time" = xyes; then :
+  as_fn_append WARN_CFLAGS " -funit-at-a-time"
+fi
+
+
+
+
+
+
+$as_echo "#define lint 1" >>confdefs.h
+
+
+
+$as_echo "#define GNULIB_PORTCHECK 1" >>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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+
+  # Use a slightly smaller set of warning options for lib/.
+  # Remove the following and save the result in GNULIB_WARN_CFLAGS.
+  nw=
+  nw="$nw -Wmissing-prototypes"
+  nw="$nw -Wunused-macros"
+  #
+  # These are for argp.
+  nw="$nw -Wmissing-field-initializers"
+  nw="$nw -Wshadow"
+  #
+
+  gl_warn_set=
+  set x $WARN_CFLAGS; shift
+  for gl_warn_item
+  do
+    case " $nw " in
+      *" $gl_warn_item "*)
+        ;;
+      *)
+        gl_warn_set="$gl_warn_set $gl_warn_item"
+        ;;
+    esac
+  done
+  GNULIB_WARN_CFLAGS=$gl_warn_set
+
+
+  # This is also for argp.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
+$as_echo_n "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; }
+if ${gl_cv_warn_c__Wno_missing_field_initializers+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+  gl_save_compiler_FLAGS="$CFLAGS"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-missing-field-initializers"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 int
 main ()
 {
-return $ac_func ();
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_warn_c__Wno_missing_field_initializers=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  gl_cv_warn_c__Wno_missing_field_initializers=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$gl_save_compiler_FLAGS"
 
-       eval "$as_ac_var=no"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_missing_field_initializers" >&5
+$as_echo "$gl_cv_warn_c__Wno_missing_field_initializers" >&6; }
+if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes; then :
+  as_fn_append GNULIB_WARN_CFLAGS " -Wno-missing-field-initializers"
+fi
+
+
+
+
+
+  # For gnulib-tests, the set is slightly smaller still.
+  nw=
+  # It's not worth being this picky about test programs.
+  nw="$nw -Wsuggest-attribute=const"
+
+  gl_warn_set=
+  set x $GNULIB_WARN_CFLAGS; shift
+  for gl_warn_item
+  do
+    case " $nw " in
+      *" $gl_warn_item "*)
+        ;;
+      *)
+        gl_warn_set="$gl_warn_set $gl_warn_item"
+        ;;
+    esac
+  done
+  GNULIB_TEST_WARN_CFLAGS=$gl_warn_set
+
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+
+
+
+# Check whether --with-xattrs was given.
+if test "${with_xattrs+set}" = set; then :
+  withval=$with_xattrs;
+else
+  with_xattrs=maybe
+
+fi
+
+
+  for ac_header in attr/xattr.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "attr/xattr.h" "ac_cv_header_attr_xattr_h" "$ac_includes_default"
+if test "x$ac_cv_header_attr_xattr_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ATTR_XATTR_H 1
+_ACEOF
+
+fi
+
+done
+
+   if test "$ac_cv_header_attr_xattr_h" = yes; then
+  TAR_COND_XATTR_H_TRUE=
+  TAR_COND_XATTR_H_FALSE='#'
+else
+  TAR_COND_XATTR_H_TRUE='#'
+  TAR_COND_XATTR_H_FALSE=
+fi
+
+  if test "$ac_cv_header_attr_xattr_h" = yes; then
+    for ac_func in getxattr  fgetxattr  lgetxattr \
+                   setxattr  fsetxattr  lsetxattr \
+                   listxattr flistxattr llistxattr
+do :
+  as_ac_var=`$as_echo "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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+ # only when functions are present
+
+$as_echo "#define HAVE_ATTR_XATTR_H 1" >>confdefs.h
+
+        if test "$with_xattrs" != no; then
+
+$as_echo "#define HAVE_XATTRS /**/" >>confdefs.h
+
+        fi
+
+fi
+done
+
+  fi
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getgrgid" "ac_cv_have_decl_getgrgid" "#include <grp.h>
+"
+if test "x$ac_cv_have_decl_getgrgid" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETGRGID $ac_have_decl
 _ACEOF
 
+ac_fn_c_check_decl "$LINENO" "getpwuid" "ac_cv_have_decl_getpwuid" "#include <pwd.h>
+"
+if test "x$ac_cv_have_decl_getpwuid" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETPWUID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "time" "ac_cv_have_decl_time" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_time" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TIME $ac_have_decl
+_ACEOF
+
+
+ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid"
+if test "x$ac_cv_func_waitpid" = xyes; then :
+  $as_echo "#define HAVE_WAITPID 1" >>confdefs.h
+
 else
   case " $LIBOBJS " in
-  *" $ac_func.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+  *" waitpid.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS waitpid.$ac_objext"
  ;;
 esac
 
 fi
-done
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for remote shell" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote shell" >&5
 $as_echo_n "checking for remote shell... " >&6; }
-if test "${tar_cv_path_RSH+set}" = set; then
+if ${tar_cv_path_RSH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RSH"; then
@@ -53031,154 +33734,15 @@ else
     done
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $tar_cv_path_RSH" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tar_cv_path_RSH" >&5
 $as_echo "$tar_cv_path_RSH" >&6; }
 if test $tar_cv_path_RSH = no; then
-
-for ac_header in netdb.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  for ac_header in netdb.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_NETDB_H 1
 _ACEOF
 
 fi
@@ -53198,7 +33762,7 @@ fi
 
 
 # Check whether --with-compress was given.
-if test "${with_compress+set}" = set; then
+if test "${with_compress+set}" = set; then :
   withval=$with_compress; tar_cv_compressor_compress=${withval}
 else
   tar_cv_compressor_compress=compress
@@ -53214,7 +33778,7 @@ _ACEOF
 
 
 # Check whether --with-gzip was given.
-if test "${with_gzip+set}" = set; then
+if test "${with_gzip+set}" = set; then :
   withval=$with_gzip; tar_cv_compressor_gzip=${withval}
 else
   tar_cv_compressor_gzip=gzip
@@ -53230,7 +33794,7 @@ _ACEOF
 
 
 # Check whether --with-bzip2 was given.
-if test "${with_bzip2+set}" = set; then
+if test "${with_bzip2+set}" = set; then :
   withval=$with_bzip2; tar_cv_compressor_bzip2=${withval}
 else
   tar_cv_compressor_bzip2=bzip2
@@ -53246,7 +33810,7 @@ _ACEOF
 
 
 # Check whether --with-lzip was given.
-if test "${with_lzip+set}" = set; then
+if test "${with_lzip+set}" = set; then :
   withval=$with_lzip; tar_cv_compressor_lzip=${withval}
 else
   tar_cv_compressor_lzip=lzip
@@ -53262,7 +33826,7 @@ _ACEOF
 
 
 # Check whether --with-lzma was given.
-if test "${with_lzma+set}" = set; then
+if test "${with_lzma+set}" = set; then :
   withval=$with_lzma; tar_cv_compressor_lzma=${withval}
 else
   tar_cv_compressor_lzma=lzma
@@ -53278,7 +33842,7 @@ _ACEOF
 
 
 # Check whether --with-lzop was given.
-if test "${with_lzop+set}" = set; then
+if test "${with_lzop+set}" = set; then :
   withval=$with_lzop; tar_cv_compressor_lzop=${withval}
 else
   tar_cv_compressor_lzop=lzop
@@ -53294,7 +33858,7 @@ _ACEOF
 
 
 # Check whether --with-xz was given.
-if test "${with_xz+set}" = set; then
+if test "${with_xz+set}" = set; then :
   withval=$with_xz; tar_cv_compressor_xz=${withval}
 else
   tar_cv_compressor_xz=xz
@@ -53306,7 +33870,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-{ $as_echo "$as_me:$LINENO: checking for default archive format" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default archive format" >&5
 $as_echo_n "checking for default archive format... " >&6; }
 
 
@@ -53316,19 +33880,17 @@ if test -z "$DEFAULT_ARCHIVE_FORMAT"; then
 fi
 case $DEFAULT_ARCHIVE_FORMAT in
   V7|OLDGNU|USTAR|POSIX|GNU) ;;
-  *) { { $as_echo "$as_me:$LINENO: error: Invalid format name" >&5
-$as_echo "$as_me: error: Invalid format name" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error $? "Invalid format name" "$LINENO" 5;;
 esac
 
 cat >>confdefs.h <<_ACEOF
 #define DEFAULT_ARCHIVE_FORMAT ${DEFAULT_ARCHIVE_FORMAT}_FORMAT
 _ACEOF
 
-{ $as_echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE_FORMAT" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE_FORMAT" >&5
 $as_echo "$DEFAULT_ARCHIVE_FORMAT" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for default archive" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default archive" >&5
 $as_echo_n "checking for default archive... " >&6; }
 
 
@@ -53336,8 +33898,8 @@ if test -z "$DEFAULT_ARCHIVE"; then
   DEFAULT_ARCHIVE=-
 else
   if test -z "`ls $DEFAULT_ARCHIVE 2>/dev/null`"; then
-    { $as_echo "$as_me:$LINENO: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&5
-$as_echo "$as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DEFAULT_ARCHIVE '$DEFAULT_ARCHIVE' not found on this system" >&5
+$as_echo "$as_me: WARNING: DEFAULT_ARCHIVE '$DEFAULT_ARCHIVE' not found on this system" >&2;}
   fi
   # FIXME: Look for DEFTAPE in <sys/mtio.h>.
   # FIXME: Let DEVICE_PREFIX be configured from the environment.
@@ -53345,9 +33907,7 @@ $as_echo "$as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this
   case $DEFAULT_ARCHIVE in
     *[0-7][lmh])
 
-cat >>confdefs.h <<\_ACEOF
-#define DENSITY_LETTER 1
-_ACEOF
+$as_echo "#define DENSITY_LETTER 1" >>confdefs.h
 
       device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7lmh$//'`
       ;;
@@ -53373,11 +33933,11 @@ cat >>confdefs.h <<_ACEOF
 #define DEFAULT_ARCHIVE "$DEFAULT_ARCHIVE"
 _ACEOF
 
-{ $as_echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE" >&5
 $as_echo "$DEFAULT_ARCHIVE" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking for default blocking" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default blocking" >&5
 $as_echo_n "checking for default blocking... " >&6; }
 DEFAULT_BLOCKING=${DEFAULT_BLOCKING-20}
 
@@ -53385,10 +33945,10 @@ cat >>confdefs.h <<_ACEOF
 #define DEFAULT_BLOCKING $DEFAULT_BLOCKING
 _ACEOF
 
-{ $as_echo "$as_me:$LINENO: result: $DEFAULT_BLOCKING" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_BLOCKING" >&5
 $as_echo "$DEFAULT_BLOCKING" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for default quoting style" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default quoting style" >&5
 $as_echo_n "checking for default quoting style... " >&6; }
 
 
@@ -53397,11 +33957,9 @@ DEFAULT_QUOTING_STYLE="escape"
 
 case $DEFAULT_QUOTING_STYLE in
           literal|shell|shell-always|c|escape|locale|clocale) ;;
-*)  { { $as_echo "$as_me:$LINENO: error: Invalid quoting style" >&5
-$as_echo "$as_me: error: Invalid quoting style" >&2;}
-   { (exit 1); exit 1; }; };;
+*)  as_fn_error $? "Invalid quoting style" "$LINENO" 5;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $DEFAULT_QUOTING_STYLE" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_QUOTING_STYLE" >&5
 $as_echo "$DEFAULT_QUOTING_STYLE" >&6; }
 DEFAULT_QUOTING_STYLE=`echo ${DEFAULT_QUOTING_STYLE}|sed 's/-/_/g'`_quoting_style
 
@@ -53428,8 +33986,9 @@ _ACEOF
   prefix="$acl_save_prefix"
 
 
+
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -53447,11 +34006,12 @@ if test "${PATH_SEPARATOR+set}" != set; then
            || PATH_SEPARATOR=';'
        }
 fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5
-$as_echo_n "checking for ld used by GCC... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -53461,11 +34021,11 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
   esac
   case $ac_prog in
     # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
+    [\\/]* | ?:[\\/]*)
       re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+      # Canonicalize the pathname of ld
+      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
+      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
@@ -53480,33 +34040,36 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${acl_cv_path_LD+set}" = set; then
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
+    IFS="$acl_save_ifs"
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
       acl_cv_path_LD="$ac_dir/$ac_prog"
       # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
+      # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break
+        ;;
       *)
-        test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break
+        ;;
       esac
     fi
   done
-  IFS="$ac_save_ifs"
+  IFS="$acl_save_ifs"
 else
   acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
 
 LD="$acl_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
+  acl_cv_prog_gnu_ld=yes
+  ;;
 *)
-  acl_cv_prog_gnu_ld=no ;;
+  acl_cv_prog_gnu_ld=no
+  ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
 $as_echo "$acl_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$acl_cv_prog_gnu_ld
 
 
 
 
-                                                { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
 $as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -53556,7 +34119,7 @@ else
     acl_cv_rpath=done
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
 $as_echo "$acl_cv_rpath" >&6; }
   wl="$acl_cv_wl"
   acl_libext="$acl_cv_libext"
@@ -53568,7 +34131,7 @@ $as_echo "$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+set}" = set; then :
   enableval=$enable_rpath; :
 else
   enable_rpath=yes
   acl_libdirstem2=
   case "$host_os" in
     solaris*)
-                                    { $as_echo "$as_me:$LINENO: checking for 64-bit host" >&5
+                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
 $as_echo_n "checking for 64-bit host... " >&6; }
-if test "${gl_cv_solaris_64bit+set}" = set; then
+if ${gl_cv_solaris_64bit+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #ifdef _LP64
@@ -53599,7 +34158,7 @@ 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
@@ -53608,7 +34167,7 @@ rm -f conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_solaris_64bit" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
 $as_echo "$gl_cv_solaris_64bit" >&6; }
       if test $gl_cv_solaris_64bit = yes; then
         acl_libdirstem=lib/64
@@ -53668,7 +34227,7 @@ $as_echo "$gl_cv_solaris_64bit" >&6; }
 
 
 # Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
+if test "${with_libiconv_prefix+set}" = set; then :
   withval=$with_libiconv_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
   done
 
 
-  { $as_echo "$as_me:$LINENO: checking for iconv" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 $as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then
+if ${am_cv_func_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -54166,46 +34721,15 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
     if test "$am_cv_func_iconv" != yes; then
       am_save_LIBS="$LIBS"
       LIBS="$LIBS $LIBICONV"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -54221,49 +34745,22 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
       LIBS="$am_save_LIBS"
     fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
 $as_echo "$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking for working iconv" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 $as_echo_n "checking for working iconv... " >&6; }
-if test "${am_cv_func_iconv_works+set}" = set; then
+if ${am_cv_func_iconv_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -54271,7 +34768,7 @@ else
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      if test "$cross_compiling" = yes; then
+      if test "$cross_compiling" = yes; then :
 
          case "$host_os" in
            aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
@@ -54279,11 +34776,7 @@ else
          esac
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
@@ -54385,46 +34878,19 @@ int main ()
   return result;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   am_cv_func_iconv_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-am_cv_func_iconv_works=no
+  am_cv_func_iconv_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       LIBS="$am_save_LIBS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
 $as_echo "$am_cv_func_iconv_works" >&6; }
     case "$am_cv_func_iconv_works" in
       *no) am_func_iconv=no am_cv_lib_iconv=no ;;
@@ -54435,15 +34901,13 @@ $as_echo "$am_cv_func_iconv_works" >&6; }
   fi
   if test "$am_func_iconv" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ICONV 1
-_ACEOF
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
 
   fi
   if test "$am_cv_lib_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
 $as_echo_n "checking how to link with libiconv... " >&6; }
-    { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
 $as_echo "$LIBICONV" >&6; }
   else
             CPPFLAGS="$am_save_CPPFLAGS"
@@ -54454,17 +34918,13 @@ $as_echo "$LIBICONV" >&6; }
 
 
   if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
 $as_echo_n "checking for iconv declaration... " >&6; }
-    if test "${am_cv_proto_iconv+set}" = set; then
+    if ${am_cv_proto_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -54473,7 +34933,7 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 #else
 size_t iconv();
@@ -54487,38 +34947,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   am_cv_proto_iconv_arg1=""
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       am_cv_proto_iconv_arg1="const"
+  am_cv_proto_iconv_arg1="const"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
 fi
 
     am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    { $as_echo "$as_me:$LINENO: result:
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result:
          $am_cv_proto_iconv" >&5
 $as_echo "
          $am_cv_proto_iconv" >&6; }
@@ -54530,285 +34969,45 @@ _ACEOF
 
   fi
 
-
-
 for ac_header in iconv.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## ------------------------------ ##
-## Report this to bug-tar@gnu.org ##
-## ------------------------------ ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_ICONV_H 1
 _ACEOF
 
 fi
 
 done
 
-{ $as_echo "$as_me:$LINENO: checking for iconv_t" >&5
-$as_echo_n "checking for iconv_t... " >&6; }
-if test "${ac_cv_type_iconv_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_iconv_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
+ac_fn_c_check_type "$LINENO" "iconv_t" "ac_cv_type_iconv_t" "
 #ifdef HAVE_ICONV_H
 # include <iconv.h>
 #endif
 
-
-int
-main ()
-{
-if (sizeof (iconv_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#ifdef HAVE_ICONV_H
-# include <iconv.h>
-#endif
-
-
-int
-main ()
-{
-if (sizeof ((iconv_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_iconv_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_iconv_t" >&5
-$as_echo "$ac_cv_type_iconv_t" >&6; }
-if test "x$ac_cv_type_iconv_t" = x""yes; then
+"
+if test "x$ac_cv_type_iconv_t" = xyes; then :
   :
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define iconv_t int
-_ACEOF
+$as_echo "#define iconv_t int" >>confdefs.h
 
 fi
 
 
 # Gettext.
 
-  { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then
+if test "${enable_nls+set}" = set; then :
   enableval=$enable_nls; USE_NLS=$enableval
 else
   USE_NLS=yes
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
 $as_echo "$USE_NLS" >&6; }
 
 
@@ -54848,9 +35047,9 @@ rm -f conf$$.file
 
 # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -54880,18 +35079,18 @@ esac
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
 if test "$MSGFMT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
 $as_echo "$MSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
   # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -54904,14 +35103,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -54920,10 +35119,10 @@ esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
 if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
 $as_echo "$GMSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -54970,9 +35169,9 @@ rm -f conf$$.file
 
 # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -55002,10 +35201,10 @@ esac
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
 if test "$XGETTEXT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
 $as_echo "$XGETTEXT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -55047,9 +35246,9 @@ rm -f conf$$.file
 
 # Extract the first word of "msgmerge", so it can be a program name with args.
 set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -55078,10 +35277,10 @@ esac
 fi
 MSGMERGE="$ac_cv_path_MSGMERGE"
 if test "$MSGMERGE" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
 $as_echo "$MSGMERGE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 
 
-    { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <CoreFoundation/CFPreferences.h>
 int
@@ -55141,61 +35336,30 @@ CFPreferencesCopyAppValue(NULL, NULL)
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   gt_cv_func_CFPreferencesCopyAppValue=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFPreferencesCopyAppValue=no
+  gt_cv_func_CFPreferencesCopyAppValue=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      LIBS="$gt_save_LIBS"
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
-_ACEOF
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
 
   fi
-    { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <CoreFoundation/CFLocale.h>
 int
@@ -55206,47 +35370,20 @@ CFLocaleCopyCurrent();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   gt_cv_func_CFLocaleCopyCurrent=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFLocaleCopyCurrent=no
+  gt_cv_func_CFLocaleCopyCurrent=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      LIBS="$gt_save_LIBS"
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFLOCALECOPYCURRENT 1
-_ACEOF
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
   fi
   INTL_MACOSX_LIBS=
@@ -55291,16 +35428,12 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
           gt_expression_test_code=
         fi
 
-        { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 $as_echo_n "checking for GNU gettext in libc... " >&6; }
-if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$gt_func_gnugettext_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <libintl.h>
@@ -55319,42 +35452,16 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_b
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   eval "$gt_func_gnugettext_libc=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$gt_func_gnugettext_libc=no"
+  eval "$gt_func_gnugettext_libc=no"
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$gt_func_gnugettext_libc'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$gt_func_gnugettext_libc
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 
         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
@@ -55388,19 +35495,15 @@ $as_echo "$ac_res" >&6; }
   done
 
 
-  { $as_echo "$as_me:$LINENO: checking for iconv" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 $as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then
+if ${am_cv_func_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -55416,46 +35519,15 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
     if test "$am_cv_func_iconv" != yes; then
       am_save_LIBS="$LIBS"
       LIBS="$LIBS $LIBICONV"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <stdlib.h>
@@ -55471,49 +35543,22 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
       LIBS="$am_save_LIBS"
     fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
 $as_echo "$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking for working iconv" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 $as_echo_n "checking for working iconv... " >&6; }
-if test "${am_cv_func_iconv_works+set}" = set; then
+if ${am_cv_func_iconv_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -55521,7 +35566,7 @@ else
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      if test "$cross_compiling" = yes; then
+      if test "$cross_compiling" = yes; then :
 
          case "$host_os" in
            aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
@@ -55529,11 +35574,7 @@ else
          esac
 
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
@@ -55635,46 +35676,19 @@ int main ()
   return result;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   am_cv_func_iconv_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-am_cv_func_iconv_works=no
+  am_cv_func_iconv_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
       LIBS="$am_save_LIBS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
 $as_echo "$am_cv_func_iconv_works" >&6; }
     case "$am_cv_func_iconv_works" in
       *no) am_func_iconv=no am_cv_lib_iconv=no ;;
@@ -55685,15 +35699,13 @@ $as_echo "$am_cv_func_iconv_works" >&6; }
   fi
   if test "$am_func_iconv" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ICONV 1
-_ACEOF
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
 
   fi
   if test "$am_cv_lib_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
 $as_echo_n "checking how to link with libiconv... " >&6; }
-    { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
 $as_echo "$LIBICONV" >&6; }
   else
             CPPFLAGS="$am_save_CPPFLAGS"
@@ -55726,7 +35738,7 @@ $as_echo "$LIBICONV" >&6; }
 
 
 # Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then
+if test "${with_libintl_prefix+set}" = set; then :
   withval=$with_libintl_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
 
 
 
-          { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
             CPPFLAGS="$CPPFLAGS $INCINTL"
             gt_save_LIBS="$LIBS"
             LIBS="$LIBS $LIBINTL"
-                        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <libintl.h>
@@ -56201,45 +36209,16 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   eval "$gt_func_gnugettext_libintl=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$gt_func_gnugettext_libintl=no"
+  eval "$gt_func_gnugettext_libintl=no"
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
                         if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
               LIBS="$LIBS $LIBICONV"
-              cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <libintl.h>
@@ -56262,48 +36241,20 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-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:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   LIBINTL="$LIBINTL $LIBICONV"
                  LTLIBINTL="$LTLIBINTL $LTLIBICONV"
                  eval "$gt_func_gnugettext_libintl=yes"
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
             fi
             CPPFLAGS="$gt_save_CPPFLAGS"
             LIBS="$gt_save_LIBS"
 fi
-ac_res=`eval 'as_val=${'$gt_func_gnugettext_libintl'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$gt_func_gnugettext_libintl
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
         fi
 
@@ -56331,21 +36282,19 @@ $as_echo "$ac_res" >&6; }
     if test "$gt_use_preinstalled_gnugettext" = "yes" \
        || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
 
     else
       USE_NLS=no
     fi
   fi
 
-  { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
 $as_echo_n "checking whether to use NLS... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
 $as_echo "$USE_NLS" >&6; }
   if test "$USE_NLS" = "yes"; then
-    { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
 $as_echo_n "checking where the gettext function comes from... " >&6; }
     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
@@ -56356,7 +36305,7 @@ $as_echo_n "checking where the gettext function comes from... " >&6; }
     else
       gt_source="included intl directory"
     fi
-    { $as_echo "$as_me:$LINENO: result: $gt_source" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
 $as_echo "$gt_source" >&6; }
   fi
 
@@ -56364,9 +36313,9 @@ $as_echo "$gt_source" >&6; }
 
     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
-        { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
 $as_echo_n "checking how to link with libintl... " >&6; }
-        { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
 $as_echo "$LIBINTL" >&6; }
 
   for element in $INCINTL; do
@@ -56394,14 +36343,10 @@ $as_echo "$LIBINTL" >&6; }
       fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DCGETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
 
     fi
 
@@ -56422,7 +36367,6 @@ _ACEOF
 # Initialize the test suite.
 ac_config_commands="$ac_config_commands tests/atconfig"
 
-
 ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
  # FIXME: tests/preset?
 
@@ -56432,7 +36376,7 @@ AUTOM4TE=${AUTOM4TE-"${am_missing_run}autom4te"}
 
 
 # Check whether --enable-backup-scripts was given.
-if test "${enable_backup_scripts+set}" = set; then
+if test "${enable_backup_scripts+set}" = set; then :
   enableval=$enable_backup_scripts; case $enableval in
               yes) BACKUP_LIBEXEC_SCRIPTS='$(BACKUP_LIBEXEC_SCRIPTS_LIST)'
                     BACKUP_SBIN_SCRIPTS='$(BACKUP_SBIN_SCRIPTS_LIST)'
@@ -56477,13 +36421,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -56491,8 +36435,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotesdouble-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -56514,12 +36458,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -56533,20 +36488,29 @@ DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
+U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -56556,34 +36520,75 @@ else
 fi
 
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"GL_COND_LIBTOOL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_SELINUX_CONTEXT_H_TRUE}" && test -z "${GL_GENERATE_SELINUX_CONTEXT_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_SELINUX_CONTEXT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_SYSEXITS_H_TRUE}" && test -z "${GL_GENERATE_SYSEXITS_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_SYSEXITS_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
+
     gl_libobjs=
     gl_ltlibobjs=
     if test -n "$gl_LIBOBJS"; then
     gltests_LTLIBOBJS=$gltests_ltlibobjs
 
 
+if test -z "${TAR_COND_XATTR_H_TRUE}" && test -z "${TAR_COND_XATTR_H_FALSE}"; then
+  as_fn_error $? "conditional \"TAR_COND_XATTR_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -56632,17 +36642,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # 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 -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -56650,23 +36661,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -56674,7 +36677,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -56685,7 +36694,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -56708,13 +36717,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -56744,12 +36747,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# 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 \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -56761,7 +36768,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# 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 :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# 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 :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -56775,8 +36864,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -56796,76 +36889,25 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -56880,49 +36922,85 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -56932,13 +37010,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GNU tar $as_me 1.26, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+This file was extended by GNU tar $as_me 1.27, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -56970,13 +37054,15 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
   -q, --quiet, --silent
                    do not print progress messages
   -d, --debug      don't remove temporary files
@@ -56995,16 +37081,19 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf@gnu.org>."
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GNU tar config.status 1.26
-configured by $0, generated by GNU Autoconf 2.63,
-  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+GNU tar config.status 1.27
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -57022,11 +37111,16 @@ ac_need_defaults=:
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
     $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -57068,11 +37164,10 @@ Try \`$0 --help' for more information." >&2
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -57089,7 +37184,7 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -57122,6 +37217,7 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
     LINGUAS="${LINGUAS-%UNSET%}"
 
 
+
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@ -57145,9 +37241,7 @@ do
     "rmt/Makefile") CONFIG_FILES="$CONFIG_FILES rmt/Makefile" ;;
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -57197,7 +37289,13 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='\r'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
   ac_cs_awk_cr='\\r'
@@ -57205,7 +37303,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -57214,24 +37312,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -57239,7 +37331,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -57253,7 +37345,7 @@ s/'"$ac_delim"'$//
 t delim
 :nl
 h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
 t more1
 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
 p
@@ -57267,7 +37359,7 @@ s/.\{148\}//
 t nl
 :delim
 h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
 t more2
 s/["\\]/\\&/g; s/^/"/; s/$/"/
 p
@@ -57287,7 +37379,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -57319,23 +37411,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[    ]*\):*/\1/
+  ac_vpsub='/^[         ]*VPATH[        ]*=[    ]*/{
+h
+s///
+s/^/:/
+s/[     ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
 s/:*$//
+x
+s/\(=[  ]*\).*/\1/
+G
+s/\n//
 s/^[^=]*=[      ]*$//
 }'
 fi
@@ -57347,7 +37445,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -57359,13 +37457,11 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -57450,9 +37546,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -57465,9 +37559,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -57486,7 +37578,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -57495,12 +37587,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -57511,7 +37601,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
        `' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -57523,10 +37613,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -57554,47 +37642,7 @@ $as_echo X"$ac_file" |
            q
          }
          s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -57651,7 +37699,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -57661,12 +37708,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -57676,7 +37722,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -57704,27 +37750,24 @@ s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
+which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -57733,27 +37776,21 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+      mv "$ac_tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
-   { (exit 1); exit 1; }; }
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -57791,7 +37828,7 @@ $as_echo X"$_am_arg" |
          s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
@@ -57812,7 +37849,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # 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
+    # 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.
@@ -57846,21 +37883,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # 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"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
@@ -57886,47 +37921,7 @@ $as_echo X"$file" |
            q
          }
          s/.*/./; q'`
-      { as_dir=$dirpart/$fdir
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
       # echo "creating $dirpart/$file"
       echo '# dummy' > "$dirpart/$file"
     done
@@ -57943,7 +37938,7 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
       case "$ac_file" in */Makefile.in)
         # Adjust a relative srcdir.
         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
         # In autoconf-2.13 it is called $ac_given_srcdir.
         # In autoconf-2.50 it is called $srcdir.
@@ -57959,7 +37954,8 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
           rm -f "$ac_dir/POTFILES"
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[  ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          gt_tab=`printf '\t'`
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
           POMAKEFILEDEPS="POTFILES.in"
           # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
           # on $ac_dir but don't depend on user-specified configuration
@@ -57970,12 +37966,12 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
             ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
           fi
           # Compute POFILES
@@ -58049,7 +38045,7 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
     "tests/atconfig":C) cat >tests/atconfig <<ATEOF
 # Configurable variable values for building test suites.
 # Generated by $0.
-# Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2012 Free Software Foundation, Inc.
 
 # The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
 at_testdir='tests'
@@ -58074,15 +38070,12 @@ ATEOF
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -58103,10 +38096,10 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
index db69cb82b378da8b9f6437bc6b8b35ab9b3ba970..3bff70ed1d289ac95ca5aeb858bf778ba3ec2939 100644 (file)
@@ -1,25 +1,23 @@
 # Configure template for GNU tar.  -*- autoconf -*-
 
-# Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-# Software Foundation, Inc.
+# Copyright 1991, 1994-2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([GNU tar], [1.26], [bug-tar@gnu.org])
+AC_INIT([GNU tar], [1.27], [bug-tar@gnu.org])
 AC_CONFIG_SRCDIR([src/tar.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
@@ -70,6 +68,28 @@ if test $diff_cv_st_fstype_string = yes; then
     [Define if struct stat has a char st_fstype[] member.])
 fi
 
+# even if we use gnulib's acl.h with integrated m4 file later on (used because
+# of very useful file_has_acl() function) we need following checks that restrict
+# tar to use POSIX.1e ACLs only.
+AC_ARG_WITH([posix-acls],
+    AS_HELP_STRING([--without-posix-acls],
+                   [do not use POSIX.1e access control lists]),
+    [with_posix_acls=no])
+if test "x$with_posix_acls" != "xno"; then
+  AC_CHECK_HEADERS(sys/acl.h,, [with_posix_acls=no])
+  for tar_acl_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \
+                     acl_to_text acl_from_text; do \
+    test "x$with_posix_acls" = xno && break
+    AC_SEARCH_LIBS([$tar_acl_func], [acl pacl], [], [with_posix_acls=no])
+  done
+  if test "x$with_posix_acls" != xno; then
+    AC_DEFINE(HAVE_POSIX_ACLS,,[Define when we have working POSIX acls])
+  fi
+else
+  # disable acls in gnulib's checks
+  export enable_acl=no
+fi
+
 AC_TYPE_SIGNAL
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
@@ -90,13 +110,114 @@ gl_INIT
 # paxutils modules
 tar_PAXUTILS
 
+# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
+# ------------------------------------------------
+# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
+# Otherwise, run RUN-IF-NOT-FOUND.
+AC_DEFUN([gl_GCC_VERSION_IFELSE],
+  [AC_PREPROC_IFELSE(
+    [AC_LANG_PROGRAM(
+      [[
+#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
+/* ok */
+#else
+# error "your version of gcc is older than $1.$2"
+#endif
+      ]]),
+    ], [$3], [$4])
+  ]
+)
+
+AC_ARG_ENABLE([gcc-warnings],
+  [AS_HELP_STRING([--enable-gcc-warnings],
+     [turn on many GCC warnings (for developers; best with GNU make)])],
+  [case $enableval in
+     yes|no) ;;
+     *)      AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
+   esac
+   gl_gcc_warnings=$enableval],
+  [gl_gcc_warnings=no
+   if test -d "$srcdir"/.git; then
+     gl_GCC_VERSION_IFELSE([4], [6], [gl_gcc_warnings=yes])
+   fi]
+)
+
+if test "$gl_gcc_warnings" = yes; then
+  gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
+  AC_SUBST([WERROR_CFLAGS])
+
+  nw=
+  # This, $nw, is the list of warnings we disable.
+  nw="$nw -Wformat-nonliteral"      # warnings in Fedora 17 stdio.h
+  nw="$nw -Wvla"                    # warnings in gettext.h
+  nw="$nw -Wswitch-default"         # Too many warnings for now
+  nw="$nw -Wunsafe-loop-optimizations" # It's OK to omit unsafe optimizations.
+  nw="$nw -Winline"                 # It's OK to not inline.
+  nw="$nw -Wstrict-overflow"       # It's OK to optimize strictly.
+  nw="$nw -Wsuggest-attribute=pure" # Too many warnings for now.
+
+  gl_MANYWARN_ALL_GCC([ws])
+  gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
+  for w in $ws; do
+    gl_WARN_ADD([$w])
+  done
+  gl_WARN_ADD([-Wno-sign-compare])     # Too many warnings for now
+  gl_WARN_ADD([-Wno-type-limits])      # It's OK to optimize based on types.
+  gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
+  gl_WARN_ADD([-Wno-format-nonliteral])
+
+  gl_WARN_ADD([-fdiagnostics-show-option])
+  gl_WARN_ADD([-funit-at-a-time])
+
+  AC_SUBST([WARN_CFLAGS])
+
+  AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
+  AH_VERBATIM([FORTIFY_SOURCE],
+  [/* Enable compile-time and run-time bounds-checking, and some warnings,
+      without upsetting glibc 2.15+. */
+   #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
+   # define _FORTIFY_SOURCE 2
+   #endif
+  ])
+  AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
+
+  # Use a slightly smaller set of warning options for lib/.
+  # Remove the following and save the result in GNULIB_WARN_CFLAGS.
+  nw=
+  nw="$nw -Wmissing-prototypes"
+  nw="$nw -Wunused-macros"
+  #
+  # These are for argp.
+  nw="$nw -Wmissing-field-initializers"
+  nw="$nw -Wshadow"
+  #
+  gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
+
+  # This is also for argp.
+  gl_WARN_ADD([-Wno-missing-field-initializers], [GNULIB_WARN_CFLAGS])
+
+  AC_SUBST([GNULIB_WARN_CFLAGS])
+
+  # For gnulib-tests, the set is slightly smaller still.
+  nw=
+  # It's not worth being this picky about test programs.
+  nw="$nw -Wsuggest-attribute=const"
+  gl_MANYWARN_COMPLEMENT([GNULIB_TEST_WARN_CFLAGS],
+                         [$GNULIB_WARN_CFLAGS], [$nw])
+  AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
+fi
+
+TAR_HEADERS_ATTR_XATTR_H
+
 AC_CHECK_FUNCS_ONCE([fchmod fchown fsync lstat mkfifo readlink symlink])
+
 AC_CHECK_DECLS([getgrgid],,, [#include <grp.h>])
 AC_CHECK_DECLS([getpwuid],,, [#include <pwd.h>])
 AC_CHECK_DECLS([time],,, [#include <time.h>])
 
 AC_REPLACE_FUNCS(waitpid)
 
+AC_ARG_VAR([RSH], [Configure absolute path to default remote shell binary])
 AC_CACHE_CHECK(for remote shell, tar_cv_path_RSH,
   [if test -n "$RSH"; then
     tar_cv_path_RSH=$RSH
@@ -157,7 +278,7 @@ if test -z "$DEFAULT_ARCHIVE"; then
   DEFAULT_ARCHIVE=-
 else
   if test -z "`ls $DEFAULT_ARCHIVE 2>/dev/null`"; then
-    AC_MSG_WARN(DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system)
+    AC_MSG_WARN(DEFAULT_ARCHIVE '$DEFAULT_ARCHIVE' not found on this system)
   fi
   # FIXME: Look for DEFTAPE in <sys/mtio.h>.
   # FIXME: Let DEVICE_PREFIX be configured from the environment.
index 205a1ad8e3bf9acdb64afaff468b6bc3e2c28583..b45d70e095e5c8b08884fbcc84d2ff836fa243e8 100644 (file)
@@ -1,21 +1,22 @@
 # Makefile for GNU tar documentation.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
-# 2007 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 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, or (at your option)
-## any later version.
+# This file is part of GNU tar.
 
-## 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.
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
 
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# GNU tar 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/>.
 
 info_TEXINFOS = tar.texi
 tar_TEXINFOS = \
@@ -34,7 +35,7 @@ tar_TEXINFOS = \
 EXTRA_DIST = gendocs_template mastermenu.el texify.sed untabify.el
 
 # The rendering level is anyone of PUBLISH, DISTRIB or PROOF.
-# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
+# Just call 'make RENDITION=PROOF [target]' if you want PROOF rendition.
 RENDITION = DISTRIB
 
 MAKEINFOFLAGS=-D$(RENDITION)
index 933cd13f36014eb6ab698ac05d2cb02f8e203c56..9f81366042b695b6a7bdffae566e4b704df83e17 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 # Makefile for GNU tar documentation.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
-# 2007 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2013 Free Software
+# Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -39,31 +70,37 @@ build_triplet = @build@
 host_triplet = @host@
 subdir = doc
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/stamp-vti $(srcdir)/version.texi $(tar_TEXINFOS)
+       $(srcdir)/stamp-vti $(srcdir)/version.texi $(tar_TEXINFOS) \
+       $(top_srcdir)/build-aux/mdate-sh \
+       $(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/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -71,50 +108,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -122,22 +169,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -152,14 +200,48 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
+am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@)
+am__v_DVIPS_0 = @echo "  DVIPS   " $@;
+am__v_DVIPS_1 = 
+AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@)
+am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@)
+am__v_MAKEINFO_0 = @echo "  MAKEINFO" $@;
+am__v_MAKEINFO_1 = 
+AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@)
+am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@)
+am__v_INFOHTML_0 = @echo "  INFOHTML" $@;
+am__v_INFOHTML_1 = 
+AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@)
+am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@)
+am__v_TEXI2DVI_0 = @echo "  TEXI2DVI" $@;
+am__v_TEXI2DVI_1 = 
+AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@)
+am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@)
+am__v_TEXI2PDF_0 = @echo "  TEXI2PDF" $@;
+am__v_TEXI2PDF_1 = 
+AM_V_texinfo = $(am__v_texinfo_@AM_V@)
+am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@)
+am__v_texinfo_0 = -q
+am__v_texinfo_1 = 
+AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
+am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+am__v_texidevnull_0 = > /dev/null
+am__v_texidevnull_1 = 
 INFO_DEPS = $(srcdir)/tar.info
 TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
 am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
@@ -172,6 +254,11 @@ TEXI2PDF = $(TEXI2DVI) --pdf --batch
 MAKEINFOHTML = $(MAKEINFO) --html
 AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
 DVIPS = dvips
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__installdirs = "$(DESTDIR)$(infodir)"
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -194,6 +281,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -202,6 +295,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -253,12 +348,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -267,17 +366,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -285,6 +394,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -299,15 +410,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -348,25 +463,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -374,14 +499,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -408,12 +542,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -425,10 +560,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -473,9 +611,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -494,6 +634,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -509,17 +650,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -535,6 +682,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -567,28 +715,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -596,6 +762,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -603,6 +770,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -615,6 +783,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -654,12 +823,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -682,7 +853,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -704,6 +877,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -714,6 +890,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -725,6 +902,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -735,6 +915,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -745,6 +926,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -766,9 +948,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -781,6 +965,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -790,11 +975,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -824,8 +1012,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -834,13 +1028,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -850,10 +1047,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -874,10 +1075,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -891,9 +1095,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -974,7 +1183,7 @@ tar_TEXINFOS = \
 EXTRA_DIST = gendocs_template mastermenu.el texify.sed untabify.el
 
 # The rendering level is anyone of PUBLISH, DISTRIB or PROOF.
-# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
+# Just call 'make RENDITION=PROOF [target]' if you want PROOF rendition.
 RENDITION = DISTRIB
 MAKEINFOFLAGS = -D$(RENDITION)
 GENDOCS = gendocs.sh
@@ -1015,7 +1224,7 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 .texi.info:
-       restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
        am__cwd=`pwd` && $(am__cd) $(srcdir) && \
        rm -rf $$backupdir && mkdir $$backupdir && \
        if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
@@ -1037,18 +1246,18 @@ $(am__aclocal_m4_deps):
        rm -rf $$backupdir; exit $$rc
 
 .texi.dvi:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2DVI) $<
+       $(TEXI2DVI) $(AM_V_texinfo) --clean $< $(AM_V_texidevnull)
 
 .texi.pdf:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2PDF) $<
+       $(TEXI2PDF) $(AM_V_texinfo) --clean $< $(AM_V_texidevnull)
 
 .texi.html:
-       rm -rf $(@:.html=.htp)
-       if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
         -o $(@:.html=.htp) $<; \
        then \
          rm -rf $@; \
@@ -1083,8 +1292,8 @@ mostlyclean-vti:
 maintainer-clean-vti:
        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
 .dvi.ps:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-       $(DVIPS) -o $@ $<
+       $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(DVIPS) $(AM_V_texinfo) -o $@ $<
 
 uninstall-dvi-am:
        @$(NORMAL_UNINSTALL)
@@ -1106,9 +1315,7 @@ uninstall-html-am:
 
 uninstall-info-am:
        @$(PRE_UNINSTALL)
-       @if test -d '$(DESTDIR)$(infodir)' && \
-           (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -1184,6 +1391,8 @@ TAGS:
 ctags: CTAGS
 CTAGS:
 
+cscope cscopelist:
+
 
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1235,10 +1444,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1276,8 +1490,11 @@ install-dvi: install-dvi-am
 
 install-dvi-am: $(DVIS)
        @$(NORMAL_INSTALL)
-       test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
        @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1292,18 +1509,22 @@ install-html: install-html-am
 
 install-html-am: $(HTMLS)
        @$(NORMAL_INSTALL)
-       test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
        @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
          $(am__strip_dir) \
-         if test -d "$$d$$p"; then \
+         d2=$$d$$p; \
+         if test -d "$$d2"; then \
            echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
            $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
-           echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
-           $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+           echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+           $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
          else \
-           list2="$$list2 $$d$$p"; \
+           list2="$$list2 $$d2"; \
          fi; \
        done; \
        test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
@@ -1315,9 +1536,12 @@ install-info: install-info-am
 
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
-       test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+       fi; \
        for file in $$list; do \
          case $$file in \
            $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -1335,8 +1559,7 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-       @if (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -1350,8 +1573,11 @@ install-pdf: install-pdf-am
 
 install-pdf-am: $(PDFS)
        @$(NORMAL_INSTALL)
-       test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
        @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1363,8 +1589,11 @@ install-ps: install-ps-am
 
 install-ps-am: $(PSS)
        @$(NORMAL_INSTALL)
-       test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
        @list='$(PSS)'; test -n "$(psdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
index 1bdd5b018d8772cbd55b3a6c88981ab37b0aa97a..0af20fd9d3219fe093ad5d93b5b6f335885d4cc6 100755 (executable)
@@ -106,7 +106,7 @@ Please send broken links and other corrections (or suggestions) to
 </p>
 
 <p>
-Copyright (C) 2004 Free Software Foundation, Inc.,
+Copyright 2004, 2013 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA
 <br />
 Verbatim copying and distribution of this entire article is
index b37e26ecc35f49d4ad39def3048e0dada7a34e43..e0f4e351516170c2fed509af4d880a9d077a0ffd 100644 (file)
@@ -108,7 +108,7 @@ name to use. Currently two patterns are implemented:
     If no file name was given, the program exits with the code
 @code{0}.  Otherwise, it exits with @code{0} only if it was able to
 create a file of the specified length.
-    
+
 @cindex Sparse files, creating using @command{genfile}
 @cindex @command{genfile}, creating sparse files
     Special option @option{--sparse} (@option{-s}) instructs
@@ -145,7 +145,7 @@ a @dfn{block} of data, filled with this letter and will write it to
 the fragment. The size of block is given by @option{--block-size}
 option. It defaults to 512. Thus, if the string consists of @var{n}
 characters, the resulting file fragment will contain
-@code{@var{n}*@var{block-size}} of data. 
+@code{@var{n}*@var{block-size}} of data.
 
     Last fragment descriptor can have only file offset part. In this
 case @command{genfile} will create a hole at the end of the file up to
@@ -154,7 +154,7 @@ the given offset.
     For example, consider the following invocation:
 
 @smallexample
-genfile --sparse --file sparsefile 0 ABCD 1M EFGHI 2000K 
+genfile --sparse --file sparsefile 0 ABCD 1M EFGHI 2000K
 @end smallexample
 
 @noindent
@@ -164,7 +164,7 @@ It will create 3101184-bytes long file of the following structure:
 @item Offset  @tab Length       @tab Contents
 @item 0       @tab 4*512=2048   @tab Four 512-byte blocks, filled with
 letters @samp{A}, @samp{B}, @samp{C} and @samp{D}.
-@item 2048    @tab 1046528      @tab Zero bytes 
+@item 2048    @tab 1046528      @tab Zero bytes
 @item 1050624 @tab 5*512=2560   @tab Five blocks, filled with letters
 @samp{E}, @samp{F}, @samp{G}, @samp{H}, @samp{I}.
 @item 1053184  @tab 2048000     @tab Zero bytes
@@ -172,7 +172,7 @@ letters @samp{A}, @samp{B}, @samp{C} and @samp{D}.
 
     The exit code of @command{genfile --status} command is @code{0}
 only if created file is actually sparse.
-    
+
 @node Status Mode
 @appendixsec Status Mode
 
@@ -181,56 +181,58 @@ each file specified in the command line. This mode is toggled by
 @option{--stat} (@option{-S}) command line option. An optional argument to this
 option specifies output @dfn{format}: a comma-separated list of
 @code{struct stat} fields to be displayed. This list can contain
-following identifiers @FIXME{should we also support @samp{%} notations
-as in stat(1)??}:
+following identifiers:
 
 @table @asis
 @item name
     The file name.
-    
+
 @item dev
 @itemx st_dev
     Device number in decimal.
-    
+
 @item ino
 @itemx st_ino
     Inode number.
-    
+
 @item mode[.@var{number}]
 @itemx st_mode[.@var{number}]
+
+@FIXME{Should we also support @samp{%} notations as in stat(1)?}
+
     File mode in octal.  Optional @var{number} specifies octal mask to
 be applied to the mode before outputting.  For example, @code{--stat
 mode.777} will preserve lower nine bits of it.  Notice, that you can
 use any punctuation character in place of @samp{.}.
-    
+
 @item nlink
 @itemx st_nlink
     Number of hard links.
-    
+
 @item uid
 @itemx st_uid
     User ID of owner.
-    
+
 @item gid
 @itemx st_gid
     Group ID of owner.
-    
+
 @item size
 @itemx st_size
     File size in decimal.
-    
+
 @item blksize
 @itemx st_blksize
     The size in bytes of each file block.
-    
+
 @item blocks
 @itemx st_blocks
     Number of blocks allocated.
-     
+
 @item atime
 @itemx st_atime
     Time of last access.
-    
+
 @item mtime
 @itemx st_mtime
     Time of last modification
@@ -240,7 +242,7 @@ use any punctuation character in place of @samp{.}.
     Time of last status change
 
 @item sparse
-    A boolean value indicating whether the file is @samp{sparse}.     
+    A boolean value indicating whether the file is @samp{sparse}.
 @end table
 
     Modification times are displayed in @acronym{UTC} as
@@ -249,7 +251,7 @@ use any punctuation character in place of @samp{.}.
 @code{tar tv} output format is used.
 
     The default output format is: @samp{name,dev,ino,mode,
-nlink,uid,gid,size,blksize,blocks,atime,mtime,ctime}. 
+nlink,uid,gid,size,blksize,blocks,atime,mtime,ctime}.
 
     For example, the following command will display file names and
 corresponding times of last access for each file in the current working
@@ -285,7 +287,7 @@ checkpoint. Available actions are
 @itemx --truncate @var{file}
     Truncate @var{file} to the size specified by previous
 @option{--length} option (or 0, if it is not given).
-    
+
 @item --append @var{file}
     Append data to @var{file}. The size of data and its pattern are
 given by previous @option{--length} and @option{pattern} options.
index 6efb8f2b8abeb376ca774b594440186383941aef..f7625c73a3a0fbccf55e3266554ad9e29387c123 100644 (file)
@@ -1,21 +1,22 @@
 @comment  GNU tar Archive Format description.
 @comment
-@comment   Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-@comment   2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@comment   Copyright 1988-1989, 1991-1997, 2000-2001, 2003-2007, 2012-2013
+@comment   Free Software Foundation, Inc.
 @comment
-@comment   This program is free software; you can redistribute it and/or modify it
-@comment   under the terms of the GNU General Public License as published by the
-@comment   Free Software Foundation; either version 3, or (at your option) any later
-@comment   version.
+@comment   This file is part of GNU tar.
 @comment
-@comment   This program is distributed in the hope that it will be useful, but
-@comment   WITHOUT ANY WARRANTY; without even the implied warranty of
-@comment   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
-@comment   Public License for more details.
+@comment   GNU tar is free software; you can redistribute it and/or modify
+@comment   it under the terms of the GNU General Public License as published by
+@comment   the Free Software Foundation; either version 3 of the License, or
+@comment   (at your option) any later version.
 @comment
-@comment   You should have received a copy of the GNU General Public License along
-@comment   with this program; if not, write to the Free Software Foundation, Inc.,
-@comment   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+@comment   GNU tar is distributed in the hope that it will be useful,
+@comment   but WITHOUT ANY WARRANTY; without even the implied warranty of
+@comment   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+@comment   GNU General Public License for more details.
+@comment
+@comment   You should have received a copy of the GNU General Public License
+@comment   along with this program.  If not, see <http://www.gnu.org/licenses/>.  
 
 /*@r{ tar Header Block, from POSIX 1003.1-1990.  }*/
 
@@ -80,9 +81,9 @@ struct posix_header
 /*@r{ tar Header Block, GNU extensions.  }*/
 
 /*@r{ In GNU tar, SYMTYPE is for to symbolic links, and CONTTYPE is for
-   contiguous files, so maybe disobeying the `reserved' comment in POSIX
+   contiguous files, so maybe disobeying the "reserved" comment in POSIX
    header description.  I suspect these were meant to be used this way, and
-   should not have really been `reserved' in the published standards.  }*/
+   should not have really been "reserved" in the published standards.  }*/
 
 /*@r{ *BEWARE* *BEWARE* *BEWARE* that the following information is still
    boiling, and may change.  Even if the OLDGNU format description should be
index db8c631cecdbb785b6008fde2598a886f7c5ab02..c7af88f784a1c536a0342774f62ae49ed973710d 100644 (file)
@@ -1,26 +1,25 @@
 ;;; mastermenu.el --- Redefinition of texinfo-master-menu-list
 
-;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+;; Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
 ;; Author: Sergey Poznyakoff
 ;; Maintainer: bug-tar@gnu.org
 ;; Keywords: maint, tex, docs
 
-;; This file is part of GNU tar documentation suite
+;; This file is part of GNU tar.
 
-;; This program is free software; you can redistribute it and/or modify
+;; GNU tar is free software; you can redistribute 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.
+;; the Free Software Foundation; either version 3 of the License, or
+;; (at your option) any later version.
 
-;; This program is distributed in the hope that it will be useful,
+;; GNU tar 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, write to the Free Software Foundation,
-;; Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
index 2f1ab34ec5ec7a6e2eaef98415ea4850a3a45aec..6b3e973e8b6716f27f9d66ad015cbab1647165f2 100644 (file)
@@ -1,6 +1,6 @@
 @c GNU date syntax documentation
 
-@c Copyright (C) 1994-2006, 2009-2011 Free Software Foundation, Inc.
+@c Copyright (C) 1994-2006, 2009-2013 Free Software Foundation, Inc.
 
 @c Permission is granted to copy, distribute and/or modify this document
 @c under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -38,10 +38,10 @@ demanded a knowledge of five different languages.  It is no wonder then
 that we often look into our own immediate past or future, last Tuesday
 or a week from Sunday, with feelings of helpless confusion.  @dots{}
 
---- Robert Grudin, @cite{Time and the Art of Living}.
+---Robert Grudin, @cite{Time and the Art of Living}.
 @end quotation
 
-This section describes the textual date representations that @sc{gnu}
+This section describes the textual date representations that GNU
 programs accept.  These are the strings you, as a user, can supply as
 arguments to the various programs.  The C interface (via the
 @code{parse_datetime} function) is not described here.
@@ -50,7 +50,8 @@ arguments to the various programs.  The C interface (via the
 * General date syntax::            Common rules.
 * Calendar date items::            19 Dec 1994.
 * Time of day items::              9:20pm.
-* Time zone items::                @sc{est}, @sc{pdt}, @sc{gmt}.
+* Time zone items::                EST, PDT, UTC, @dots{}
+* Combined date and time of day items:: 1972-09-24T20:02:00,000000-0500.
 * Day of week items::              Monday and others.
 * Relative items in date strings:: next tuesday, 2 years ago.
 * Pure numbers in date strings::   19931219, 1440.
@@ -76,6 +77,7 @@ many flavors of items:
 @item calendar date items
 @item time of day items
 @item time zone items
+@item combined date and time of day items
 @item day of the week items
 @item relative items
 @item pure numbers.
@@ -115,10 +117,10 @@ abbreviations like @samp{AM}, @samp{DST}, @samp{EST}, @samp{first},
 The output of the @command{date} command
 is not always acceptable as a date string,
 not only because of the language problem, but also because there is no
-standard meaning for time zone items like @samp{IST}.  When using
+standard meaning for time zone items like @samp{IST}@.  When using
 @command{date} to generate a date string intended to be parsed later,
 specify a date format that is independent of language and that does not
-use time zone items other than @samp{UTC} and @samp{Z}.  Here are some
+use time zone items other than @samp{UTC} and @samp{Z}@.  Here are some
 ways to do this:
 
 @example
@@ -126,8 +128,8 @@ $ LC_ALL=C TZ=UTC0 date
 Mon Mar  1 00:21:42 UTC 2004
 $ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
 2004-03-01 00:21:42Z
-$ date --iso-8601=ns | tr T ' '  # --iso-8601 is a GNU extension.
-2004-02-29 16:21:42,692722128-0800
+$ date --rfc-3339=ns  # --rfc-3339 is a GNU extension.
+2004-02-29 16:21:42.692722128-08:00
 $ date --rfc-2822  # a GNU extension
 Sun, 29 Feb 2004 16:21:42 -0800
 $ date +'%Y-%m-%d %H:%M:%S %z'  # %z is a GNU extension.
@@ -143,6 +145,7 @@ between round parentheses, as long as included parentheses are properly
 nested.  Hyphens not followed by a digit are currently ignored.  Leading
 zeros on numbers are ignored.
 
+@cindex leap seconds
 Invalid dates like @samp{2005-02-29} or times like @samp{24:00} are
 rejected.  In the typical case of a host that does not support leap
 seconds, a time like @samp{23:59:60} is rejected even if it
@@ -159,7 +162,7 @@ specified differently, depending on whether the month is specified
 numerically or literally.  All these strings specify the same calendar date:
 
 @example
-1972-09-24     # @sc{iso} 8601.
+1972-09-24     # ISO 8601.
 72-9-24        # Assume 19xx for 69 through 99,
                # 20xx for 00 through 68.
 72-09-24       # Leading zeros are ignored.
@@ -182,9 +185,9 @@ sep 24
 
 Here are the rules.
 
-@cindex @sc{iso} 8601 date format
-@cindex date format, @sc{iso} 8601
-For numeric months, the @sc{iso} 8601 format
+@cindex ISO 8601 date format
+@cindex date format, ISO 8601
+For numeric months, the ISO 8601 format
 @samp{@var{year}-@var{month}-@var{day}} is allowed, where @var{year} is
 any positive number, @var{month} is a number between 01 and 12, and
 @var{day} is a number between 01 and 31.  A leading zero must be present
@@ -232,9 +235,10 @@ day.  Here are some examples, all of which represent the same time:
 20:02:00.000000
 20:02
 8:02pm
-20:02-0500      # In @sc{est} (U.S. Eastern Standard Time).
+20:02-0500      # In EST (U.S. Eastern Standard Time).
 @end example
 
+@cindex leap seconds
 More generally, the time of day may be given as
 @samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is
 a number between 0 and 23, @var{minute} is a number between 0 and
@@ -270,10 +274,10 @@ the one- or two-digit correction is interpreted as a number of hours.
 You can also separate @var{hh} from @var{mm} with a colon.
 When a time zone correction is given this way, it
 forces interpretation of the time relative to
-Coordinated Universal Time (@sc{utc}), overriding any previous
+Coordinated Universal Time (UTC), overriding any previous
 specification for the time zone or the local time zone.  For example,
 @samp{+0530} and @samp{+05:30} both stand for the time zone 5.5 hours
-ahead of @sc{utc} (e.g., India).
+ahead of UTC (e.g., India).
 This is the best way to
 specify a time zone correction by fractional parts of an hour.
 The maximum zone correction is 24 hours.
@@ -311,6 +315,32 @@ time stamps are interpreted using the rules of the default time zone
 (@pxref{Specifying time zone rules}).
 
 
+@node Combined date and time of day items
+@section Combined date and time of day items
+
+@cindex combined date and time of day item
+@cindex ISO 8601 date and time of day format
+@cindex date and time of day format, ISO 8601
+
+The ISO 8601 date and time of day extended format consists of an ISO
+8601 date, a @samp{T} character separator, and an ISO 8601 time of
+day.  This format is also recognized if the @samp{T} is replaced by a
+space.
+
+In this format, the time of day should use 24-hour notation.
+Fractional seconds are allowed, with either comma or period preceding
+the fraction.  ISO 8601 fractional minutes and hours are not
+supported.  Typically, hosts support nanosecond timestamp resolution;
+excess precision is silently discarded.
+
+Here are some examples:
+
+@example
+2012-09-24T20:02:00.052-0500
+2012-12-31T23:59:59,999999999+1100
+1970-01-01 00:00Z
+@end example
+
 @node Day of week items
 @section Day of week items
 
@@ -455,28 +485,29 @@ supported by the internal representation is truncated toward minus
 infinity.  Such a number cannot be combined with any other date
 item, as it specifies a complete time stamp.
 
-@cindex beginning of time, for @acronym{POSIX}
-@cindex epoch, for @acronym{POSIX}
+@cindex beginning of time, for POSIX
+@cindex epoch, for POSIX
 Internally, computer times are represented as a count of seconds since
-an epoch---a well-defined point of time.  On @acronym{GNU} and
-@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so
+an epoch---a well-defined point of time.  On GNU and
+POSIX systems, the epoch is 1970-01-01 00:00:00 UTC, so
 @samp{@@0} represents this time, @samp{@@1} represents 1970-01-01
-00:00:01 @sc{utc}, and so forth.  @acronym{GNU} and most other
-@acronym{POSIX}-compliant systems support such times as an extension
-to @acronym{POSIX}, using negative counts, so that @samp{@@-1}
-represents 1969-12-31 23:59:59 @sc{utc}.
+00:00:01 UTC, and so forth.  GNU and most other
+POSIX-compliant systems support such times as an extension
+to POSIX, using negative counts, so that @samp{@@-1}
+represents 1969-12-31 23:59:59 UTC.
 
 Traditional Unix systems count seconds with 32-bit two's-complement
 integers and can represent times from 1901-12-13 20:45:52 through
-2038-01-19 03:14:07 @sc{utc}.  More modern systems use 64-bit counts
+2038-01-19 03:14:07 UTC@.  More modern systems use 64-bit counts
 of seconds with nanosecond subcounts, and can represent all the times
 in the known lifetime of the universe to a resolution of 1 nanosecond.
 
+@cindex leap seconds
 On most hosts, these counts ignore the presence of leap seconds.
 For example, on most hosts @samp{@@915148799} represents 1998-12-31
-23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00
-@sc{utc}, and there is no way to represent the intervening leap second
-1998-12-31 23:59:60 @sc{utc}.
+23:59:59 UTC, @samp{@@915148800} represents 1999-01-01 00:00:00
+UTC, and there is no way to represent the intervening leap second
+1998-12-31 23:59:60 UTC.
 
 @node Specifying time zone rules
 @section Specifying time zone rules
@@ -491,7 +522,7 @@ two quote characters (@samp{"}) must be present in the date, and any
 quotes or backslashes within @var{rule} must be escaped by a
 backslash.
 
-For example, with the @acronym{GNU} @command{date} command you can
+For example, with the GNU @command{date} command you can
 answer the question ``What time is it in New York when a Paris clock
 shows 6:30am on October 31, 2004?'' by using a date beginning with
 @samp{TZ="Europe/Paris"} as shown in the following shell transcript:
@@ -515,16 +546,16 @@ A @env{TZ} value is a rule that typically names a location in the
 @uref{http://www.twinsun.com/tz/tz-link.htm, @samp{tz} database}.
 A recent catalog of location names appears in the
 @uref{http://twiki.org/cgi-bin/xtra/tzdate, TWiki Date and Time
-Gateway}.  A few non-@acronym{GNU} hosts require a colon before a
+Gateway}.  A few non-GNU hosts require a colon before a
 location name in a @env{TZ} setting, e.g.,
 @samp{TZ=":America/New_York"}.
 
 The @samp{tz} database includes a wide variety of locations ranging
 from @samp{Arctic/Longyearbyen} to @samp{Antarctica/South_Pole}, but
 if you are at sea and have your own private time zone, or if you are
-using a non-@acronym{GNU} host that does not support the @samp{tz}
-database, you may need to use a @acronym{POSIX} rule instead.  Simple
-@acronym{POSIX} rules like @samp{UTC0} specify a time zone without
+using a non-GNU host that does not support the @samp{tz}
+database, you may need to use a POSIX rule instead.  Simple
+POSIX rules like @samp{UTC0} specify a time zone without
 daylight saving time; other rules can specify simple daylight saving
 regimes.  @xref{TZ Variable,, Specifying the Time Zone with @code{TZ},
 libc, The GNU C Library}.
@@ -548,7 +579,7 @@ implemented by Steven M. Bellovin
 at Chapel Hill.  The code was later tweaked by a couple of people on
 Usenet, then completely overhauled by Rich $alz (@email{rsalz@@bbn.com})
 and Jim Berets (@email{jberets@@bbn.com}) in August, 1990.  Various
-revisions for the @sc{gnu} system were made by David MacKenzie, Jim Meyering,
+revisions for the GNU system were made by David MacKenzie, Jim Meyering,
 Paul Eggert and others, including renaming it to @code{get_date} to
 avoid a conflict with the alternative Posix function @code{getdate},
 and a later rename to @code{parse_datetime}.  The Posix function
@@ -560,4 +591,4 @@ file, and lacks the thread-safety of @code{parse_datetime}.
 @cindex Berry, K.
 This chapter was originally produced by Fran@,{c}ois Pinard
 (@email{pinard@@iro.umontreal.ca}) from the @file{parse_datetime.y} source code,
-and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).
+and then edited by K. Berry (@email{kb@@cs.umb.edu}).
index 558772aa2650375372d7e2f542c73d53d49abed6..493b325ccef78afc6a04b85d5f64fcd03d5744f2 100644 (file)
@@ -1,6 +1,6 @@
 @c This is part of GNU tar manual.
-@c Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001,
-@c 2003, 2004, 2006 Free Software Foundation, Inc.
+@c Copyright 1992, 1994-1997, 1999-2004, 2006, 2013 Free Software
+@c Foundation, Inc.
 @c See file tar.texi for copying conditions.
 
 @c This file contains support for 'renditions' by Fran@,{c}ois Pinard
index 5607a08e7409b58b85a3e75565f596edcc74ac9b..ed394a47df5d96eeb1ffb0f350d28206ff2241cf 100644 (file)
@@ -11,11 +11,11 @@ used to determine which files were modified since the last backup.
 
   @GNUTAR{} version @value{VERSION} supports three snapshot file
 formats.  The first format, called @dfn{format 0}, is the one used by
-@GNUTAR{} versions up to 1.15.1. The second format, called @dfn{format
-1} is an extended version of this format, that contains more metadata
-and allows for further extensions. It was used by version
-1.15.1. Starting from version 1.16 and up to @value{VERSION}, the
-@dfn{format 2} is used.
+@GNUTAR{} versions up to and including 1.15.1. The second format, called 
+@dfn{format 1} is an extended version of this format, that contains more
+metadata and allows for further extensions. It was used by alpha release
+version 1.15.90. For alpha version 1.15.91 and stable releases
+version 1.16 up through @value{VERSION}, the @dfn{format 2} is used.
 
   @GNUTAR{} is able to read all three formats, but will create
 snapshots only in format 2.
@@ -33,7 +33,7 @@ metadata descriptions, one per line. Each description has the
 following format:
 
 @smallexample
-@var{nfs}@var{dev} @var{inode} @var{name}
+[@var{nfs}]@var{dev} @var{inode} @var{name}
 @end smallexample
 
 @noindent
@@ -42,7 +42,10 @@ where:
 @table @var
 @item nfs
 A single plus character (@samp{+}), if this directory is located on
-an @acronym{NFS}-mounted partition, or a single space otherwise;
+an @acronym{NFS}-mounted partition, otherwise empty.  
+
+(That is, for non-NFS directories, the first character on the
+description line contains the start of the @var{dev} field.)
 
 @item dev
 Device number of the directory;
@@ -91,7 +94,6 @@ as with @samp{format 0}.
 
 @cindex format 2, snapshot file
 @cindex snapshot file, format 2
-@FIXME{}
 @item
   @samp{Format 2} snapshot file begins with a format identifier, as described for
 version 1, e.g.:
@@ -105,7 +107,7 @@ records, separated by null (@acronym{ASCII} 0)
 characters. Thus, in contrast to the previous formats, format 2
 snapshot is a binary file.
 
-  First two records are decimal numbers, representing the
+  First two records are decimal integers, representing the
 time of the last backup.  First number is the number of seconds, the
 second one is the number of nanoseconds, since the beginning of the
 epoch.  These are followed by arbitrary number of directory records.
@@ -113,17 +115,18 @@ epoch.  These are followed by arbitrary number of directory records.
   Each @dfn{directory record} contains a set of metadata describing a
 particular directory.  Parts of a directory record are delimited with
 @acronym{ASCII} 0 characters.  The following table describes each
-part.  The @dfn{Number} type in this table stands for a decimal number
-in @acronym{ASCII} notation.
+part.  The @dfn{Number} type in this table stands for a decimal integer
+in @acronym{ASCII} notation.  (Negative values are preceeded with a "-"
+character, while positive values have no leading punctuation.)
 
-@multitable @columnfractions 0.2 0.2 0.6
+@multitable @columnfractions 0.25 0.15 0.6
 @headitem Field @tab Type @tab Description
 @item nfs @tab Character @tab @samp{1} if the directory is located on
 an @acronym{NFS}-mounted partition, or @samp{0} otherwise;
-@item mtime-sec @tab Number @tab Modification time, seconds;
-@item mtime-nano @tab Number @tab Modification time, nanoseconds;
-@item dev-no @tab Number @tab Device number;
-@item i-no @tab Number @tab I-node number;
+@item timestamp_sec @tab Number @tab Modification time, seconds;
+@item timestamp_nsec @tab Number @tab Modification time, nanoseconds;
+@item dev @tab Number @tab Device number;
+@item ino @tab Number @tab I-node number;
 @item name @tab String @tab Directory name; in contrast to the
 previous versions it is not quoted;
 @item contents @tab Dumpdir @tab Contents of the directory;
@@ -134,6 +137,28 @@ previous versions it is not quoted;
   Dumpdirs stored in snapshot files contain only records of types
 @samp{Y}, @samp{N} and @samp{D}.
 
+@cindex snapshot file field ranges
+@opindex show-snapshot-field-ranges
+The specific range of values allowed in each of the @dfn{Number} fields
+depends on the underlying C datatypes as determined when @command{tar}
+is compiled.  To see the specific ranges allowed for a particular
+@command{tar} binary, you can use the
+@option{--show-snapshot-field-ranges} option:
+
+@smallexample
+$ @kbd{tar --show-shapshot-field-ranges}
+This tar's snapshot file field ranges are
+   (field name      => [ min, max ]):
+
+    nfs             => [ 0, 1 ],
+    timestamp_sec   => [ -9223372036854775808, 9223372036854775807 ],
+    timestamp_nsec  => [ 0, 999999999 ],
+    dev             => [ 0, 18446744073709551615 ],
+    ino             => [ 0, 18446744073709551615 ],
+@end smallexample
+
+(This example is from a GNU/Linux x86_64 system.)
+
 @end enumerate
 
 @c End of snapshot.texi
index 019935b11e8ab31a724f49331c344d5e981410b9..905e035a5c96019b9ac9dc6208cdba1bcc72cc10 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 12 March 2011
-@set UPDATED-MONTH March 2011
-@set EDITION 1.26
-@set VERSION 1.26
+@set UPDATED 24 September 2013
+@set UPDATED-MONTH September 2013
+@set EDITION 1.27
+@set VERSION 1.27
index ed9640c5964c10abd545279630f2e026bca740cd..697a409d06a9c0ff5e79bfe7c43f875d2da9bea7 100644 (file)
@@ -6,24 +6,28 @@
 @cindex Device numbers, changing
 @cindex snapshot files, editing
 @cindex snapshot files, fixing device numbers
-  Sometimes device numbers can change after upgrading your kernel
-version or reconfiguring the hardware.  Reportedly this is the case with
-some newer @i{Linux} kernels, when using @acronym{LVM}.  In majority of
+  Various situations can cause device numbers to change: upgrading your
+kernel version, reconfiguring your hardware, loading kernel modules in a
+different order, using virtual volumes that are assembled dynamically
+(such as with @acronym{LVM} or @acronym{RAID}), hot-plugging drives
+(e.g. external USB or Firewire drives), etc.  In the majority of 
 cases this change is unnoticed by the users.  However, it influences
 @command{tar} incremental backups: the device number is stored in tar
 snapshot files (@pxref{Snapshot Files}) and is used to determine whether
 the file has changed since the last backup.  If the device numbers
-change for some reason, the next backup you run will be a full backup.
+change for some reason, by default the next backup you run will be a
+full backup.
+
 
 @pindex tar-snapshot-edit
   To minimize the impact in these cases, GNU @command{tar} comes with
 the @command{tar-snapshot-edit} utility for inspecting and updating
-device numbers in snapshot files.  The utility, written by
-Dustin J.@: Mitchell, is available from
+device numbers in snapshot files.  (The utility, written by
+Dustin J.@: Mitchell, is also available from the
 @uref{http://www.gnu.org/@/software/@/tar/@/utils/@/tar-snapshot-edit.html,
-@GNUTAR{} home page}.
+@GNUTAR{} home page}.)
 
-  To obtain the device numbers used in the snapshot file, run
+  To obtain a summary of the device numbers found in the snapshot file, run
 
 @smallexample
 $ @kbd{tar-snapshot-edit @var{snapfile}}
@@ -31,10 +35,19 @@ $ @kbd{tar-snapshot-edit @var{snapfile}}
 
 @noindent
 where @var{snapfile} is the name of the snapshot file (you can supply as many
-files as you wish in a single command line).
+files as you wish in a single command line).  You can then compare the 
+numbers across snapshot files, or against those currently in use on the
+live filesystem (using @command{ls -l} or @command{stat}).
+
+  Assuming the device numbers have indeed changed, it's often possible
+to simply tell @GNUTAR{} to ignore the device number when processing the
+incremental snapshot files for these backups, using the
+@option{--no-check-device} option (@pxref{device numbers}).
 
-To update all occurrences of the given device number in the file, use
-@option{-r} option.  It takes a single argument of the form
+  Alternatively, you can use the @command{tar-edit-snapshot} script's 
+@option{-r} option to update all occurrences of the given device
+number in the snapshot file(s).  It takes a single argument
+of the form
 @samp{@var{olddev}-@var{newdev}},  where @var{olddev} is the device number
 used in the snapshot file, and @var{newdev} is the corresponding new device
 number.  Both numbers may be specified in hex (e.g., @samp{0xfe01}),
@@ -49,9 +62,30 @@ backup file is obtained by appending @samp{~} to the original file name.
 
 An example session:
 @smallexample
-$ @kbd{tar-snapshot-edit /var/backup/snap.a}
-file version 2
-/tmp/snap: Device 0x0306 occurs 634 times.
-$ @kbd{tar-snapshot-edit -b -r 0x0306-0x4500 /var/backup/snap.a}
-file version 2
+$ @kbd{tar-snapshot-edit root_snap.0 boot_snap.0}
+File: root_snap.0
+  Detected snapshot file version: 2
+
+  Device 0x0000 occurs 1 times.
+  Device 0x0003 occurs 1 times.
+  Device 0x0005 occurs 1 times.
+  Device 0x0013 occurs 1 times.
+  Device 0x6801 occurs 1 times.
+  Device 0x6803 occurs 6626 times.
+  Device 0xfb00 occurs 1 times.
+
+File: boot_snap.0
+  Detected snapshot file version: 2
+
+  Device 0x6801 occurs 3 times.
+$ @kbd{tar-snapshot-edit -b -r 0x6801-0x6901,0x6803-0x6903 root_snap.0 boot_snap.0}
+File: root_snap.0
+  Detected snapshot file version: 2
+
+  Updated 6627 records.
+
+File: boot_snap.0
+  Detected snapshot file version: 2
+
+  Updated 3 records.
 @end smallexample
index b07ee4ecda74810f02b5e511d88c1f1b00d5054e..06ccdaabc7283f96f9f59918dbd6e3b39f9f4a46 100644 (file)
@@ -1,22 +1,22 @@
 This is tar.info, produced by makeinfo version 4.13 from tar.texi.
 
-This manual is for GNU `tar' (version 1.26, 12 March 2011), which
+This manual is for GNU `tar' (version 1.27, 24 September 2013), which
 creates and extracts files from archives.
 
-   Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2013 Free Software
+Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
      Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual", and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License".
+     Foundation; with the Invariant Sections being "GNU General Public
+     License", with the Front-Cover Texts being "A GNU Manual", and
+     with the Back-Cover Texts as in (a) below.  A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
 
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
+     and modify this GNU manual."
 
 INFO-DIR-SECTION Archiving
 START-INFO-DIR-ENTRY
@@ -30,402 +30,411 @@ END-INFO-DIR-ENTRY
 
 \1f
 Indirect:
-tar.info-1: 1253
-tar.info-2: 301909
+tar.info-1: 1146
+tar.info-2: 298426
+tar.info-3: 562228
 \1f
 Tag Table:
 (Indirect)
-Node: Top\7f1253
-Node: Introduction\7f10667
-Node: Book Contents\7f11454
-Node: Definitions\7f13626
-Node: What tar Does\7f15429
-Node: Naming tar Archives\7f18195
-Node: Authors\7f18915
-Node: Reports\7f20728
-Node: Tutorial\7f21085
-Node: assumptions\7f21898
-Node: stylistic conventions\7f24373
-Node: basic tar options\7f24816
-Node: frequent operations\7f28454
-Node: Two Frequent Options\7f29106
-Node: file tutorial\7f29737
-Node: verbose tutorial\7f31094
-Ref: verbose member listing\7f33308
-Node: help tutorial\7f36068
-Node: create\7f36422
-Node: prepare for examples\7f37923
-Node: Creating the archive\7f39692
-Node: create verbose\7f42524
-Node: short create\7f43344
-Node: create dir\7f46097
-Node: list\7f48805
-Ref: listing member and file names\7f50084
-Node: list dir\7f52398
-Node: extract\7f53410
-Node: extracting archives\7f54524
-Node: extracting files\7f55029
-Ref: extracting files-Footnote-1\7f57676
-Node: extract dir\7f58056
-Node: extracting untrusted archives\7f60449
-Node: failing commands\7f61328
-Node: going further\7f62422
-Node: tar invocation\7f62635
-Node: Synopsis\7f64097
-Node: using tar options\7f69052
-Ref: TAR_OPTIONS\7f70629
-Node: Styles\7f71646
-Ref: Styles-Footnote-1\7f73145
-Node: Long Options\7f73401
-Node: Short Options\7f75573
-Ref: Short Options-Footnote-1\7f77381
-Node: Old Options\7f77598
-Ref: Old Options-Footnote-1\7f80485
-Node: Mixing\7f80655
-Ref: Mixing-Footnote-1\7f83021
-Node: All Options\7f83141
-Node: Operation Summary\7f83746
-Ref: --append\7f83866
-Ref: --catenate\7f83946
-Ref: --compare\7f84017
-Ref: --concatenate\7f84220
-Ref: --create\7f84330
-Ref: --delete\7f84398
-Ref: --diff\7f84512
-Ref: --extract\7f84568
-Ref: --get\7f84670
-Ref: --list\7f84728
-Ref: --update\7f84796
-Node: Option Summary\7f85006
-Ref: --absolute-names\7f85161
-Ref: --after-date\7f85339
-Ref: --anchored\7f85391
-Ref: --atime-preserve\7f85524
-Ref: --auto-compress\7f88044
-Ref: --backup\7f88271
-Ref: --block-number\7f88462
-Ref: --blocking-factor\7f88636
-Ref: --bzip2\7f88788
-Ref: --check-device\7f88895
-Ref: --checkpoint\7f89090
-Ref: --checkpoint-action\7f89532
-Ref: --check-links\7f90683
-Ref: --compress\7f90960
-Ref: --uncompress\7f90960
-Ref: --confirmation\7f91164
-Ref: --delay-directory-restore\7f91232
-Ref: --dereference\7f91433
-Ref: --directory\7f91627
-Ref: --exclude\7f91880
-Ref: --exclude-backups\7f91999
-Ref: --exclude-from\7f92089
-Ref: --exclude-caches\7f92235
-Ref: --exclude-caches-under\7f92443
-Ref: --exclude-caches-all\7f92621
-Ref: --exclude-tag\7f92750
-Ref: --exclude-tag-under\7f92921
-Ref: --exclude-tag-all\7f93111
-Ref: --exclude-vcs\7f93240
-Ref: --file\7f93406
-Ref: --files-from\7f93606
-Ref: --force-local\7f93809
-Ref: --format\7f94000
-Ref: --full-time\7f94670
-Ref: --group\7f95350
-Ref: --gzip\7f95698
-Ref: --gunzip\7f95698
-Ref: --ungzip\7f95698
-Ref: --hard-dereference\7f95921
-Ref: --help\7f96108
-Ref: --ignore-case\7f96242
-Ref: --ignore-command-error\7f96369
-Ref: --ignore-failed-read\7f96480
-Ref: --ignore-zeros\7f96610
-Ref: --incremental\7f96755
-Ref: --index-file\7f97020
-Ref: --info-script\7f97105
-Ref: --new-volume-script\7f97105
-Ref: --interactive\7f97426
-Ref: --keep-newer-files\7f97638
-Ref: --keep-old-files\7f97780
-Ref: --label\7f97911
-Ref: --level\7f98199
-Ref: --listed-incremental\7f98640
-Ref: --lzip\7f99004
-Ref: --lzma\7f99104
-Ref: --mode\7f99304
-Ref: --mtime\7f99595
-Ref: --multi-volume\7f100036
-Ref: --newer\7f100240
-Ref: --newer-mtime\7f100518
-Ref: --no-anchored\7f100742
-Ref: --no-auto-compress\7f100879
-Ref: --no-check-device\7f101030
-Ref: --no-delay-directory-restore\7f101213
-Ref: --no-ignore-case\7f101466
-Ref: --no-ignore-command-error\7f101559
-Ref: --no-null\7f101714
-Ref: --no-overwrite-dir\7f101919
-Ref: --no-quote-chars\7f102062
-Ref: --no-recursion\7f102243
-Ref: --no-same-owner\7f102348
-Ref: --no-same-permissions\7f102531
-Ref: --no-seek\7f102733
-Ref: --no-unquote\7f102951
-Ref: --no-wildcards\7f103089
-Ref: --no-wildcards-match-slash\7f103173
-Ref: --null\7f103275
-Ref: --numeric-owner\7f103503
-Ref: --occurrence\7f104154
-Ref: --old-archive\7f104721
-Ref: --one-file-system\7f104770
-Ref: --overwrite\7f104948
-Ref: --overwrite-dir\7f105090
-Ref: --owner\7f105235
-Ref: --pax-option\7f105614
-Ref: --portability\7f105921
-Ref: --posix\7f105986
-Ref: --preserve\7f106028
-Ref: --preserve-order\7f106166
-Ref: --preserve-permissions\7f106230
-Ref: --same-permissions\7f106230
-Ref: --quote-chars\7f106644
-Ref: --quoting-style\7f106797
-Ref: --read-full-records\7f107118
-Ref: --record-size\7f107283
-Ref: --recursion\7f107627
-Ref: --recursive-unlink\7f107730
-Ref: --remove-files\7f107897
-Ref: --restrict\7f108043
-Ref: --rmt-command\7f108231
-Ref: --rsh-command\7f108372
-Ref: --same-order\7f108494
-Ref: --same-owner\7f108786
-Ref: --seek\7f109163
-Ref: --show-defaults\7f109532
-Ref: --show-omitted-dirs\7f110022
-Ref: --show-transformed-names\7f110176
-Ref: --show-stored-names\7f110176
-Ref: --sparse\7f110565
-Ref: --sparse-version\7f110704
-Ref: --starting-file\7f110928
-Ref: --strip-components\7f111117
-Ref: --suffix\7f111429
-Ref: --tape-length\7f111548
-Ref: --test-label\7f111963
-Ref: --to-command\7f112115
-Ref: --to-stdout\7f112274
-Ref: --totals\7f112427
-Ref: --touch\7f112658
-Ref: --transform\7f112860
-Ref: --xform\7f112860
-Ref: --unlink-first\7f113471
-Ref: --unquote\7f113639
-Ref: --use-compress-program\7f113746
-Ref: --utc\7f113924
-Ref: --verbose\7f114017
-Ref: --verify\7f114269
-Ref: --version\7f114387
-Ref: --volno-file\7f114559
-Ref: --warning\7f114746
-Ref: --wildcards\7f114923
-Ref: --wildcards-match-slash\7f115043
-Ref: --xz\7f115135
-Ref: Option Summary-Footnote-1\7f115266
-Node: Short Option Summary\7f115484
-Node: help\7f117685
-Ref: help-Footnote-1\7f121569
-Node: defaults\7f121780
-Node: verbose\7f122799
-Ref: totals\7f125100
-Ref: Progress information\7f126690
-Ref: show-omitted-dirs\7f127669
-Ref: block-number\7f128088
-Ref: verbose-Footnote-1\7f129115
-Node: checkpoints\7f129222
-Node: warnings\7f134616
-Node: interactive\7f137968
-Node: operations\7f140050
-Node: Basic tar\7f140309
-Ref: Basic tar-Footnote-1\7f143413
-Node: Advanced tar\7f143557
-Node: Operations\7f144402
-Node: append\7f146301
-Ref: append-Footnote-1\7f149396
-Node: appending files\7f149559
-Node: multiple\7f151297
-Node: update\7f154019
-Node: how to update\7f154995
-Node: concatenate\7f156779
-Ref: concatenate-Footnote-1\7f160027
-Node: delete\7f160170
-Node: compare\7f161943
-Node: create options\7f163375
-Node: override\7f163833
-Node: Ignore Failed Read\7f167261
-Node: extract options\7f167481
-Node: Reading\7f168314
-Node: read full records\7f169814
-Node: Ignore Zeros\7f170150
-Node: Writing\7f171141
-Node: Dealing with Old Files\7f171698
-Node: Overwrite Old Files\7f174125
-Node: Keep Old Files\7f175582
-Node: Keep Newer Files\7f176092
-Node: Unlink First\7f176382
-Node: Recursive Unlink\7f176786
-Node: Data Modification Times\7f177339
-Node: Setting Access Permissions\7f178149
-Node: Directory Modification Times and Permissions\7f178781
-Node: Writing to Standard Output\7f182393
-Node: Writing to an External Program\7f183928
-Node: remove files\7f187067
-Node: Scarce\7f187260
-Node: Starting File\7f187508
-Node: Same Order\7f188309
-Node: backup\7f189145
-Node: Applications\7f192231
-Node: looking ahead\7f193692
-Node: Backups\7f194518
-Node: Full Dumps\7f196099
-Node: Incremental Dumps\7f197905
-Ref: --level=0\7f200819
-Ref: device numbers\7f201352
-Ref: incremental-op\7f205330
-Ref: Incremental Dumps-Footnote-1\7f205704
-Ref: Incremental Dumps-Footnote-2\7f205854
-Node: Backup Levels\7f206342
-Node: Backup Parameters\7f208729
-Node: General-Purpose Variables\7f209910
-Ref: RSH\7f213071
-Node: Magnetic Tape Control\7f214950
-Node: User Hooks\7f216288
-Node: backup-specs example\7f217617
-Node: Scripted Backups\7f218760
-Ref: Scripted Backups-Footnote-1\7f221623
-Node: Scripted Restoration\7f222007
-Node: Choosing\7f224618
-Node: file\7f225740
-Ref: remote-dev\7f228376
-Ref: local and remote archives\7f228761
-Node: Selecting Archive Members\7f229792
-Ref: input name quoting\7f230473
-Node: files\7f232459
-Ref: files-Footnote-1\7f235732
-Node: nul\7f235890
-Node: exclude\7f238289
-Node: problems with exclude\7f243463
-Node: wildcards\7f245508
-Node: controlling pattern-matching\7f248092
-Ref: controlling pattern-matching-Footnote-1\7f252082
-Node: quoting styles\7f252298
-Ref: escape sequences\7f252644
-Node: transform\7f258779
-Ref: show-transformed-names\7f260770
-Node: after\7f266961
-Node: recurse\7f270563
-Node: one\7f273287
-Node: directory\7f274720
-Node: absolute\7f277782
-Ref: absolute-Footnote-1\7f280953
-Node: Date input formats\7f281304
-Node: General date syntax\7f283626
-Node: Calendar date items\7f286577
-Node: Time of day items\7f288574
-Node: Time zone items\7f290770
-Node: Day of week items\7f292004
-Node: Relative items in date strings\7f292993
-Node: Pure numbers in date strings\7f295795
-Node: Seconds since the Epoch\7f296776
-Node: Specifying time zone rules\7f298397
-Node: Authors of parse_datetime\7f300767
-Ref: Authors of get_date\7f300946
-Node: Formats\7f301909
-Node: Compression\7f306597
-Node: gzip\7f306889
-Ref: alternative decompression programs\7f309098
-Ref: auto-compress\7f312929
-Ref: gzip-Footnote-1\7f315169
-Ref: gzip-Footnote-2\7f315218
-Node: lbzip2\7f315358
-Node: sparse\7f316455
-Node: Attributes\7f319509
-Node: Portability\7f325330
-Node: Portable Names\7f326816
-Node: dereference\7f327521
-Node: hard links\7f328648
-Ref: hard links-Footnote-1\7f331533
-Node: old\7f331589
-Node: ustar\7f332773
-Node: gnu\7f333364
-Node: posix\7f334241
-Node: PAX keywords\7f334722
-Node: Checksumming\7f340332
-Node: Large or Negative Values\7f342258
-Node: Other Tars\7f343858
-Node: Split Recovery\7f344994
-Node: Sparse Recovery\7f348726
-Ref: extracting sparse v.0.x\7f352359
-Ref: Sparse Recovery-Footnote-1\7f355648
-Ref: Sparse Recovery-Footnote-2\7f355671
-Node: cpio\7f355792
-Node: Media\7f360549
-Node: Device\7f362496
-Ref: size-suffixes\7f367285
-Node: Remote Tape Server\7f368395
-Node: Common Problems and Solutions\7f372118
-Node: Blocking\7f372510
-Node: Format Variations\7f378954
-Node: Blocking Factor\7f379866
-Node: Many\7f391518
-Node: Tape Positioning\7f395312
-Node: mt\7f397185
-Node: Using Multiple Tapes\7f398740
-Node: Multi-Volume Archives\7f400806
-Ref: tape-length\7f402291
-Ref: change volume prompt\7f402851
-Ref: volno-file\7f403722
-Ref: info-script\7f404274
-Ref: Multi-Volume Archives-Footnote-1\7f409461
-Ref: Multi-Volume Archives-Footnote-2\7f409571
-Node: Tape Files\7f409639
-Node: Tarcat\7f411121
-Node: label\7f412166
-Ref: --test-label option\7f413753
-Ref: label-Footnote-1\7f417198
-Ref: label-Footnote-2\7f417307
-Ref: label-Footnote-3\7f417440
-Node: verify\7f417675
-Node: Write Protection\7f420975
-Node: Reliability and security\7f421805
-Node: Reliability\7f422193
-Node: Permissions problems\7f422971
-Node: Data corruption and repair\7f423410
-Node: Race conditions\7f424336
-Node: Security\7f426076
-Node: Privacy\7f426679
-Node: Integrity\7f427928
-Node: Live untrusted data\7f429969
-Node: Security rules of thumb\7f432309
-Node: Changes\7f433838
-Node: Configuring Help Summary\7f437453
-Node: Fixing Snapshot Files\7f443954
-Node: Tar Internals\7f446140
-Node: Standard\7f446472
-Node: Extensions\7f468673
-Node: Sparse Formats\7f471233
-Node: Old GNU Format\7f472523
-Node: PAX 0\7f474924
-Node: PAX 1\7f478055
-Node: Snapshot Files\7f479793
-Node: Dumpdir\7f484254
-Node: Genfile\7f487500
-Node: Generate Mode\7f488593
-Node: Status Mode\7f492890
-Node: Exec Mode\7f494689
-Node: Free Software Needs Free Documentation\7f497434
-Node: GNU Free Documentation License\7f502416
-Node: Index of Command Line Options\7f527629
-Node: Index\7f553128
+Node: Top\7f1146
+Node: Introduction\7f10453
+Node: Book Contents\7f11240
+Node: Definitions\7f13412
+Node: What tar Does\7f15215
+Node: Naming tar Archives\7f17981
+Node: Authors\7f18701
+Node: Reports\7f20514
+Node: Tutorial\7f20871
+Node: assumptions\7f21684
+Node: stylistic conventions\7f24159
+Node: basic tar options\7f24602
+Node: frequent operations\7f28240
+Node: Two Frequent Options\7f28892
+Node: file tutorial\7f29523
+Node: verbose tutorial\7f30880
+Ref: verbose member listing\7f33094
+Node: help tutorial\7f35854
+Node: create\7f36208
+Node: prepare for examples\7f37709
+Node: Creating the archive\7f39478
+Node: create verbose\7f42310
+Node: short create\7f43130
+Node: create dir\7f45883
+Node: list\7f48591
+Ref: listing member and file names\7f49870
+Node: list dir\7f52184
+Node: extract\7f53196
+Node: extracting archives\7f54310
+Node: extracting files\7f54815
+Ref: extracting files-Footnote-1\7f57462
+Node: extract dir\7f57842
+Node: extracting untrusted archives\7f60235
+Node: failing commands\7f61114
+Node: going further\7f62208
+Node: tar invocation\7f62421
+Node: Synopsis\7f64201
+Ref: exit status\7f67522
+Node: using tar options\7f69156
+Ref: TAR_OPTIONS\7f70733
+Node: Styles\7f71750
+Ref: Styles-Footnote-1\7f73249
+Node: Long Options\7f73505
+Node: Short Options\7f75677
+Ref: Short Options-Footnote-1\7f77485
+Node: Old Options\7f77702
+Node: Mixing\7f80465
+Ref: Mixing-Footnote-1\7f82831
+Node: All Options\7f82951
+Node: Operation Summary\7f83556
+Ref: --append\7f83676
+Ref: --catenate\7f83756
+Ref: --compare\7f83827
+Ref: --concatenate\7f84030
+Ref: --create\7f84140
+Ref: --delete\7f84208
+Ref: --diff\7f84322
+Ref: --extract\7f84378
+Ref: --get\7f84480
+Ref: --list\7f84538
+Ref: --update\7f84606
+Node: Option Summary\7f84816
+Ref: --absolute-names\7f84971
+Ref: --after-date\7f85261
+Ref: --anchored\7f85313
+Ref: --atime-preserve\7f85446
+Ref: --auto-compress\7f87966
+Ref: --backup\7f88193
+Ref: --block-number\7f88384
+Ref: --blocking-factor\7f88558
+Ref: --bzip2\7f88710
+Ref: --check-device\7f88817
+Ref: --checkpoint\7f89012
+Ref: --checkpoint-action\7f89454
+Ref: --check-links\7f90605
+Ref: --compress\7f90882
+Ref: --uncompress\7f90882
+Ref: --confirmation\7f91086
+Ref: --delay-directory-restore\7f91154
+Ref: --dereference\7f91355
+Ref: --directory\7f91549
+Ref: --exclude\7f91802
+Ref: --exclude-backups\7f91921
+Ref: --exclude-from\7f92011
+Ref: --exclude-caches\7f92157
+Ref: --exclude-caches-under\7f92365
+Ref: --exclude-caches-all\7f92543
+Ref: --exclude-tag\7f92672
+Ref: --exclude-tag-under\7f92843
+Ref: --exclude-tag-all\7f93033
+Ref: --exclude-vcs\7f93162
+Ref: --file\7f93328
+Ref: --files-from\7f93528
+Ref: --force-local\7f93731
+Ref: --format\7f93922
+Ref: --full-time\7f94592
+Ref: --group\7f95272
+Ref: --gzip\7f95568
+Ref: --gunzip\7f95568
+Ref: --ungzip\7f95568
+Ref: --hard-dereference\7f95791
+Ref: --help\7f95978
+Ref: --ignore-case\7f96112
+Ref: --ignore-command-error\7f96239
+Ref: --ignore-failed-read\7f96350
+Ref: --ignore-zeros\7f96491
+Ref: --incremental\7f96636
+Ref: --index-file\7f96901
+Ref: --info-script\7f96986
+Ref: --new-volume-script\7f96986
+Ref: --interactive\7f97283
+Ref: ----keep-directory-symlink\7f97495
+Ref: --keep-newer-files\7f98043
+Ref: --keep-old-files\7f98185
+Ref: --label\7f98397
+Ref: --level\7f98685
+Ref: --listed-incremental\7f99126
+Ref: --lzip\7f99490
+Ref: --lzma\7f99590
+Ref: --mode\7f99790
+Ref: --mtime\7f100081
+Ref: --multi-volume\7f100522
+Ref: --newer\7f100726
+Ref: --newer-mtime\7f101004
+Ref: --no-anchored\7f101228
+Ref: --no-auto-compress\7f101365
+Ref: --no-check-device\7f101516
+Ref: --no-delay-directory-restore\7f101699
+Ref: --no-ignore-case\7f101952
+Ref: --no-ignore-command-error\7f102045
+Ref: --no-null\7f102200
+Ref: --no-overwrite-dir\7f102405
+Ref: --no-quote-chars\7f102548
+Ref: --no-recursion\7f102729
+Ref: --no-same-owner\7f102834
+Ref: --no-same-permissions\7f103017
+Ref: --no-seek\7f103219
+Ref: --no-unquote\7f103437
+Ref: --no-wildcards\7f103575
+Ref: --no-wildcards-match-slash\7f103659
+Ref: --null\7f103761
+Ref: --numeric-owner\7f103989
+Ref: --occurrence\7f104640
+Ref: --old-archive\7f105207
+Ref: --one-file-system\7f105256
+Ref: --overwrite\7f105434
+Ref: --overwrite-dir\7f105576
+Ref: --owner\7f105721
+Ref: --pax-option\7f106046
+Ref: --portability\7f106353
+Ref: --posix\7f106418
+Ref: --preserve\7f106460
+Ref: --preserve-order\7f106598
+Ref: --preserve-permissions\7f106662
+Ref: --same-permissions\7f106662
+Ref: --quote-chars\7f107076
+Ref: --quoting-style\7f107229
+Ref: --read-full-records\7f107550
+Ref: --record-size\7f107715
+Ref: --recursion\7f108059
+Ref: --recursive-unlink\7f108162
+Ref: --remove-files\7f108329
+Ref: --restrict\7f108475
+Ref: --rmt-command\7f108663
+Ref: --rsh-command\7f108804
+Ref: --same-order\7f108926
+Ref: --same-owner\7f109218
+Ref: --seek\7f109595
+Ref: --show-defaults\7f109964
+Ref: --show-omitted-dirs\7f110472
+Ref: --show-snapshot-field-ranges\7f110626
+Ref: --show-transformed-names\7f110822
+Ref: --show-stored-names\7f110822
+Ref: --skip-old-files\7f111211
+Ref: --sparse\7f111661
+Ref: --sparse-version\7f111800
+Ref: --starting-file\7f112024
+Ref: --strip-components\7f112213
+Ref: --suffix\7f112525
+Ref: --tape-length\7f112644
+Ref: --test-label\7f113059
+Ref: --to-command\7f113211
+Ref: --to-stdout\7f113370
+Ref: --totals\7f113523
+Ref: --touch\7f113754
+Ref: --transform\7f113956
+Ref: --xform\7f113956
+Ref: --unlink-first\7f114567
+Ref: --unquote\7f114735
+Ref: --use-compress-program\7f114842
+Ref: --utc\7f115020
+Ref: --verbose\7f115113
+Ref: --verify\7f115365
+Ref: --version\7f115483
+Ref: --volno-file\7f115655
+Ref: --warning\7f115842
+Ref: --wildcards\7f116019
+Ref: --wildcards-match-slash\7f116139
+Ref: --xz\7f116231
+Ref: Option Summary-Footnote-1\7f116362
+Node: Short Option Summary\7f116580
+Node: help\7f118781
+Ref: help-Footnote-1\7f122610
+Node: defaults\7f122821
+Node: verbose\7f123840
+Ref: totals\7f126141
+Ref: Progress information\7f127731
+Ref: show-omitted-dirs\7f128710
+Ref: block-number\7f129129
+Ref: verbose-Footnote-1\7f130156
+Node: checkpoints\7f130263
+Ref: checkpoint exec\7f134138
+Node: warnings\7f136164
+Node: interactive\7f139563
+Node: external\7f141662
+Node: operations\7f143243
+Node: Basic tar\7f143502
+Ref: Basic tar-Footnote-1\7f146609
+Node: Advanced tar\7f146753
+Node: Operations\7f147598
+Node: append\7f149497
+Ref: append-Footnote-1\7f152592
+Node: appending files\7f152779
+Node: multiple\7f154517
+Node: update\7f157239
+Node: how to update\7f158215
+Node: concatenate\7f159999
+Ref: concatenate-Footnote-1\7f163247
+Node: delete\7f163390
+Node: compare\7f165163
+Node: create options\7f166595
+Node: override\7f167053
+Node: Ignore Failed Read\7f171190
+Node: extract options\7f171410
+Node: Reading\7f172243
+Node: read full records\7f173743
+Node: Ignore Zeros\7f174079
+Node: Writing\7f175070
+Node: Dealing with Old Files\7f175627
+Node: Overwrite Old Files\7f178430
+Node: Keep Old Files\7f179887
+Node: Keep Newer Files\7f180694
+Node: Unlink First\7f180984
+Node: Recursive Unlink\7f181388
+Node: Data Modification Times\7f181941
+Node: Setting Access Permissions\7f182751
+Node: Directory Modification Times and Permissions\7f183383
+Node: Writing to Standard Output\7f186995
+Node: Writing to an External Program\7f188530
+Node: remove files\7f192111
+Node: Scarce\7f192304
+Node: Starting File\7f192552
+Node: Same Order\7f193353
+Node: backup\7f194189
+Node: Applications\7f197275
+Node: looking ahead\7f198736
+Node: Backups\7f199562
+Node: Full Dumps\7f201143
+Node: Incremental Dumps\7f202949
+Ref: --level=0\7f205863
+Ref: device numbers\7f206396
+Ref: incremental-op\7f210374
+Ref: Incremental Dumps-Footnote-1\7f210748
+Ref: Incremental Dumps-Footnote-2\7f210898
+Node: Backup Levels\7f211386
+Node: Backup Parameters\7f213773
+Node: General-Purpose Variables\7f214954
+Ref: RSH\7f218115
+Node: Magnetic Tape Control\7f219994
+Node: User Hooks\7f221332
+Node: backup-specs example\7f222661
+Node: Scripted Backups\7f223804
+Ref: Scripted Backups-Footnote-1\7f226667
+Node: Scripted Restoration\7f227051
+Node: Choosing\7f229662
+Node: file\7f230784
+Ref: remote-dev\7f233420
+Ref: local and remote archives\7f233805
+Node: Selecting Archive Members\7f234836
+Ref: input name quoting\7f235517
+Node: files\7f237503
+Ref: files-Footnote-1\7f239999
+Node: nul\7f240157
+Node: exclude\7f242571
+Node: problems with exclude\7f247745
+Node: wildcards\7f249790
+Node: controlling pattern-matching\7f252374
+Ref: controlling pattern-matching-Footnote-1\7f256364
+Node: quoting styles\7f256580
+Ref: escape sequences\7f256926
+Node: transform\7f263057
+Ref: show-transformed-names\7f265048
+Node: after\7f271239
+Node: recurse\7f274841
+Node: one\7f277565
+Node: directory\7f278998
+Node: absolute\7f282060
+Ref: absolute-Footnote-1\7f285388
+Node: Date input formats\7f285739
+Node: General date syntax\7f288137
+Node: Calendar date items\7f291120
+Node: Time of day items\7f293117
+Node: Time zone items\7f295313
+Node: Combined date and time of day items\7f296565
+Node: Day of week items\7f297417
+Node: Relative items in date strings\7f298426
+Node: Pure numbers in date strings\7f301228
+Node: Seconds since the Epoch\7f302209
+Node: Specifying time zone rules\7f303830
+Node: Authors of parse_datetime\7f306202
+Ref: Authors of get_date\7f306381
+Node: Formats\7f307344
+Node: Compression\7f312032
+Node: gzip\7f312324
+Ref: alternative decompression programs\7f314533
+Ref: auto-compress\7f318303
+Ref: use-compress-program\7f319034
+Ref: gzip-Footnote-1\7f320957
+Ref: gzip-Footnote-2\7f321006
+Node: lbzip2\7f321146
+Node: sparse\7f322243
+Node: Attributes\7f325297
+Node: Portability\7f331118
+Node: Portable Names\7f332604
+Node: dereference\7f333309
+Node: hard links\7f334436
+Ref: hard links-Footnote-1\7f337321
+Node: old\7f337377
+Node: ustar\7f338561
+Node: gnu\7f339152
+Node: posix\7f340029
+Node: PAX keywords\7f340510
+Node: Checksumming\7f346120
+Node: Large or Negative Values\7f348046
+Node: Other Tars\7f349646
+Node: Split Recovery\7f350782
+Node: Sparse Recovery\7f354514
+Ref: extracting sparse v.0.x\7f358147
+Ref: Sparse Recovery-Footnote-1\7f361436
+Ref: Sparse Recovery-Footnote-2\7f361459
+Node: cpio\7f361580
+Node: Media\7f366337
+Node: Device\7f368284
+Ref: size-suffixes\7f373073
+Node: Remote Tape Server\7f374193
+Node: Common Problems and Solutions\7f377855
+Node: Blocking\7f378247
+Ref: Blocking-Footnote-1\7f384730
+Node: Format Variations\7f384834
+Node: Blocking Factor\7f385746
+Node: Many\7f397398
+Node: Tape Positioning\7f401192
+Node: mt\7f403065
+Node: Using Multiple Tapes\7f404620
+Node: Multi-Volume Archives\7f406686
+Ref: tape-length\7f408171
+Ref: change volume prompt\7f408731
+Ref: volno-file\7f409602
+Ref: info-script\7f410154
+Ref: Multi-Volume Archives-Footnote-1\7f415738
+Ref: Multi-Volume Archives-Footnote-2\7f415848
+Node: Tape Files\7f415916
+Node: Tarcat\7f417398
+Node: label\7f418443
+Ref: --test-label option\7f420030
+Ref: label-Footnote-1\7f423480
+Ref: label-Footnote-2\7f423589
+Ref: label-Footnote-3\7f423722
+Node: verify\7f423957
+Node: Write Protection\7f427257
+Node: Reliability and security\7f428087
+Node: Reliability\7f428475
+Node: Permissions problems\7f429253
+Node: Data corruption and repair\7f429692
+Node: Race conditions\7f430618
+Node: Security\7f432358
+Node: Privacy\7f432961
+Node: Integrity\7f434210
+Node: Live untrusted data\7f436421
+Node: Security rules of thumb\7f438761
+Node: Changes\7f440290
+Node: Configuring Help Summary\7f443905
+Node: Fixing Snapshot Files\7f450406
+Node: Tar Internals\7f453775
+Node: Standard\7f454107
+Node: Extensions\7f476308
+Node: Sparse Formats\7f478868
+Node: Old GNU Format\7f480158
+Node: PAX 0\7f482559
+Node: PAX 1\7f485690
+Node: Snapshot Files\7f487428
+Node: Dumpdir\7f492998
+Node: Genfile\7f496244
+Node: Generate Mode\7f497337
+Node: Status Mode\7f501634
+Node: Exec Mode\7f503432
+Node: Free Software Needs Free Documentation\7f506177
+Node: GNU Free Documentation License\7f511159
+Node: Index of Command Line Options\7f536372
+Node: Index\7f562228
 \1f
 End Tag Table
index 3935da526b6ba01a5e6561d8dffe8dbe75e2873a..c8541d8bf8ebc239b0c5166870a04fe317fbe063 100644 (file)
@@ -1,22 +1,22 @@
 This is tar.info, produced by makeinfo version 4.13 from tar.texi.
 
-This manual is for GNU `tar' (version 1.26, 12 March 2011), which
+This manual is for GNU `tar' (version 1.27, 24 September 2013), which
 creates and extracts files from archives.
 
-   Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2013 Free Software
+Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
      Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual", and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License".
+     Foundation; with the Invariant Sections being "GNU General Public
+     License", with the Front-Cover Texts being "A GNU Manual", and
+     with the Back-Cover Texts as in (a) below.  A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
 
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
+     and modify this GNU manual."
 
 INFO-DIR-SECTION Archiving
 START-INFO-DIR-ENTRY
@@ -34,23 +34,23 @@ File: tar.info,  Node: Top,  Next: Introduction,  Up: (dir)
 GNU tar: an archiver tool
 *************************
 
-This manual is for GNU `tar' (version 1.26, 12 March 2011), which
+This manual is for GNU `tar' (version 1.27, 24 September 2013), which
 creates and extracts files from archives.
 
-   Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2013 Free Software
+Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
      Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual", and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License".
+     Foundation; with the Invariant Sections being "GNU General Public
+     License", with the Front-Cover Texts being "A GNU Manual", and
+     with the Back-Cover Texts as in (a) below.  A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
 
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
+     and modify this GNU manual."
 
    The first part of this master menu lists the major nodes in this Info
 document.  The rest of the menu lists all the lower level nodes.
@@ -567,7 +567,7 @@ in version 1.11.  Thomas Bushnell, n/BSG and Amy Gorin worked on a
 tutorial and manual for GNU `tar'.  Franc,ois Pinard put version 1.11.8
 of the manual together by taking information from all these sources and
 merging them.  Melissa Weisshaus finally edited and redesigned the book
-to create version 1.12.  The book for versions from 1.14 up to 1.26
+to create version 1.12.  The book for versions from 1.14 up to 1.27
 were edited by the current maintainer, Sergey Poznyakoff.
 
    For version 1.12, Daniel Hagerty contributed a great deal of
@@ -1296,7 +1296,7 @@ names" when creating an archive and "member names" when listing it.
 Consider this example:
 
      $ tar --create --verbose --file archive /etc/mail
-     tar: Removing leading `/' from member names
+     tar: Removing leading '/' from member names
      /etc/mail/
      /etc/mail/sendmail.cf
      /etc/mail/aliases
@@ -1629,13 +1629,14 @@ receives about what is going on.  These are the `--help' and
 * Synopsis::
 * using tar options::
 * Styles::
-* All Options::
-* help::
-* defaults::
-* verbose::
-* checkpoints::
-* warnings::
-* interactive::
+* All Options::           All `tar' Options.
+* help::                  Where to Get Help.
+* defaults::              What are the Default Values.
+* verbose::               Checking `tar' progress.
+* checkpoints::           Checkpoints.
+* warnings::              Controlling Warning Messages.
+* interactive::           Asking for Confirmation During Operations.
+* external::              Running External Commands.
 
 \1f
 File: tar.info,  Node: Synopsis,  Next: using tar options,  Up: tar invocation
@@ -1929,16 +1930,24 @@ File: tar.info,  Node: Old Options,  Next: Mixing,  Prev: Short Options,  Up: St
 3.3.3 Old Option Style
 ----------------------
 
-Like short options, "old options" are single letters.  However, old
+As far as we know, all `tar' programs, GNU and non-GNU, support "old
+options": that is, if the first argument does not start with `-', it is
+assumed to specify option letters.  GNU `tar' supports old options not
+only for historical reasons, but also because many people are used to
+them.  If the first argument does not start with a dash, you are
+announcing the old option style instead of the short option style; old
+options are decoded differently.
+
+   Like short options, old options are single letters.  However, old
 options must be written together as a single clumped set, without
-spaces separating them or dashes preceding them(1).  This set of
-letters must be the first to appear on the command line, after the
-`tar' program name and some white space; old options cannot appear
-anywhere else.  The letter of an old option is exactly the same letter
-as the corresponding short option.  For example, the old option `t' is
-the same as the short option `-t', and consequently, the same as the
-long option `--list'.  So for example, the command `tar cv' specifies
-the option `-v' in addition to the operation `-c'.
+spaces separating them or dashes preceding them.  This set of letters
+must be the first to appear on the command line, after the `tar'
+program name and some white space; old options cannot appear anywhere
+else.  The letter of an old option is exactly the same letter as the
+corresponding short option.  For example, the old option `t' is the
+same as the short option `-t', and consequently, the same as the long
+option `--list'.  So for example, the command `tar cv' specifies the
+option `-v' in addition to the operation `-c'.
 
    When options that need arguments are given together with the command,
 all the associated arguments follow, in the same order as the options.
@@ -1950,13 +1959,13 @@ style as follows:
 Here, `20' is the argument of `-b' and `/dev/rmt0' is the argument of
 `-f'.
 
-   On the other hand, this old style syntax makes it difficult to match
-option letters with their corresponding arguments, and is often
-confusing.  In the command `tar cvbf 20 /dev/rmt0', for example, `20'
-is the argument for `-b', `/dev/rmt0' is the argument for `-f', and
-`-v' does not have a corresponding argument.  Even using short options
-like in `tar -c -v -b 20 -f /dev/rmt0' is clearer, putting all
-arguments next to the option they pertain to.
+   The old style syntax can make it difficult to match option letters
+with their corresponding arguments, and is often confusing.  In the
+command `tar cvbf 20 /dev/rmt0', for example, `20' is the argument for
+`-b', `/dev/rmt0' is the argument for `-f', and `-v' does not have a
+corresponding argument.  Even using short options like in
+`tar -c -v -b 20 -f /dev/rmt0' is clearer, putting all arguments next
+to the option they pertain to.
 
    If you want to reorder the letters in the old option argument, be
 sure to reorder any corresponding argument appropriately.
@@ -1972,8 +1981,6 @@ value for option `f' and recognizes the option `z'.  The second
 example, however, uses `z' as the value for option `f' -- probably not
 what was intended.
 
-   Old options are kept for compatibility with old versions of `tar'.
-
    This second example could be corrected in many ways, among which the
 following are equivalent:
 
@@ -1981,20 +1988,6 @@ following are equivalent:
      tar -cf archive.tar.gz -z file
      tar cf archive.tar.gz -z file
 
-   As far as we know, all `tar' programs, GNU and non-GNU, support old
-options.  GNU `tar' supports them not only for historical reasons, but
-also because many people are used to them.  For compatibility with Unix
-`tar', the first argument is always treated as containing command and
-option letters even if it doesn't start with `-'.  Thus, `tar c' is
-equivalent to `tar -c': both of them specify the `--create' (`-c')
-command to create an archive.
-
-   ---------- Footnotes ----------
-
-   (1) Beware that if you precede options with a dash, you are
-announcing the short option style instead of the old option style;
-short options are decoded differently.
-
 \1f
 File: tar.info,  Node: Mixing,  Prev: Old Options,  Up: Styles
 
@@ -2146,8 +2139,9 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 `--absolute-names'
 `-P'
      Normally when creating an archive, `tar' strips an initial `/'
-     from member names.  This option disables that behavior.  *Note
-     absolute::.
+     from member names, and when extracting from an archive `tar'
+     treats names specially if they have initial `/' or internal `..'.
+     This option disables that behavior.  *Note absolute::.
 
 `--after-date'
      (See `--newer', *note after::)
@@ -2428,9 +2422,9 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 
 `--group=GROUP'
      Files added to the `tar' archive will have a group ID of GROUP,
-     rather than the group from the source file.  GROUP is first decoded
-     as a group symbolic name, but if this interpretation fails, it has
-     to be a decimal numeric group ID.  *Note override::.
+     rather than the group from the source file.  GROUP can specify a
+     symbolic name, or a numeric ID, or both as NAME:ID.  *Note
+     override::.
 
      Also see the comments for the `--owner=USER' option.
 
@@ -2463,7 +2457,7 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 
 `--ignore-failed-read'
      Do not exit unsuccessfully merely because an unreadable file was
-     encountered.  *Note Reading::.
+     encountered.  *Note Ignore Failed Read::.
 
 `--ignore-zeros'
 `-i'
@@ -2480,13 +2474,13 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 `--index-file=FILE'
      Send verbose output to FILE instead of to standard output.
 
-`--info-script=SCRIPT-FILE'
-`--new-volume-script=SCRIPT-FILE'
-`-F SCRIPT-FILE'
-     When `tar' is performing multi-tape backups, SCRIPT-FILE is run at
-     the end of each tape.  If SCRIPT-FILE exits with nonzero status,
-     `tar' fails immediately.  *Note info-script::, for a detailed
-     discussion of SCRIPT-FILE.
+`--info-script=COMMAND'
+`--new-volume-script=COMMAND'
+`-F COMMAND'
+     When `tar' is performing multi-tape backups, COMMAND is run at the
+     end of each tape.  If it exits with nonzero status, `tar' fails
+     immediately.  *Note info-script::, for a detailed discussion of
+     this feature.
 
 `--interactive'
 `--confirmation'
@@ -2495,6 +2489,19 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
      performing potentially destructive options, such as overwriting
      files.  *Note interactive::.
 
+`--keep-directory-symlink'
+     This option changes the behavior of tar when it encounters a
+     symlink with the same name as the directory that it is about to
+     extract.  By default, in this case tar would first remove the
+     symlink and then proceed extracting the directory.
+
+     The `--keep-directory-symlink' option disables this behavior and
+     instructs tar to follow symlinks to directories when extracting
+     from the archive.
+
+     It is mainly intended to provide compatibility with the Slackware
+     installation scripts.
+
 `--keep-newer-files'
      Do not replace existing files that are newer than their archive
      copies when extracting files from an archive.
@@ -2502,7 +2509,10 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 `--keep-old-files'
 `-k'
      Do not overwrite existing files when extracting files from an
-     archive.  *Note Keep Old Files::.
+     archive.  Return error if such files exist.  See also *note
+     --skip-old-files::.
+
+     *Note Keep Old Files::.
 
 `--label=NAME'
 `-V NAME'
@@ -2513,7 +2523,7 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 
 `--level=N'
      Force incremental backup of level N.  As of GNU `tar' version
-     1.26, the option `--level=0' truncates the snapshot file, thereby
+     1.27, the option `--level=0' truncates the snapshot file, thereby
      forcing the level 0 dump.  Other values of N are effectively
      ignored.  *Note --level=0::, for details and examples.
 
@@ -2703,9 +2713,8 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
 `--owner=USER'
      Specifies that `tar' should use USER as the owner of members when
      creating archives, instead of the user associated with the source
-     file.  USER is first decoded as a user symbolic name, but if this
-     interpretation fails, it has to be a decimal numeric user ID.
-     *Note override::.
+     file.  USER can specify a symbolic name, or a numeric ID, or both
+     as NAME:ID.  *Note override::.
 
      This option does not affect extraction from archives.
 
@@ -2824,12 +2833,17 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
           --rmt-command=/usr/libexec/rmt --rsh-command=/usr/bin/rsh
 
      Notice, that this option outputs only one line.  The example output
-     above has been split to fit page boundaries.
+     above has been split to fit page boundaries. *Note defaults::.
 
 `--show-omitted-dirs'
      Instructs `tar' to mention the directories it is skipping when
      operating on a `tar' archive.  *Note show-omitted-dirs::.
 
+`--show-snapshot-field-ranges'
+     Displays the range of values allowed by this version of `tar' for
+     each field in the snapshot file, then exits successfully.  *Note
+     Snapshot Files::.
+
 `--show-transformed-names'
 `--show-stored-names'
      Display file or member names after applying any transformations
@@ -2838,6 +2852,18 @@ File: tar.info,  Node: Option Summary,  Next: Short Option Summary,  Prev: Opera
      the member names stored in the archive, as opposed to the actual
      file names.  *Note listing member and file names::.
 
+`--skip-old-files'
+     Do not overwrite existing files when extracting files from an
+     archive.  *Note Keep Old Files::.
+
+     This option differs from `--keep-old-files' in that it does not
+     treat such files as an error, instead it just silently avoids
+     overwriting them.
+
+     The `--warning=existing-file' option can be used together with
+     this option to produce warning messages about existing old files
+     (*note warnings::).
+
 `--sparse'
 `-S'
      Invokes a GNU extension when adding files to an archive that
@@ -3057,9 +3083,8 @@ information about its name, version, origin and legal status, all on
 standard output, and then exit successfully.  For example,
 `tar --version' might print:
 
-     tar (GNU tar) 1.26
-     Copyright (C) 2010 Free Software Foundation, Inc.
-     Copyright (C) 2010 Free Software Foundation, Inc.
+     tar (GNU tar) 1.27
+     Copyright (C) 2013 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
@@ -3195,7 +3220,7 @@ list output:
 
    Verbose output appears on the standard output except when an archive
 is being written to the standard output, as with `tar --create --file=-
---verbose' (`tar cfv -', or even `tar cv'--if the installer let
+--verbose' (`tar cvf -', or even `tar cv'--if the installer let
 standard output be the default archive).  In that case `tar' writes
 verbose output to the standard error stream.
 
@@ -3389,14 +3414,18 @@ checkpoint:
 
      $ tar -c --checkpoint=1000 --checkpoint-action=sleep=30
 
-   Finally, the `exec' action executes a given external program.  For
+   Finally, the `exec' action executes a given external command.  For
 example:
 
      $ tar -c --checkpoint=1000 --checkpoint-action=exec=/sbin/cpoint
 
-   This program is executed using `/bin/sh -c', with no additional
-arguments.  Its exit code is ignored.  It gets a copy of `tar''s
-environment plus the following variables:
+   The supplied command can be any valid command invocation, with or
+without additional command line arguments.  If it does contain
+arguments, don't forget to quote it to prevent it from being split by
+the shell.  *Note Running External Commands: external, for more detail.
+
+   The command gets a copy of `tar''s environment plus the following
+variables:
 
 `TAR_VERSION'
      GNU `tar' version number.
@@ -3418,6 +3447,15 @@ environment plus the following variables:
      Format of the archive being processed. *Note Formats::, for a
      complete list of archive format names.
 
+   These environment variables can also be passed as arguments to the
+command, provided that they are properly escaped, for example:
+
+     tar -c -f arc.tar \
+          --checkpoint-action='exec=/sbin/cpoint $TAR_FILENAME'
+
+Notice single quotes to prevent variable names from being expanded by
+the shell when invoking `tar'.
+
    Any number of actions can be defined, by supplying several
 `--checkpoint-action' options in the command line.  For example, the
 command below displays two messages, pauses execution for 30 seconds
@@ -3516,13 +3554,13 @@ symlink-cast
      `Attempting extraction of symbolic links as hard links' 
 
 unknown-cast
-     `%s: Unknown file type `%c', extracted as normal file' 
+     `%s: Unknown file type '%c', extracted as normal file' 
 
 ignore-newer
      `Current %s is newer or same age' 
 
 unknown-keyword
-     `Ignoring unknown extended header keyword `%s'' 
+     `Ignoring unknown extended header keyword '%s'' 
 
 decompress-program
      Controls verbose description of failures occurring when trying to
@@ -3536,7 +3574,10 @@ decompress-program
           tar (child): trying gzip
 
      This means that `tar' first tried to decompress `archive.Z' using
-     `compress', and, when that failed, switched to `gzip'.
+     `compress', and, when that failed, switched to `gzip'.  
+
+record-size
+     `Record size = %lu blocks'
 
 Keywords controlling incremental extraction:
 --------------------------------------------
@@ -3555,7 +3596,7 @@ bad-dumpdir
      `Malformed dumpdir: 'X' never used'
 
 \1f
-File: tar.info,  Node: interactive,  Prev: warnings,  Up: tar invocation
+File: tar.info,  Node: interactive,  Next: external,  Prev: warnings,  Up: tar invocation
 
 3.10 Asking for Confirmation During Operations
 ==============================================
@@ -3593,6 +3634,42 @@ receive the archive, and having the consumer process to read from that
 named pipe.  This has the advantage of letting standard output free to
 receive verbose output, all separate from errors.
 
+\1f
+File: tar.info,  Node: external,  Prev: interactive,  Up: tar invocation
+
+3.11 Running External Commands
+==============================
+
+Certain GNU `tar' operations imply running external commands that you
+supply on the command line.  One of such operations is checkpointing,
+described above (*note checkpoint exec::).  Another example of this
+feature is the `-I' option, which allows you to supply the program to
+use for compressing or decompressing the archive (*note
+use-compress-program::).
+
+   Whenever such operation is requested, `tar' first splits the
+supplied command into words much like the shell does.  It then treats
+the first word as the name of the program or the shell script to execute
+and the rest of words as its command line arguments.  The program,
+unless given as an absolute file name, is searched in the shell's
+`PATH'.
+
+   Any additional information is normally supplied to external commands
+in environment variables, specific to each particular operation.  For
+example, the `--checkpoint-action=exec' option, defines the
+`TAR_ARCHIVE' variable to the name of the archive being worked upon.
+You can, should the need be, use these variables in the command line of
+the external command.  For example:
+
+     $ tar -x -f archive.tar \
+         --checkpoint=exec='printf "%04d in %32s\r" $TAR_CHECKPOINT $TAR_ARCHIVE'
+
+This command prints for each checkpoint its number and the name of the
+archive, using the same output line on the screen.
+
+   Notice the use of single quotes to prevent variable names from being
+expanded by the shell when invoking `tar'.
+
 \1f
 File: tar.info,  Node: operations,  Next: Backups,  Prev: tar invocation,  Up: Top
 
@@ -3655,7 +3732,7 @@ complementary notes for these operations.
      file with no names in it, as shown in the following commands:
 
           tar --create --file=empty-archive.tar --files-from=/dev/null
-          tar cfT empty-archive.tar /dev/null
+          tar -cf empty-archive.tar -T /dev/null
 
 `--extract'
 `--get'
@@ -3824,9 +3901,9 @@ Media::, for more information.)
 
    ---------- Footnotes ----------
 
-   (1) Unless you give it `--keep-old-files' option, or the disk copy
-is newer than the one in the archive and you invoke `tar' with
-`--keep-newer-files' option.
+   (1) Unless you give it `--keep-old-files' (or `--skip-old-files')
+option, or the disk copy is newer than the one in the archive and you
+invoke `tar' with `--keep-newer-files' option.
 
 \1f
 File: tar.info,  Node: appending files,  Next: multiple,  Up: append
@@ -4221,15 +4298,28 @@ stored in the archive.
      For example:
 
           $ tar -c -f archive.tar -v --mtime=yesterday .
-          tar: Option --mtime: Treating date `yesterday' as 2006-06-20
+          tar: Option --mtime: Treating date 'yesterday' as 2006-06-20
           13:06:29.152478
           ...
 
 `--owner=USER'
      Specifies that `tar' should use USER as the owner of members when
      creating archives, instead of the user associated with the source
-     file.  The argument USER can be either an existing user symbolic
-     name, or a decimal numeric user ID.
+     file.
+
+     If USER contains a colon, it is taken to be of the form NAME:ID
+     where a nonempty NAME specifies the user name and a nonempty ID
+     specifies the decimal numeric user ID.  If USER does not contain a
+     colon, it is taken to be a user number if it is one or more
+     decimal digits; otherwise it is taken to be a user name.
+
+     If a name is given but no number, the number is inferred from the
+     current host's user database if possible, and the file's user
+     number is used otherwise.  If a number is given but no name, the
+     name is inferred from the number if possible, and an empty name is
+     used otherwise.  If both name and number are given, the user
+     database is not consulted, and the name and number need not be
+     valid on the current host.
 
      There is no value indicating a missing number, and `0' usually
      means `root'.  Some people like to force `0' as the value to offer
@@ -4245,9 +4335,9 @@ stored in the archive.
 
 `--group=GROUP'
      Files added to the `tar' archive will have a group ID of GROUP,
-     rather than the group from the source file.  The argument GROUP
-     can be either an existing group symbolic name, or a decimal
-     numeric group ID.
+     rather than the group from the source file.  As with `--owner',
+     the argument GROUP can be an existing group symbolic name, or a
+     decimal numeric group ID, or NAME:ID.
 
 \1f
 File: tar.info,  Node: Ignore Failed Read,  Prev: override,  Up: create options
@@ -4394,7 +4484,17 @@ directory, use the `--no-overwrite-dir' option.
 replaced, use the `--keep-old-files' (`-k') option.  It causes `tar' to
 refuse to replace or update a file that already exists, i.e., a file
 with the same name as an archive member prevents extraction of that
-archive member.  Instead, it reports an error.
+archive member.  Instead, it reports an error.  For example:
+
+     $ ls
+     blues
+     $ tar -x -k -f archive.tar
+     tar: blues: Cannot open: File exists
+     tar: Exiting with failure status due to previous errors
+
+   If you wish to preserve old files untouched, but don't want `tar' to
+treat them as errors, use the `--skip-old-files' option.  This option
+causes `tar' to silently skip extracting over existing files.
 
    To be more aggressive about altering existing files, use the
 `--overwrite' option.  It causes `tar' to overwrite existing files and
@@ -4458,14 +4558,23 @@ File: tar.info,  Node: Keep Old Files,  Next: Keep Newer Files,  Prev: Overwrite
 Keep Old Files
 ..............
 
+GNU `tar' provides two options to control its actions in a situation
+when it is about to extract a file which already exists on disk.
+
 `--keep-old-files'
 `-k'
-     Do not replace existing files from archive.  The
-     `--keep-old-files' (`-k') option prevents `tar' from replacing
-     existing files with files with the same name from the archive. The
-     `--keep-old-files' option is meaningless with `--list' (`-t').
-     Prevents `tar' from replacing files in the file system during
-     extraction.
+     Do not replace existing files from archive.  When such a file is
+     encountered, `tar' issues an error message.  Upon end of
+     extraction, `tar' exits with code 2 (*note exit status::).
+
+`--skip-old-files'
+     Do not replace existing files from archive, but do not treat that
+     as error.  Such files are silently skipped and do not affect `tar'
+     exit status.
+
+     Additional verbosity can be obtained using
+     `--warning=existing-file' together with that option (*note
+     warnings::).
 
 \1f
 File: tar.info,  Node: Keep Newer Files,  Next: Unlink First,  Prev: Keep Old Files,  Up: Writing
@@ -4666,13 +4775,15 @@ the standard input of an external program:
 
 `--to-command=COMMAND'
      Extract files and pipe their contents to the standard input of
-     COMMAND. When this option is used, instead of creating the files
+     COMMAND.  When this option is used, instead of creating the files
      specified, `tar' invokes COMMAND and pipes the contents of the
-     files to its standard output. The COMMAND may contain command line
-     arguments. The program is executed via `sh -c'. Notice, that
-     COMMAND is executed once for each regular file extracted.
-     Non-regular files (directories, etc.) are ignored when this option
-     is used.
+     files to its standard output.  The COMMAND may contain command
+     line arguments (see *note Running External Commands: external, for
+     more detail).
+
+     Notice, that COMMAND is executed once for each regular file
+     extracted. Non-regular files (directories, etc.) are ignored when
+     this option is used.
 
    The command can obtain the information about the file it processes
 from the following environment variables:
@@ -4744,6 +4855,16 @@ mode and the archive being processed:
      Format of the archive being processed. *Note Formats::, for a
      complete list of archive format names.
 
+   These variables are defined prior to executing the command, so you
+can pass them as arguments, if you prefer.  For example, if the command
+PROC takes the member name and size as its arguments, then you could do:
+
+     $ tar -x -f archive.tar \
+            --to-command='proc $TAR_FILENAME $TAR_SIZE'
+
+Notice single quotes to prevent variable names from being expanded by
+the shell when invoking `tar'.
+
    If COMMAND exits with a non-0 status, `tar' will print an error
 message similar to the following:
 
@@ -5907,7 +6028,7 @@ immediately, reporting the following:
 
      $ tar cf a.tar
      tar: Cowardly refusing to create an empty archive
-     Try `tar --help' or `tar --usage' for more information.
+     Try 'tar --help' or 'tar --usage' for more information.
 
    If you specify either `--list' (`-t') or `--extract' (`--get',
 `-x'), `tar' operates on all the archive members in the archive.
@@ -5983,30 +6104,6 @@ resulting archive `foo.tar' will contain:
      hosts
      libc.a
 
-
-   Notice that the option parsing algorithm used with `-T' is stricter
-than the one used by shell.  Namely, when specifying option arguments,
-you should observe the following rules:
-
-   * When using short (single-letter) option form, its argument must
-     immediately follow the option letter, without any intervening
-     whitespace.  For example: `-Cdir'.
-
-   * When using long option form, the option argument must be separated
-     from the option by a single equal sign.  No whitespace is allowed
-     on any side of the equal sign.  For example: `--directory=dir'.
-
-   * For both short and long option forms, the option argument can be
-     given on the next line after the option name, e.g.:
-
-          --directory
-          dir
-
-     and
-
-          -C
-          dir
-
    If you happen to have a file whose name starts with `-', precede it
 with `--add-file' option to prevent it from being recognized as an
 option.  For example: `--add-file=--my-file'.
@@ -6067,10 +6164,10 @@ following command can be used to combine it with the above command:
    This example uses short options for typographic reasons, to avoid
 very long lines.
 
-   GNU `tar' is able to automatically detect `NUL'-terminated file
-lists, so it is safe to use them even without the `--null' option.  In
-this case `tar' will print a warning and continue reading such a file
-as if `--null' were actually given:
+   GNU `tar' is tries to automatically detect `NUL'-terminated file
+lists, so in many cases it is safe to use them even without the
+`--null' option.  In this case `tar' will print a warning and continue
+reading such a file as if `--null' were actually given:
 
      $ find . -size +800 -print0 | tar -c -f big.tar -T -
      tar: -: file name read contains nul character
@@ -6122,7 +6219,7 @@ difficult to catch using text editors.
      systems: `CVS', `RCS', `SCCS', `SVN', `Arch', `Bazaar',
      `Mercurial', and `Darcs'.
 
-     As of version 1.26, the following files are excluded:
+     As of version 1.27, the following files are excluded:
 
         * `CVS/', and everything under it
 
@@ -6640,20 +6737,20 @@ existed in the current working directory:
      Control characters, single quote and backslash are printed using
      backslash notation.  All names are quoted using left and right
      quotation marks, appropriate to the current locale.  If it does not
-     define quotation marks, use ``' as left and `'' as right quotation
+     define quotation marks, use `'' as left and as right quotation
      marks.  Any occurrences of the right quotation mark in a name are
      escaped with `\', for example:
 
      For example:
 
           $ tar tf arch.tar --quoting-style=locale
-          `./'
-          `./a space'
-          `./a\'single\'quote'
-          `./a"double"quote'
-          `./a\\backslash'
-          `./a\ttab'
-          `./a\nnewline'
+          './'
+          './a space'
+          './a\'single\'quote'
+          './a"double"quote'
+          './a\\backslash'
+          './a\ttab'
+          './a\nnewline'
 
 `clocale'
      Same as `locale', but `"' is used for both left and right
@@ -7004,7 +7101,7 @@ saying what date it will use.  This is to help user ensure he is using
 the right date.  For example:
 
      $ tar -c -f archive.tar --after-date='10 days ago' .
-     tar: Option --after-date: Treating date `10 days ago' as 2006-06-11
+     tar: Option --after-date: Treating date '10 days ago' as 2006-06-11
      13:19:37.232434
 
      *Please Note:* `--after-date' and `--newer-mtime' should not be
@@ -7225,6 +7322,10 @@ members into the archive.  For example, if you ask `tar' to add the file
 `/bin/ls' to an archive, it will do so, but the member name will be
 `bin/ls'(1).
 
+   Symbolic links containing `..' or leading `/' can also cause
+problems when extracting, so `tar' normally extracts them last; it may
+create empty files as placeholders during extraction.
+
    If you use the `--absolute-names' (`-P') option, `tar' will do none
 of these transformations.
 
@@ -7243,7 +7344,7 @@ convenient than switching to root.
 
 `--absolute-names'
      Preserves full file names (including superior directory names) when
-     archiving files.  Preserves leading slash when extracting files.
+     archiving and extracting files.
 
 
    `tar' prints out a message about removing the `/' from file names.
@@ -7304,7 +7405,7 @@ First, a quote:
      future, last Tuesday or a week from Sunday, with feelings of
      helpless confusion.  ...
 
-     -- Robert Grudin, `Time and the Art of Living'.
+     --Robert Grudin, `Time and the Art of Living'.
 
    This section describes the textual date representations that GNU
 programs accept.  These are the strings you, as a user, can supply as
@@ -7316,7 +7417,8 @@ arguments to the various programs.  The C interface (via the
 * General date syntax::            Common rules.
 * Calendar date items::            19 Dec 1994.
 * Time of day items::              9:20pm.
-* Time zone items::                EST, PDT, GMT.
+* Time zone items::                EST, PDT, UTC, ...
+* Combined date and time of day items:: 1972-09-24T20:02:00,000000-0500.
 * Day of week items::              Monday and others.
 * Relative items in date strings:: next tuesday, 2 years ago.
 * Pure numbers in date strings::   19931219, 1440.
@@ -7342,6 +7444,8 @@ items:
 
    * time zone items
 
+   * combined date and time of day items
+
    * day of the week items
 
    * relative items
@@ -7379,8 +7483,8 @@ zone items other than `UTC' and `Z'.  Here are some ways to do this:
      Mon Mar  1 00:21:42 UTC 2004
      $ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
      2004-03-01 00:21:42Z
-     $ date --iso-8601=ns | tr T ' '  # --iso-8601 is a GNU extension.
-     2004-02-29 16:21:42,692722128-0800
+     $ date --rfc-3339=ns  # --rfc-3339 is a GNU extension.
+     2004-02-29 16:21:42.692722128-08:00
      $ date --rfc-2822  # a GNU extension
      Sun, 29 Feb 2004 16:21:42 -0800
      $ date +'%Y-%m-%d %H:%M:%S %z'  # %z is a GNU extension.
@@ -7501,7 +7605,7 @@ maximum zone correction is 24 hours.
 both.
 
 \1f
-File: tar.info,  Node: Time zone items,  Next: Day of week items,  Prev: Time of day items,  Up: Date input formats
+File: tar.info,  Node: Time zone items,  Next: Combined date and time of day items,  Prev: Time of day items,  Up: Date input formats
 
 7.4 Time zone items
 ===================
@@ -7527,9 +7631,31 @@ time stamps are interpreted using the rules of the default time zone
 (*note Specifying time zone rules::).
 
 \1f
-File: tar.info,  Node: Day of week items,  Next: Relative items in date strings,  Prev: Time zone items,  Up: Date input formats
+File: tar.info,  Node: Combined date and time of day items,  Next: Day of week items,  Prev: Time zone items,  Up: Date input formats
+
+7.5 Combined date and time of day items
+=======================================
+
+The ISO 8601 date and time of day extended format consists of an ISO
+8601 date, a `T' character separator, and an ISO 8601 time of day.
+This format is also recognized if the `T' is replaced by a space.
+
+   In this format, the time of day should use 24-hour notation.
+Fractional seconds are allowed, with either comma or period preceding
+the fraction.  ISO 8601 fractional minutes and hours are not supported.
+Typically, hosts support nanosecond timestamp resolution; excess
+precision is silently discarded.
+
+   Here are some examples:
+
+     2012-09-24T20:02:00.052-0500
+     2012-12-31T23:59:59,999999999+1100
+     1970-01-01 00:00Z
+
+\1f
+File: tar.info,  Node: Day of week items,  Next: Relative items in date strings,  Prev: Combined date and time of day items,  Up: Date input formats
 
-7.5 Day of week items
+7.6 Day of week items
 =====================
 
 The explicit mention of a day of the week will forward the date (only
@@ -7549,193 +7675,3 @@ represent.
 
    A comma following a day of the week item is ignored.
 
-\1f
-File: tar.info,  Node: Relative items in date strings,  Next: Pure numbers in date strings,  Prev: Day of week items,  Up: Date input formats
-
-7.6 Relative items in date strings
-==================================
-
-"Relative items" adjust a date (or the current date if none) forward or
-backward.  The effects of relative items accumulate.  Here are some
-examples:
-
-     1 year
-     1 year ago
-     3 years
-     2 days
-
-   The unit of time displacement may be selected by the string `year'
-or `month' for moving by whole years or months.  These are fuzzy units,
-as years and months are not all of equal duration.  More precise units
-are `fortnight' which is worth 14 days, `week' worth 7 days, `day'
-worth 24 hours, `hour' worth 60 minutes, `minute' or `min' worth 60
-seconds, and `second' or `sec' worth one second.  An `s' suffix on
-these units is accepted and ignored.
-
-   The unit of time may be preceded by a multiplier, given as an
-optionally signed number.  Unsigned numbers are taken as positively
-signed.  No number at all implies 1 for a multiplier.  Following a
-relative item by the string `ago' is equivalent to preceding the unit
-by a multiplier with value -1.
-
-   The string `tomorrow' is worth one day in the future (equivalent to
-`day'), the string `yesterday' is worth one day in the past (equivalent
-to `day ago').
-
-   The strings `now' or `today' are relative items corresponding to
-zero-valued time displacement, these strings come from the fact a
-zero-valued time displacement represents the current time when not
-otherwise changed by previous items.  They may be used to stress other
-items, like in `12:00 today'.  The string `this' also has the meaning
-of a zero-valued time displacement, but is preferred in date strings
-like `this thursday'.
-
-   When a relative item causes the resulting date to cross a boundary
-where the clocks were adjusted, typically for daylight saving time, the
-resulting date and time are adjusted accordingly.
-
-   The fuzz in units can cause problems with relative items.  For
-example, `2003-07-31 -1 month' might evaluate to 2003-07-01, because
-2003-06-31 is an invalid date.  To determine the previous month more
-reliably, you can ask for the month before the 15th of the current
-month.  For example:
-
-     $ date -R
-     Thu, 31 Jul 2003 13:02:39 -0700
-     $ date --date='-1 month' +'Last month was %B?'
-     Last month was July?
-     $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
-     Last month was June!
-
-   Also, take care when manipulating dates around clock changes such as
-daylight saving leaps.  In a few cases these have added or subtracted
-as much as 24 hours from the clock, so it is often wise to adopt
-universal time by setting the `TZ' environment variable to `UTC0'
-before embarking on calendrical calculations.
-
-\1f
-File: tar.info,  Node: Pure numbers in date strings,  Next: Seconds since the Epoch,  Prev: Relative items in date strings,  Up: Date input formats
-
-7.7 Pure numbers in date strings
-================================
-
-The precise interpretation of a pure decimal number depends on the
-context in the date string.
-
-   If the decimal number is of the form YYYYMMDD and no other calendar
-date item (*note Calendar date items::) appears before it in the date
-string, then YYYY is read as the year, MM as the month number and DD as
-the day of the month, for the specified calendar date.
-
-   If the decimal number is of the form HHMM and no other time of day
-item appears before it in the date string, then HH is read as the hour
-of the day and MM as the minute of the hour, for the specified time of
-day.  MM can also be omitted.
-
-   If both a calendar date and a time of day appear to the left of a
-number in the date string, but no relative item, then the number
-overrides the year.
-
-\1f
-File: tar.info,  Node: Seconds since the Epoch,  Next: Specifying time zone rules,  Prev: Pure numbers in date strings,  Up: Date input formats
-
-7.8 Seconds since the Epoch
-===========================
-
-If you precede a number with `@', it represents an internal time stamp
-as a count of seconds.  The number can contain an internal decimal
-point (either `.' or `,'); any excess precision not supported by the
-internal representation is truncated toward minus infinity.  Such a
-number cannot be combined with any other date item, as it specifies a
-complete time stamp.
-
-   Internally, computer times are represented as a count of seconds
-since an epoch--a well-defined point of time.  On GNU and POSIX
-systems, the epoch is 1970-01-01 00:00:00 UTC, so `@0' represents this
-time, `@1' represents 1970-01-01 00:00:01 UTC, and so forth.  GNU and
-most other POSIX-compliant systems support such times as an extension
-to POSIX, using negative counts, so that `@-1' represents 1969-12-31
-23:59:59 UTC.
-
-   Traditional Unix systems count seconds with 32-bit two's-complement
-integers and can represent times from 1901-12-13 20:45:52 through
-2038-01-19 03:14:07 UTC.  More modern systems use 64-bit counts of
-seconds with nanosecond subcounts, and can represent all the times in
-the known lifetime of the universe to a resolution of 1 nanosecond.
-
-   On most hosts, these counts ignore the presence of leap seconds.
-For example, on most hosts `@915148799' represents 1998-12-31 23:59:59
-UTC, `@915148800' represents 1999-01-01 00:00:00 UTC, and there is no
-way to represent the intervening leap second 1998-12-31 23:59:60 UTC.
-
-\1f
-File: tar.info,  Node: Specifying time zone rules,  Next: Authors of parse_datetime,  Prev: Seconds since the Epoch,  Up: Date input formats
-
-7.9 Specifying time zone rules
-==============================
-
-Normally, dates are interpreted using the rules of the current time
-zone, which in turn are specified by the `TZ' environment variable, or
-by a system default if `TZ' is not set.  To specify a different set of
-default time zone rules that apply just to one date, start the date
-with a string of the form `TZ="RULE"'.  The two quote characters (`"')
-must be present in the date, and any quotes or backslashes within RULE
-must be escaped by a backslash.
-
-   For example, with the GNU `date' command you can answer the question
-"What time is it in New York when a Paris clock shows 6:30am on October
-31, 2004?" by using a date beginning with `TZ="Europe/Paris"' as shown
-in the following shell transcript:
-
-     $ export TZ="America/New_York"
-     $ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
-     Sun Oct 31 01:30:00 EDT 2004
-
-   In this example, the `--date' operand begins with its own `TZ'
-setting, so the rest of that operand is processed according to
-`Europe/Paris' rules, treating the string `2004-10-31 06:30' as if it
-were in Paris.  However, since the output of the `date' command is
-processed according to the overall time zone rules, it uses New York
-time.  (Paris was normally six hours ahead of New York in 2004, but
-this example refers to a brief Halloween period when the gap was five
-hours.)
-
-   A `TZ' value is a rule that typically names a location in the `tz'
-database (http://www.twinsun.com/tz/tz-link.htm).  A recent catalog of
-location names appears in the TWiki Date and Time Gateway
-(http://twiki.org/cgi-bin/xtra/tzdate).  A few non-GNU hosts require a
-colon before a location name in a `TZ' setting, e.g.,
-`TZ=":America/New_York"'.
-
-   The `tz' database includes a wide variety of locations ranging from
-`Arctic/Longyearbyen' to `Antarctica/South_Pole', but if you are at sea
-and have your own private time zone, or if you are using a non-GNU host
-that does not support the `tz' database, you may need to use a POSIX
-rule instead.  Simple POSIX rules like `UTC0' specify a time zone
-without daylight saving time; other rules can specify simple daylight
-saving regimes.  *Note Specifying the Time Zone with `TZ': (libc)TZ
-Variable.
-
-\1f
-File: tar.info,  Node: Authors of parse_datetime,  Prev: Specifying time zone rules,  Up: Date input formats
-
-7.10 Authors of `parse_datetime'
-================================
-
-`parse_datetime' started life as `getdate', as originally implemented
-by Steven M. Bellovin (<smb@research.att.com>) while at the University
-of North Carolina at Chapel Hill.  The code was later tweaked by a
-couple of people on Usenet, then completely overhauled by Rich $alz
-(<rsalz@bbn.com>) and Jim Berets (<jberets@bbn.com>) in August, 1990.
-Various revisions for the GNU system were made by David MacKenzie, Jim
-Meyering, Paul Eggert and others, including renaming it to `get_date' to
-avoid a conflict with the alternative Posix function `getdate', and a
-later rename to `parse_datetime'.  The Posix function `getdate' can
-parse more locale-specific dates using `strptime', but relies on an
-environment variable and external file, and lacks the thread-safety of
-`parse_datetime'.
-
-   This chapter was originally produced by Franc,ois Pinard
-(<pinard@iro.umontreal.ca>) from the `parse_datetime.y' source code,
-and then edited by K. Berry (<kb@cs.umb.edu>).
-
index 3c726720da652a9b1129b23a6cdd0d9fa71a91f3..e31d8b3c2b2a6eada93c216f513ed06210f473d1 100644 (file)
@@ -1,22 +1,22 @@
 This is tar.info, produced by makeinfo version 4.13 from tar.texi.
 
-This manual is for GNU `tar' (version 1.26, 12 March 2011), which
+This manual is for GNU `tar' (version 1.27, 24 September 2013), which
 creates and extracts files from archives.
 
-   Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2013 Free Software
+Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
      Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual", and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License".
+     Foundation; with the Invariant Sections being "GNU General Public
+     License", with the Front-Cover Texts being "A GNU Manual", and
+     with the Back-Cover Texts as in (a) below.  A copy of the license
+     is included in the section entitled "GNU Free Documentation
+     License".
 
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.  Buying copies from the FSF supports
-     it in developing GNU and promoting software freedom."
+     and modify this GNU manual."
 
 INFO-DIR-SECTION Archiving
 START-INFO-DIR-ENTRY
@@ -28,6 +28,196 @@ START-INFO-DIR-ENTRY
 * tar: (tar)tar invocation.                     Invoking GNU `tar'.
 END-INFO-DIR-ENTRY
 
+\1f
+File: tar.info,  Node: Relative items in date strings,  Next: Pure numbers in date strings,  Prev: Day of week items,  Up: Date input formats
+
+7.7 Relative items in date strings
+==================================
+
+"Relative items" adjust a date (or the current date if none) forward or
+backward.  The effects of relative items accumulate.  Here are some
+examples:
+
+     1 year
+     1 year ago
+     3 years
+     2 days
+
+   The unit of time displacement may be selected by the string `year'
+or `month' for moving by whole years or months.  These are fuzzy units,
+as years and months are not all of equal duration.  More precise units
+are `fortnight' which is worth 14 days, `week' worth 7 days, `day'
+worth 24 hours, `hour' worth 60 minutes, `minute' or `min' worth 60
+seconds, and `second' or `sec' worth one second.  An `s' suffix on
+these units is accepted and ignored.
+
+   The unit of time may be preceded by a multiplier, given as an
+optionally signed number.  Unsigned numbers are taken as positively
+signed.  No number at all implies 1 for a multiplier.  Following a
+relative item by the string `ago' is equivalent to preceding the unit
+by a multiplier with value -1.
+
+   The string `tomorrow' is worth one day in the future (equivalent to
+`day'), the string `yesterday' is worth one day in the past (equivalent
+to `day ago').
+
+   The strings `now' or `today' are relative items corresponding to
+zero-valued time displacement, these strings come from the fact a
+zero-valued time displacement represents the current time when not
+otherwise changed by previous items.  They may be used to stress other
+items, like in `12:00 today'.  The string `this' also has the meaning
+of a zero-valued time displacement, but is preferred in date strings
+like `this thursday'.
+
+   When a relative item causes the resulting date to cross a boundary
+where the clocks were adjusted, typically for daylight saving time, the
+resulting date and time are adjusted accordingly.
+
+   The fuzz in units can cause problems with relative items.  For
+example, `2003-07-31 -1 month' might evaluate to 2003-07-01, because
+2003-06-31 is an invalid date.  To determine the previous month more
+reliably, you can ask for the month before the 15th of the current
+month.  For example:
+
+     $ date -R
+     Thu, 31 Jul 2003 13:02:39 -0700
+     $ date --date='-1 month' +'Last month was %B?'
+     Last month was July?
+     $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
+     Last month was June!
+
+   Also, take care when manipulating dates around clock changes such as
+daylight saving leaps.  In a few cases these have added or subtracted
+as much as 24 hours from the clock, so it is often wise to adopt
+universal time by setting the `TZ' environment variable to `UTC0'
+before embarking on calendrical calculations.
+
+\1f
+File: tar.info,  Node: Pure numbers in date strings,  Next: Seconds since the Epoch,  Prev: Relative items in date strings,  Up: Date input formats
+
+7.8 Pure numbers in date strings
+================================
+
+The precise interpretation of a pure decimal number depends on the
+context in the date string.
+
+   If the decimal number is of the form YYYYMMDD and no other calendar
+date item (*note Calendar date items::) appears before it in the date
+string, then YYYY is read as the year, MM as the month number and DD as
+the day of the month, for the specified calendar date.
+
+   If the decimal number is of the form HHMM and no other time of day
+item appears before it in the date string, then HH is read as the hour
+of the day and MM as the minute of the hour, for the specified time of
+day.  MM can also be omitted.
+
+   If both a calendar date and a time of day appear to the left of a
+number in the date string, but no relative item, then the number
+overrides the year.
+
+\1f
+File: tar.info,  Node: Seconds since the Epoch,  Next: Specifying time zone rules,  Prev: Pure numbers in date strings,  Up: Date input formats
+
+7.9 Seconds since the Epoch
+===========================
+
+If you precede a number with `@', it represents an internal time stamp
+as a count of seconds.  The number can contain an internal decimal
+point (either `.' or `,'); any excess precision not supported by the
+internal representation is truncated toward minus infinity.  Such a
+number cannot be combined with any other date item, as it specifies a
+complete time stamp.
+
+   Internally, computer times are represented as a count of seconds
+since an epoch--a well-defined point of time.  On GNU and POSIX
+systems, the epoch is 1970-01-01 00:00:00 UTC, so `@0' represents this
+time, `@1' represents 1970-01-01 00:00:01 UTC, and so forth.  GNU and
+most other POSIX-compliant systems support such times as an extension
+to POSIX, using negative counts, so that `@-1' represents 1969-12-31
+23:59:59 UTC.
+
+   Traditional Unix systems count seconds with 32-bit two's-complement
+integers and can represent times from 1901-12-13 20:45:52 through
+2038-01-19 03:14:07 UTC.  More modern systems use 64-bit counts of
+seconds with nanosecond subcounts, and can represent all the times in
+the known lifetime of the universe to a resolution of 1 nanosecond.
+
+   On most hosts, these counts ignore the presence of leap seconds.
+For example, on most hosts `@915148799' represents 1998-12-31 23:59:59
+UTC, `@915148800' represents 1999-01-01 00:00:00 UTC, and there is no
+way to represent the intervening leap second 1998-12-31 23:59:60 UTC.
+
+\1f
+File: tar.info,  Node: Specifying time zone rules,  Next: Authors of parse_datetime,  Prev: Seconds since the Epoch,  Up: Date input formats
+
+7.10 Specifying time zone rules
+===============================
+
+Normally, dates are interpreted using the rules of the current time
+zone, which in turn are specified by the `TZ' environment variable, or
+by a system default if `TZ' is not set.  To specify a different set of
+default time zone rules that apply just to one date, start the date
+with a string of the form `TZ="RULE"'.  The two quote characters (`"')
+must be present in the date, and any quotes or backslashes within RULE
+must be escaped by a backslash.
+
+   For example, with the GNU `date' command you can answer the question
+"What time is it in New York when a Paris clock shows 6:30am on October
+31, 2004?" by using a date beginning with `TZ="Europe/Paris"' as shown
+in the following shell transcript:
+
+     $ export TZ="America/New_York"
+     $ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
+     Sun Oct 31 01:30:00 EDT 2004
+
+   In this example, the `--date' operand begins with its own `TZ'
+setting, so the rest of that operand is processed according to
+`Europe/Paris' rules, treating the string `2004-10-31 06:30' as if it
+were in Paris.  However, since the output of the `date' command is
+processed according to the overall time zone rules, it uses New York
+time.  (Paris was normally six hours ahead of New York in 2004, but
+this example refers to a brief Halloween period when the gap was five
+hours.)
+
+   A `TZ' value is a rule that typically names a location in the `tz'
+database (http://www.twinsun.com/tz/tz-link.htm).  A recent catalog of
+location names appears in the TWiki Date and Time Gateway
+(http://twiki.org/cgi-bin/xtra/tzdate).  A few non-GNU hosts require a
+colon before a location name in a `TZ' setting, e.g.,
+`TZ=":America/New_York"'.
+
+   The `tz' database includes a wide variety of locations ranging from
+`Arctic/Longyearbyen' to `Antarctica/South_Pole', but if you are at sea
+and have your own private time zone, or if you are using a non-GNU host
+that does not support the `tz' database, you may need to use a POSIX
+rule instead.  Simple POSIX rules like `UTC0' specify a time zone
+without daylight saving time; other rules can specify simple daylight
+saving regimes.  *Note Specifying the Time Zone with `TZ': (libc)TZ
+Variable.
+
+\1f
+File: tar.info,  Node: Authors of parse_datetime,  Prev: Specifying time zone rules,  Up: Date input formats
+
+7.11 Authors of `parse_datetime'
+================================
+
+`parse_datetime' started life as `getdate', as originally implemented
+by Steven M. Bellovin (<smb@research.att.com>) while at the University
+of North Carolina at Chapel Hill.  The code was later tweaked by a
+couple of people on Usenet, then completely overhauled by Rich $alz
+(<rsalz@bbn.com>) and Jim Berets (<jberets@bbn.com>) in August, 1990.
+Various revisions for the GNU system were made by David MacKenzie, Jim
+Meyering, Paul Eggert and others, including renaming it to `get_date' to
+avoid a conflict with the alternative Posix function `getdate', and a
+later rename to `parse_datetime'.  The Posix function `getdate' can
+parse more locale-specific dates using `strptime', but relies on an
+environment variable and external file, and lacks the thread-safety of
+`parse_datetime'.
+
+   This chapter was originally produced by Franc,ois Pinard
+(<pinard@iro.umontreal.ca>) from the `parse_datetime.y' source code,
+and then edited by K. Berry (<kb@cs.umb.edu>).
+
 \1f
 File: tar.info,  Node: Formats,  Next: Media,  Prev: Date input formats,  Up: Top
 
@@ -77,7 +267,7 @@ v7
      Makefiles.  This practice will change in the future, in the
      meantime, however this means that projects containing file names
      more than 99 characters long will not be able to use GNU `tar'
-     1.26 and Automake prior to 1.9.
+     1.27 and Automake prior to 1.9.
 
 ustar
      Archive format defined by POSIX.1-1988 specification.  It stores
@@ -178,18 +368,18 @@ an XZ archive, `--lzma' to create an LZMA compressed archive, `--lzop'
 to create an LSOP archive, and `-Z' (`--compress') to use `compress'
 program.  For example:
 
-     $ tar cfz archive.tar.gz .
+     $ tar czf archive.tar.gz .
 
    You can also let GNU `tar' select the compression program based on
 the suffix of the archive file name. This is done using
 `--auto-compress' (`-a') command line option. For example, the
 following invocation will use `bzip2' for compression:
 
-     $ tar cfa archive.tar.bz2 .
+     $ tar caf archive.tar.bz2 .
 
 whereas the following one will use `lzma':
 
-     $ tar cfa archive.tar.lzma .
+     $ tar caf archive.tar.lzma .
 
    For a complete list of file name suffixes recognized by GNU `tar',
 see *note auto-compress::.
@@ -213,7 +403,7 @@ a list of recognized suffixes).
    Some compression programs are able to handle different compression
 formats.  GNU `tar' uses this, if the principal decompressor for the
 given format is not available.  For example, if `compress' is not
-installed, `tar' will try to use `gzip'.  As of version 1.26 the
+installed, `tar' will try to use `gzip'.  As of version 1.27 the
 following alternatives are tried(2):
 
 Format                 Main decompressor      Alternatives
@@ -234,7 +424,7 @@ will indicate which option you should use.  For example:
    If you see such diagnostics, just add the suggested option to the
 invocation of GNU `tar':
 
-     $ cat archive.tar.gz | tar tfz -
+     $ cat archive.tar.gz | tar tzf -
 
    Notice also, that there are several restrictions on operations on
 compressed archives.  First of all, compressed archives cannot be
@@ -287,29 +477,28 @@ names along with each of these options.
 etc.) and remote files as well as on normal files; data to or from such
 devices or remote files is reblocked by another copy of the `tar'
 program to enforce the specified (or default) record size.  The default
-compression parameters are used.  Most compression programs allow to
+compression parameters are used.  Most compression programs let you
 override these by setting a program-specific environment variable.  For
-example, when using `gzip' you can use `GZIP' as in the example below:
+example, with `gzip' you can set `GZIP':
 
-     $ GZIP=--best tar cfz archive.tar.gz subdir
+     $ GZIP='-9 -n' tar czf archive.tar.gz subdir
+   Another way would be to use the `-I' option instead (see below),
+e.g.:
 
-Another way would be to use the `-I' option instead (see below), e.g.:
+     $ tar -cf archive.tar.gz -I 'gzip -9 -n' subdir
 
-     $ tar -cf archive.tar.gz -I 'gzip --best' subdir
+Finally, the third, traditional, way to do this is to use a pipe:
 
-Finally, the third, traditional, way to achieve the same result is to
-use pipe:
+     $ tar cf - subdir | gzip -9 -n > archive.tar.gz
 
-     $ tar cf - subdir | gzip --best -c - > archive.tar.gz
+   Compressed archives are easily corrupted, because compressed files
+have little redundancy.  The adaptive nature of the compression scheme
+means that the compression tables are implicitly spread all over the
+archive.  If you lose a few blocks, the dynamic construction of the
+compression tables becomes unsynchronized, and there is little chance
+that you could recover later in the archive.
 
-   About corrupted compressed archives: compressed files have no
-redundancy, for maximum compression.  The adaptive nature of the
-compression scheme means that the compression tables are implicitly
-spread all over the archive.  If you lose a few blocks, the dynamic
-construction of the compression tables becomes unsynchronized, and there
-is little chance that you could recover later in the archive.
-
-   Another compression options provide a better control over creating
+   Other compression options provide better control over creating
 compressed archives.  These are:
 
 `--auto-compress'
@@ -334,20 +523,29 @@ compressed archives.  These are:
      `.lzo'               `lzop'
      `.xz'                `xz'
 
-`--use-compress-program=PROG'
-`-I=PROG'
-     Use external compression program PROG.  Use this option if you are
-     not happy with the compression program associated with the suffix
-     at compile time or if you have a compression program that GNU `tar'
-     does not support.  There are two requirements to which PROG should
-     comply:
+`--use-compress-program=COMMAND'
+`-I=COMMAND'
+     Use external compression program COMMAND.  Use this option if you
+     are not happy with the compression program associated with the
+     suffix at compile time or if you have a compression program that
+     GNU `tar' does not support.  The COMMAND argument is a valid
+     command invocation, as you would type it at the command line
+     prompt, with any additional options as needed.  Enclose it in
+     quotes if it contains white space (see *note Running External
+     Commands: external, for more detail).
+
+     The COMMAND should follow two conventions:
+
+     First, when invoked without additional options, it should read data
+     from standard input, compress it and output it on standard output.
 
-     First, when called without options, it should read data from
-     standard input, compress it and output it on standard output.
+     Secondly, if invoked with the additional `-d' option, it should do
+     exactly the opposite, i.e., read the compressed data from the
+     standard input and produce uncompressed data on the standard
+     output.
 
-     Secondly, if called with `-d' argument, it should do exactly the
-     opposite, i.e., read the compressed data from the standard input
-     and produce uncompressed data on the standard output.
+     The latter requirement means that you must not use the `-d' option
+     as a part of the COMMAND itself.
 
    The `--use-compress-program' option, in particular, lets you
 implement your own filters, not necessarily dealing with
@@ -699,7 +897,7 @@ consider the following two files:
    Here, `jeden' is a link to `one'.  When archiving this directory
 with a verbose level 2, you will get an output similar to the following:
 
-     $ tar cfvv ../archive.tar .
+     $ tar cvvf ../archive.tar .
      drwxr-xr-x gray/staff        0 2007-10-30 15:13 ./
      -rw-r--r-- gray/staff        4 2007-10-30 15:11 ./jeden
      hrw-r--r-- gray/staff        0 2007-10-30 15:11 ./one link to ./jeden
@@ -722,7 +920,7 @@ reproduction of the file system.  The following option does that:
 produces the following diagnostics:
 
      $ tar -c -f ../archive.tar -l jeden
-     tar: Missing links to `jeden'.
+     tar: Missing links to 'jeden'.
 
    Although creating special records for hard links helps keep a
 faithful record of the file system contents and makes archives more
@@ -732,7 +930,7 @@ from the archive created in previous examples produces, in the absense
 of file `jeden':
 
      $ tar xf archive.tar ./one
-     tar: ./one: Cannot hard link to `./jeden': No such file or directory
+     tar: ./one: Cannot hard link to './jeden': No such file or directory
      tar: Error exit delayed from previous errors
 
    The reason for this behavior is that `tar' cannot seek back in the
@@ -1209,8 +1407,8 @@ mode is enabled by `-n' command line argument:
 
      $ xsparse -n /home/gray/GNUSparseFile.6058/sparsefile
      Reading v.1.0 sparse map
-     Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-     `/home/gray/sparsefile'
+     Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+     '/home/gray/sparsefile'
      Finished dry run
 
    To actually expand the file, you would run:
@@ -1224,8 +1422,8 @@ similar to that from the dry run mode, use `-v' option:
 
      $ xsparse -v /home/gray/GNUSparseFile.6058/sparsefile
      Reading v.1.0 sparse map
-     Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-     `/home/gray/sparsefile'
+     Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+     '/home/gray/sparsefile'
      Done
 
    Additionally, if your `tar' implementation has extracted the
@@ -1242,8 +1440,8 @@ example:
      Found variable GNU.sparse.name = sparsefile
      Found variable GNU.sparse.realsize = 217481216
      Reading v.1.0 sparse map
-     Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-     `/home/gray/sparsefile'
+     Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+     '/home/gray/sparsefile'
      Done
 
    An "extended header" is a special `tar' archive header that precedes
@@ -1317,7 +1515,7 @@ header:
      Found variable GNU.sparse.numblocks = 208
      Found variable GNU.sparse.name = sparsefile
      Found variable GNU.sparse.map = 0,2048,1050624,2048,...
-     Expanding file `GNUSparseFile.28124/sparsefile' to `sparsefile'
+     Expanding file 'GNUSparseFile.28124/sparsefile' to 'sparsefile'
      Done
 
    ---------- Footnotes ----------
@@ -1601,10 +1799,10 @@ could also check for `DEFTAPE' in `<sys/mtio.h>'.
      conservative on the maximum tape length, you might avoid the
      problem entirely.
 
-  `-F FILE'
-  `--info-script=FILE'
-  `--new-volume-script=FILE'
-        Execute `file' at end of each tape.  This implies
+  `-F COMMAND'
+  `--info-script=COMMAND'
+  `--new-volume-script=COMMAND'
+        Execute COMMAND at end of each tape.  This implies
      `--multi-volume' (`-M').  *Note info-script::, for a detailed
      description of this option.
 
@@ -1621,9 +1819,9 @@ machine whose tape drive you want to use.  `tar' calls `rmt' by running
 an `rsh' or `remsh' to the remote machine, optionally using a different
 login name if one is supplied.
 
-   A copy of the source for the remote tape server is provided.  It is
-Copyright (C) 1983 by the Regents of the University of California, but
-can be freely distributed.  It is compiled and installed by default.
+   A copy of the source for the remote tape server is provided.  Its
+source code can be freely distributed.  It is compiled and installed by
+default.
 
    Unless you use the `--absolute-names' (`-P') option, GNU `tar' will
 not allow you to create an archive that contains absolute file names (a
@@ -1777,7 +1975,7 @@ honor blocking.
    When reading an archive, `tar' can usually figure out the record
 size on itself.  When this is the case, and a non-standard record size
 was used when the archive was created, `tar' will print a message about
-a non-standard blocking factor, and then operate normally.  On some
+a non-standard blocking factor, and then operate normally(1).  On some
 tape devices, however, `tar' cannot figure out the record size itself.
 On most of those, you can specify a blocking factor (with
 `--blocking-factor') larger than the actual blocking factor, and then
@@ -1816,6 +2014,11 @@ physical characteristics of the tape device.
 * Format Variations::           Format Variations
 * Blocking Factor::             The Blocking Factor of an Archive
 
+   ---------- Footnotes ----------
+
+   (1) If this message is not needed, you can turn it off using the
+`--warning=no-record-size' option.
+
 \1f
 File: tar.info,  Node: Format Variations,  Next: Blocking Factor,  Up: Blocking
 
@@ -2347,7 +2550,7 @@ to inform it about the capacity of the tape:
    When GNU `tar' comes to the end of a storage media, it asks you to
 change the volume.  The built-in prompt for POSIX locale is(1):
 
-     Prepare volume #N for `ARCHIVE' and hit return:
+     Prepare volume #N for 'ARCHIVE' and hit return:
 
 where N is the ordinal number of the volume to be created and ARCHIVE
 is archive file or device name.
@@ -2388,17 +2591,19 @@ special "new volume script", that will be responsible for changing the
 volume, and instruct `tar' to use it instead of its normal prompting
 procedure:
 
-`--info-script=SCRIPT-NAME'
-`--new-volume-script=SCRIPT-NAME'
-`-F SCRIPT-NAME'
-     Specify the full name of the volume script to use.  The script can
-     be used to eject cassettes, or to broadcast messages such as
+`--info-script=COMMAND'
+`--new-volume-script=COMMAND'
+`-F COMMAND'
+     Specify the command to invoke when switching volumes.  The COMMAND
+     can be used to eject cassettes, or to broadcast messages such as
      `Someone please come change my tape' when performing unattended
      backups.
 
-   The SCRIPT-NAME is executed without any command line arguments.  It
-inherits `tar''s shell environment.  Additional data is passed to it
-via the following environment variables:
+   The COMMAND can contain additional options, if such are needed.
+*Note Running External Commands: external, for a detailed discussion of
+the way GNU `tar' runs external commands.  It inherits `tar''s shell
+environment.  Additional data is passed to it via the following
+environment variables:
 
 `TAR_VERSION'
      GNU `tar' version number.
@@ -2424,6 +2629,10 @@ via the following environment variables:
      File descriptor which can be used to communicate the new volume
      name to `tar'.
 
+   These variables can be used in the COMMAND itself, provided that
+they are properly quoted to prevent them from being expanded by the
+shell that invokes `tar'.
+
    The volume script can instruct `tar' to use new archive name, by
 writing in to file descriptor `$TAR_FD' (see below for an example).
 
@@ -2442,7 +2651,7 @@ it needs to write the second tape, and then back to the first tape,
 etc., just do either of:
 
      $ tar --create --multi-volume --file=/dev/tape0 --file=/dev/tape1 FILES
-     $ tar cMff /dev/tape0 /dev/tape1 FILES
+     $ tar -cM -f /dev/tape0 -f /dev/tape1 FILES
 
    The second method is to use the `n' response to the tape-change
 prompt.
@@ -2454,7 +2663,10 @@ the following volume script will create a series of archive files, named
 (as given by `--file' option) and VOL is the ordinal number of the
 archive being created:
 
-     #! /bin/sh
+     #! /bin/bash
+     # For this script it's advisable to use a shell, such as Bash,
+     # that supports a TAR_FD value greater than 9.
+
      echo Preparing volume $TAR_VOLUME of $TAR_ARCHIVE.
 
      name=`expr $TAR_ARCHIVE : '\(.*\)-.*'`
@@ -2647,7 +2859,7 @@ existing archives.  For example, if you wish to add files to `archive',
 presumably labeled with string `My volume', you will get:
 
      $ tar -rf archive --label 'My volume' .
-     tar: Archive not labeled to match `My volume'
+     tar: Archive not labeled to match 'My volume'
 
 in case its label does not match.  This will work even if `archive' is
 not labeled at all.
@@ -2668,7 +2880,7 @@ of a series.  For having this information different in each series
 created through a single script used on a regular basis, just manage to
 get some date string as part of the label.  For example:
 
-     $ tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`"
+     $ tar -cM -f /dev/tape -V "Daily backup for `date +%Y-%m-%d`"
      $ tar --create --file=/dev/tape --multi-volume \
           --label="Daily backup for `date +%Y-%m-%d`"
 
@@ -2969,11 +3181,15 @@ begin with `/' or contain `..'.  As this lets the archive overwrite any
 file in your system that you can write, the `--absolute-names' (`-P')
 option should be used only for trusted archives.
 
-   Conversely, with the `--keep-old-files' (`-k') option, `tar' refuses
-to replace existing files when extracting; and with the
-`--no-overwrite-dir' option, `tar' refuses to replace the permissions
-or ownership of already-existing directories.  These options may help
-when extracting from untrusted archives.
+   Conversely, with the `--keep-old-files' (`-k') and
+`--skip-old-files' options, `tar' refuses to replace existing files
+when extracting.  The difference between the two options is that the
+former treats existing files as errors whereas the latter just silently
+ignores them.
+
+   Finally, with the `--no-overwrite-dir' option, `tar' refuses to
+replace the permissions or ownership of already-existing directories.
+These options may help when extracting from untrusted archives.
 
 \1f
 File: tar.info,  Node: Live untrusted data,  Next: Security rules of thumb,  Prev: Integrity,  Up: Security
@@ -3069,7 +3285,7 @@ Appendix A Changes
 ******************
 
 This appendix lists some important user-visible changes between version
-GNU `tar' 1.26 and previous versions. An up-to-date version of this
+GNU `tar' 1.27 and previous versions. An up-to-date version of this
 document is available at the GNU `tar' documentation page
 (http://www.gnu.org/software/tar/manual/changes.html).
 
@@ -3309,47 +3525,79 @@ File: tar.info,  Node: Fixing Snapshot Files,  Next: Tar Internals,  Prev: Confi
 Appendix C Fixing Snapshot Files
 ********************************
 
-Sometimes device numbers can change after upgrading your kernel version
-or reconfiguring the hardware.  Reportedly this is the case with some
-newer Linux kernels, when using LVM.  In majority of cases this change
-is unnoticed by the users.  However, it influences `tar' incremental
+Various situations can cause device numbers to change: upgrading your
+kernel version, reconfiguring your hardware, loading kernel modules in a
+different order, using virtual volumes that are assembled dynamically
+(such as with LVM or RAID), hot-plugging drives (e.g. external USB or
+Firewire drives), etc.  In the majority of cases this change is
+unnoticed by the users.  However, it influences `tar' incremental
 backups: the device number is stored in tar snapshot files (*note
 Snapshot Files::) and is used to determine whether the file has changed
 since the last backup.  If the device numbers change for some reason,
-the next backup you run will be a full backup.
+by default the next backup you run will be a full backup.
 
    To minimize the impact in these cases, GNU `tar' comes with the
 `tar-snapshot-edit' utility for inspecting and updating device numbers
-in snapshot files.  The utility, written by Dustin J. Mitchell, is
-available from GNU `tar' home page
-(http://www.gnu.org/software/tar/utils/tar-snapshot-edit.html).
+in snapshot files.  (The utility, written by Dustin J. Mitchell, is
+also available from the GNU `tar' home page
+(http://www.gnu.org/software/tar/utils/tar-snapshot-edit.html).)
 
-   To obtain the device numbers used in the snapshot file, run
+   To obtain a summary of the device numbers found in the snapshot
+file, run
 
      $ tar-snapshot-edit SNAPFILE
 
 where SNAPFILE is the name of the snapshot file (you can supply as many
-files as you wish in a single command line).
-
-   To update all occurrences of the given device number in the file, use
-`-r' option.  It takes a single argument of the form `OLDDEV-NEWDEV',
-where OLDDEV is the device number used in the snapshot file, and NEWDEV
-is the corresponding new device number.  Both numbers may be specified
-in hex (e.g., `0xfe01'), decimal (e.g., `65025'), or as a major:minor
-number pair (e.g., `254:1').  To change several device numbers at once,
-specify them in a single comma-separated list, as in `-r
-0x3060-0x4500,0x307-0x4600'.
+files as you wish in a single command line).  You can then compare the
+numbers across snapshot files, or against those currently in use on the
+live filesystem (using `ls -l' or `stat').
+
+   Assuming the device numbers have indeed changed, it's often possible
+to simply tell GNU `tar' to ignore the device number when processing the
+incremental snapshot files for these backups, using the
+`--no-check-device' option (*note device numbers::).
+
+   Alternatively, you can use the `tar-edit-snapshot' script's `-r'
+option to update all occurrences of the given device number in the
+snapshot file(s).  It takes a single argument of the form
+`OLDDEV-NEWDEV',  where OLDDEV is the device number used in the
+snapshot file, and NEWDEV is the corresponding new device number.  Both
+numbers may be specified in hex (e.g., `0xfe01'), decimal (e.g.,
+`65025'), or as a major:minor number pair (e.g., `254:1').  To change
+several device numbers at once, specify them in a single
+comma-separated list, as in `-r 0x3060-0x4500,0x307-0x4600'.
 
    Before updating the snapshot file, it is a good idea to create a
 backup copy of it.  This is accomplished by `-b' option.  The name of
 the backup file is obtained by appending `~' to the original file name.
 
    An example session:
-     $ tar-snapshot-edit /var/backup/snap.a
-     file version 2
-     /tmp/snap: Device 0x0306 occurs 634 times.
-     $ tar-snapshot-edit -b -r 0x0306-0x4500 /var/backup/snap.a
-     file version 2
+     $ tar-snapshot-edit root_snap.0 boot_snap.0
+     File: root_snap.0
+       Detected snapshot file version: 2
+
+       Device 0x0000 occurs 1 times.
+       Device 0x0003 occurs 1 times.
+       Device 0x0005 occurs 1 times.
+       Device 0x0013 occurs 1 times.
+       Device 0x6801 occurs 1 times.
+       Device 0x6803 occurs 6626 times.
+       Device 0xfb00 occurs 1 times.
+
+     File: boot_snap.0
+       Detected snapshot file version: 2
+
+       Device 0x6801 occurs 3 times.
+     $ tar-snapshot-edit -b -r 0x6801-0x6901,0x6803-0x6903 root_snap.0 boot_snap.0
+     File: root_snap.0
+       Detected snapshot file version: 2
+
+       Updated 6627 records.
+
+     File: boot_snap.0
+       Detected snapshot file version: 2
+
+       Updated 3 records.
 
 \1f
 File: tar.info,  Node: Tar Internals,  Next: Genfile,  Prev: Fixing Snapshot Files,  Up: Top
@@ -3487,9 +3735,9 @@ distribution, this is part of file `src/tar.h':
      /* tar Header Block, GNU extensions.  */
 
      /* In GNU tar, SYMTYPE is for to symbolic links, and CONTTYPE is for
-        contiguous files, so maybe disobeying the `reserved' comment in POSIX
+        contiguous files, so maybe disobeying the "reserved" comment in POSIX
         header description.  I suspect these were meant to be used this way, and
-        should not have really been `reserved' in the published standards.  */
+        should not have really been "reserved" in the published standards.  */
 
      /* *BEWARE* *BEWARE* *BEWARE* that the following information is still
         boiling, and may change.  Even if the OLDGNU format description should be
@@ -4105,12 +4353,13 @@ backups (*note Incremental Dumps::).  It contains the status of the
 file system at the time of the dump and is used to determine which
 files were modified since the last backup.
 
-   GNU `tar' version 1.26 supports three snapshot file formats.  The
+   GNU `tar' version 1.27 supports three snapshot file formats.  The
 first format, called "format 0", is the one used by GNU `tar' versions
-up to 1.15.1. The second format, called "format 1" is an extended
-version of this format, that contains more metadata and allows for
-further extensions. It was used by version 1.15.1. Starting from
-version 1.16 and up to 1.26, the "format 2" is used.
+up to and including 1.15.1. The second format, called "format 1" is an
+extended version of this format, that contains more metadata and allows
+for further extensions. It was used by alpha release version 1.15.90.
+For alpha version 1.15.91 and stable releases version 1.16 up through
+1.27, the "format 2" is used.
 
    GNU `tar' is able to read all three formats, but will create
 snapshots only in format 2.
@@ -4123,13 +4372,16 @@ snapshots only in format 2.
      descriptions, one per line. Each description has the following
      format:
 
-          NFSDEV INODE NAME
+          [NFS]DEV INODE NAME
 
      where:
 
     NFS
           A single plus character (`+'), if this directory is located on
-          an NFS-mounted partition, or a single space otherwise;
+          an NFS-mounted partition, otherwise empty.
+
+          (That is, for non-NFS directories, the first character on the
+          description line contains the start of the DEV field.)
 
     DEV
           Device number of the directory;
@@ -4166,13 +4418,13 @@ snapshots only in format 2.
   2.   `Format 2' snapshot file begins with a format identifier, as
      described for version 1, e.g.:
 
-          GNU tar-1.26-2
+          GNU tar-1.27-2
 
      This line is followed by newline. Rest of file consists of
      records, separated by null (ASCII 0) characters. Thus, in contrast
      to the previous formats, format 2 snapshot is a binary file.
 
-     First two records are decimal numbers, representing the time of
+     First two records are decimal integers, representing the time of
      the last backup.  First number is the number of seconds, the
      second one is the number of nanoseconds, since the beginning of the
      epoch.  These are followed by arbitrary number of directory
@@ -4181,27 +4433,46 @@ snapshots only in format 2.
      Each "directory record" contains a set of metadata describing a
      particular directory.  Parts of a directory record are delimited
      with ASCII 0 characters.  The following table describes each part.
-     The "Number" type in this table stands for a decimal number in
-     ASCII notation.
-
-     Field         Type          Description
-     --------------------------------------------------------------------- 
-     nfs           Character     `1' if the directory is located on an
-                                 NFS-mounted partition, or `0' otherwise;
-     mtime-sec     Number        Modification time, seconds;
-     mtime-nano    Number        Modification time, nanoseconds;
-     dev-no        Number        Device number;
-     i-no          Number        I-node number;
-     name          String        Directory name; in contrast to the
-                                 previous versions it is not quoted;
-     contents      Dumpdir       Contents of the directory; *Note
-                                 Dumpdir::, for a description of its
-                                 format.
+     The "Number" type in this table stands for a decimal integer in
+     ASCII notation.  (Negative values are preceeded with a "-"
+     character, while positive values have no leading punctuation.)
+
+     Field             Type       Description
+     ---------------------------------------------------------------------- 
+     nfs               Character  `1' if the directory is located on an
+                                  NFS-mounted partition, or `0' otherwise;
+     timestamp_sec     Number     Modification time, seconds;
+     timestamp_nsec    Number     Modification time, nanoseconds;
+     dev               Number     Device number;
+     ino               Number     I-node number;
+     name              String     Directory name; in contrast to the
+                                  previous versions it is not quoted;
+     contents          Dumpdir    Contents of the directory; *Note
+                                  Dumpdir::, for a description of its
+                                  format.
 
 
      Dumpdirs stored in snapshot files contain only records of types
      `Y', `N' and `D'.
 
+     The specific range of values allowed in each of the "Number" fields
+     depends on the underlying C datatypes as determined when `tar' is
+     compiled.  To see the specific ranges allowed for a particular
+     `tar' binary, you can use the `--show-snapshot-field-ranges'
+     option:
+
+          $ tar --show-shapshot-field-ranges
+          This tar's snapshot file field ranges are
+             (field name      => [ min, max ]):
+
+              nfs             => [ 0, 1 ],
+              timestamp_sec   => [ -9223372036854775808, 9223372036854775807 ],
+              timestamp_nsec  => [ 0, 999999999 ],
+              dev             => [ 0, 18446744073709551615 ],
+              ino             => [ 0, 18446744073709551615 ],
+
+     (This example is from a GNU/Linux x86_64 system.)
+
 
 \1f
 File: tar.info,  Node: Dumpdir,  Prev: Snapshot Files,  Up: Tar Internals
@@ -4465,7 +4736,7 @@ In status mode, `genfile' prints file system status for each file
 specified in the command line. This mode is toggled by `--stat' (`-S')
 command line option. An optional argument to this option specifies
 output "format": a comma-separated list of `struct stat' fields to be
-displayed. This list can contain following identifiers :
+displayed. This list can contain following identifiers:
 
 name
      The file name.
@@ -5207,47 +5478,48 @@ Summary::.
 \0\b[index\0\b]
 * Menu:
 
+* --keep-directory-symlink, summary:     Option Summary.      (line 359)
 * absolute-names:                        absolute.            (line  10)
 * absolute-names, summary:               Option Summary.      (line   6)
-* add-file:                              files.               (line  84)
+* add-file:                              files.               (line  60)
 * after-date:                            after.               (line  24)
-* after-date, summary:                   Option Summary.      (line  12)
+* after-date, summary:                   Option Summary.      (line  13)
 * anchored:                              controlling pattern-matching.
                                                               (line  79)
-* anchored, summary:                     Option Summary.      (line  15)
+* anchored, summary:                     Option Summary.      (line  16)
 * append <1>:                            appending files.     (line   6)
 * append:                                append.              (line   6)
 * append, summary:                       Operation Summary.   (line   6)
 * atime-preserve:                        Attributes.          (line  10)
-* atime-preserve, summary:               Option Summary.      (line  19)
-* auto-compress:                         gzip.                (line 156)
-* auto-compress, summary:                Option Summary.      (line  65)
+* atime-preserve, summary:               Option Summary.      (line  20)
+* auto-compress:                         gzip.                (line 155)
+* auto-compress, summary:                Option Summary.      (line  66)
 * backup:                                backup.              (line  41)
-* backup, summary:                       Option Summary.      (line  71)
+* backup, summary:                       Option Summary.      (line  72)
 * block-number:                          verbose.             (line 115)
-* block-number, summary:                 Option Summary.      (line  76)
+* block-number, summary:                 Option Summary.      (line  77)
 * blocking-factor:                       Blocking Factor.     (line   8)
-* blocking-factor, summary:              Option Summary.      (line  82)
-* bzip2, summary:                        Option Summary.      (line  87)
+* blocking-factor, summary:              Option Summary.      (line  83)
+* bzip2, summary:                        Option Summary.      (line  88)
 * catenate:                              concatenate.         (line   6)
 * catenate, summary:                     Operation Summary.   (line  10)
 * check-device, described:               Incremental Dumps.   (line 108)
-* check-device, summary:                 Option Summary.      (line  92)
+* check-device, summary:                 Option Summary.      (line  93)
 * check-links, described:                hard links.          (line  31)
-* check-links, summary:                  Option Summary.      (line 143)
+* check-links, summary:                  Option Summary.      (line 144)
 * checkpoint:                            checkpoints.         (line   6)
 * checkpoint, defined:                   checkpoints.         (line  13)
-* checkpoint, summary:                   Option Summary.      (line  97)
+* checkpoint, summary:                   Option Summary.      (line  98)
 * checkpoint-action:                     checkpoints.         (line   6)
 * checkpoint-action, defined:            checkpoints.         (line  22)
-* checkpoint-action, summary:            Option Summary.      (line 105)
+* checkpoint-action, summary:            Option Summary.      (line 106)
 * compare:                               compare.             (line   6)
 * compare, summary:                      Operation Summary.   (line  14)
 * compress:                              gzip.                (line 113)
-* compress, summary:                     Option Summary.      (line 152)
+* compress, summary:                     Option Summary.      (line 153)
 * concatenate:                           concatenate.         (line   6)
 * concatenate, summary:                  Operation Summary.   (line  20)
-* confirmation, summary:                 Option Summary.      (line 159)
+* confirmation, summary:                 Option Summary.      (line 160)
 * create, additional options:            create options.      (line   6)
 * create, complementary notes:           Basic tar.           (line  11)
 * create, introduced:                    Creating the archive.
@@ -5257,38 +5529,37 @@ Summary::.
 * create, using with --verify:           verify.              (line  24)
 * delay-directory-restore:               Directory Modification Times and Permissions.
                                                               (line  62)
-* delay-directory-restore, summary:      Option Summary.      (line 162)
+* delay-directory-restore, summary:      Option Summary.      (line 163)
 * delete:                                delete.              (line   6)
 * delete, summary:                       Operation Summary.   (line  29)
 * delete, using before -append:          append.              (line  47)
 * dereference:                           dereference.         (line   6)
-* dereference, summary:                  Option Summary.      (line 167)
+* dereference, summary:                  Option Summary.      (line 168)
 * diff, summary:                         Operation Summary.   (line  33)
 * directory:                             directory.           (line  11)
-* directory, summary:                    Option Summary.      (line 173)
-* directory, using in --files-from argument: files.           (line  60)
+* directory, summary:                    Option Summary.      (line 174)
 * exclude:                               exclude.             (line   6)
 * exclude, potential problems with:      problems with exclude.
                                                               (line   6)
-* exclude, summary:                      Option Summary.      (line 180)
+* exclude, summary:                      Option Summary.      (line 181)
 * exclude-backups:                       exclude.             (line  82)
-* exclude-backups, summary:              Option Summary.      (line 184)
+* exclude-backups, summary:              Option Summary.      (line 185)
 * exclude-caches:                        exclude.             (line 105)
-* exclude-caches, summary:               Option Summary.      (line 192)
+* exclude-caches, summary:               Option Summary.      (line 193)
 * exclude-caches-all:                    exclude.             (line 113)
-* exclude-caches-all, summary:           Option Summary.      (line 205)
+* exclude-caches-all, summary:           Option Summary.      (line 206)
 * exclude-caches-under:                  exclude.             (line 109)
-* exclude-caches-under, summary:         Option Summary.      (line 199)
+* exclude-caches-under, summary:         Option Summary.      (line 200)
 * exclude-from:                          exclude.             (line   6)
-* exclude-from, summary:                 Option Summary.      (line 187)
+* exclude-from, summary:                 Option Summary.      (line 188)
 * exclude-tag:                           exclude.             (line 122)
-* exclude-tag, summary:                  Option Summary.      (line 209)
+* exclude-tag, summary:                  Option Summary.      (line 210)
 * exclude-tag-all:                       exclude.             (line 130)
-* exclude-tag-all, summary:              Option Summary.      (line 219)
+* exclude-tag-all, summary:              Option Summary.      (line 220)
 * exclude-tag-under:                     exclude.             (line 126)
-* exclude-tag-under, summary:            Option Summary.      (line 214)
+* exclude-tag-under, summary:            Option Summary.      (line 215)
 * exclude-vcs:                           exclude.             (line  37)
-* exclude-vcs, summary:                  Option Summary.      (line 223)
+* exclude-vcs, summary:                  Option Summary.      (line 224)
 * extract:                               extract.             (line   6)
 * extract, additional options:           extract options.     (line   6)
 * extract, complementary notes:          Basic tar.           (line  48)
@@ -5297,56 +5568,56 @@ Summary::.
                                                               (line 121)
 * file:                                  file.                (line   6)
 * file, short description:               file.                (line  15)
-* file, summary:                         Option Summary.      (line 229)
+* file, summary:                         Option Summary.      (line 230)
 * file, tutorial:                        file tutorial.       (line   6)
 * files-from:                            files.               (line  14)
-* files-from, summary:                   Option Summary.      (line 235)
+* files-from, summary:                   Option Summary.      (line 236)
 * force-local, short description:        Device.              (line  70)
-* force-local, summary:                  Option Summary.      (line 241)
-* format, summary:                       Option Summary.      (line 246)
-* full-time, summary:                    Option Summary.      (line 271)
+* force-local, summary:                  Option Summary.      (line 242)
+* format, summary:                       Option Summary.      (line 247)
+* full-time, summary:                    Option Summary.      (line 272)
 * get, summary:                          Operation Summary.   (line  42)
-* group:                                 override.            (line  75)
-* group, summary:                        Option Summary.      (line 289)
-* gunzip, summary:                       Option Summary.      (line 297)
+* group:                                 override.            (line  88)
+* group, summary:                        Option Summary.      (line 290)
+* gunzip, summary:                       Option Summary.      (line 298)
 * gzip:                                  gzip.                (line  91)
-* gzip, summary:                         Option Summary.      (line 297)
+* gzip, summary:                         Option Summary.      (line 298)
 * hard-dereference, described:           hard links.          (line  59)
-* hard-dereference, summary:             Option Summary.      (line 305)
+* hard-dereference, summary:             Option Summary.      (line 306)
 * help:                                  help tutorial.       (line   6)
-* help, introduction:                    help.                (line  27)
-* help, summary:                         Option Summary.      (line 311)
+* help, introduction:                    help.                (line  26)
+* help, summary:                         Option Summary.      (line 312)
 * ignore-case:                           controlling pattern-matching.
                                                               (line  86)
-* ignore-case, summary:                  Option Summary.      (line 316)
+* ignore-case, summary:                  Option Summary.      (line 317)
 * ignore-command-error:                  Writing to an External Program.
-                                                              (line  98)
-* ignore-command-error, summary:         Option Summary.      (line 320)
+                                                              (line 110)
+* ignore-command-error, summary:         Option Summary.      (line 321)
 * ignore-failed-read:                    Ignore Failed Read.  (line   7)
-* ignore-failed-read, summary:           Option Summary.      (line 324)
+* ignore-failed-read, summary:           Option Summary.      (line 325)
 * ignore-zeros:                          Ignore Zeros.        (line   6)
 * ignore-zeros, short description:       Blocking Factor.     (line 156)
-* ignore-zeros, summary:                 Option Summary.      (line 328)
-* incremental, summary:                  Option Summary.      (line 333)
+* ignore-zeros, summary:                 Option Summary.      (line 329)
+* incremental, summary:                  Option Summary.      (line 334)
 * incremental, using with --list:        Incremental Dumps.   (line 186)
-* index-file, summary:                   Option Summary.      (line 340)
+* index-file, summary:                   Option Summary.      (line 341)
 * info-script:                           Multi-Volume Archives.
                                                               (line  88)
 * info-script, short description:        Device.              (line 122)
-* info-script, summary:                  Option Summary.      (line 343)
+* info-script, summary:                  Option Summary.      (line 344)
 * interactive:                           interactive.         (line  14)
-* interactive, summary:                  Option Summary.      (line 351)
+* interactive, summary:                  Option Summary.      (line 352)
 * keep-newer-files:                      Keep Newer Files.    (line   6)
-* keep-newer-files, summary:             Option Summary.      (line 358)
-* keep-old-files:                        Keep Old Files.      (line   6)
+* keep-newer-files, summary:             Option Summary.      (line 372)
+* keep-old-files:                        Keep Old Files.      (line   9)
 * keep-old-files, introduced:            Dealing with Old Files.
                                                               (line  16)
-* keep-old-files, summary:               Option Summary.      (line 362)
+* keep-old-files, summary:               Option Summary.      (line 376)
 * label <1>:                             label.               (line   6)
 * label:                                 Tape Files.          (line   6)
-* label, summary:                        Option Summary.      (line 367)
+* label, summary:                        Option Summary.      (line 384)
 * level, described:                      Incremental Dumps.   (line  76)
-* level, summary:                        Option Summary.      (line 374)
+* level, summary:                        Option Summary.      (line 391)
 * list:                                  list.                (line   6)
 * list, summary:                         Operation Summary.   (line  46)
 * list, using with --incremental:        Incremental Dumps.   (line 186)
@@ -5354,805 +5625,207 @@ Summary::.
 * list, using with --verbose:            list.                (line  30)
 * list, using with file name arguments:  list.                (line  68)
 * listed-incremental, described:         Incremental Dumps.   (line  14)
-* listed-incremental, summary:           Option Summary.      (line 384)
+* listed-incremental, summary:           Option Summary.      (line 401)
 * listed-incremental, using with --extract: Incremental Dumps.
                                                               (line 121)
 * listed-incremental, using with --list: Incremental Dumps.   (line 186)
 * lzip:                                  gzip.                (line 104)
-* lzip, summary:                         Option Summary.      (line 392)
+* lzip, summary:                         Option Summary.      (line 409)
 * lzma:                                  gzip.                (line 107)
-* lzma, summary:                         Option Summary.      (line 396)
+* lzma, summary:                         Option Summary.      (line 413)
 * lzop:                                  gzip.                (line 110)
 * mode:                                  override.            (line  14)
-* mode, summary:                         Option Summary.      (line 404)
+* mode, summary:                         Option Summary.      (line 421)
 * mtime:                                 override.            (line  29)
-* mtime, summary:                        Option Summary.      (line 410)
+* mtime, summary:                        Option Summary.      (line 427)
 * multi-volume:                          Multi-Volume Archives.
                                                               (line   6)
 * multi-volume, short description:       Device.              (line  88)
-* multi-volume, summary:                 Option Summary.      (line 419)
+* multi-volume, summary:                 Option Summary.      (line 436)
 * new-volume-script:                     Multi-Volume Archives.
                                                               (line  88)
 * new-volume-script, short description:  Device.              (line 122)
-* new-volume-script, summary:            Option Summary.      (line 343)
+* new-volume-script, summary:            Option Summary.      (line 344)
 * newer:                                 after.               (line  24)
-* newer, summary:                        Option Summary.      (line 427)
+* newer, summary:                        Option Summary.      (line 444)
 * newer-mtime:                           after.               (line  35)
-* newer-mtime, summary:                  Option Summary.      (line 435)
+* newer-mtime, summary:                  Option Summary.      (line 452)
 * no-anchored:                           controlling pattern-matching.
                                                               (line  79)
-* no-anchored, summary:                  Option Summary.      (line 440)
-* no-auto-compress, summary:             Option Summary.      (line 444)
+* no-anchored, summary:                  Option Summary.      (line 457)
+* no-auto-compress, summary:             Option Summary.      (line 461)
 * no-check-device, described:            Incremental Dumps.   (line 104)
-* no-check-device, summary:              Option Summary.      (line 448)
+* no-check-device, summary:              Option Summary.      (line 465)
 * no-delay-directory-restore:            Directory Modification Times and Permissions.
                                                               (line  68)
-* no-delay-directory-restore, summary:   Option Summary.      (line 453)
+* no-delay-directory-restore, summary:   Option Summary.      (line 470)
 * no-ignore-case:                        controlling pattern-matching.
                                                               (line  86)
-* no-ignore-case, summary:               Option Summary.      (line 459)
+* no-ignore-case, summary:               Option Summary.      (line 476)
 * no-ignore-command-error:               Writing to an External Program.
-                                                              (line 103)
-* no-ignore-command-error, summary:      Option Summary.      (line 462)
+                                                              (line 115)
+* no-ignore-command-error, summary:      Option Summary.      (line 479)
 * no-null, described:                    nul.                 (line  15)
-* no-null, summary:                      Option Summary.      (line 466)
-* no-overwrite-dir, summary:             Option Summary.      (line 471)
-* no-quote-chars, summary:               Option Summary.      (line 475)
+* no-null, summary:                      Option Summary.      (line 483)
+* no-overwrite-dir, summary:             Option Summary.      (line 488)
+* no-quote-chars, summary:               Option Summary.      (line 492)
 * no-recursion:                          recurse.             (line  11)
-* no-recursion, summary:                 Option Summary.      (line 480)
+* no-recursion, summary:                 Option Summary.      (line 497)
 * no-same-owner:                         Attributes.          (line  63)
-* no-same-owner, summary:                Option Summary.      (line 484)
-* no-same-permissions, summary:          Option Summary.      (line 490)
-* no-seek, summary:                      Option Summary.      (line 495)
+* no-same-owner, summary:                Option Summary.      (line 501)
+* no-same-permissions, summary:          Option Summary.      (line 507)
+* no-seek, summary:                      Option Summary.      (line 512)
 * no-unquote:                            Selecting Archive Members.
                                                               (line  42)
-* no-unquote, summary:                   Option Summary.      (line 500)
+* no-unquote, summary:                   Option Summary.      (line 517)
 * no-wildcards:                          controlling pattern-matching.
                                                               (line  41)
-* no-wildcards, summary:                 Option Summary.      (line 504)
+* no-wildcards, summary:                 Option Summary.      (line 521)
 * no-wildcards-match-slash:              controlling pattern-matching.
                                                               (line  92)
-* no-wildcards-match-slash, summary:     Option Summary.      (line 507)
+* no-wildcards-match-slash, summary:     Option Summary.      (line 524)
 * null, described:                       nul.                 (line  11)
-* null, summary:                         Option Summary.      (line 510)
+* null, summary:                         Option Summary.      (line 527)
 * numeric-owner:                         Attributes.          (line  69)
-* numeric-owner, summary:                Option Summary.      (line 516)
+* numeric-owner, summary:                Option Summary.      (line 533)
 * occurrence, described:                 append.              (line  34)
-* occurrence, summary:                   Option Summary.      (line 533)
-* old-archive, summary:                  Option Summary.      (line 547)
+* occurrence, summary:                   Option Summary.      (line 550)
+* old-archive, summary:                  Option Summary.      (line 564)
 * one-file-system:                       one.                 (line  14)
-* one-file-system, summary:              Option Summary.      (line 550)
+* one-file-system, summary:              Option Summary.      (line 567)
 * overwrite:                             Overwrite Old Files. (line   6)
 * overwrite, introduced:                 Dealing with Old Files.
-                                                              (line  22)
-* overwrite, summary:                    Option Summary.      (line 555)
+                                                              (line  32)
+* overwrite, summary:                    Option Summary.      (line 572)
 * overwrite-dir:                         Overwrite Old Files. (line  28)
 * overwrite-dir, introduced:             Dealing with Old Files.
                                                               (line   6)
-* overwrite-dir, summary:                Option Summary.      (line 559)
+* overwrite-dir, summary:                Option Summary.      (line 576)
 * owner:                                 override.            (line  57)
-* owner, summary:                        Option Summary.      (line 563)
+* owner, summary:                        Option Summary.      (line 580)
 * pax-option:                            PAX keywords.        (line   6)
-* pax-option, summary:                   Option Summary.      (line 572)
-* portability, summary:                  Option Summary.      (line 578)
-* posix, summary:                        Option Summary.      (line 582)
+* pax-option, summary:                   Option Summary.      (line 588)
+* portability, summary:                  Option Summary.      (line 594)
+* posix, summary:                        Option Summary.      (line 598)
 * preserve:                              Attributes.          (line 122)
-* preserve, summary:                     Option Summary.      (line 585)
+* preserve, summary:                     Option Summary.      (line 601)
 * preserve-order:                        Same Order.          (line   6)
-* preserve-order, summary:               Option Summary.      (line 589)
+* preserve-order, summary:               Option Summary.      (line 605)
 * preserve-permissions:                  Setting Access Permissions.
                                                               (line  10)
 * preserve-permissions, short description: Attributes.        (line 109)
-* preserve-permissions, summary:         Option Summary.      (line 592)
-* quote-chars, summary:                  Option Summary.      (line 602)
+* preserve-permissions, summary:         Option Summary.      (line 608)
+* quote-chars, summary:                  Option Summary.      (line 618)
 * quoting-style:                         quoting styles.      (line  38)
-* quoting-style, summary:                Option Summary.      (line 606)
+* quoting-style, summary:                Option Summary.      (line 622)
 * read-full-records <1>:                 read full records.   (line   6)
 * read-full-records:                     Reading.             (line   6)
 * read-full-records, short description:  Blocking Factor.     (line 172)
-* read-full-records, summary:            Option Summary.      (line 613)
-* record-size, summary:                  Option Summary.      (line 618)
+* read-full-records, summary:            Option Summary.      (line 629)
+* record-size, summary:                  Option Summary.      (line 634)
 * recursion:                             recurse.             (line  22)
-* recursion, summary:                    Option Summary.      (line 625)
+* recursion, summary:                    Option Summary.      (line 641)
 * recursive-unlink:                      Recursive Unlink.    (line   6)
-* recursive-unlink, summary:             Option Summary.      (line 629)
+* recursive-unlink, summary:             Option Summary.      (line 645)
 * remove-files:                          remove files.        (line   6)
-* remove-files, summary:                 Option Summary.      (line 634)
-* restrict, summary:                     Option Summary.      (line 638)
-* rmt-command, summary:                  Option Summary.      (line 643)
+* remove-files, summary:                 Option Summary.      (line 650)
+* restrict, summary:                     Option Summary.      (line 654)
+* rmt-command, summary:                  Option Summary.      (line 659)
 * rsh-command:                           Device.              (line  73)
-* rsh-command, summary:                  Option Summary.      (line 647)
+* rsh-command, summary:                  Option Summary.      (line 663)
 * same-order:                            Same Order.          (line   6)
-* same-order, summary:                   Option Summary.      (line 651)
+* same-order, summary:                   Option Summary.      (line 667)
 * same-owner:                            Attributes.          (line  44)
-* same-owner, summary:                   Option Summary.      (line 659)
+* same-owner, summary:                   Option Summary.      (line 675)
 * same-permissions:                      Setting Access Permissions.
                                                               (line  10)
 * same-permissions, short description:   Attributes.          (line 109)
-* same-permissions, summary:             Option Summary.      (line 592)
-* seek, summary:                         Option Summary.      (line 668)
+* same-permissions, summary:             Option Summary.      (line 608)
+* seek, summary:                         Option Summary.      (line 684)
 * show-defaults:                         defaults.            (line   6)
-* show-defaults, summary:                Option Summary.      (line 677)
+* show-defaults, summary:                Option Summary.      (line 693)
 * show-omitted-dirs:                     verbose.             (line 107)
-* show-omitted-dirs, summary:            Option Summary.      (line 689)
+* show-omitted-dirs, summary:            Option Summary.      (line 705)
+* show-snapshot-field-ranges:            Snapshot Files.      (line 113)
+* show-snapshot-field-ranges, summary:   Option Summary.      (line 709)
 * show-stored-names:                     list.                (line  60)
-* show-stored-names, summary:            Option Summary.      (line 693)
+* show-stored-names, summary:            Option Summary.      (line 714)
 * show-transformed-names:                transform.           (line  45)
-* show-transformed-names, summary:       Option Summary.      (line 693)
+* show-transformed-names, summary:       Option Summary.      (line 714)
+* skip-old-files, introduced:            Dealing with Old Files.
+                                                              (line  28)
+* skip-old-files, summary:               Option Summary.      (line 722)
 * sparse:                                sparse.              (line  22)
-* sparse, summary:                       Option Summary.      (line 701)
+* sparse, summary:                       Option Summary.      (line 734)
 * sparse-version:                        sparse.              (line  57)
-* sparse-version, summary:               Option Summary.      (line 706)
+* sparse-version, summary:               Option Summary.      (line 739)
 * starting-file:                         Starting File.       (line   6)
-* starting-file, summary:                Option Summary.      (line 711)
+* starting-file, summary:                Option Summary.      (line 744)
 * strip-components:                      transform.           (line  25)
-* strip-components, summary:             Option Summary.      (line 717)
+* strip-components, summary:             Option Summary.      (line 750)
 * suffix:                                backup.              (line  68)
-* suffix, summary:                       Option Summary.      (line 726)
+* suffix, summary:                       Option Summary.      (line 759)
 * tape-length:                           Multi-Volume Archives.
                                                               (line  33)
 * tape-length, short description:        Device.              (line  96)
-* tape-length, summary:                  Option Summary.      (line 730)
+* tape-length, summary:                  Option Summary.      (line 763)
 * test-label:                            label.               (line  35)
-* test-label, summary:                   Option Summary.      (line 739)
+* test-label, summary:                   Option Summary.      (line 772)
 * to-command:                            Writing to an External Program.
                                                               (line   9)
-* to-command, summary:                   Option Summary.      (line 743)
+* to-command, summary:                   Option Summary.      (line 776)
 * to-stdout:                             Writing to Standard Output.
                                                               (line  14)
-* to-stdout, summary:                    Option Summary.      (line 747)
+* to-stdout, summary:                    Option Summary.      (line 780)
 * totals:                                verbose.             (line  46)
-* totals, summary:                       Option Summary.      (line 752)
+* totals, summary:                       Option Summary.      (line 785)
 * touch <1>:                             Attributes.          (line  33)
 * touch:                                 Data Modification Times.
                                                               (line  15)
-* touch, summary:                        Option Summary.      (line 757)
+* touch, summary:                        Option Summary.      (line 790)
 * transform:                             transform.           (line  74)
-* transform, summary:                    Option Summary.      (line 763)
+* transform, summary:                    Option Summary.      (line 796)
 * uncompress:                            gzip.                (line 113)
-* uncompress, summary:                   Option Summary.      (line 152)
+* uncompress, summary:                   Option Summary.      (line 153)
 * ungzip:                                gzip.                (line  91)
-* ungzip, summary:                       Option Summary.      (line 297)
+* ungzip, summary:                       Option Summary.      (line 298)
 * unlink-first:                          Unlink First.        (line   6)
 * unlink-first, introduced:              Dealing with Old Files.
-                                                              (line  42)
-* unlink-first, summary:                 Option Summary.      (line 783)
+                                                              (line  52)
+* unlink-first, summary:                 Option Summary.      (line 816)
 * unquote:                               Selecting Archive Members.
                                                               (line  39)
-* unquote, summary:                      Option Summary.      (line 789)
+* unquote, summary:                      Option Summary.      (line 822)
 * update <1>:                            how to update.       (line   6)
 * update:                                update.              (line   6)
 * update, summary:                       Operation Summary.   (line  50)
-* usage:                                 help.                (line  54)
-* use-compress-program:                  gzip.                (line 178)
-* use-compress-program, summary:         Option Summary.      (line 793)
-* utc, summary:                          Option Summary.      (line 798)
+* usage:                                 help.                (line  53)
+* use-compress-program:                  gzip.                (line 177)
+* use-compress-program, summary:         Option Summary.      (line 826)
+* utc, summary:                          Option Summary.      (line 831)
 * verbose:                               verbose.             (line  18)
 * verbose, introduced:                   verbose tutorial.    (line   6)
-* verbose, summary:                      Option Summary.      (line 802)
+* verbose, summary:                      Option Summary.      (line 835)
 * verbose, using with --create:          create verbose.      (line   6)
 * verbose, using with --list:            list.                (line  30)
 * verify, short description:             verify.              (line   8)
-* verify, summary:                       Option Summary.      (line 809)
+* verify, summary:                       Option Summary.      (line 842)
 * verify, using with --create:           verify.              (line  24)
 * version:                               help.                (line   6)
-* version, summary:                      Option Summary.      (line 814)
+* version, summary:                      Option Summary.      (line 847)
 * volno-file:                            Multi-Volume Archives.
                                                               (line  79)
-* volno-file, summary:                   Option Summary.      (line 819)
+* volno-file, summary:                   Option Summary.      (line 852)
 * warning, explained:                    warnings.            (line  12)
-* warning, summary:                      Option Summary.      (line 824)
+* warning, summary:                      Option Summary.      (line 857)
 * wildcards:                             controlling pattern-matching.
                                                               (line  38)
-* wildcards, summary:                    Option Summary.      (line 829)
+* wildcards, summary:                    Option Summary.      (line 862)
 * wildcards-match-slash:                 controlling pattern-matching.
                                                               (line  92)
-* wildcards-match-slash, summary:        Option Summary.      (line 833)
+* wildcards-match-slash, summary:        Option Summary.      (line 866)
 * xform:                                 transform.           (line  74)
-* xform, summary:                        Option Summary.      (line 763)
+* xform, summary:                        Option Summary.      (line 796)
 * xz:                                    gzip.                (line  96)
-* xz, summary:                           Option Summary.      (line 836)
-
-\1f
-File: tar.info,  Node: Index,  Prev: Index of Command Line Options,  Up: Top
-
-Appendix I Index
-****************
-
-\0\b[index\0\b]
-* Menu:
-
-* %s: Directory has been renamed from %s, warning message: warnings.
-                                                              (line 108)
-* %s: Directory has been renamed, warning message: warnings.  (line 108)
-* %s: Directory is new, warning message: warnings.            (line 110)
-* %s: directory is on a different device: not purging, warning message: warnings.
-                                                              (line 113)
-* -after-date and -update compared:      after.               (line  19)
-* -newer-mtime and -update compared:     after.               (line  19)
-* A lone zero block at, warning message: warnings.            (line  35)
-* abbreviations for months:              Calendar date items. (line  38)
-* absolute file names <1>:               Remote Tape Server.  (line  17)
-* absolute file names:                   absolute.            (line   6)
-* Adding archives to an archive:         concatenate.         (line   6)
-* Adding files to an Archive:            appending files.     (line   6)
-* ADMINISTRATOR:                         General-Purpose Variables.
-                                                              (line   7)
-* Age, excluding files by:               after.               (line   6)
-* ago in date strings:                   Relative items in date strings.
-                                                              (line  23)
-* all:                                   warnings.            (line  28)
-* alone-zero-block:                      warnings.            (line  35)
-* alternative decompression programs:    gzip.                (line  54)
-* am in date strings:                    Time of day items.   (line  22)
-* Appending files to an Archive:         appending files.     (line   6)
-* appending files to existing archive:   append.              (line   6)
-* Arch, excluding files:                 exclude.             (line  37)
-* archive:                               Definitions.         (line   6)
-* Archive creation:                      file.                (line  34)
-* archive member:                        Definitions.         (line  15)
-* Archive Name:                          file.                (line   6)
-* Archive, creation of:                  create.              (line   8)
-* Archives, Appending files to:          appending files.     (line   6)
-* archives, binary equivalent:           PAX keywords.        (line 132)
-* Archiving Directories:                 create dir.          (line   6)
-* archiving files:                       Top.                 (line  24)
-* ARGP_HELP_FMT, environment variable:   Configuring Help Summary.
-                                                              (line  21)
-* arguments to long options:             Long Options.        (line  31)
-* arguments to old options:              Old Options.         (line  17)
-* arguments to short options:            Short Options.       (line  13)
-* atrributes, files:                     Attributes.          (line   6)
-* Attempting extraction of symbolic links as hard links, warning message: warnings.
-                                                              (line  77)
-* authors of parse_datetime:             Authors of parse_datetime.
-                                                              (line   6)
-* Avoiding recursion in directories:     recurse.             (line   6)
-* backup options:                        backup.              (line   6)
-* backup suffix:                         backup.              (line  68)
-* BACKUP_DIRS:                           General-Purpose Variables.
-                                                              (line  29)
-* BACKUP_FILES:                          General-Purpose Variables.
-                                                              (line  55)
-* BACKUP_HOUR:                           General-Purpose Variables.
-                                                              (line  11)
-* backups <1>:                           Backups.             (line   6)
-* backups:                               backup.              (line  41)
-* bad-dumpdir:                           warnings.            (line 116)
-* basic operations:                      Operations.          (line   6)
-* Bazaar, excluding files:               exclude.             (line  37)
-* beginning of time, for POSIX:          Seconds since the Epoch.
-                                                              (line  13)
-* bell, checkpoint action:               checkpoints.         (line  65)
-* Bellovin, Steven M.:                   Authors of parse_datetime.
-                                                              (line   6)
-* Berets, Jim:                           Authors of parse_datetime.
-                                                              (line   6)
-* Berry, K.:                             Authors of parse_datetime.
-                                                              (line  19)
-* binary equivalent archives, creating:  PAX keywords.        (line 132)
-* block:                                 Blocking.            (line   6)
-* Block number where error occurred:     verbose.             (line 115)
-* BLOCKING:                              General-Purpose Variables.
-                                                              (line  25)
-* blocking factor:                       Blocking Factor.     (line 194)
-* Blocking Factor:                       Blocking Factor.     (line   6)
-* Blocks per record:                     Blocking Factor.     (line   6)
-* bug reports:                           Reports.             (line   6)
-* Bytes per record:                      Blocking Factor.     (line   6)
-* bzip2:                                 gzip.                (line   6)
-* cachedir:                              warnings.            (line  43)
-* calendar date item:                    Calendar date items. (line   6)
-* case, ignored in dates:                General date syntax. (line  64)
-* cat vs concatenate:                    concatenate.         (line  63)
-* Changing directory mid-stream:         directory.           (line   6)
-* Character class, excluding characters from: wildcards.      (line  34)
-* checkpoints, defined:                  checkpoints.         (line   6)
-* Choosing an archive file:              file.                (line   6)
-* comments, in dates:                    General date syntax. (line  64)
-* compress:                              gzip.                (line   6)
-* Compressed archives:                   gzip.                (line   6)
-* concatenate vs cat:                    concatenate.         (line  63)
-* Concatenating Archives:                concatenate.         (line   6)
-* contains a cache directory tag, warning message: warnings.  (line  43)
-* contiguous-cast:                       warnings.            (line  74)
-* corrupted archives <1>:                gzip.                (line 146)
-* corrupted archives:                    Full Dumps.          (line   8)
-* Creation of the archive:               create.              (line   8)
-* Current %s is newer or same age, warning message: warnings. (line  83)
-* CVS, excluding files:                  exclude.             (line  37)
-* Darcs, excluding files:                exclude.             (line  37)
-* DAT blocking:                          Blocking Factor.     (line 204)
-* Data Modification time, excluding files by: after.          (line   6)
-* Data modification times of extracted files: Data Modification Times.
-                                                              (line   6)
-* date format, ISO 8601:                 Calendar date items. (line  30)
-* date input formats:                    Date input formats.  (line   6)
-* day in date strings:                   Relative items in date strings.
-                                                              (line  15)
-* day of week item:                      Day of week items.   (line   6)
-* decompress-program:                    warnings.            (line  89)
-* Deleting files from an archive:        delete.              (line   6)
-* Deleting from tape archives:           delete.              (line  17)
-* dereferencing hard links:              hard links.          (line   6)
-* Descending directories, avoiding:      recurse.             (line   6)
-* Device numbers, changing:              Fixing Snapshot Files.
-                                                              (line   6)
-* Device numbers, using in incremental backups: Incremental Dumps.
-                                                              (line  90)
-* Directories, Archiving:                create dir.          (line   6)
-* Directories, avoiding recursion:       recurse.             (line   6)
-* Directory, changing mid-stream:        directory.           (line   6)
-* DIRLIST:                               General-Purpose Variables.
-                                                              (line  51)
-* displacement of dates:                 Relative items in date strings.
-                                                              (line   6)
-* doc-opt-col:                           Configuring Help Summary.
-                                                              (line  94)
-* door ignored, warning message:         warnings.            (line  50)
-* dot, checkpoint action:                checkpoints.         (line  80)
-* Double-checking a write operation:     verify.              (line   6)
-* DUMP_BEGIN:                            User Hooks.          (line  32)
-* DUMP_END:                              User Hooks.          (line  36)
-* DUMP_REMIND_SCRIPT:                    General-Purpose Variables.
-                                                              (line 102)
-* dumps, full:                           Full Dumps.          (line   8)
-* dup-args:                              Configuring Help Summary.
-                                                              (line  51)
-* dup-args-note:                         Configuring Help Summary.
-                                                              (line  68)
-* echo, checkpoint action:               checkpoints.         (line  25)
-* Eggert, Paul:                          Authors of parse_datetime.
-                                                              (line   6)
-* End-of-archive blocks, ignoring:       Ignore Zeros.        (line   6)
-* End-of-archive info script:            Multi-Volume Archives.
-                                                              (line  88)
-* entry:                                 Naming tar Archives. (line  11)
-* epoch, for POSIX:                      Seconds since the Epoch.
-                                                              (line  13)
-* Error message, block number of:        verbose.             (line 125)
-* Exabyte blocking:                      Blocking Factor.     (line 204)
-* exclude:                               exclude.             (line  12)
-* exclude-caches:                        exclude.             (line  93)
-* exclude-from:                          exclude.             (line  25)
-* exclude-tag:                           exclude.             (line 116)
-* Excluding characters from a character class: wildcards.     (line  34)
-* Excluding file by age:                 after.               (line   6)
-* Excluding files by file system:        exclude.             (line   6)
-* Excluding files by name and pattern:   exclude.             (line   6)
-* Exec Mode, genfile:                    Exec Mode.           (line   6)
-* exec, checkpoint action:               checkpoints.         (line  96)
-* existing backup method:                backup.              (line  59)
-* exit status:                           Synopsis.            (line  67)
-* Extracting contiguous files as regular files, warning message: warnings.
-                                                              (line  74)
-* extracting Nth copy of the file:       append.              (line  34)
-* Extraction:                            extract.             (line   6)
-* extraction:                            Definitions.         (line  22)
-* file archival:                         Top.                 (line  24)
-* file attributes:                       Attributes.          (line   6)
-* file changed as we read it, warning message: warnings.      (line  64)
-* file is on a different filesystem, warning message: warnings.
-                                                              (line  47)
-* file is the archive; not dumped, warning message: warnings. (line  58)
-* file is unchanged; not dumped, warning message: warnings.   (line  55)
-* File lists separated by NUL characters: Generate Mode.      (line  33)
-* file name:                             Definitions.         (line  15)
-* File Name arguments, alternatives:     files.               (line   6)
-* File name arguments, using --list with: list.               (line  68)
-* file name read contains nul character, warning message: warnings.
-                                                              (line  32)
-* file names, absolute:                  absolute.            (line   6)
-* File names, excluding files by:        exclude.             (line   6)
-* File names, terminated by NUL:         nul.                 (line   6)
-* File names, using hard links:          hard links.          (line   6)
-* File names, using symbolic links:      dereference.         (line   6)
-* File removed before we read it, warning message: warnings.  (line  61)
-* File shrank by %s bytes, warning message: warnings.         (line  44)
-* File system boundaries, not crossing:  one.                 (line   6)
-* file-changed:                          warnings.            (line  64)
-* file-ignored:                          warnings.            (line  50)
-* file-removed:                          warnings.            (line  61)
-* file-shrank:                           warnings.            (line  44)
-* file-unchanged:                        warnings.            (line  55)
-* FILELIST:                              General-Purpose Variables.
-                                                              (line  65)
-* filename-with-nuls:                    warnings.            (line  32)
-* find, using with tar <1>:              recurse.             (line  11)
-* find, using with tar:                  files.               (line   6)
-* first in date strings:                 General date syntax. (line  26)
-* format 0, snapshot file:               Snapshot Files.      (line  23)
-* format 1, snapshot file:               Snapshot Files.      (line  47)
-* format 2, snapshot file:               Snapshot Files.      (line  69)
-* Format Options:                        Format Variations.   (line   6)
-* Format Parameters:                     Format Variations.   (line   6)
-* Format, old style:                     old.                 (line   6)
-* fortnight in date strings:             Relative items in date strings.
-                                                              (line  15)
-* free documentation:                    Free Software Needs Free Documentation.
-                                                              (line   6)
-* full dumps:                            Full Dumps.          (line   8)
-* future time stamps:                    Large or Negative Values.
-                                                              (line   6)
-* general date syntax:                   General date syntax. (line   6)
-* Generate Mode, genfile:                Generate Mode.       (line   6)
-* genfile:                               Genfile.             (line   6)
-* genfile, create file:                  Generate Mode.       (line   6)
-* genfile, creating sparse files:        Generate Mode.       (line  55)
-* genfile, generate mode:                Generate Mode.       (line   6)
-* genfile, reading a list of file names: Generate Mode.       (line  22)
-* genfile, seeking to a given offset:    Generate Mode.       (line  18)
-* Getting program version number:        help.                (line   6)
-* git, excluding files:                  exclude.             (line  37)
-* GNU archive format:                    gnu.                 (line   6)
-* GNU.sparse.major, extended header variable: PAX 1.          (line  14)
-* GNU.sparse.map, extended header variable: PAX 0.            (line  60)
-* GNU.sparse.minor, extended header variable: PAX 1.          (line  17)
-* GNU.sparse.name, extended header variable: PAX 0.           (line  68)
-* GNU.sparse.name, extended header variable, in v.1.0: PAX 1. (line  24)
-* GNU.sparse.numblocks, extended header variable: PAX 0.      (line  15)
-* GNU.sparse.numbytes, extended header variable: PAX 0.       (line  21)
-* GNU.sparse.offset, extended header variable: PAX 0.         (line  18)
-* GNU.sparse.realsize, extended header variable: PAX 1.       (line  24)
-* GNU.sparse.size, extended header variable: PAX 0.           (line  11)
-* gnupg, using with tar:                 gzip.                (line 193)
-* gpg, using with tar:                   gzip.                (line 193)
-* gzip:                                  gzip.                (line   6)
-* hard links, dereferencing:             hard links.          (line   6)
-* header-col:                            Configuring Help Summary.
-                                                              (line 140)
-* hook:                                  User Hooks.          (line  13)
-* hour in date strings:                  Relative items in date strings.
-                                                              (line  15)
-* ignore-archive:                        warnings.            (line  58)
-* ignore-newer:                          warnings.            (line  83)
-* Ignoring end-of-archive blocks:        Ignore Zeros.        (line   6)
-* Ignoring unknown extended header keyword `%s', warning message: warnings.
-                                                              (line  86)
-* implausibly old time stamp %s, warning message: warnings.   (line  72)
-* Info script:                           Multi-Volume Archives.
-                                                              (line  88)
-* Interactive operation:                 interactive.         (line   6)
-* ISO 8601 date format:                  Calendar date items. (line  30)
-* items in date strings:                 General date syntax. (line   6)
-* Labeling an archive:                   label.               (line   6)
-* labeling archives:                     Tape Files.          (line   6)
-* Labeling multi-volume archives:        label.               (line   6)
-* Labels on the archive media:           label.               (line   6)
-* language, in dates:                    General date syntax. (line  40)
-* Large lists of file names on small machines: Same Order.    (line   6)
-* large values:                          Large or Negative Values.
-                                                              (line   6)
-* last DAY:                              Day of week items.   (line  15)
-* last in date strings:                  General date syntax. (line  26)
-* Laszlo Ersek:                          lbzip2.              (line   6)
-* lbzip2:                                lbzip2.              (line   6)
-* Listing all tar options:               help.                (line  27)
-* listing member and file names:         list.                (line  41)
-* Listing volume label:                  label.               (line  27)
-* Lists of file names:                   files.               (line   6)
-* Local and remote archives:             file.                (line  71)
-* long options:                          Long Options.        (line   6)
-* long options with mandatory arguments: Long Options.        (line  31)
-* long options with optional arguments:  Long Options.        (line  40)
-* long-opt-col:                          Configuring Help Summary.
-                                                              (line  86)
-* lzip:                                  gzip.                (line   6)
-* lzma:                                  gzip.                (line   6)
-* lzop:                                  gzip.                (line   6)
-* MacKenzie, David:                      Authors of parse_datetime.
-                                                              (line   6)
-* Malformed dumpdir: 'X' never used, warning message: warnings.
-                                                              (line 116)
-* member:                                Definitions.         (line  15)
-* member name:                           Definitions.         (line  15)
-* members, multiple:                     multiple.            (line   6)
-* Members, replacing with other members: append.              (line  47)
-* Mercurial, excluding files:            exclude.             (line  37)
-* Meyering, Jim:                         Authors of parse_datetime.
-                                                              (line   6)
-* Middle of the archive, starting in the: Starting File.      (line  11)
-* midnight in date strings:              Time of day items.   (line  22)
-* minute in date strings:                Relative items in date strings.
-                                                              (line  15)
-* minutes, time zone correction by:      Time of day items.   (line  30)
-* Modes of extracted files:              Setting Access Permissions.
-                                                              (line   6)
-* Modification time, excluding files by: after.               (line   6)
-* Modification times of extracted files: Data Modification Times.
-                                                              (line   6)
-* month in date strings:                 Relative items in date strings.
-                                                              (line  15)
-* month names in date strings:           Calendar date items. (line  38)
-* months, written-out:                   General date syntax. (line  36)
-* MT:                                    General-Purpose Variables.
-                                                              (line  69)
-* MT_BEGIN:                              Magnetic Tape Control.
-                                                              (line  11)
-* MT_OFFLINE:                            Magnetic Tape Control.
-                                                              (line  32)
-* MT_REWIND:                             Magnetic Tape Control.
-                                                              (line  21)
-* MT_STATUS:                             Magnetic Tape Control.
-                                                              (line  42)
-* Multi-volume archives:                 Multi-Volume Archives.
-                                                              (line   6)
-* multiple members:                      multiple.            (line   6)
-* Mutli-volume archives in PAX format, extracting using non-GNU tars: Split Recovery.
-                                                              (line  17)
-* Mutli-volume archives, extracting using non-GNU tars: Split Recovery.
-                                                              (line   6)
-* Naming an archive:                     file.                (line   6)
-* negative time stamps:                  Large or Negative Values.
-                                                              (line   6)
-* new-directory:                         warnings.            (line 110)
-* next DAY:                              Day of week items.   (line  15)
-* next in date strings:                  General date syntax. (line  26)
-* none:                                  warnings.            (line  29)
-* noon in date strings:                  Time of day items.   (line  22)
-* now in date strings:                   Relative items in date strings.
-                                                              (line  33)
-* ntape device:                          Many.                (line   6)
-* NUL-terminated file names:             nul.                 (line   6)
-* Number of blocks per record:           Blocking Factor.     (line   6)
-* Number of bytes per record:            Blocking Factor.     (line   6)
-* numbered backup method:                backup.              (line  55)
-* numbers, written-out:                  General date syntax. (line  26)
-* Obtaining help:                        help.                (line  27)
-* Obtaining total status information:    verbose.             (line  46)
-* Old GNU archive format:                gnu.                 (line   6)
-* Old GNU sparse format:                 Old GNU Format.      (line   6)
-* old option style:                      Old Options.         (line   6)
-* old options with mandatory arguments:  Old Options.         (line  17)
-* Old style archives:                    old.                 (line   6)
-* Old style format:                      old.                 (line   6)
-* opt-doc-col:                           Configuring Help Summary.
-                                                              (line 126)
-* option syntax, traditional:            Old Options.         (line  58)
-* optional arguments to long options:    Long Options.        (line  40)
-* optional arguments to short options:   Short Options.       (line  22)
-* options for use with --extract:        extract options.     (line   6)
-* Options when reading archives:         Reading.             (line   6)
-* Options, archive format specifying:    Format Variations.   (line   6)
-* Options, format specifying:            Format Variations.   (line   6)
-* options, GNU style:                    Long Options.        (line   6)
-* options, long style:                   Long Options.        (line   6)
-* options, mixing different styles:      Mixing.              (line   6)
-* options, mnemonic names:               Long Options.        (line   6)
-* options, old style:                    Old Options.         (line   6)
-* options, short style:                  Short Options.       (line   6)
-* options, traditional:                  Short Options.       (line   6)
-* ordinal numbers:                       General date syntax. (line  26)
-* Overwriting old files, prevention:     Dealing with Old Files.
-                                                              (line  16)
-* parse_datetime:                        Date input formats.  (line   6)
-* pattern, genfile:                      Generate Mode.       (line  39)
-* PAX archive format:                    posix.               (line   6)
-* Permissions of extracted files:        Setting Access Permissions.
-                                                              (line   6)
-* Pinard, F.:                            Authors of parse_datetime.
-                                                              (line  19)
-* pm in date strings:                    Time of day items.   (line  22)
-* POSIX archive format:                  posix.               (line   6)
-* Progress information:                  verbose.             (line  83)
-* Protecting old files:                  Dealing with Old Files.
-                                                              (line  26)
-* pure numbers in date strings:          Pure numbers in date strings.
-                                                              (line   6)
-* RCS, excluding files:                  exclude.             (line  37)
-* Reading file names from a file:        files.               (line   6)
-* Reading incomplete records:            Reading.             (line   6)
-* record:                                Blocking.            (line   6)
-* Record Size:                           Blocking Factor.     (line   6)
-* Records, incomplete:                   Reading.             (line   6)
-* Recursion in directories, avoiding:    recurse.             (line   6)
-* relative items in date strings:        Relative items in date strings.
-                                                              (line   6)
-* Remote devices:                        file.                (line  60)
-* remote tape drive:                     Remote Tape Server.  (line   6)
-* Removing files from an archive:        delete.              (line   6)
-* rename-directory:                      warnings.            (line 108)
-* Replacing members with other members:  append.              (line  47)
-* reporting bugs:                        Reports.             (line   6)
-* RESTORE_BEGIN:                         User Hooks.          (line  39)
-* RESTORE_END:                           User Hooks.          (line  42)
-* Resurrecting files from an archive:    extract.             (line   6)
-* Retrieving files from an archive:      extract.             (line   6)
-* return status:                         Synopsis.            (line  67)
-* rmargin:                               Configuring Help Summary.
-                                                              (line 158)
-* rmt:                                   Remote Tape Server.  (line   6)
-* RSH:                                   General-Purpose Variables.
-                                                              (line  72)
-* RSH_COMMAND:                           General-Purpose Variables.
-                                                              (line  77)
-* Running out of space:                  Scarce.              (line   8)
-* Salz, Rich:                            Authors of parse_datetime.
-                                                              (line   6)
-* SCCS, excluding files:                 exclude.             (line  37)
-* short options:                         Short Options.       (line   6)
-* short options with mandatory arguments: Short Options.      (line  13)
-* short options with optional arguments: Short Options.       (line  22)
-* short-opt-col:                         Configuring Help Summary.
-                                                              (line  78)
-* simple backup method:                  backup.              (line  64)
-* SIMPLE_BACKUP_SUFFIX:                  backup.              (line  68)
-* sleep, checkpoint action:              checkpoints.         (line  90)
-* SLEEP_MESSAGE:                         General-Purpose Variables.
-                                                              (line 111)
-* SLEEP_TIME:                            General-Purpose Variables.
-                                                              (line  97)
-* Small memory:                          Scarce.              (line   8)
-* snapshot file, format 0:               Snapshot Files.      (line  23)
-* snapshot file, format 1:               Snapshot Files.      (line  47)
-* snapshot file, format 2:               Snapshot Files.      (line  69)
-* snapshot files, editing:               Fixing Snapshot Files.
-                                                              (line   6)
-* snapshot files, fixing device numbers: Fixing Snapshot Files.
-                                                              (line   6)
-* socket ignored, warning message:       warnings.            (line  50)
-* Sparse Files:                          sparse.              (line   6)
-* sparse files v.0.0, extracting with non-GNU tars: Sparse Recovery.
-                                                              (line  92)
-* sparse files v.0.1, extracting with non-GNU tars: Sparse Recovery.
-                                                              (line  92)
-* sparse files v.1.0, extracting with non-GNU tars: Sparse Recovery.
-                                                              (line  17)
-* Sparse files, creating using genfile:  Generate Mode.       (line  55)
-* sparse files, extracting with non-GNU tars: Sparse Recovery.
-                                                              (line   6)
-* sparse formats:                        Sparse Formats.      (line   6)
-* sparse formats, defined:               sparse.              (line  50)
-* sparse formats, Old GNU:               Old GNU Format.      (line   6)
-* sparse formats, v.0.0:                 PAX 0.               (line   6)
-* sparse formats, v.0.1:                 PAX 0.               (line  52)
-* sparse formats, v.1.0:                 PAX 1.               (line   6)
-* sparse versions:                       Sparse Formats.      (line   6)
-* Specifying archive members:            Selecting Archive Members.
-                                                              (line   6)
-* Specifying files to act on:            Selecting Archive Members.
-                                                              (line   6)
-* Standard input and output:             file.                (line  39)
-* Standard output, writing extracted files to: Writing to Standard Output.
-                                                              (line   6)
-* Storing archives in compressed format: gzip.                (line   6)
-* SVN, excluding files:                  exclude.             (line  37)
-* Symbolic link as file name:            dereference.         (line   6)
-* symlink-cast:                          warnings.            (line  77)
-* TAPE:                                  file tutorial.       (line  14)
-* tape blocking:                         Blocking Factor.     (line 194)
-* tape marks:                            Many.                (line  44)
-* tape positioning:                      Many.                (line  26)
-* TAPE_FILE:                             General-Purpose Variables.
-                                                              (line  19)
-* Tapes, using --delete and:             delete.              (line  17)
-* TAR:                                   General-Purpose Variables.
-                                                              (line 115)
-* tar:                                   What tar Does.       (line   6)
-* tar archive:                           Definitions.         (line   6)
-* Tar archive formats:                   Formats.             (line   6)
-* tar entry:                             Naming tar Archives. (line  11)
-* tar file:                              Naming tar Archives. (line  11)
-* tar to a remote device:                file.                (line  60)
-* tar to standard input and output:      file.                (line  39)
-* tar-snapshot-edit:                     Fixing Snapshot Files.
-                                                              (line  15)
-* TAR_ARCHIVE, checkpoint script environment: checkpoints.    (line 108)
-* TAR_ARCHIVE, info script environment variable: Multi-Volume Archives.
-                                                              (line 108)
-* TAR_ARCHIVE, to-command environment:   Writing to an External Program.
-                                                              (line  76)
-* TAR_ATIME, to-command environment:     Writing to an External Program.
-                                                              (line  49)
-* TAR_BLOCKING_FACTOR, checkpoint script environment: checkpoints.
-                                                              (line 111)
-* TAR_BLOCKING_FACTOR, info script environment variable: Multi-Volume Archives.
-                                                              (line 111)
-* TAR_BLOCKING_FACTOR, to-command environment: Writing to an External Program.
-                                                              (line  79)
-* TAR_CHECKPOINT, checkpoint script environment: checkpoints. (line 114)
-* TAR_CTIME, to-command environment:     Writing to an External Program.
-                                                              (line  58)
-* TAR_FD, info script environment variable: Multi-Volume Archives.
-                                                              (line 125)
-* TAR_FILENAME, to-command environment:  Writing to an External Program.
-                                                              (line  37)
-* TAR_FILETYPE, to-command environment:  Writing to an External Program.
-                                                              (line  22)
-* TAR_FORMAT, checkpoint script environment: checkpoints.     (line 121)
-* TAR_FORMAT, info script environment variable: Multi-Volume Archives.
-                                                              (line 121)
-* TAR_FORMAT, to-command environment:    Writing to an External Program.
-                                                              (line  85)
-* TAR_GID, to-command environment:       Writing to an External Program.
-                                                              (line  67)
-* TAR_GNAME, to-command environment:     Writing to an External Program.
-                                                              (line  46)
-* TAR_MODE, to-command environment:      Writing to an External Program.
-                                                              (line  34)
-* TAR_MTIME, to-command environment:     Writing to an External Program.
-                                                              (line  55)
-* TAR_OPTIONS, environment variable:     using tar options.   (line  30)
-* TAR_REALNAME, to-command environment:  Writing to an External Program.
-                                                              (line  40)
-* TAR_SIZE, to-command environment:      Writing to an External Program.
-                                                              (line  61)
-* TAR_SUBCOMMAND, checkpoint script environment: checkpoints. (line 117)
-* TAR_SUBCOMMAND, info script environment variable: Multi-Volume Archives.
-                                                              (line 117)
-* TAR_UID, to-command environment:       Writing to an External Program.
-                                                              (line  64)
-* TAR_UNAME, to-command environment:     Writing to an External Program.
-                                                              (line  43)
-* TAR_VERSION, checkpoint script environment: checkpoints.    (line 105)
-* TAR_VERSION, info script environment variable: Multi-Volume Archives.
-                                                              (line 105)
-* TAR_VERSION, to-command environment:   Writing to an External Program.
-                                                              (line  73)
-* TAR_VOLUME, info script environment variable: Multi-Volume Archives.
-                                                              (line 114)
-* TAR_VOLUME, to-command environment:    Writing to an External Program.
-                                                              (line  82)
-* tarcat:                                Tarcat.              (line   6)
-* this in date strings:                  Relative items in date strings.
-                                                              (line  33)
-* time of day item:                      Time of day items.   (line   6)
-* time stamp %s is %s s in the future, warning message: warnings.
-                                                              (line  72)
-* time zone correction:                  Time of day items.   (line  30)
-* time zone item <1>:                    Time zone items.     (line   6)
-* time zone item:                        General date syntax. (line  44)
-* timestamp:                             warnings.            (line  72)
-* today in date strings:                 Relative items in date strings.
-                                                              (line  33)
-* tomorrow in date strings:              Relative items in date strings.
-                                                              (line  29)
-* ttyout, checkpoint action:             checkpoints.         (line  70)
-* TZ:                                    Specifying time zone rules.
-                                                              (line   6)
-* Ultrix 3.1 and write failure:          Remote Tape Server.  (line  40)
-* Unknown file type `%c', extracted as normal file, warning message: warnings.
-                                                              (line  80)
-* Unknown file type; file ignored, warning message: warnings. (line  50)
-* unknown-cast:                          warnings.            (line  80)
-* unknown-keyword:                       warnings.            (line  86)
-* unpacking:                             Definitions.         (line  22)
-* Updating an archive:                   update.              (line   6)
-* usage-indent:                          Configuring Help Summary.
-                                                              (line 154)
-* Using encrypted archives:              gzip.                (line 193)
-* ustar archive format:                  ustar.               (line   6)
-* uuencode:                              Applications.        (line   8)
-* v7 archive format:                     old.                 (line   6)
-* VCS, excluding files:                  exclude.             (line  37)
-* Verbose operation:                     verbose.             (line  18)
-* Verifying a write operation:           verify.              (line   6)
-* Verifying the currency of an archive:  compare.             (line   6)
-* version control system, excluding files: exclude.           (line  37)
-* Version of the tar program:            help.                (line   6)
-* version-control Emacs variable:        backup.              (line  49)
-* VERSION_CONTROL:                       backup.              (line  41)
-* volno file:                            Multi-Volume Archives.
-                                                              (line  79)
-* VOLNO_FILE:                            General-Purpose Variables.
-                                                              (line  82)
-* Volume label, listing:                 label.               (line  27)
-* Volume number file:                    Multi-Volume Archives.
-                                                              (line  79)
-* week in date strings:                  Relative items in date strings.
-                                                              (line  15)
-* Where is the archive?:                 file.                (line   6)
-* Working directory, specifying:         directory.           (line   6)
-* Writing extracted files to standard output: Writing to Standard Output.
-                                                              (line   6)
-* Writing new archives:                  file.                (line  34)
-* xdev:                                  warnings.            (line  47)
-* XLIST:                                 General-Purpose Variables.
-                                                              (line  87)
-* xsparse:                               Sparse Recovery.     (line  13)
-* year in date strings:                  Relative items in date strings.
-                                                              (line  15)
-* yesterday in date strings:             Relative items in date strings.
-                                                              (line  29)
-
+* xz, summary:                           Option Summary.      (line 869)
 
diff --git a/doc/tar.info-3 b/doc/tar.info-3
new file mode 100644 (file)
index 0000000..f6db655
Binary files /dev/null and b/doc/tar.info-3 differ
index db8f986eebcff741c3614df8b4cb13ab1916c3d2..9fde5a0761f41b7b6aff3e76bb840a8926e8fdaa 100644 (file)
@@ -13,9 +13,9 @@
 @c Maintenance notes:
 @c  1. Pay attention to @FIXME{}s and @UNREVISED{}s
 @c  2. Before creating final variant:
-@c    2.1. Run `make check-options' to make sure all options are properly
+@c    2.1. Run 'make check-options' to make sure all options are properly
 @c         documented;
-@c    2.2. Run `make master-menu' (see comment before the master menu).
+@c    2.2. Run 'make master-menu' (see comment before the master menu).
 
 @include rendition.texi
 @include value.texi
@@ -36,21 +36,20 @@ This manual is for @acronym{GNU} @command{tar} (version
 @value{VERSION}, @value{UPDATED}), which creates and extracts files
 from archives.
 
-Copyright @copyright{} 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001,
-2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 1992, 1994--1997, 1999--2001, 2003--2013 Free
+Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
-and with the Back-Cover Texts as in (a) below.  A copy of the license
-is included in the section entitled ``GNU Free Documentation
-License''.
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'', with the
+Front-Cover Texts being ``A GNU Manual'', and with the Back-Cover Texts
+as in (a) below.  A copy of the license is included in the section
+entitled ``GNU Free Documentation License''.
 
 (a) The FSF's Back-Cover Text is: ``You have the freedom to
-copy and modify this GNU manual.  Buying copies from the FSF
-supports it in developing GNU and promoting software freedom.''
+copy and modify this GNU manual.''
 @end quotation
 @end copying
 
@@ -647,9 +646,9 @@ If you find problems or have suggestions about this program or manual,
 please report them to @file{bug-tar@@gnu.org}.
 
 When reporting a bug, please be sure to include as much detail as
-possible, in order to reproduce it.  @FIXME{Be more specific, I'd
-like to make this node as detailed as 'Bug reporting' node in Emacs
-manual.}
+possible, in order to reproduce it.
+@FIXME{Be more specific, I'd like to make this node as detailed as
+'Bug reporting' node in Emacs manual.}
 
 @node Tutorial
 @chapter Tutorial Introduction to @command{tar}
@@ -694,8 +693,8 @@ file system.  You should have some basic understanding of directory
 structure and how files are named according to which directory they are
 in.  You should understand concepts such as standard output and standard
 input, what various definitions of the term @samp{argument} mean, and the
-differences between relative and absolute file names.  @FIXME{and what
-else?}
+differences between relative and absolute file names.
+@FIXME{and what else?}
 
 @item
 This manual assumes that you are working from your own home directory
@@ -1438,7 +1437,7 @@ example:
 @smallexample
 @group
 $ @kbd{tar --create --verbose --file archive /etc/mail}
-tar: Removing leading `/' from member names
+tar: Removing leading '/' from member names
 /etc/mail/
 /etc/mail/sendmail.cf
 /etc/mail/aliases
@@ -1801,13 +1800,14 @@ and @option{--interactive} options (@pxref{interactive}).
 * Synopsis::
 * using tar options::
 * Styles::
-* All Options::
-* help::
-* defaults::
-* verbose::
-* checkpoints::
-* warnings::
-* interactive::
+* All Options::           All @command{tar} Options.
+* help::                  Where to Get Help.
+* defaults::              What are the Default Values.
+* verbose::               Checking @command{tar} progress.
+* checkpoints::           Checkpoints.
+* warnings::              Controlling Warning Messages.
+* interactive::           Asking for Confirmation During Operations.
+* external::              Running External Commands.
 @end menu
 
 @node Synopsis
@@ -1881,6 +1881,7 @@ The other operations of @command{tar} (@option{--list},
 @option{--extract}, @option{--compare}, and @option{--update})
 will act on the entire contents of the archive.
 
+@anchor{exit status}
 @cindex exit status
 @cindex return status
 Besides successful exits, @GNUTAR{} may fail for
@@ -2117,12 +2118,20 @@ end up overwriting files.
 @subsection Old Option Style
 @cindex options, old style
 @cindex old option style
+@cindex option syntax, traditional
 
-Like short options, @dfn{old options} are single letters.  However, old options
+As far as we know, all @command{tar} programs, @acronym{GNU} and
+non-@acronym{GNU}, support @dfn{old options}: that is, if the first
+argument does not start with @samp{-}, it is assumed to specify option
+letters.  @GNUTAR{} supports old options not only for historical
+reasons, but also because many people are used to them.  If the first
+argument does not start with a dash, you are announcing the old option
+style instead of the short option style; old options are decoded
+differently.
+
+Like short options, old options are single letters.  However, old options
 must be written together as a single clumped set, without spaces separating
-them or dashes preceding them@footnote{Beware that if you precede options
-with a dash, you are announcing the short option style instead of the
-old option style; short options are decoded differently.}.  This set
+them or dashes preceding them.  This set
 of letters must be the first to appear on the command line, after the
 @command{tar} program name and some white space; old options cannot appear
 anywhere else.  The letter of an old option is exactly the same letter as
@@ -2146,7 +2155,7 @@ $ @kbd{tar cvbf 20 /dev/rmt0}
 Here, @samp{20} is the argument of @option{-b} and @samp{/dev/rmt0} is
 the argument of @option{-f}.
 
-On the other hand, this old style syntax makes it difficult to match
+The old style syntax can make it difficult to match
 option letters with their corresponding arguments, and is often
 confusing.  In the command @w{@samp{tar cvbf 20 /dev/rmt0}}, for example,
 @samp{20} is the argument for @option{-b}, @samp{/dev/rmt0} is the
@@ -2172,8 +2181,6 @@ the value for option @samp{f} and recognizes the option @samp{z}.  The
 second example, however, uses @file{z} as the value for option
 @samp{f} --- probably not what was intended.
 
-Old options are kept for compatibility with old versions of @command{tar}.
-
 This second example could be corrected in many ways, among which the
 following are equivalent:
 
@@ -2183,16 +2190,6 @@ following are equivalent:
 @kbd{tar cf archive.tar.gz -z file}
 @end smallexample
 
-@cindex option syntax, traditional
-As far as we know, all @command{tar} programs, @acronym{GNU} and
-non-@acronym{GNU}, support old options.  @GNUTAR{}
-supports them not only for historical reasons, but also because many
-people are used to them.  For compatibility with Unix @command{tar},
-the first argument is always treated as containing command and option
-letters even if it doesn't start with @samp{-}.  Thus, @samp{tar c} is
-equivalent to @w{@samp{tar -c}:} both of them specify the
-@option{--create} (@option{-c}) command to create an archive.
-
 @node Mixing
 @subsection Mixing Option Styles
 
@@ -2259,7 +2256,8 @@ respectively.  The first two examples also specify a single non-option,
 @var{name} argument having the value @samp{archive.tar}.  The last
 example contains only old style option letters (repeating option
 @samp{c} twice), not all of which are meaningful (eg., @samp{.},
-@samp{h}, or @samp{i}), with no argument value.  @FIXME{not sure i liked
+@samp{h}, or @samp{i}), with no argument value.
+@FIXME{not sure i liked
 the first sentence of this paragraph..}
 
 @node All Options
@@ -2366,8 +2364,9 @@ exist in the archive. @xref{update}.
 @itemx -P
 
 Normally when creating an archive, @command{tar} strips an initial
-@samp{/} from member names.  This option disables that behavior.
-@xref{absolute}.
+@samp{/} from member names, and when extracting from an archive @command{tar}
+treats names specially if they have initial @samp{/} or internal
+@samp{..}.  This option disables that behavior.  @xref{absolute}.
 
 @opsummary{after-date}
 @item --after-date
@@ -2717,9 +2716,9 @@ tutorial}).
 @item --group=@var{group}
 
 Files added to the @command{tar} archive will have a group @acronym{ID} of @var{group},
-rather than the group from the source file.  @var{group} is first decoded
-as a group symbolic name, but if this interpretation fails, it has to be
-a decimal numeric group @acronym{ID}.  @xref{override}.
+rather than the group from the source file.  @var{group} can specify a
+symbolic name, or a numeric @acronym{ID}, or both as
+@var{name}:@var{id}.  @xref{override}.
 
 Also see the comments for the @option{--owner=@var{user}} option.
 
@@ -2762,7 +2761,7 @@ Ignore exit codes of subprocesses. @xref{Writing to an External Program}.
 @item --ignore-failed-read
 
 Do not exit unsuccessfully merely because an unreadable file was encountered.
-@xref{Reading}.
+@xref{Ignore Failed Read}.
 
 @opsummary{ignore-zeros}
 @item --ignore-zeros
@@ -2787,14 +2786,14 @@ Send verbose output to @var{file} instead of to standard output.
 
 @opsummary{info-script}
 @opsummary{new-volume-script}
-@item --info-script=@var{script-file}
-@itemx --new-volume-script=@var{script-file}
-@itemx -F @var{script-file}
+@item --info-script=@var{command}
+@itemx --new-volume-script=@var{command}
+@itemx -F @var{command}
 
-When @command{tar} is performing multi-tape backups, @var{script-file} is run
-at the end of each tape.  If @var{script-file} exits with nonzero status,
+When @command{tar} is performing multi-tape backups, @var{command} is run
+at the end of each tape.  If it exits with nonzero status,
 @command{tar} fails immediately.  @xref{info-script}, for a detailed
-discussion of @var{script-file}.
+discussion of this feature.
 
 @opsummary{interactive}
 @item --interactive
@@ -2805,6 +2804,21 @@ Specifies that @command{tar} should ask the user for confirmation before
 performing potentially destructive options, such as overwriting files.
 @xref{interactive}.
 
+@opsummary{--keep-directory-symlink}
+@item --keep-directory-symlink
+
+This option changes the behavior of tar when it encounters a symlink
+with the same name as the directory that it is about to extract.  By
+default, in this case tar would first remove the symlink and then
+proceed extracting the directory.
+
+The @option{--keep-directory-symlink} option disables this behavior
+and instructs tar to follow symlinks to directories when extracting
+from the archive.
+
+It is mainly intended to provide compatibility with the Slackware
+installation scripts.
+
 @opsummary{keep-newer-files}
 @item --keep-newer-files
 
@@ -2815,7 +2829,10 @@ when extracting files from an archive.
 @item --keep-old-files
 @itemx -k
 
-Do not overwrite existing files when extracting files from an archive.
+Do not overwrite existing files when extracting files from an
+archive.  Return error if such files exist.  See also
+@ref{--skip-old-files}.
+
 @xref{Keep Old Files}.
 
 @opsummary{label}
@@ -3086,8 +3103,8 @@ from an archive.  @xref{Overwrite Old Files}.
 
 Specifies that @command{tar} should use @var{user} as the owner of members
 when creating archives, instead of the user associated with the source
-file.  @var{user} is first decoded as a user symbolic name, but if
-this interpretation fails, it has to be a decimal numeric user @acronym{ID}.
+file.  @var{user} can specify a symbolic name, or a numeric
+@acronym{ID}, or both as @var{name}:@var{id}.
 @xref{override}.
 
 This option does not affect extraction from archives.
@@ -3249,7 +3266,7 @@ $ @kbd{tar --show-defaults}
 
 @noindent
 Notice, that this option outputs only one line.  The example output
-above has been split to fit page boundaries.
+above has been split to fit page boundaries. @xref{defaults}.
 
 @opsummary{show-omitted-dirs}
 @item --show-omitted-dirs
@@ -3257,6 +3274,13 @@ above has been split to fit page boundaries.
 Instructs @command{tar} to mention the directories it is skipping when
 operating on a @command{tar} archive.  @xref{show-omitted-dirs}.
 
+@opsummary{show-snapshot-field-ranges}
+@item --show-snapshot-field-ranges
+
+Displays the range of values allowed by this version of @command{tar}
+for each field in the snapshot file, then exits successfully.
+@xref{Snapshot Files}.
+
 @opsummary{show-transformed-names}
 @opsummary{show-stored-names}
 @item --show-transformed-names
@@ -3268,6 +3292,20 @@ the archive creation operations it instructs @command{tar} to list the
 member names stored in the archive, as opposed to the actual file
 names.  @xref{listing member and file names}.
 
+@opsummary{skip-old-files}
+@item --skip-old-files
+
+Do not overwrite existing files when extracting files from an
+archive.  @xref{Keep Old Files}.
+
+This option differs from @option{--keep-old-files} in that it does not
+treat such files as an error, instead it just silently avoids
+overwriting them.
+
+The @option{--warning=existing-file} option can be used together with
+this option to produce warning messages about existing old files
+(@pxref{warnings}).
+
 @opsummary{sparse}
 @item --sparse
 @itemx -S
@@ -3576,8 +3614,7 @@ successfully.  For example, @w{@samp{tar --version}} might print:
 
 @smallexample
 tar (GNU tar) @value{VERSION}
-Copyright (C) 2010 Free Software Foundation, Inc.
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2013 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
@@ -3732,7 +3769,7 @@ $ @kbd{tar xvvf archive.tar}
 
 Verbose output appears on the standard output except when an archive is
 being written to the standard output, as with @samp{tar --create
---file=- --verbose} (@samp{tar cfv -}, or even @samp{tar cv}---if the
+--file=- --verbose} (@samp{tar cvf -}, or even @samp{tar cv}---if the
 installer let standard output be the default archive).  In that case
 @command{tar} writes verbose output to the standard error stream.
 
@@ -3991,17 +4028,22 @@ checkpoint:
 $ @kbd{tar -c --checkpoint=1000 --checkpoint-action=sleep=30}
 @end smallexample
 
+@anchor{checkpoint exec}
 @cindex @code{exec}, checkpoint action
-Finally, the @code{exec} action executes a given external program.
+Finally, the @code{exec} action executes a given external command.
 For example:
 
 @smallexample
 $ @kbd{tar -c --checkpoint=1000 --checkpoint-action=exec=/sbin/cpoint}
 @end smallexample
 
-This program is executed using @command{/bin/sh -c}, with no
-additional arguments.  Its exit code is ignored.  It gets a copy of
-@command{tar}'s environment plus the following variables:
+The supplied command can be any valid command invocation, with or
+without additional command line arguments.  If it does contain
+arguments, don't forget to quote it to prevent it from being split by
+the shell.  @xref{external, Running External Commands}, for more detail.
+
+The command gets a copy of @command{tar}'s environment plus the
+following variables:
 
 @table @env
 @vrindex TAR_VERSION, checkpoint script environment
@@ -4031,6 +4073,18 @@ Format of the archive being processed. @xref{Formats}, for a complete
 list of archive format names.
 @end table
 
+These environment variables can also be passed as arguments to the
+command, provided that they are properly escaped, for example:
+
+@smallexample
+@kbd{tar -c -f arc.tar \
+     --checkpoint-action='exec=/sbin/cpoint $TAR_FILENAME'}
+@end smallexample
+
+@noindent
+Notice single quotes to prevent variable names from being expanded by
+the shell when invoking @command{tar}.
+
 Any number of actions can be defined, by supplying several
 @option{--checkpoint-action} options in the command line.  For
 example, the command below displays two messages, pauses
@@ -4154,17 +4208,17 @@ Disable all warning messages.
 @item symlink-cast
 @samp{Attempting extraction of symbolic links as hard links}
 @kwindex unknown-cast
-@cindex @samp{Unknown file type `%c', extracted as normal file}, warning message
+@cindex @samp{Unknown file type '%c', extracted as normal file}, warning message
 @item unknown-cast
-@samp{%s: Unknown file type `%c', extracted as normal file}
+@samp{%s: Unknown file type '%c', extracted as normal file}
 @kwindex ignore-newer
 @cindex @samp{Current %s is newer or same age}, warning message
 @item ignore-newer
 @samp{Current %s is newer or same age}
 @kwindex unknown-keyword
-@cindex @samp{Ignoring unknown extended header keyword `%s'}, warning message
+@cindex @samp{Ignoring unknown extended header keyword '%s'}, warning message
 @item unknown-keyword
-@samp{Ignoring unknown extended header keyword `%s'}
+@samp{Ignoring unknown extended header keyword '%s'}
 @kwindex decompress-program
 @item decompress-program
 Controls verbose description of failures occurring when trying to run
@@ -4182,6 +4236,10 @@ tar (child): trying gzip
 This means that @command{tar} first tried to decompress
 @file{archive.Z} using @command{compress}, and, when that
 failed, switched to @command{gzip}.
+@kwindex record-size
+@cindex @samp{Record size = %lu blocks}, warning message
+@item record-size
+@samp{Record size = %lu blocks}
 @end table
 
 @subheading Keywords controlling incremental extraction:
@@ -4245,6 +4303,42 @@ named pipe to receive the archive, and having the consumer process to
 read from that named pipe.  This has the advantage of letting standard
 output free to receive verbose output, all separate from errors.
 
+@node external
+@section Running External Commands
+
+Certain @GNUTAR{} operations imply running external commands that you
+supply on the command line.  One of such operations is checkpointing,
+described above (@pxref{checkpoint exec}).  Another example of this
+feature is the @option{-I} option, which allows you to supply the
+program to use for compressing or decompressing the archive
+(@pxref{use-compress-program}).
+
+Whenever such operation is requested, @command{tar} first splits the
+supplied command into words much like the shell does.  It then treats
+the first word as the name of the program or the shell script to execute
+and the rest of words as its command line arguments.  The program,
+unless given as an absolute file name, is searched in the shell's
+@env{PATH}.
+
+Any additional information is normally supplied to external commands
+in environment variables, specific to each particular operation.  For
+example, the @option{--checkpoint-action=exec} option, defines the
+@env{TAR_ARCHIVE} variable to the name of the archive being worked
+upon.  You can, should the need be, use these variables in the
+command line of the external command.  For example:
+
+@smallexample
+$ @kbd{tar -x -f archive.tar \
+    --checkpoint=exec='printf "%04d in %32s\r" $TAR_CHECKPOINT $TAR_ARCHIVE'}
+@end smallexample
+
+@noindent
+This command prints for each checkpoint its number and the name of the
+archive, using the same output line on the screen.
+
+Notice the use of single quotes to prevent variable names from being
+expanded by the shell when invoking @command{tar}.
+
 @node operations
 @chapter @GNUTAR{} Operations
 
@@ -4312,7 +4406,7 @@ the following commands:
 
 @smallexample
 @kbd{tar --create --file=empty-archive.tar --files-from=/dev/null}
-@kbd{tar cfT empty-archive.tar /dev/null}
+@kbd{tar -cf empty-archive.tar -T /dev/null}
 @end smallexample
 
 @xopindex{extract, complementary notes}
@@ -4443,11 +4537,11 @@ in the archive; the most recently archived members will be extracted
 last.  Additionally, an extracted member will @emph{replace} a file of
 the same name which existed in the directory already, and @command{tar}
 will not prompt you about this@footnote{Unless you give it
-@option{--keep-old-files} option, or the disk copy is newer than
-the one in the archive and you invoke @command{tar} with
-@option{--keep-newer-files} option.}.  Thus, only the most recently archived
-member will end up being extracted, as it will replace the one
-extracted before it, and so on.
+@option{--keep-old-files} (or @option{--skip-old-files}) option, or
+the disk copy is newer than the one in the archive and you invoke
+@command{tar} with @option{--keep-newer-files} option.}.  Thus, only
+the most recently archived member will end up being extracted, as it
+will replace the one extracted before it, and so on.
 
 @cindex extracting @var{n}th copy of the file
 @xopindex{occurrence, described}
@@ -4941,7 +5035,7 @@ For example:
 
 @smallexample
 $ @kbd{tar -c -f archive.tar -v --mtime=yesterday .}
-tar: Option --mtime: Treating date `yesterday' as 2006-06-20
+tar: Option --mtime: Treating date 'yesterday' as 2006-06-20
 13:06:29.152478
 @dots{}
 @end smallexample
@@ -4951,8 +5045,22 @@ tar: Option --mtime: Treating date `yesterday' as 2006-06-20
 
 Specifies that @command{tar} should use @var{user} as the owner of members
 when creating archives, instead of the user associated with the source
-file.  The argument @var{user} can be either an existing user symbolic
-name, or a decimal numeric user @acronym{ID}.
+file.
+
+If @var{user} contains a colon, it is taken to be of the form
+@var{name}:@var{id} where a nonempty @var{name} specifies the user
+name and a nonempty @var{id} specifies the decimal numeric user
+@acronym{ID}.  If @var{user} does not contain a colon, it is taken to
+be a user number if it is one or more decimal digits; otherwise it is
+taken to be a user name.
+
+If a name is given but no number, the number is inferred from the
+current host's user database if possible, and the file's user number
+is used otherwise.  If a number is given but no name, the name is
+inferred from the number if possible, and an empty name is used
+otherwise.  If both name and number are given, the user database is
+not consulted, and the name and number need not be valid on the
+current host.
 
 There is no value indicating a missing number, and @samp{0} usually means
 @code{root}.  Some people like to force @samp{0} as the value to offer in
@@ -4975,8 +5083,9 @@ $ @kbd{tar -c -f archive.tar --owner=root .}
 @opindex group
 
 Files added to the @command{tar} archive will have a group @acronym{ID} of @var{group},
-rather than the group from the source file.  The argument @var{group}
-can be either an existing group symbolic name, or a decimal numeric group @acronym{ID}.
+rather than the group from the source file.  As with @option{--owner},
+the argument @var{group} can be an existing group symbolic name, or a
+decimal numeric group @acronym{ID}, or @var{name}:@var{id}.
 @end table
 
 @node Ignore Failed Read
@@ -5123,10 +5232,25 @@ such a directory, use the @option{--no-overwrite-dir} option.
 @cindex Overwriting old files, prevention
 @xopindex{keep-old-files, introduced}
 To be even more cautious and prevent existing files from being replaced, use
-the @option{--keep-old-files} (@option{-k}) option.  It causes @command{tar} to refuse
-to replace or update a file that already exists, i.e., a file with the
-same name as an archive member prevents extraction of that archive
-member.  Instead, it reports an error.
+the @option{--keep-old-files} (@option{-k}) option.  It causes
+@command{tar} to refuse to replace or update a file that already
+exists, i.e., a file with the same name as an archive member prevents
+extraction of that archive member.  Instead, it reports an error.  For
+example:
+
+@example
+$ @kbd{ls}
+blues
+$ @kbd{tar -x -k -f archive.tar}
+tar: blues: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+@end example
+
+@xopindex{skip-old-files, introduced}
+If you wish to preserve old files untouched, but don't want
+@command{tar} to treat them as errors, use the
+@option{--skip-old-files} option.  This option causes @command{tar} to
+silently skip extracting over existing files.
 
 @xopindex{overwrite, introduced}
 To be more aggressive about altering existing files, use the
@@ -5192,16 +5316,24 @@ archive, but remove other files before extracting.
 @node Keep Old Files
 @unnumberedsubsubsec Keep Old Files
 
+@GNUTAR{} provides two options to control its actions in a situation
+when it is about to extract a file which already exists on disk.
+
 @table @option
 @opindex keep-old-files
 @item --keep-old-files
 @itemx -k
-Do not replace existing files from archive.  The
-@option{--keep-old-files} (@option{-k}) option prevents @command{tar}
-from replacing existing files with files with the same name from the
-archive. The @option{--keep-old-files} option is meaningless with
-@option{--list} (@option{-t}).  Prevents @command{tar} from replacing
-files in the file system during extraction.
+Do not replace existing files from archive.  When such a file is
+encountered, @command{tar} issues an error message.  Upon end of
+extraction, @command{tar} exits with code 2 (@pxref{exit status}).
+
+@item --skip-old-files
+Do not replace existing files from archive, but do not treat that
+as error.  Such files are silently skipped and do not affect
+@command{tar} exit status.
+
+Additional verbosity can be obtained using @option{--warning=existing-file}
+together with that option (@pxref{warnings}).
 @end table
 
 @node Keep Newer Files
@@ -5419,11 +5551,13 @@ file to the standard input of an external program:
 @opindex to-command
 @item --to-command=@var{command}
 Extract files and pipe their contents to the standard input of
-@var{command}. When this option is used, instead of creating the
+@var{command}.  When this option is used, instead of creating the
 files specified, @command{tar} invokes @var{command} and pipes the
-contents of the files to its standard output. The @var{command} may
-contain command line arguments. The program is executed via
-@code{sh -c}. Notice, that @var{command} is executed once for each regular file
+contents of the files to its standard output.  The @var{command} may
+contain command line arguments (see @ref{external, Running External Commands},
+for more detail).
+
+Notice, that @var{command} is executed once for each regular file
 extracted. Non-regular files (directories, etc.) are ignored when this
 option is used.
 @end table
@@ -5521,6 +5655,20 @@ Format of the archive being processed. @xref{Formats}, for a complete
 list of archive format names.
 @end table
 
+These variables are defined prior to executing the command, so you can
+pass them as arguments, if you prefer.  For example, if the command
+@var{proc} takes the member name and size as its arguments, then you
+could do:
+
+@smallexample
+$ @kbd{tar -x -f archive.tar \
+       --to-command='proc $TAR_FILENAME $TAR_SIZE'}
+@end smallexample
+
+@noindent
+Notice single quotes to prevent variable names from being expanded by
+the shell when invoking @command{tar}.
+
 If @var{command} exits with a non-0 status, @command{tar} will print
 an error message similar to the following:
 
@@ -6896,7 +7044,7 @@ When @command{tar} is invoked with @option{--create} (@option{-c}),
 @group
 $ @kbd{tar cf a.tar}
 tar: Cowardly refusing to create an empty archive
-Try `tar --help' or `tar --usage' for more information.
+Try 'tar --help' or 'tar --usage' for more information.
 @end group
 @end smallexample
 
@@ -6998,45 +7146,6 @@ libc.a
 @end group
 @end smallexample
 
-@noindent
-@xopindex{directory, using in @option{--files-from} argument}
-Notice that the option parsing algorithm used with @option{-T} is
-stricter than the one used by shell.  Namely, when specifying option
-arguments, you should observe the following rules:
-
-@itemize @bullet
-@item
-When using short (single-letter) option form, its argument must
-immediately follow the option letter, without any intervening
-whitespace.  For example: @code{-Cdir}.
-
-@item
-When using long option form, the option argument must be separated
-from the option by a single equal sign.  No whitespace is allowed on
-any side of the equal sign.  For example: @code{--directory=dir}.
-
-@item
-For both short and long option forms, the option argument can be given
-on the next line after the option name, e.g.:
-
-@smallexample
-@group
---directory
-dir
-@end group
-@end smallexample
-
-@noindent
-and
-
-@smallexample
-@group
--C
-dir
-@end group
-@end smallexample
-@end itemize
-
 @opindex add-file
 If you happen to have a file whose name starts with @samp{-},
 precede it with @option{--add-file} option to prevent it from
@@ -7104,10 +7213,11 @@ $ @kbd{find . -size +800 -print0 |
 This example uses short options for typographic reasons, to avoid
 very long lines.
 
-@GNUTAR is able to automatically detect @code{NUL}-terminated file lists, so
-it is safe to use them even without the @option{--null} option.  In
-this case @command{tar} will print a warning and continue reading such
-a file as if @option{--null} were actually given:
+@GNUTAR is tries to automatically detect @code{NUL}-terminated file
+lists, so in many cases it is safe to use them even without the
+@option{--null} option.  In this case @command{tar} will print a
+warning and continue reading such a file as if @option{--null} were
+actually given:
 
 @smallexample
 @group
@@ -7787,7 +7897,7 @@ $ @kbd{tar tf arch.tar --quoting-style=escape}
 Control characters, single quote and backslash are printed using
 backslash notation.  All names are quoted using left and right
 quotation marks, appropriate to the current locale.  If it does not
-define quotation marks, use @samp{`} as left and @samp{'} as right
+define quotation marks, use @samp{'} as left and as right
 quotation marks.  Any occurrences of the right quotation mark in a
 name are escaped with @samp{\}, for example:
 
@@ -7796,13 +7906,13 @@ For example:
 @smallexample
 @group
 $ @kbd{tar tf arch.tar --quoting-style=locale}
-`./'
-`./a space'
-`./a\'single\'quote'
-`./a"double"quote'
-`./a\\backslash'
-`./a\ttab'
-`./a\nnewline'
+'./'
+'./a space'
+'./a\'single\'quote'
+'./a"double"quote'
+'./a\\backslash'
+'./a\ttab'
+'./a\nnewline'
 @end group
 @end smallexample
 
@@ -8249,7 +8359,7 @@ ensure he is using the right date.  For example:
 @smallexample
 @group
 $ @kbd{tar -c -f archive.tar --after-date='10 days ago' .}
-tar: Option --after-date: Treating date `10 days ago' as 2006-06-11
+tar: Option --after-date: Treating date '10 days ago' as 2006-06-11
 13:19:37.232434
 @end group
 @end smallexample
@@ -8524,6 +8634,10 @@ is not, generally speaking, the same as the one you'd get running
 scripts for comparing both outputs.  @xref{listing member and file names},
 for the information on how to handle this case.}.
 
+Symbolic links containing @file{..} or leading @samp{/} can also cause
+problems when extracting, so @command{tar} normally extracts them last;
+it may create empty files as placeholders during extraction.
+
 If you use the @option{--absolute-names} (@option{-P}) option,
 @command{tar} will do none of these transformations.
 
@@ -8547,7 +8661,7 @@ to transfer files between systems.}
 @table @option
 @item --absolute-names
 Preserves full file names (including superior directory names) when
-archiving files.  Preserves leading slash when extracting files.
+archiving and extracting files.
 
 @end table
 
@@ -8730,7 +8844,7 @@ archive, @option{--lzop} to create an @asis{LSOP} archive, and
 For example:
 
 @smallexample
-$ @kbd{tar cfz archive.tar.gz .}
+$ @kbd{tar czf archive.tar.gz .}
 @end smallexample
 
 You can also let @GNUTAR{} select the compression program based on
@@ -8740,14 +8854,14 @@ example, the following invocation will use @command{bzip2} for
 compression:
 
 @smallexample
-$ @kbd{tar cfa archive.tar.bz2 .}
+$ @kbd{tar caf archive.tar.bz2 .}
 @end smallexample
 
 @noindent
 whereas the following one will use @command{lzma}:
 
 @smallexample
-$ @kbd{tar cfa archive.tar.lzma .}
+$ @kbd{tar caf archive.tar.lzma .}
 @end smallexample
 
 For a complete list of file name suffixes recognized by @GNUTAR{},
@@ -8804,7 +8918,7 @@ If you see such diagnostics, just add the suggested option to the
 invocation of @GNUTAR{}:
 
 @smallexample
-$ @kbd{cat archive.tar.gz | tar tfz -}
+$ @kbd{cat archive.tar.gz | tar tzf -}
 @end smallexample
 
 Notice also, that there are several restrictions on operations on
@@ -8870,39 +8984,36 @@ etc.) and remote files as well as on normal files; data to or from
 such devices or remote files is reblocked by another copy of the
 @command{tar} program to enforce the specified (or default) record
 size.  The default compression parameters are used.  Most compression
-programs allow to override these by setting a program-specific
-environment variable.  For example, when using @command{gzip} you can
-use @env{GZIP} as in the example below:
+programs let you override these by setting a program-specific
+environment variable.  For example, with @command{gzip} you can set
+@env{GZIP}:
 
 @smallexample
-$ @kbd{GZIP=--best tar cfz archive.tar.gz subdir}
+$ @kbd{GZIP='-9 -n' tar czf archive.tar.gz subdir}
 @end smallexample
-
-@noindent
 Another way would be to use the @option{-I} option instead (see
 below), e.g.:
 
 @smallexample
-$ @kbd{tar -cf archive.tar.gz -I 'gzip --best' subdir}
+$ @kbd{tar -cf archive.tar.gz -I 'gzip -9 -n' subdir}
 @end smallexample
 
 @noindent
-Finally, the third, traditional, way to achieve the same result is to
-use pipe:
+Finally, the third, traditional, way to do this is to use a pipe:
 
 @smallexample
-$ @kbd{tar cf - subdir | gzip --best -c - > archive.tar.gz}
+$ @kbd{tar cf - subdir | gzip -9 -n > archive.tar.gz}
 @end smallexample
 
 @cindex corrupted archives
-About corrupted compressed archives: compressed files have no
-redundancy, for maximum compression.  The adaptive nature of the
+Compressed archives are easily corrupted, because compressed files
+have little redundancy.  The adaptive nature of the
 compression scheme means that the compression tables are implicitly
 spread all over the archive.  If you lose a few blocks, the dynamic
 construction of the compression tables becomes unsynchronized, and there
 is little chance that you could recover later in the archive.
 
-Another compression options provide a better control over creating
+Other compression options provide better control over creating
 compressed archives.  These are:
 
 @table @option
@@ -8931,21 +9042,29 @@ suffix.  The following suffixes are recognized:
 @item @samp{.xz} @tab @command{xz}
 @end multitable
 
+@anchor{use-compress-program}
 @opindex use-compress-program
-@item --use-compress-program=@var{prog}
-@itemx -I=@var{prog}
-Use external compression program @var{prog}.  Use this option if you
+@item --use-compress-program=@var{command}
+@itemx -I=@var{command}
+Use external compression program @var{command}.  Use this option if you
 are not happy with the compression program associated with the suffix
 at compile time or if you have a compression program that @GNUTAR{}
-does not support.  There are two requirements to which @var{prog}
-should comply:
+does not support.  The @var{command} argument is a valid command
+invocation, as you would type it at the command line prompt, with any
+additional options as needed.  Enclose it in quotes if it contains
+white space (see @ref{external, Running External Commands}, for more detail).
 
-First, when called without options, it should read data from standard
-input, compress it and output it on standard output.
+The @var{command} should follow two conventions:
 
-Secondly, if called with @option{-d} argument, it should do exactly
-the opposite, i.e., read the compressed data from the standard input
-and produce uncompressed data on the standard output.
+First, when invoked without additional options, it should read data
+from standard input, compress it and output it on standard output.
+
+Secondly, if invoked with the additional @option{-d} option, it should
+do exactly the opposite, i.e., read the compressed data from the
+standard input and produce uncompressed data on the standard output.
+
+The latter requirement means that you must not use the @option{-d}
+option as a part of the @var{command} itself.
 @end table
 
 @cindex gpg, using with tar
@@ -9397,7 +9516,7 @@ directory with a verbose level 2, you will get an output similar to
 the following:
 
 @smallexample
-$ tar cfvv ../archive.tar .
+$ tar cvvf ../archive.tar .
 drwxr-xr-x gray/staff        0 2007-10-30 15:13 ./
 -rw-r--r-- gray/staff        4 2007-10-30 15:11 ./jeden
 hrw-r--r-- gray/staff        0 2007-10-30 15:11 ./one link to ./jeden
@@ -9425,7 +9544,7 @@ produces the following diagnostics:
 
 @smallexample
 $ tar -c -f ../archive.tar -l jeden
-tar: Missing links to `jeden'.
+tar: Missing links to 'jeden'.
 @end smallexample
 
 Although creating special records for hard links helps keep a faithful
@@ -9437,7 +9556,7 @@ archive created in previous examples produces, in the absense of file
 
 @smallexample
 $ tar xf archive.tar ./one
-tar: ./one: Cannot hard link to `./jeden': No such file or directory
+tar: ./one: Cannot hard link to './jeden': No such file or directory
 tar: Error exit delayed from previous errors
 @end smallexample
 
@@ -9977,8 +10096,8 @@ run mode is enabled by @option{-n} command line argument:
 @group
 $ @kbd{xsparse -n /home/gray/GNUSparseFile.6058/sparsefile}
 Reading v.1.0 sparse map
-Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-`/home/gray/sparsefile'
+Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+'/home/gray/sparsefile'
 Finished dry run
 @end group
 @end smallexample
@@ -9999,8 +10118,8 @@ similar to that from the dry run mode, use @option{-v} option:
 @group
 $ @kbd{xsparse -v /home/gray/GNUSparseFile.6058/sparsefile}
 Reading v.1.0 sparse map
-Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-`/home/gray/sparsefile'
+Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+'/home/gray/sparsefile'
 Done
 @end group
 @end smallexample
@@ -10021,8 +10140,8 @@ Found variable GNU.sparse.minor = 0
 Found variable GNU.sparse.name = sparsefile
 Found variable GNU.sparse.realsize = 217481216
 Reading v.1.0 sparse map
-Expanding file `/home/gray/GNUSparseFile.6058/sparsefile' to
-`/home/gray/sparsefile'
+Expanding file '/home/gray/GNUSparseFile.6058/sparsefile' to
+'/home/gray/sparsefile'
 Done
 @end group
 @end smallexample
@@ -10124,7 +10243,7 @@ Found variable GNU.sparse.size = 217481216
 Found variable GNU.sparse.numblocks = 208
 Found variable GNU.sparse.name = sparsefile
 Found variable GNU.sparse.map = 0,2048,1050624,2048,@dots{}
-Expanding file `GNUSparseFile.28124/sparsefile' to `sparsefile'
+Expanding file 'GNUSparseFile.28124/sparsefile' to 'sparsefile'
 Done
 @end group
 @end smallexample
@@ -10417,10 +10536,10 @@ maximum tape length, you might avoid the problem entirely.
 
 @xopindex{info-script, short description}
 @xopindex{new-volume-script, short description}
-@item -F @var{file}
-@itemx --info-script=@var{file}
-@itemx --new-volume-script=@var{file}
-Execute @file{file} at end of each tape.  This implies
+@item -F @var{command}
+@itemx --info-script=@var{command}
+@itemx --new-volume-script=@var{command}
+Execute @var{command} at end of each tape.  This implies
 @option{--multi-volume} (@option{-M}).  @xref{info-script}, for a detailed
 description of this option.
 @end table
@@ -10438,9 +10557,8 @@ want to use.  @command{tar} calls @command{rmt} by running an
 @command{rsh} or @command{remsh} to the remote machine, optionally
 using a different login name if one is supplied.
 
-A copy of the source for the remote tape server is provided.  It is
-Copyright @copyright{} 1983 by the Regents of the University of
-California, but can be freely distributed.  It is compiled and
+A copy of the source for the remote tape server is provided.  Its
+source code can be freely distributed.  It is compiled and
 installed by default.
 
 @cindex absolute file names
@@ -10607,15 +10725,16 @@ When reading an archive, @command{tar} can usually figure out the
 record size on itself.  When this is the case, and a non-standard
 record size was used when the archive was created, @command{tar} will
 print a message about a non-standard blocking factor, and then operate
-normally.  On some tape devices, however, @command{tar} cannot figure
-out the record size itself.  On most of those, you can specify a
-blocking factor (with @option{--blocking-factor}) larger than the
-actual blocking factor, and then use the @option{--read-full-records}
-(@option{-B}) option.  (If you specify a blocking factor with
-@option{--blocking-factor} and don't use the
-@option{--read-full-records} option, then @command{tar} will not
-attempt to figure out the recording size itself.)  On some devices,
-you must always specify the record size exactly with
+normally@footnote{If this message is not needed, you can turn it off
+using the @option{--warning=no-record-size} option.}.  On some tape
+devices, however, @command{tar} cannot figure out the record size
+itself.  On most of those, you can specify a blocking factor (with
+@option{--blocking-factor}) larger than the actual blocking factor,
+and then use the @option{--read-full-records} (@option{-B}) option.
+(If you specify a blocking factor with @option{--blocking-factor} and
+don't use the @option{--read-full-records} option, then @command{tar}
+will not attempt to figure out the recording size itself.)  On some
+devices, you must always specify the record size exactly with
 @option{--blocking-factor} when reading, because @command{tar} cannot
 figure it out.  In any case, use @option{--list} (@option{-t}) before
 doing any extractions to see whether @command{tar} is reading the archive
@@ -11246,7 +11365,7 @@ is@footnote{If you run @GNUTAR{} under a different locale, the
 translation to the locale's language will be used.}:
 
 @smallexample
-Prepare volume #@var{n} for `@var{archive}' and hit return:
+Prepare volume #@var{n} for '@var{archive}' and hit return:
 @end smallexample
 
 @noindent
@@ -11301,19 +11420,20 @@ volume, and instruct @command{tar} to use it instead of its normal
 prompting procedure:
 
 @table @option
-@item --info-script=@var{script-name}
-@itemx --new-volume-script=@var{script-name}
-@itemx -F @var{script-name}
-Specify the full name of the volume script to use.  The script can be
-used to eject cassettes, or to broadcast messages such as
+@item --info-script=@var{command}
+@itemx --new-volume-script=@var{command}
+@itemx -F @var{command}
+Specify the command to invoke when switching volumes.  The @var{command}
+can be used to eject cassettes, or to broadcast messages such as
 @samp{Someone please come change my tape} when performing unattended
 backups.
 @end table
 
-The @var{script-name} is executed without any command line
-arguments.  It inherits @command{tar}'s shell environment.
-Additional data is passed to it via the following
-environment variables:
+The @var{command} can contain additional options, if such are needed.
+@xref{external, Running External Commands}, for a detailed discussion
+of the way @GNUTAR{} runs external commands.  It inherits
+@command{tar}'s shell environment.  Additional data is passed to it
+via the following environment variables:
 
 @table @env
 @vrindex TAR_VERSION, info script environment variable
@@ -11348,6 +11468,10 @@ File descriptor which can be used to communicate the new volume
 name to @command{tar}.
 @end table
 
+These variables can be used in the @var{command} itself, provided that
+they are properly quoted to prevent them from being expanded by the
+shell that invokes @command{tar}.
+
 The volume script can instruct @command{tar} to use new archive name,
 by writing in to file descriptor @env{$TAR_FD} (see below for an example).
 
@@ -11367,7 +11491,7 @@ second tape, and then back to the first tape, etc., just do either of:
 
 @smallexample
 $ @kbd{tar --create --multi-volume --file=/dev/tape0 --file=/dev/tape1 @var{files}}
-$ @kbd{tar cMff /dev/tape0 /dev/tape1 @var{files}}
+$ @kbd{tar -cM -f /dev/tape0 -f /dev/tape1 @var{files}}
 @end smallexample
 
 The second method is to use the @samp{n} response to the tape-change
@@ -11382,7 +11506,10 @@ archive being created (as given by @option{--file} option) and
 
 @smallexample
 @group
-#! /bin/sh
+#! /bin/bash
+# For this script it's advisable to use a shell, such as Bash,
+# that supports a TAR_FD value greater than 9.
+
 echo Preparing volume $TAR_VOLUME of $TAR_ARCHIVE.
 
 name=`expr $TAR_ARCHIVE : '\(.*\)-.*'`
@@ -11615,7 +11742,7 @@ you will get:
 @smallexample
 @group
 $ @kbd{tar -rf archive --label 'My volume' .}
-tar: Archive not labeled to match `My volume'
+tar: Archive not labeled to match 'My volume'
 @end group
 @end smallexample
 
@@ -11646,7 +11773,7 @@ manage to get some date string as part of the label.  For example:
 
 @smallexample
 @group
-$ @kbd{tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`"}
+$ @kbd{tar -cM -f /dev/tape -V "Daily backup for `date +%Y-%m-%d`"}
 $ @kbd{tar --create --file=/dev/tape --multi-volume \
      --label="Daily backup for `date +%Y-%m-%d`"}
 @end group
@@ -11925,11 +12052,16 @@ lets the archive overwrite any file in your system that you can write,
 the @option{--absolute-names} (@option{-P}) option should be used only
 for trusted archives.
 
-Conversely, with the @option{--keep-old-files} (@option{-k}) option,
-@command{tar} refuses to replace existing files when extracting; and
-with the @option{--no-overwrite-dir} option, @command{tar} refuses to
-replace the permissions or ownership of already-existing directories.
-These options may help when extracting from untrusted archives.
+Conversely, with the @option{--keep-old-files} (@option{-k}) and
+@option{--skip-old-files} options, @command{tar} refuses to replace
+existing files when extracting.  The difference between the two
+options is that the former treats existing files as errors whereas the
+latter just silently ignores them.
+
+Finally, with the @option{--no-overwrite-dir} option, @command{tar}
+refuses to replace the permissions or ownership of already-existing
+directories.  These options may help when extracting from untrusted
+archives.
 
 @node Live untrusted data
 @subsection Dealing with Live Untrusted Data
index a070b1168ee2a39d9bcc425fa628f691518e66d8..faa8053f72bcb0d38b59234b16aa4478fa95acc8 100644 (file)
@@ -1,18 +1,19 @@
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-#
-# GNU tar is free software; you can redistribute 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.
-#
-# GNU tar 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.
-#
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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 GNU tar; if not, write to the Free Software
-# Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 1{s,/\*,@comment ,
 b
index d7cd620e74557b1e06cd0aee03ec1afd1609cd1f..7c26bf82e5aa77f1b9672f41aaaa1264fda537ee 100644 (file)
@@ -1,6 +1,5 @@
 @c This is part of GNU tar manual.
-@c Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001,
-@c 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+@c Copyright 1992, 1994-1997, 1999-2006, 2013 Free Software Foundation, Inc.
 @c See file tar.texi for copying conditions.
 
 @macro GNUTAR
index 019935b11e8ab31a724f49331c344d5e981410b9..905e035a5c96019b9ac9dc6208cdba1bcc72cc10 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 12 March 2011
-@set UPDATED-MONTH March 2011
-@set EDITION 1.26
-@set VERSION 1.26
+@set UPDATED 24 September 2013
+@set UPDATED-MONTH September 2013
+@set EDITION 1.27
+@set VERSION 1.27
index 06eb0d95877770cacbf37ef62da55c91e21c38ea..299bb0e038fca9fb4f9c305b46541b7703c39864 100644 (file)
-# -*- buffer-read-only: t -*- vi: set ro:
-# DO NOT EDIT! GENERATED AUTOMATICALLY!
-## DO NOT EDIT! GENERATED AUTOMATICALLY!
-## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2011 Free Software Foundation, Inc.
-#
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
-# the same distribution terms as the rest of that program.
-#
-# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail fdopendir fdutimensat fileblocks fnmatch-gnu fseeko full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat rpmatch safe-read savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
-
-AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
-
-SUBDIRS =
-noinst_HEADERS =
-noinst_LIBRARIES =
-noinst_LTLIBRARIES =
-EXTRA_DIST =
-BUILT_SOURCES =
-SUFFIXES =
-MOSTLYCLEANFILES = core *.stackdump
-MOSTLYCLEANDIRS =
-CLEANFILES =
-DISTCLEANFILES =
-MAINTAINERCLEANFILES =
-
-AM_CPPFLAGS =
-AM_CFLAGS =
-
-noinst_LIBRARIES += libgnu.a
-
-libgnu_a_SOURCES =
-libgnu_a_LIBADD = $(gl_LIBOBJS)
-libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
-EXTRA_libgnu_a_SOURCES =
-
-## begin gnulib module alloca
-
-
-EXTRA_DIST += alloca.c
-
-EXTRA_libgnu_a_SOURCES += alloca.c
-
-libgnu_a_LIBADD += @ALLOCA@
-libgnu_a_DEPENDENCIES += @ALLOCA@
-## end   gnulib module alloca
-
-## begin gnulib module alloca-opt
-
-BUILT_SOURCES += $(ALLOCA_H)
-
-# We need the following in order to create <alloca.h> when the system
-# doesn't have one that works with the given compiler.
-alloca.h: alloca.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/alloca.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += alloca.h alloca.h-t
-
-EXTRA_DIST += alloca.in.h
-
-## end   gnulib module alloca-opt
-
-## begin gnulib module areadlink
-
-libgnu_a_SOURCES += areadlink.c
-
-EXTRA_DIST += areadlink.h
-
-## end   gnulib module areadlink
-
-## begin gnulib module areadlinkat
-
-libgnu_a_SOURCES += areadlinkat.c
-
-EXTRA_DIST += areadlink.h
-
-## end   gnulib module areadlinkat
-
-## begin gnulib module arg-nonnull
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# 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
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
-
-ARG_NONNULL_H=arg-nonnull.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/arg-nonnull.h
-
-## end   gnulib module arg-nonnull
-
-## begin gnulib module argmatch
-
-
-EXTRA_DIST += argmatch.c argmatch.h
-
-EXTRA_libgnu_a_SOURCES += argmatch.c
-
-## end   gnulib module argmatch
-
-## begin gnulib module argp
-
-libgnu_a_SOURCES += argp.h argp-ba.c argp-eexst.c \
-           argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c \
-           argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c \
-           argp-xinl.c
-
-## end   gnulib module argp
-
-## begin gnulib module argp-version-etc
-
-libgnu_a_SOURCES += argp-version-etc.h argp-version-etc.c
-
-## end   gnulib module argp-version-etc
-
-## begin gnulib module backupfile
-
-
-EXTRA_DIST += backupfile.c backupfile.h
-
-EXTRA_libgnu_a_SOURCES += backupfile.c
-
-## end   gnulib module backupfile
-
-## begin gnulib module bitrotate
-
-libgnu_a_SOURCES += bitrotate.h
-
-## end   gnulib module bitrotate
-
-## begin gnulib module btowc
-
-
-EXTRA_DIST += btowc.c
-
-EXTRA_libgnu_a_SOURCES += btowc.c
-
-## end   gnulib module btowc
-
-## begin gnulib module c++defs
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# 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 += c++defs.h
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += c++defs.h c++defs.h-t
-
-CXXDEFS_H=c++defs.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/c++defs.h
-
-## end   gnulib module c++defs
-
-## begin gnulib module c-ctype
-
-libgnu_a_SOURCES += c-ctype.h c-ctype.c
-
-## end   gnulib module c-ctype
-
-## begin gnulib module canonicalize-lgpl
-
-
-EXTRA_DIST += canonicalize-lgpl.c
-
-EXTRA_libgnu_a_SOURCES += canonicalize-lgpl.c
-
-## end   gnulib module canonicalize-lgpl
-
-## begin gnulib module chdir-long
-
-
-EXTRA_DIST += chdir-long.c chdir-long.h
-
-EXTRA_libgnu_a_SOURCES += chdir-long.c
-
-## end   gnulib module chdir-long
-
-## begin gnulib module chown
-
-
-EXTRA_DIST += chown.c fchown-stub.c
-
-EXTRA_libgnu_a_SOURCES += chown.c fchown-stub.c
-
-## end   gnulib module chown
-
-## begin gnulib module cloexec
-
-
-EXTRA_DIST += cloexec.c cloexec.h
-
-EXTRA_libgnu_a_SOURCES += cloexec.c
-
-## end   gnulib module cloexec
-
-## begin gnulib module close
-
-
-EXTRA_DIST += close.c
-
-EXTRA_libgnu_a_SOURCES += close.c
-
-## end   gnulib module close
-
-## begin gnulib module close-hook
-
-libgnu_a_SOURCES += close-hook.c
-
-EXTRA_DIST += close-hook.h
-
-## end   gnulib module close-hook
-
-## begin gnulib module close-stream
-
-
-EXTRA_DIST += close-stream.c close-stream.h
-
-EXTRA_libgnu_a_SOURCES += close-stream.c
-
-## end   gnulib module close-stream
-
-## begin gnulib module closeout
-
-
-EXTRA_DIST += closeout.c closeout.h
-
-EXTRA_libgnu_a_SOURCES += closeout.c
-
-## end   gnulib module closeout
-
-## begin gnulib module configmake
-
-# Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+.
-# The Automake-defined pkg* macros are appended, in the order
-# listed in the Automake 1.10a+ documentation.
-configmake.h: Makefile
-       $(AM_V_GEN)rm -f $@-t && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         echo '#define PREFIX "$(prefix)"'; \
-         echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
-         echo '#define BINDIR "$(bindir)"'; \
-         echo '#define SBINDIR "$(sbindir)"'; \
-         echo '#define LIBEXECDIR "$(libexecdir)"'; \
-         echo '#define DATAROOTDIR "$(datarootdir)"'; \
-         echo '#define DATADIR "$(datadir)"'; \
-         echo '#define SYSCONFDIR "$(sysconfdir)"'; \
-         echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
-         echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
-         echo '#define INCLUDEDIR "$(includedir)"'; \
-         echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
-         echo '#define DOCDIR "$(docdir)"'; \
-         echo '#define INFODIR "$(infodir)"'; \
-         echo '#define HTMLDIR "$(htmldir)"'; \
-         echo '#define DVIDIR "$(dvidir)"'; \
-         echo '#define PDFDIR "$(pdfdir)"'; \
-         echo '#define PSDIR "$(psdir)"'; \
-         echo '#define LIBDIR "$(libdir)"'; \
-         echo '#define LISPDIR "$(lispdir)"'; \
-         echo '#define LOCALEDIR "$(localedir)"'; \
-         echo '#define MANDIR "$(mandir)"'; \
-         echo '#define MANEXT "$(manext)"'; \
-         echo '#define PKGDATADIR "$(pkgdatadir)"'; \
-         echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
-         echo '#define PKGLIBDIR "$(pkglibdir)"'; \
-         echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
-       } | sed '/""/d' > $@-t && \
-       if test -f $@ && cmp $@-t $@ > /dev/null; then \
-         rm -f $@-t; \
-       else \
-         rm -f $@; mv $@-t $@; \
-       fi
-
-BUILT_SOURCES += configmake.h
-CLEANFILES += configmake.h configmake.h-t
-
-## end   gnulib module configmake
-
-## begin gnulib module dirent
-
-BUILT_SOURCES += dirent.h
-
-# We need the following in order to create <dirent.h> when the system
-# doesn't have one that works with the given compiler.
-dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -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_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
-             -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \
-             -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \
-             -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \
-             -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \
-             -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
-             -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \
-             -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \
-             -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \
-             -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \
-             -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
-             -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
-             -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \
-             -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|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)/dirent.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += dirent.h dirent.h-t
-
-EXTRA_DIST += dirent.in.h
-
-## end   gnulib module dirent
-
-## begin gnulib module dirent-safer
-
-
-EXTRA_DIST += dirent--.h dirent-safer.h opendir-safer.c
-
-EXTRA_libgnu_a_SOURCES += opendir-safer.c
-
-## end   gnulib module dirent-safer
-
-## begin gnulib module dirfd
-
-
-EXTRA_DIST += dirfd.c
-
-EXTRA_libgnu_a_SOURCES += dirfd.c
-
-## end   gnulib module dirfd
-
-## begin gnulib module dirname
-
-
-EXTRA_DIST += basename.c dirname.c stripslash.c
-
-EXTRA_libgnu_a_SOURCES += basename.c dirname.c stripslash.c
-
-## end   gnulib module dirname
-
-## begin gnulib module dirname-lgpl
-
-
-EXTRA_DIST += basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c
-
-EXTRA_libgnu_a_SOURCES += basename-lgpl.c dirname-lgpl.c stripslash.c
-
-## end   gnulib module dirname-lgpl
-
-## begin gnulib module dosname
-
-
-EXTRA_DIST += dosname.h
-
-## end   gnulib module dosname
-
-## begin gnulib module dup2
-
-
-EXTRA_DIST += dup2.c
-
-EXTRA_libgnu_a_SOURCES += dup2.c
-
-## end   gnulib module dup2
-
-## begin gnulib module errno
-
-BUILT_SOURCES += $(ERRNO_H)
-
-# We need the following in order to create <errno.h> when the system
-# doesn't have one that is POSIX compliant.
-errno.h: errno.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-             -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-             -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-             -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-             -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-             -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-             -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-             < $(srcdir)/errno.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += errno.h errno.h-t
-
-EXTRA_DIST += errno.in.h
-
-## end   gnulib module errno
-
-## begin gnulib module error
-
-
-EXTRA_DIST += error.c error.h
-
-EXTRA_libgnu_a_SOURCES += error.c
-
-## end   gnulib module error
-
-## begin gnulib module exclude
-
-
-EXTRA_DIST += exclude.c exclude.h
-
-EXTRA_libgnu_a_SOURCES += exclude.c
-
-## end   gnulib module exclude
-
-## begin gnulib module exitfail
-
-libgnu_a_SOURCES += exitfail.c
-
-EXTRA_DIST += exitfail.h
-
-## end   gnulib module exitfail
-
-## begin gnulib module fchdir
-
-
-EXTRA_DIST += fchdir.c
-
-EXTRA_libgnu_a_SOURCES += fchdir.c
-
-## end   gnulib module fchdir
-
-## begin gnulib module fclose
-
-
-EXTRA_DIST += fclose.c
-
-EXTRA_libgnu_a_SOURCES += fclose.c
-
-## end   gnulib module fclose
-
-## begin gnulib module fcntl
-
-
-EXTRA_DIST += fcntl.c
-
-EXTRA_libgnu_a_SOURCES += fcntl.c
-
-## end   gnulib module fcntl
-
-## begin gnulib module fcntl-h
-
-BUILT_SOURCES += fcntl.h
-
-# We need the following in order to create <fcntl.h> when the system
-# doesn't have one that works with the given compiler.
-fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
-             -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \
-             -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
-             -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
-             -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-             -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
-             -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
-             -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
-             -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|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)/fcntl.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += fcntl.h fcntl.h-t
-
-EXTRA_DIST += fcntl.in.h
-
-## end   gnulib module fcntl-h
-
-## begin gnulib module fdopendir
-
-
-EXTRA_DIST += fdopendir.c openat-priv.h openat-proc.c
-
-EXTRA_libgnu_a_SOURCES += fdopendir.c openat-proc.c
-
-## end   gnulib module fdopendir
-
-## begin gnulib module fdutimensat
-
-libgnu_a_SOURCES += fdutimensat.c
-
-EXTRA_DIST += utimens.h
-
-## end   gnulib module fdutimensat
-
-## begin gnulib module fileblocks
-
-
-EXTRA_DIST += fileblocks.c
-
-EXTRA_libgnu_a_SOURCES += fileblocks.c
-
-## end   gnulib module fileblocks
-
-## begin gnulib module filenamecat-lgpl
-
-
-EXTRA_DIST += filenamecat-lgpl.c filenamecat.h
-
-EXTRA_libgnu_a_SOURCES += filenamecat-lgpl.c
-
-## end   gnulib module filenamecat-lgpl
-
-## begin gnulib module float
-
-BUILT_SOURCES += $(FLOAT_H)
-
-# We need the following in order to create <float.h> when the system
-# doesn't have one that works with the given compiler.
-float.h: float.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-             < $(srcdir)/float.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += float.h float.h-t
-
-EXTRA_DIST += float.in.h
-
-## end   gnulib module float
-
-## begin gnulib module fnmatch
-
-BUILT_SOURCES += $(FNMATCH_H)
-
-# We need the following in order to create <fnmatch.h> when the system
-# doesn't have one that supports the required API.
-fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/fnmatch.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t
-
-EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c
-
-EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c
-
-## end   gnulib module fnmatch
-
-## begin gnulib module fpending
-
-
-EXTRA_DIST += fpending.c fpending.h
-
-EXTRA_libgnu_a_SOURCES += fpending.c
-
-## end   gnulib module fpending
-
-## begin gnulib module fseeko
-
-
-EXTRA_DIST += fseeko.c stdio-impl.h
-
-EXTRA_libgnu_a_SOURCES += fseeko.c
-
-## end   gnulib module fseeko
-
-## begin gnulib module full-write
-
-libgnu_a_SOURCES += full-write.h full-write.c
-
-## end   gnulib module full-write
-
-## begin gnulib module futimens
-
-
-EXTRA_DIST += futimens.c
-
-EXTRA_libgnu_a_SOURCES += futimens.c
-
-## end   gnulib module futimens
-
-## begin gnulib module getcwd
-
-
-EXTRA_DIST += getcwd.c
-
-EXTRA_libgnu_a_SOURCES += getcwd.c
-
-## end   gnulib module getcwd
-
-## begin gnulib module getdelim
-
-
-EXTRA_DIST += getdelim.c
-
-EXTRA_libgnu_a_SOURCES += getdelim.c
-
-## end   gnulib module getdelim
-
-## begin gnulib module getdtablesize
-
-
-EXTRA_DIST += getdtablesize.c
-
-EXTRA_libgnu_a_SOURCES += getdtablesize.c
-
-## end   gnulib module getdtablesize
-
-## begin gnulib module getline
-
-
-EXTRA_DIST += getline.c
-
-EXTRA_libgnu_a_SOURCES += getline.c
-
-## end   gnulib module getline
-
-## begin gnulib module getopt-posix
-
-BUILT_SOURCES += $(GETOPT_H)
-
-# We need the following in order to create <getopt.h> when the system
-# doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/getopt.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += getopt.h getopt.h-t
-
-EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
-
-EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c
-
-## end   gnulib module getopt-posix
-
-## begin gnulib module getpagesize
-
-
-EXTRA_DIST += getpagesize.c
-
-EXTRA_libgnu_a_SOURCES += getpagesize.c
-
-## end   gnulib module getpagesize
-
-## begin gnulib module gettext
-
-# This is for those projects which use "gettextize --intl" to put a source-code
-# copy of libintl into their package. In such projects, every Makefile.am needs
-# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
-# For the Makefile.ams in other directories it is the maintainer's
-# responsibility; for the one from gnulib we do it here.
-# This option has no effect when the user disables NLS (because then the intl
-# directory contains no libintl.h file) or when the project does not use
-# "gettextize --intl".
-AM_CPPFLAGS += -I$(top_builddir)/intl
-
-EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
-
-## end   gnulib module gettext
-
-## begin gnulib module gettext-h
-
-libgnu_a_SOURCES += gettext.h
-
-## end   gnulib module gettext-h
-
-## begin gnulib module gettime
-
-
-EXTRA_DIST += gettime.c
-
-EXTRA_libgnu_a_SOURCES += gettime.c
-
-## end   gnulib module gettime
-
-## begin gnulib module gettimeofday
-
-
-EXTRA_DIST += gettimeofday.c
-
-EXTRA_libgnu_a_SOURCES += gettimeofday.c
-
-## end   gnulib module gettimeofday
-
-## begin gnulib module gitlog-to-changelog
-
-
-EXTRA_DIST += $(top_srcdir)/build-aux/gitlog-to-changelog
-
-## end   gnulib module gitlog-to-changelog
-
-## begin gnulib module hash
-
-
-EXTRA_DIST += hash.c hash.h
-
-EXTRA_libgnu_a_SOURCES += hash.c
-
-## end   gnulib module hash
-
-## begin gnulib module havelib
-
-
-EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
-
-## end   gnulib module havelib
-
-## begin gnulib module human
-
-
-EXTRA_DIST += human.c human.h
-
-EXTRA_libgnu_a_SOURCES += human.c
-
-## end   gnulib module human
-
-## begin gnulib module intprops
-
-
-EXTRA_DIST += intprops.h
-
-## end   gnulib module intprops
-
-## begin gnulib module inttostr
-
-libgnu_a_SOURCES += \
-  imaxtostr.c \
-  inttostr.c \
-  offtostr.c \
-  uinttostr.c \
-  umaxtostr.c
-
-EXTRA_DIST += anytostr.c inttostr.h
-
-EXTRA_libgnu_a_SOURCES += anytostr.c
-
-## end   gnulib module inttostr
-
-## begin gnulib module inttypes
-
-BUILT_SOURCES += inttypes.h
-
-# We need the following in order to create <inttypes.h> when the system
-# doesn't have one that works with the given compiler.
-inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -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_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
-             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
-             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
-             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
-             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
-             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
-             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
-             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-             -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-             -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_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' \
-             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/inttypes.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += inttypes.h inttypes.h-t
-
-EXTRA_DIST += inttypes.in.h
-
-## end   gnulib module inttypes
-
-## begin gnulib module iswblank
-
-
-EXTRA_DIST += iswblank.c
-
-EXTRA_libgnu_a_SOURCES += iswblank.c
-
-## end   gnulib module iswblank
-
-## begin gnulib module langinfo
-
-BUILT_SOURCES += langinfo.h
-
-# We need the following in order to create an empty placeholder for
-# <langinfo.h> when the system doesn't have one.
-langinfo.h: langinfo.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
-             -e 's|@''GNULIB_NL_LANGINFO''@|$(GNULIB_NL_LANGINFO)|g' \
-             -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
-             -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
-             -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
-             -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \
-             -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
-             -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/langinfo.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += langinfo.h langinfo.h-t
-
-EXTRA_DIST += langinfo.in.h
-
-## end   gnulib module langinfo
-
-## begin gnulib module lchown
-
-
-EXTRA_DIST += lchown.c
-
-EXTRA_libgnu_a_SOURCES += lchown.c
-
-## end   gnulib module lchown
-
-## begin gnulib module link
-
-
-EXTRA_DIST += link.c
-
-EXTRA_libgnu_a_SOURCES += link.c
-
-## end   gnulib module link
-
-## begin gnulib module linkat
-
-
-EXTRA_DIST += at-func2.c linkat.c
-
-EXTRA_libgnu_a_SOURCES += at-func2.c linkat.c
-
-## end   gnulib module linkat
-
-## begin gnulib module localcharset
-
-libgnu_a_SOURCES += localcharset.h localcharset.c
-
-# We need the following in order to install a simple file in $(libdir)
-# which is shared with other installed packages. We use a list of referencing
-# packages so that "make uninstall" will remove the file if and only if it
-# is not used by another installed package.
-# On systems with glibc-2.1 or newer, the file is redundant, therefore we
-# avoid installing it.
-
-all-local: charset.alias ref-add.sed ref-del.sed
-
-charset_alias = $(DESTDIR)$(libdir)/charset.alias
-charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
-install-exec-local: install-exec-localcharset
-install-exec-localcharset: all-local
-       if test $(GLIBC21) = no; then \
-         case '$(host_os)' in \
-           darwin[56]*) \
-             need_charset_alias=true ;; \
-           darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-             need_charset_alias=false ;; \
-           *) \
-             need_charset_alias=true ;; \
-         esac ; \
-       else \
-         need_charset_alias=false ; \
-       fi ; \
-       if $$need_charset_alias; then \
-         $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
-       fi ; \
-       if test -f $(charset_alias); then \
-         sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
-         $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
-         rm -f $(charset_tmp) ; \
-       else \
-         if $$need_charset_alias; then \
-           sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
-           $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
-           rm -f $(charset_tmp) ; \
-         fi ; \
-       fi
-
-uninstall-local: uninstall-localcharset
-uninstall-localcharset: all-local
-       if test -f $(charset_alias); then \
-         sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
-         if grep '^# Packages using this file: $$' $(charset_tmp) \
-             > /dev/null; then \
-           rm -f $(charset_alias); \
-         else \
-           $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
-         fi; \
-         rm -f $(charset_tmp); \
-       fi
-
-charset.alias: config.charset
-       $(AM_V_GEN)rm -f t-$@ $@ && \
-       $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
-       mv t-$@ $@
-
-SUFFIXES += .sed .sin
-.sin.sed:
-       $(AM_V_GEN)rm -f t-$@ $@ && \
-       sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
-       mv t-$@ $@
-
-CLEANFILES += charset.alias ref-add.sed ref-del.sed
-
-EXTRA_DIST += config.charset ref-add.sin ref-del.sin
-
-## end   gnulib module localcharset
-
-## begin gnulib module lseek
-
-
-EXTRA_DIST += lseek.c
-
-EXTRA_libgnu_a_SOURCES += lseek.c
-
-## end   gnulib module lseek
-
-## begin gnulib module lstat
-
-
-EXTRA_DIST += lstat.c
-
-EXTRA_libgnu_a_SOURCES += lstat.c
-
-## end   gnulib module lstat
-
-## begin gnulib module malloc-gnu
-
-
-EXTRA_DIST += malloc.c
-
-EXTRA_libgnu_a_SOURCES += malloc.c
-
-## end   gnulib module malloc-gnu
-
-## begin gnulib module malloc-posix
-
-
-EXTRA_DIST += malloc.c
-
-EXTRA_libgnu_a_SOURCES += malloc.c
-
-## end   gnulib module malloc-posix
-
-## begin gnulib module malloca
-
-libgnu_a_SOURCES += malloca.c
-
-EXTRA_DIST += malloca.h malloca.valgrind
-
-## end   gnulib module malloca
-
-## begin gnulib module mbchar
-
-libgnu_a_SOURCES += mbchar.c
-
-EXTRA_DIST += mbchar.h
-
-## end   gnulib module mbchar
-
-## begin gnulib module mbrtowc
-
-
-EXTRA_DIST += mbrtowc.c
-
-EXTRA_libgnu_a_SOURCES += mbrtowc.c
-
-## end   gnulib module mbrtowc
-
-## begin gnulib module mbscasecmp
-
-libgnu_a_SOURCES += mbscasecmp.c
-
-## end   gnulib module mbscasecmp
-
-## begin gnulib module mbsinit
-
-
-EXTRA_DIST += mbsinit.c
-
-EXTRA_libgnu_a_SOURCES += mbsinit.c
-
-## end   gnulib module mbsinit
-
-## begin gnulib module mbsrtowcs
-
-
-EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c
-
-EXTRA_libgnu_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c
-
-## end   gnulib module mbsrtowcs
-
-## begin gnulib module mbtowc
-
-
-EXTRA_DIST += mbtowc-impl.h mbtowc.c
-
-EXTRA_libgnu_a_SOURCES += mbtowc.c
-
-## end   gnulib module mbtowc
-
-## begin gnulib module mbuiter
-
-libgnu_a_SOURCES += mbuiter.h
-
-## end   gnulib module mbuiter
-
-## begin gnulib module memchr
-
-
-EXTRA_DIST += memchr.c memchr.valgrind
-
-EXTRA_libgnu_a_SOURCES += memchr.c
-
-## end   gnulib module memchr
-
-## begin gnulib module mempcpy
-
-
-EXTRA_DIST += mempcpy.c
-
-EXTRA_libgnu_a_SOURCES += mempcpy.c
-
-## end   gnulib module mempcpy
-
-## begin gnulib module memrchr
-
-
-EXTRA_DIST += memrchr.c
-
-EXTRA_libgnu_a_SOURCES += memrchr.c
-
-## end   gnulib module memrchr
-
-## begin gnulib module mkdir
-
-
-EXTRA_DIST += mkdir.c
-
-EXTRA_libgnu_a_SOURCES += mkdir.c
-
-## end   gnulib module mkdir
-
-## begin gnulib module mkdtemp
-
-
-EXTRA_DIST += mkdtemp.c
-
-EXTRA_libgnu_a_SOURCES += mkdtemp.c
-
-## end   gnulib module mkdtemp
-
-## begin gnulib module mkfifo
-
-
-EXTRA_DIST += mkfifo.c
-
-EXTRA_libgnu_a_SOURCES += mkfifo.c
-
-## end   gnulib module mkfifo
-
-## begin gnulib module mkfifoat
-
-
-EXTRA_DIST += mkfifoat.c mknodat.c
-
-EXTRA_libgnu_a_SOURCES += mkfifoat.c mknodat.c
-
-## end   gnulib module mkfifoat
-
-## begin gnulib module mknod
-
-
-EXTRA_DIST += mknod.c
-
-EXTRA_libgnu_a_SOURCES += mknod.c
-
-## end   gnulib module mknod
-
-## begin gnulib module mktime
-
-
-EXTRA_DIST += mktime-internal.h mktime.c
-
-EXTRA_libgnu_a_SOURCES += mktime.c
-
-## end   gnulib module mktime
-
-## begin gnulib module modechange
-
-
-EXTRA_DIST += modechange.c modechange.h
-
-EXTRA_libgnu_a_SOURCES += modechange.c
-
-## end   gnulib module modechange
-
-## begin gnulib module nl_langinfo
-
-
-EXTRA_DIST += nl_langinfo.c
-
-EXTRA_libgnu_a_SOURCES += nl_langinfo.c
-
-## end   gnulib module nl_langinfo
-
-## begin gnulib module obstack
-
-
-EXTRA_DIST += obstack.c obstack.h
-
-EXTRA_libgnu_a_SOURCES += obstack.c
-
-## end   gnulib module obstack
-
-## begin gnulib module open
-
-
-EXTRA_DIST += open.c
-
-EXTRA_libgnu_a_SOURCES += open.c
-
-## end   gnulib module open
-
-## begin gnulib module openat
-
-
-EXTRA_DIST += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-priv.h openat-proc.c openat.c openat.h unlinkat.c
-
-EXTRA_libgnu_a_SOURCES += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-proc.c openat.c unlinkat.c
-
-## end   gnulib module openat
-
-## begin gnulib module openat-die
-
-libgnu_a_SOURCES += openat-die.c
-
-## end   gnulib module openat-die
-
-## begin gnulib module parse-datetime
-
-# This rule overrides the Automake generated .y.c rule, to ensure that the
-# parse-datetime.c file gets generated in the source directory, not in the
-# build directory.
-parse-datetime.c: parse-datetime.y
-       $(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
-                                     y.tab.c parse-datetime.c \
-                                     y.tab.h parse-datetime.h \
-                                     y.output parse-datetime.output \
-                                     -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
-       mv parse-datetime.c parse-datetime.c-t && \
-       mv parse-datetime.c-t $(srcdir)/parse-datetime.c
-libgnu_a_SOURCES += parse-datetime.y
-BUILT_SOURCES += parse-datetime.c
-MOSTLYCLEANFILES += parse-datetime.c-t
-MAINTAINERCLEANFILES += parse-datetime.c
-EXTRA_DIST += parse-datetime.c
-
-EXTRA_DIST += parse-datetime.h
-
-## end   gnulib module parse-datetime
-
-## begin gnulib module pathmax
-
-
-EXTRA_DIST += pathmax.h
-
-## end   gnulib module pathmax
-
-## begin gnulib module priv-set
-
-libgnu_a_SOURCES += priv-set.c
-
-EXTRA_DIST += priv-set.h
-
-## end   gnulib module priv-set
-
-## begin gnulib module progname
-
-libgnu_a_SOURCES += progname.h progname.c
-
-## end   gnulib module progname
-
-## begin gnulib module quote
-
-
-EXTRA_DIST += quote.c quote.h
-
-EXTRA_libgnu_a_SOURCES += quote.c
-
-## end   gnulib module quote
-
-## begin gnulib module quotearg
-
-
-EXTRA_DIST += quotearg.c quotearg.h
-
-EXTRA_libgnu_a_SOURCES += quotearg.c
-
-## end   gnulib module quotearg
-
-## begin gnulib module rawmemchr
-
-
-EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
-
-EXTRA_libgnu_a_SOURCES += rawmemchr.c
-
-## end   gnulib module rawmemchr
-
-## begin gnulib module readlink
-
-
-EXTRA_DIST += readlink.c
-
-EXTRA_libgnu_a_SOURCES += readlink.c
-
-## end   gnulib module readlink
-
-## begin gnulib module readlinkat
-
-
-EXTRA_DIST += readlinkat.c
-
-EXTRA_libgnu_a_SOURCES += readlinkat.c
-
-## end   gnulib module readlinkat
-
-## begin gnulib module realloc-posix
-
-
-EXTRA_DIST += realloc.c
-
-EXTRA_libgnu_a_SOURCES += realloc.c
-
-## end   gnulib module realloc-posix
-
-## begin gnulib module regex
-
-
-EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
-
-EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
-
-## end   gnulib module regex
-
-## begin gnulib module rename
-
-
-EXTRA_DIST += rename.c
-
-EXTRA_libgnu_a_SOURCES += rename.c
-
-## end   gnulib module rename
-
-## begin gnulib module renameat
-
-
-EXTRA_DIST += at-func2.c renameat.c
-
-EXTRA_libgnu_a_SOURCES += at-func2.c renameat.c
-
-## end   gnulib module renameat
-
-## begin gnulib module rmdir
-
-
-EXTRA_DIST += rmdir.c
-
-EXTRA_libgnu_a_SOURCES += rmdir.c
-
-## end   gnulib module rmdir
-
-## begin gnulib module rpmatch
-
-
-EXTRA_DIST += rpmatch.c
-
-EXTRA_libgnu_a_SOURCES += rpmatch.c
-
-## end   gnulib module rpmatch
-
-## begin gnulib module safe-read
-
-
-EXTRA_DIST += safe-read.c safe-read.h
-
-EXTRA_libgnu_a_SOURCES += safe-read.c
-
-## end   gnulib module safe-read
-
-## begin gnulib module safe-write
-
-
-EXTRA_DIST += safe-write.c safe-write.h
-
-EXTRA_libgnu_a_SOURCES += safe-write.c
-
-## end   gnulib module safe-write
-
-## begin gnulib module same-inode
-
-
-EXTRA_DIST += same-inode.h
-
-## end   gnulib module same-inode
-
-## begin gnulib module save-cwd
-
-
-EXTRA_DIST += save-cwd.c save-cwd.h
-
-EXTRA_libgnu_a_SOURCES += save-cwd.c
-
-## end   gnulib module save-cwd
-
-## begin gnulib module savedir
-
-
-EXTRA_DIST += savedir.c savedir.h
-
-EXTRA_libgnu_a_SOURCES += savedir.c
-
-## end   gnulib module savedir
-
-## begin gnulib module setenv
-
-
-EXTRA_DIST += setenv.c
-
-EXTRA_libgnu_a_SOURCES += setenv.c
-
-## end   gnulib module setenv
-
-## begin gnulib module size_max
-
-libgnu_a_SOURCES += size_max.h
-
-## end   gnulib module size_max
-
-## begin gnulib module sleep
-
-
-EXTRA_DIST += sleep.c
-
-EXTRA_libgnu_a_SOURCES += sleep.c
-
-## end   gnulib module sleep
-
-## begin gnulib module snprintf
-
-
-EXTRA_DIST += snprintf.c
-
-EXTRA_libgnu_a_SOURCES += snprintf.c
-
-## end   gnulib module snprintf
-
-## begin gnulib module stat
-
-
-EXTRA_DIST += stat.c
-
-EXTRA_libgnu_a_SOURCES += stat.c
-
-## end   gnulib module stat
-
-## begin gnulib module stat-macros
-
-
-EXTRA_DIST += stat-macros.h
-
-## end   gnulib module stat-macros
-
-## begin gnulib module stat-time
-
-
-EXTRA_DIST += stat-time.h
-
-## end   gnulib module stat-time
-
-## begin gnulib module stdarg
-
-BUILT_SOURCES += $(STDARG_H)
-
-# We need the following in order to create <stdarg.h> when the system
-# doesn't have one that works with the given compiler.
-stdarg.h: stdarg.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
-             < $(srcdir)/stdarg.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stdarg.h stdarg.h-t
-
-EXTRA_DIST += stdarg.in.h
-
-## end   gnulib module stdarg
-
-## begin gnulib module stdbool
-
-BUILT_SOURCES += $(STDBOOL_H)
-
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
-stdbool.h: stdbool.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stdbool.h stdbool.h-t
-
-EXTRA_DIST += stdbool.in.h
-
-## end   gnulib module stdbool
-
-## begin gnulib module stddef
-
-BUILT_SOURCES += $(STDDEF_H)
-
-# We need the following in order to create <stddef.h> when the system
-# doesn't have one that works with the given compiler.
-stddef.h: stddef.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-             -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
-             -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-             < $(srcdir)/stddef.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stddef.h stddef.h-t
-
-EXTRA_DIST += stddef.in.h
-
-## end   gnulib module stddef
-
-## begin gnulib module stdint
-
-BUILT_SOURCES += $(STDINT_H)
-
-# We need the following in order to create <stdint.h> when the system
-# doesn't have one that works with the given compiler.
-stdint.h: stdint.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
-             -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
-             -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
-             -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
-             -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
-             -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
-             -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
-             -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
-             -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
-             -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
-             -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-             < $(srcdir)/stdint.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stdint.h stdint.h-t
-
-EXTRA_DIST += stdint.in.h
-
-## end   gnulib module stdint
-
-## begin gnulib module stdio
-
-BUILT_SOURCES += stdio.h
-
-# We need the following in order to create <stdio.h> when the system
-# doesn't have one that works with the given compiler.
-stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_STDIO_H''@|$(NEXT_STDIO_H)|g' \
-             -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \
-             -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
-             -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
-             -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
-             -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \
-             -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
-             -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
-             -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \
-             -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
-             -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
-             -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
-             -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
-             -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
-             -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \
-             -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
-             -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
-             -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \
-             -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \
-             -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \
-             -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \
-             -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
-             -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \
-             -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \
-             -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \
-             -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \
-             -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \
-             -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
-             -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \
-             -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
-             -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \
-             -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \
-             -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \
-             -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
-             -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
-             < $(srcdir)/stdio.in.h | \
-         sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
-             -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
-             -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
-             -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
-             -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
-             -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
-             -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
-             -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
-             -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
-             -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
-             -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
-             -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
-             -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
-             -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
-             -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
-             -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
-             -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
-             -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
-             -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
-             -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
-             -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
-             -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
-             -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
-             -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
-             -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
-             -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \
-             -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
-             -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
-             -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
-             -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \
-             -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
-             -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \
-             -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \
-             -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
-             -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
-             -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
-             -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
-             -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
-             -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
-             -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \
-             -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
-             -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
-             -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
-             -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
-             -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stdio.h stdio.h-t
-
-EXTRA_DIST += stdio.in.h
-
-## end   gnulib module stdio
-
-## begin gnulib module stdlib
-
-BUILT_SOURCES += stdlib.h
-
-# We need the following in order to create <stdlib.h> when the system
-# doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-             -e 's|@''GNULIB__EXIT''@|$(GNULIB__EXIT)|g' \
-             -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
-             -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
-             -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-             -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \
-             -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_MBTOWC''@|$(GNULIB_MBTOWC)|g' \
-             -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \
-             -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-             -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \
-             -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \
-             -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
-             -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
-             -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \
-             -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
-             -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-             -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-             -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
-             -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
-             -e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \
-             -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
-             -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
-             -e 's|@''GNULIB_WCTOMB''@|$(GNULIB_WCTOMB)|g' \
-             < $(srcdir)/stdlib.in.h | \
-         sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
-             -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
-             -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-             -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-             -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
-             -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-             -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
-             -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
-             -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
-             -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
-             -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
-             -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
-             -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
-             -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
-             -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-             -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
-             -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-             -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
-             -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-             -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
-             -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
-             -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-             -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
-             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
-             -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
-             -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
-             -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
-             -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
-             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
-             -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
-             -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
-             -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
-             -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
-             -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += stdlib.h stdlib.h-t
-
-EXTRA_DIST += stdlib.in.h
-
-## end   gnulib module stdlib
-
-## begin gnulib module stpcpy
-
-
-EXTRA_DIST += stpcpy.c
-
-EXTRA_libgnu_a_SOURCES += stpcpy.c
-
-## end   gnulib module stpcpy
-
-## begin gnulib module strcase
-
-
-EXTRA_DIST += strcasecmp.c strncasecmp.c
-
-EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c
-
-## end   gnulib module strcase
-
-## begin gnulib module strchrnul
-
-
-EXTRA_DIST += strchrnul.c strchrnul.valgrind
-
-EXTRA_libgnu_a_SOURCES += strchrnul.c
-
-## end   gnulib module strchrnul
-
-## begin gnulib module strdup-posix
-
-
-EXTRA_DIST += strdup.c
-
-EXTRA_libgnu_a_SOURCES += strdup.c
-
-## end   gnulib module strdup-posix
-
-## begin gnulib module streq
-
-
-EXTRA_DIST += streq.h
-
-## end   gnulib module streq
-
-## begin gnulib module strerror
-
-
-EXTRA_DIST += strerror.c
-
-EXTRA_libgnu_a_SOURCES += strerror.c
-
-## end   gnulib module strerror
-
-## begin gnulib module string
-
-BUILT_SOURCES += string.h
-
-# We need the following in order to create <string.h> when the system
-# doesn't have one that works with the given compiler.
-string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_STRING_H''@|$(NEXT_STRING_H)|g' \
-             -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-             -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
-             -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-             -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-             -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-             -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-             -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-             -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-             -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-             -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-             -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-             -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-             -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-             -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-             -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
-             -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-             -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-             -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-             -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
-             -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-             -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-             -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-             -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-             -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \
-             -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-             -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-             -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-             -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-             -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
-             -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-             -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-             -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
-             -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \
-             -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
-             -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
-             < $(srcdir)/string.in.h | \
-         sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
-             -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
-             -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
-             -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
-             -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
-             -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
-             -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
-             -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
-             -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
-             -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
-             -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
-             -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
-             -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
-             -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
-             -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
-             -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
-             -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
-             -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
-             -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
-             -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-             -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-             -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
-             -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
-             -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-             -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
-             -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
-             -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
-             -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
-             -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-             -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-             -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
-             -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
-             -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-             < $(srcdir)/string.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += string.h string.h-t
-
-EXTRA_DIST += string.in.h
-
-## end   gnulib module string
-
-## begin gnulib module strings
-
-BUILT_SOURCES += strings.h
-
-# We need the following in order to create <strings.h> when the system
-# doesn't have one that works with the given compiler.
-strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
-             -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-             -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/strings.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += strings.h strings.h-t
-
-EXTRA_DIST += strings.in.h
-
-## end   gnulib module strings
-
-## begin gnulib module strndup
-
-
-EXTRA_DIST += strndup.c
-
-EXTRA_libgnu_a_SOURCES += strndup.c
-
-## end   gnulib module strndup
-
-## begin gnulib module strnlen
-
-
-EXTRA_DIST += strnlen.c
-
-EXTRA_libgnu_a_SOURCES += strnlen.c
-
-## end   gnulib module strnlen
-
-## begin gnulib module strnlen1
-
-libgnu_a_SOURCES += strnlen1.h strnlen1.c
-
-## end   gnulib module strnlen1
-
-## begin gnulib module strtoimax
-
-
-EXTRA_DIST += strtoimax.c
-
-EXTRA_libgnu_a_SOURCES += strtoimax.c
-
-## end   gnulib module strtoimax
-
-## begin gnulib module strtol
-
-
-EXTRA_DIST += strtol.c
-
-EXTRA_libgnu_a_SOURCES += strtol.c
-
-## end   gnulib module strtol
-
-## begin gnulib module strtoll
-
-
-EXTRA_DIST += strtoll.c
-
-EXTRA_libgnu_a_SOURCES += strtoll.c
-
-## end   gnulib module strtoll
-
-## begin gnulib module strtoul
-
-
-EXTRA_DIST += strtoul.c
-
-EXTRA_libgnu_a_SOURCES += strtoul.c
-
-## end   gnulib module strtoul
-
-## begin gnulib module strtoull
-
-
-EXTRA_DIST += strtoull.c
-
-EXTRA_libgnu_a_SOURCES += strtoull.c
-
-## end   gnulib module strtoull
-
-## begin gnulib module strtoumax
-
-
-EXTRA_DIST += strtoumax.c
-
-EXTRA_libgnu_a_SOURCES += strtoumax.c
-
-## end   gnulib module strtoumax
-
-## begin gnulib module symlink
-
-
-EXTRA_DIST += symlink.c
-
-EXTRA_libgnu_a_SOURCES += symlink.c
-
-## end   gnulib module symlink
-
-## begin gnulib module symlinkat
-
-
-EXTRA_DIST += symlinkat.c
-
-EXTRA_libgnu_a_SOURCES += symlinkat.c
-
-## end   gnulib module symlinkat
-
-## begin gnulib module sys_stat
-
-BUILT_SOURCES += sys/stat.h
-
-# We need the following in order to create <sys/stat.h> when the system
-# has one that is incomplete.
-sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
-             -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \
-             -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \
-             -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \
-             -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \
-             -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \
-             -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \
-             -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \
-             -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \
-             -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \
-             -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \
-             -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \
-             -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \
-             -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
-             -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
-             -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
-             -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \
-             -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
-             -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \
-             -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \
-             -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \
-             -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \
-             -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \
-             -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \
-             -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
-             -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
-             -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \
-             -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
-             -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
-             -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \
-             -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \
-             -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \
-             -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|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_stat.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
-MOSTLYCLEANDIRS += sys
-
-EXTRA_DIST += sys_stat.in.h
-
-## end   gnulib module sys_stat
-
-## begin gnulib module sys_time
-
-BUILT_SOURCES += sys/time.h
-
-# We need the following in order to create <sys/time.h> when the system
-# doesn't have one that works with the given compiler.
-sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_at)$(MKDIR_P) sys
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
-             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
-             -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
-             -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
-             -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/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_time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += sys/time.h sys/time.h-t
-
-EXTRA_DIST += sys_time.in.h
-
-## end   gnulib module sys_time
-
-## begin gnulib module sysexits
-
-BUILT_SOURCES += $(SYSEXITS_H)
-
-# We need the following in order to create <sysexits.h> when the system
-# doesn't have one that works with the given compiler.
-sysexits.h: sysexits.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_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_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
-             < $(srcdir)/sysexits.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += sysexits.h sysexits.h-t
-
-EXTRA_DIST += sysexits.in.h
-
-## end   gnulib module sysexits
-
-## begin gnulib module tempname
-
-
-EXTRA_DIST += tempname.c tempname.h
-
-EXTRA_libgnu_a_SOURCES += tempname.c
-
-## end   gnulib module tempname
-
-## begin gnulib module time
-
-BUILT_SOURCES += time.h
-
-# We need the following in order to create <time.h> when the system
-# doesn't have one that works with the given compiler.
-time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_TIME_H''@|$(NEXT_TIME_H)|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|@''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|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
-             -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
-             -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
-             -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
-             -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
-             -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-             -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_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)' \
-             < $(srcdir)/time.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += time.h time.h-t
-
-EXTRA_DIST += time.in.h
-
-## end   gnulib module time
-
-## begin gnulib module time_r
-
-
-EXTRA_DIST += time_r.c
-
-EXTRA_libgnu_a_SOURCES += time_r.c
-
-## end   gnulib module time_r
-
-## begin gnulib module timespec
-
-
-EXTRA_DIST += timespec.h
-
-## end   gnulib module timespec
-
-## begin gnulib module unistd
-
-BUILT_SOURCES += unistd.h
-
-# We need the following in order to create an empty placeholder for
-# <unistd.h> when the system doesn't have one.
-unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-             -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-             -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
-             -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-             -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \
-             -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
-             -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
-             -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \
-             -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-             -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \
-             -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
-             -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-             -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-             -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
-             -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
-             -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \
-             -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
-             -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \
-             -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-             -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
-             -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
-             -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
-             -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
-             -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
-             -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
-             -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \
-             -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
-             -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
-             -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \
-             -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-             -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
-             -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
-             -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
-             -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \
-             -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
-             -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
-             -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
-             -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
-             -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
-             -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \
-             -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
-             < $(srcdir)/unistd.in.h | \
-         sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
-             -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-             -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
-             -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
-             -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
-             -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
-             -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
-             -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
-             -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-             -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
-             -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
-             -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
-             -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
-             -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
-             -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
-             -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
-             -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
-             -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
-             -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
-             -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
-             -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
-             -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
-             -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
-             -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
-             -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
-             -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
-             -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
-             -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
-             -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
-             -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
-             -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
-             -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
-             -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
-             -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
-             -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
-             -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
-             -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-         | \
-         sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
-             -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
-             -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
-             -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
-             -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
-             -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-             -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
-             -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
-             -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
-             -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
-             -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
-             -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
-             -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
-             -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
-             -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
-             -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
-             -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|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_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
-             -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
-             -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
-             -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \
-             -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
-             -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
-             -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += unistd.h unistd.h-t
-
-EXTRA_DIST += unistd.in.h
-
-## end   gnulib module unistd
-
-## begin gnulib module unistd-safer
-
-
-EXTRA_DIST += dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h
-
-EXTRA_libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c
-
-## end   gnulib module unistd-safer
-
-## begin gnulib module unitypes
-
-BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
-
-unitypes.h: unitypes.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/unitypes.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += unitypes.h unitypes.h-t
-
-EXTRA_DIST += unitypes.in.h
-
-## end   gnulib module unitypes
-
-## begin gnulib module uniwidth/base
-
-BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H)
-
-uniwidth.h: uniwidth.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/uniwidth.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t
-
-EXTRA_DIST += localcharset.h uniwidth.in.h
-
-## end   gnulib module uniwidth/base
-
-## begin gnulib module uniwidth/width
-
-if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH
-libgnu_a_SOURCES += uniwidth/width.c
-endif
-
-EXTRA_DIST += uniwidth/cjk.h
-
-## end   gnulib module uniwidth/width
-
-## begin gnulib module unlink
-
-
-EXTRA_DIST += unlink.c
-
-EXTRA_libgnu_a_SOURCES += unlink.c
-
-## end   gnulib module unlink
-
-## begin gnulib module unlinkdir
-
-
-EXTRA_DIST += unlinkdir.c unlinkdir.h
-
-EXTRA_libgnu_a_SOURCES += unlinkdir.c
-
-## end   gnulib module unlinkdir
-
-## begin gnulib module unlocked-io
-
-
-EXTRA_DIST += unlocked-io.h
-
-## end   gnulib module unlocked-io
-
-## begin gnulib module unsetenv
-
-
-EXTRA_DIST += unsetenv.c
-
-EXTRA_libgnu_a_SOURCES += unsetenv.c
-
-## end   gnulib module unsetenv
-
-## begin gnulib module utimens
-
-
-EXTRA_DIST += utimens.c utimens.h
-
-EXTRA_libgnu_a_SOURCES += utimens.c
-
-## end   gnulib module utimens
-
-## begin gnulib module utimensat
-
-
-EXTRA_DIST += utimensat.c
-
-EXTRA_libgnu_a_SOURCES += utimensat.c
-
-## end   gnulib module utimensat
-
-## begin gnulib module vasnprintf
-
-
-EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
-
-EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
-
-## end   gnulib module vasnprintf
-
-## begin gnulib module vasprintf
-
-
-EXTRA_DIST += asprintf.c vasprintf.c
-
-EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c
-
-## end   gnulib module vasprintf
-
-## begin gnulib module verify
-
-libgnu_a_SOURCES += verify.h
-
-## end   gnulib module verify
-
-## begin gnulib module version-etc
-
-libgnu_a_SOURCES += version-etc.h version-etc.c
-
-## end   gnulib module version-etc
-
-## begin gnulib module version-etc-fsf
-
-libgnu_a_SOURCES += version-etc-fsf.c
-
-## end   gnulib module version-etc-fsf
-
-## begin gnulib module vsnprintf
-
-
-EXTRA_DIST += vsnprintf.c
-
-EXTRA_libgnu_a_SOURCES += vsnprintf.c
-
-## end   gnulib module vsnprintf
-
-## begin gnulib module warn-on-use
-
-BUILT_SOURCES += warn-on-use.h
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
-
-WARN_ON_USE_H=warn-on-use.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/warn-on-use.h
-
-## end   gnulib module warn-on-use
-
-## begin gnulib module wchar
-
-BUILT_SOURCES += wchar.h
-
-# We need the following in order to create <wchar.h> when the system
-# version does not work standalone.
-wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -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_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
-             -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
-             -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
-             -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
-             -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
-             -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
-             -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
-             -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
-             -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
-             -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
-             -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
-             -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
-             -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
-             -e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \
-             -e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \
-             -e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \
-             -e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \
-             -e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \
-             -e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \
-             -e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \
-             -e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \
-             -e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \
-             -e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \
-             -e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \
-             -e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \
-             -e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \
-             -e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \
-             -e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \
-             -e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \
-             -e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \
-             -e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \
-             -e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \
-             -e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \
-             -e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \
-             -e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \
-             -e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \
-             -e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \
-             -e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \
-             -e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \
-             -e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \
-             -e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \
-             < $(srcdir)/wchar.in.h | \
-         sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
-             -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
-             -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
-             -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
-             -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
-             -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
-             -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
-             -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
-             -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
-             -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
-             -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
-             -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
-             -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
-             -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
-             -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
-             -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
-             -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
-             -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
-             -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
-             -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
-             -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
-             -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
-             -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
-             -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
-             -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
-             -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
-             -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
-             -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
-             -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
-             -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
-             -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
-             -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
-             -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
-             -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
-             -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
-             -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
-             -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
-             -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
-             -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
-             -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
-         | \
-         sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
-             -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
-             -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
-             -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
-             -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
-             -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
-             -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
-             -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
-             -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
-             -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
-             -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
-             -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
-             -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += wchar.h wchar.h-t
-
-EXTRA_DIST += wchar.in.h
-
-## end   gnulib module wchar
-
-## begin gnulib module wcrtomb
-
-
-EXTRA_DIST += wcrtomb.c
-
-EXTRA_libgnu_a_SOURCES += wcrtomb.c
-
-## end   gnulib module wcrtomb
-
-## begin gnulib module wctype-h
-
-BUILT_SOURCES += wctype.h
-
-# We need the following in order to create <wctype.h> when the system
-# doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
-             -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
-             -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
-             -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
-             -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
-             -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
-             -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
-             -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
-             -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
-             -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
-             -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-             -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
-             -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/wctype.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += wctype.h wctype.h-t
-
-EXTRA_DIST += wctype.in.h
-
-## end   gnulib module wctype-h
-
-## begin gnulib module wcwidth
-
-
-EXTRA_DIST += wcwidth.c
-
-EXTRA_libgnu_a_SOURCES += wcwidth.c
-
-## end   gnulib module wcwidth
-
-## begin gnulib module write
-
-
-EXTRA_DIST += write.c
-
-EXTRA_libgnu_a_SOURCES += write.c
-
-## end   gnulib module write
-
-## begin gnulib module xalloc
-
-
-EXTRA_DIST += xalloc.h xmalloc.c
-
-EXTRA_libgnu_a_SOURCES += xmalloc.c
-
-## end   gnulib module xalloc
-
-## begin gnulib module xalloc-die
-
-libgnu_a_SOURCES += xalloc-die.c
-
-## end   gnulib module xalloc-die
-
-## begin gnulib module xgetcwd
-
-
-EXTRA_DIST += xgetcwd.c xgetcwd.h
-
-EXTRA_libgnu_a_SOURCES += xgetcwd.c
-
-## end   gnulib module xgetcwd
-
-## begin gnulib module xsize
-
-libgnu_a_SOURCES += xsize.h
-
-## end   gnulib module xsize
-
-## begin gnulib module xstrndup
-
-libgnu_a_SOURCES += xstrndup.h xstrndup.c
-
-## end   gnulib module xstrndup
-
-## begin gnulib module xstrtol
-
-
-EXTRA_DIST += xstrtol-error.c xstrtol.c xstrtol.h xstrtoul.c
-
-EXTRA_libgnu_a_SOURCES += xstrtol-error.c xstrtol.c xstrtoul.c
-
-## end   gnulib module xstrtol
-
-## begin gnulib module xstrtoumax
-
-libgnu_a_SOURCES += xstrtoumax.c
-
-## end   gnulib module xstrtoumax
-
-## begin gnulib module xvasprintf
-
-libgnu_a_SOURCES += xvasprintf.h xvasprintf.c xasprintf.c
-
-EXTRA_DIST += xalloc.h
-
-## end   gnulib module xvasprintf
-
-
-mostlyclean-local: mostlyclean-generic
-       @for dir in '' $(MOSTLYCLEANDIRS); do \
-         if test -n "$$dir" && test -d $$dir; then \
-           echo "rmdir $$dir"; rmdir $$dir; \
-         fi; \
-       done; \
-       :
+# Make the subset of Gnulib that GNU tar needs.
+include gnulib.mk
+AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
index 03c8447b5b8d61117db085118d9feea8ebaf5013..454337bf23e4e02dccf9f5f10d53bdd4c043fab1 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 @SET_MAKE@
 
-# -*- buffer-read-only: t -*- vi: set ro:
-# DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail fdopendir fdutimensat fileblocks fnmatch-gnu fseeko full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat rpmatch safe-read savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-conditional-dependencies --no-libtool --macro-prefix=gl acl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail extern-inline fchmodat fchownat fcntl-h fdopendir fdutimensat fileblocks fnmatch-gnu fseeko fstatat full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset manywarnings mkdirat mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat root-uid rpmatch safe-read savedir selinux-at setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkat unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
 
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -48,34 +74,40 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(srcdir)/gnulib.mk \
+       $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \
+       alloca.c parse-datetime.c
 @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_1 = uniwidth/width.c
 subdir = gnu
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in alloca.c parse-datetime.c
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -83,50 +115,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -134,22 +176,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -165,71 +208,113 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libgnu_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
-am__libgnu_a_SOURCES_DIST = areadlink.c areadlinkat.c argp.h argp-ba.c \
+am__libgnu_a_SOURCES_DIST = copy-acl.c set-acl.c allocator.c \
+       areadlink.c areadlinkat.c argmatch.c argp.h argp-ba.c \
        argp-eexst.c argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c \
        argp-help.c argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c \
        argp-pvh.c argp-xinl.c argp-version-etc.h argp-version-etc.c \
-       bitrotate.h c-ctype.h c-ctype.c close-hook.c exitfail.c \
-       fdutimensat.c full-write.h full-write.c gettext.h imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
+       backupfile.c bitrotate.h bitrotate.c c-ctype.h c-ctype.c \
+       c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \
+       cloexec.c close-stream.c closeout.c opendir-safer.c dirname.c \
+       basename.c dirname-lgpl.c basename-lgpl.c stripslash.c \
+       exclude.c exitfail.c chmodat.c chownat.c fd-hook.c \
+       fdutimensat.c filenamecat-lgpl.c full-write.h full-write.c \
+       gettext.h gettime.c hash.c human.c imaxtostr.c inttostr.c \
+       offtostr.c uinttostr.c umaxtostr.c localcharset.h \
        localcharset.c malloca.c mbchar.c mbscasecmp.c mbuiter.h \
-       openat-die.c parse-datetime.y priv-set.c progname.h progname.c \
-       size_max.h strnlen1.h strnlen1.c uniwidth/width.c verify.h \
-       version-etc.h version-etc.c version-etc-fsf.c xalloc-die.c \
-       xsize.h xstrndup.h xstrndup.c xstrtoumax.c xvasprintf.h \
+       mbuiter.c modechange.c openat-die.c parse-datetime.y \
+       priv-set.c progname.h progname.c acl-errno-valid.c \
+       file-has-acl.c qcopy-acl.c qset-acl.c quotearg.c safe-read.c \
+       safe-write.c save-cwd.c savedir.c se-context.in.h \
+       se-selinux.in.h se-context.c se-selinux.c size_max.h \
+       stat-time.c statat.c strnlen1.h strnlen1.c tempname.c \
+       timespec.c unistd.c dup-safer.c fd-safer.c pipe-safer.c \
+       uniwidth/width.c unlinkdir.c utimens.c version-etc.h \
+       version-etc.c version-etc-fsf.c wctype-h.c xmalloc.c \
+       xalloc-die.c xgetcwd.c xsize.h xsize.c xstrndup.h xstrndup.c \
+       xstrtol.c xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
        xvasprintf.c xasprintf.c
 am__dirstamp = $(am__leading_dot)dirstamp
 @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_1 = uniwidth/width.$(OBJEXT)
-am_libgnu_a_OBJECTS = areadlink.$(OBJEXT) areadlinkat.$(OBJEXT) \
-       argp-ba.$(OBJEXT) argp-eexst.$(OBJEXT) \
+am_libgnu_a_OBJECTS = copy-acl.$(OBJEXT) set-acl.$(OBJEXT) \
+       allocator.$(OBJEXT) areadlink.$(OBJEXT) areadlinkat.$(OBJEXT) \
+       argmatch.$(OBJEXT) argp-ba.$(OBJEXT) argp-eexst.$(OBJEXT) \
        argp-fmtstream.$(OBJEXT) argp-fs-xinl.$(OBJEXT) \
        argp-help.$(OBJEXT) argp-parse.$(OBJEXT) argp-pin.$(OBJEXT) \
        argp-pv.$(OBJEXT) argp-pvh.$(OBJEXT) argp-xinl.$(OBJEXT) \
-       argp-version-etc.$(OBJEXT) c-ctype.$(OBJEXT) \
-       close-hook.$(OBJEXT) exitfail.$(OBJEXT) fdutimensat.$(OBJEXT) \
-       full-write.$(OBJEXT) imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) \
+       argp-version-etc.$(OBJEXT) backupfile.$(OBJEXT) \
+       bitrotate.$(OBJEXT) c-ctype.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
+       c-strncasecmp.$(OBJEXT) careadlinkat.$(OBJEXT) \
+       cloexec.$(OBJEXT) close-stream.$(OBJEXT) closeout.$(OBJEXT) \
+       opendir-safer.$(OBJEXT) dirname.$(OBJEXT) basename.$(OBJEXT) \
+       dirname-lgpl.$(OBJEXT) basename-lgpl.$(OBJEXT) \
+       stripslash.$(OBJEXT) exclude.$(OBJEXT) exitfail.$(OBJEXT) \
+       chmodat.$(OBJEXT) chownat.$(OBJEXT) fd-hook.$(OBJEXT) \
+       fdutimensat.$(OBJEXT) filenamecat-lgpl.$(OBJEXT) \
+       full-write.$(OBJEXT) gettime.$(OBJEXT) hash.$(OBJEXT) \
+       human.$(OBJEXT) imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) \
        offtostr.$(OBJEXT) uinttostr.$(OBJEXT) umaxtostr.$(OBJEXT) \
        localcharset.$(OBJEXT) malloca.$(OBJEXT) mbchar.$(OBJEXT) \
-       mbscasecmp.$(OBJEXT) openat-die.$(OBJEXT) \
-       parse-datetime.$(OBJEXT) priv-set.$(OBJEXT) progname.$(OBJEXT) \
-       strnlen1.$(OBJEXT) $(am__objects_1) version-etc.$(OBJEXT) \
-       version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \
-       xstrndup.$(OBJEXT) xstrtoumax.$(OBJEXT) xvasprintf.$(OBJEXT) \
-       xasprintf.$(OBJEXT)
+       mbscasecmp.$(OBJEXT) mbuiter.$(OBJEXT) modechange.$(OBJEXT) \
+       openat-die.$(OBJEXT) parse-datetime.$(OBJEXT) \
+       priv-set.$(OBJEXT) progname.$(OBJEXT) \
+       acl-errno-valid.$(OBJEXT) file-has-acl.$(OBJEXT) \
+       qcopy-acl.$(OBJEXT) qset-acl.$(OBJEXT) quotearg.$(OBJEXT) \
+       safe-read.$(OBJEXT) safe-write.$(OBJEXT) save-cwd.$(OBJEXT) \
+       savedir.$(OBJEXT) se-context.$(OBJEXT) se-selinux.$(OBJEXT) \
+       stat-time.$(OBJEXT) statat.$(OBJEXT) strnlen1.$(OBJEXT) \
+       tempname.$(OBJEXT) timespec.$(OBJEXT) unistd.$(OBJEXT) \
+       dup-safer.$(OBJEXT) fd-safer.$(OBJEXT) pipe-safer.$(OBJEXT) \
+       $(am__objects_1) unlinkdir.$(OBJEXT) utimens.$(OBJEXT) \
+       version-etc.$(OBJEXT) version-etc-fsf.$(OBJEXT) \
+       wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) xalloc-die.$(OBJEXT) \
+       xgetcwd.$(OBJEXT) xsize.$(OBJEXT) xstrndup.$(OBJEXT) \
+       xstrtol.$(OBJEXT) xstrtoul.$(OBJEXT) xstrtol-error.$(OBJEXT) \
+       xstrtoumax.$(OBJEXT) xvasprintf.$(OBJEXT) xasprintf.$(OBJEXT)
 libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
 LTLIBRARIES = $(noinst_LTLIBRARIES)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-AM_V_YACC = $(am__v_YACC_$(V))
-am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY))
-am__v_YACC_0 = @echo "  YACC  " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
+                  -e s/c++$$/h++/ -e s/c$$/h/
+YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
+AM_V_YACC = $(am__v_YACC_@AM_V@)
+am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@)
+am__v_YACC_0 = @echo "  YACC    " $@;
+am__v_YACC_1 = 
 YLWRAP = $(top_srcdir)/build-aux/ylwrap
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
 DIST_SOURCES = $(am__libgnu_a_SOURCES_DIST) $(EXTRA_libgnu_a_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -239,6 +324,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        install-pdf-recursive install-ps-recursive install-recursive \
        installcheck-recursive installdirs-recursive pdf-recursive \
        ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
@@ -281,6 +371,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -332,12 +424,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -346,17 +442,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -364,6 +470,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -378,15 +486,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -427,25 +539,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -453,14 +575,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -487,12 +618,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -504,10 +636,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -552,9 +687,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -573,6 +710,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -588,17 +726,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -614,6 +758,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -646,28 +791,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -675,6 +838,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -682,6 +846,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -694,6 +859,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -733,12 +899,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -761,7 +929,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -783,6 +953,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -793,6 +966,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -804,6 +978,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -814,6 +991,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -824,6 +1002,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -845,9 +1024,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -860,6 +1041,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -869,11 +1051,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -903,8 +1088,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -913,13 +1104,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -929,10 +1123,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -953,10 +1151,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -970,9 +1171,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -1035,66 +1241,82 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
 SUBDIRS = 
 noinst_HEADERS = 
 noinst_LIBRARIES = libgnu.a
 noinst_LTLIBRARIES = 
-EXTRA_DIST = alloca.c alloca.in.h areadlink.h areadlink.h \
-       $(top_srcdir)/build-aux/arg-nonnull.h argmatch.c argmatch.h \
-       backupfile.c backupfile.h btowc.c \
-       $(top_srcdir)/build-aux/c++defs.h canonicalize-lgpl.c \
-       chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.c \
-       cloexec.h close.c close-hook.h close-stream.c close-stream.h \
-       closeout.c closeout.h dirent.in.h dirent--.h dirent-safer.h \
-       opendir-safer.c dirfd.c basename.c dirname.c stripslash.c \
-       basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c \
-       dosname.h dup2.c errno.in.h error.c error.h exclude.c \
-       exclude.h exitfail.h fchdir.c fclose.c fcntl.c fcntl.in.h \
-       fdopendir.c openat-priv.h openat-proc.c utimens.h fileblocks.c \
-       filenamecat-lgpl.c filenamecat.h float.in.h fnmatch.c \
-       fnmatch.in.h fnmatch_loop.c fpending.c fpending.h fseeko.c \
-       stdio-impl.h futimens.c getcwd.c getdelim.c getdtablesize.c \
-       getline.c getopt.c getopt.in.h getopt1.c getopt_int.h \
-       getpagesize.c $(top_srcdir)/build-aux/config.rpath gettime.c \
-       gettimeofday.c $(top_srcdir)/build-aux/gitlog-to-changelog \
-       hash.c hash.h $(top_srcdir)/build-aux/config.rpath human.c \
-       human.h intprops.h anytostr.c inttostr.h inttypes.in.h \
-       iswblank.c langinfo.in.h lchown.c link.c at-func2.c linkat.c \
-       config.charset ref-add.sin ref-del.sin lseek.c lstat.c \
-       malloc.c malloc.c malloca.h malloca.valgrind mbchar.h \
-       mbrtowc.c mbsinit.c mbsrtowcs-impl.h mbsrtowcs-state.c \
-       mbsrtowcs.c mbtowc-impl.h mbtowc.c memchr.c memchr.valgrind \
-       mempcpy.c memrchr.c mkdir.c mkdtemp.c mkfifo.c mkfifoat.c \
-       mknodat.c mknod.c mktime-internal.h mktime.c modechange.c \
-       modechange.h nl_langinfo.c obstack.c obstack.h open.c \
-       at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c \
-       openat-priv.h openat-proc.c openat.c openat.h unlinkat.c \
-       parse-datetime.c parse-datetime.h pathmax.h priv-set.h quote.c \
-       quote.h quotearg.c quotearg.h rawmemchr.c rawmemchr.valgrind \
-       readlink.c readlinkat.c realloc.c regcomp.c regex.c regex.h \
-       regex_internal.c regex_internal.h regexec.c rename.c \
-       at-func2.c renameat.c rmdir.c rpmatch.c safe-read.c \
-       safe-read.h safe-write.c safe-write.h same-inode.h save-cwd.c \
-       save-cwd.h savedir.c savedir.h setenv.c sleep.c snprintf.c \
-       stat.c stat-macros.h stat-time.h stdarg.in.h stdbool.in.h \
-       stddef.in.h stdint.in.h stdio.in.h stdlib.in.h stpcpy.c \
-       strcasecmp.c strncasecmp.c strchrnul.c strchrnul.valgrind \
-       strdup.c streq.h strerror.c string.in.h strings.in.h strndup.c \
-       strnlen.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \
-       strtoumax.c symlink.c symlinkat.c sys_stat.in.h sys_time.in.h \
-       sysexits.in.h tempname.c tempname.h time.in.h time_r.c \
-       timespec.h unistd.in.h dup-safer.c fd-safer.c pipe-safer.c \
-       unistd--.h unistd-safer.h unitypes.in.h localcharset.h \
-       uniwidth.in.h uniwidth/cjk.h unlink.c unlinkdir.c unlinkdir.h \
-       unlocked-io.h unsetenv.c utimens.c utimens.h utimensat.c \
-       asnprintf.c float+.h printf-args.c printf-args.h \
-       printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \
-       asprintf.c vasprintf.c vsnprintf.c \
-       $(top_srcdir)/build-aux/warn-on-use.h wchar.in.h wcrtomb.c \
-       wctype.in.h wcwidth.c write.c xalloc.h xmalloc.c xgetcwd.c \
-       xgetcwd.h xstrtol-error.c xstrtol.c xstrtol.h xstrtoul.c \
-       xalloc.h
+
+# If your project uses "gettextize --intl" to put a source-code
+# copy of libintl into the package, every Makefile.am needs
+# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+# Here's one way to do this:
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+# This option has no effect when the user disables NLS (because then
+# the intl directory contains no libintl.h file).  This option is not
+# enabled by default because the intl directory might not exist if
+# your project does not use "gettext --intl", and some compilers
+# complain about -I options applied to nonexistent directories.
+EXTRA_DIST = alloca.c alloca.in.h allocator.h areadlink.h areadlink.h \
+       at-func.c argmatch.h openat-priv.h openat-proc.c backupfile.h \
+       btowc.c c-strcaseeq.h canonicalize-lgpl.c careadlinkat.h \
+       chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.h \
+       close.c close-stream.h closedir.c dirent-private.h closeout.h \
+       dirent.in.h dirent--.h dirent-safer.h dirfd.c stripslash.c \
+       dirname.h dosname.h dup.c dup2.c errno.in.h error.c error.h \
+       exclude.h exitfail.h fchdir.c at-func.c fchmodat.c at-func.c \
+       fchownat.c fcntl.c fcntl.in.h fd-hook.h fdopendir.c utimens.h \
+       fileblocks.c filename.h filenamecat.h float.c float.in.h \
+       itold.c fnmatch.c fnmatch.in.h fnmatch_loop.c fpending.c \
+       fpending.h fseek.c fseeko.c stdio-impl.h fstat.c at-func.c \
+       fstatat.c futimens.c getcwd.c getcwd-lgpl.c getdelim.c \
+       getdtablesize.c getline.c getopt.c getopt.in.h getopt1.c \
+       getopt_int.h getpagesize.c \
+       $(top_srcdir)/build-aux/config.rpath gettimeofday.c \
+       $(top_srcdir)/build-aux/gitlog-to-changelog hash.h \
+       $(top_srcdir)/build-aux/config.rpath human.h intprops.h \
+       anytostr.c inttostr.h inttypes.in.h iswblank.c langinfo.in.h \
+       lchown.c link.c at-func2.c linkat.c config.charset ref-add.sin \
+       ref-del.sin locale.in.h localeconv.c lseek.c lstat.c malloc.c \
+       malloc.c malloca.h malloca.valgrind mbchar.h mbrtowc.c \
+       mbsinit.c mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c \
+       mbtowc-impl.h mbtowc.c memchr.c memchr.valgrind mempcpy.c \
+       memrchr.c mkdir.c at-func.c mkdirat.c mkdtemp.c mkfifo.c \
+       at-func.c mkfifoat.c mknodat.c mknod.c mktime-internal.h \
+       mktime.c modechange.h msvc-inval.c msvc-inval.h msvc-nothrow.c \
+       msvc-nothrow.h nl_langinfo.c obstack.c obstack.h open.c \
+       openat.c openat.h dirent-private.h opendir.c parse-datetime.c \
+       parse-datetime.h pathmax.h priv-set.h acl-internal.h acl.h \
+       acl_entries.c quote.h quote.h quotearg.h raise.c rawmemchr.c \
+       rawmemchr.valgrind read.c dirent-private.h readdir.c \
+       readlink.c at-func.c readlinkat.c realloc.c regcomp.c regex.c \
+       regex.h regex_internal.c regex_internal.h regexec.c rename.c \
+       at-func2.c renameat.c dirent-private.h rewinddir.c rmdir.c \
+       root-uid.h rpmatch.c safe-read.h safe-read.c safe-write.h \
+       same-inode.h save-cwd.h savedir.h secure_getenv.c at-func.c \
+       selinux-at.c selinux-at.h getfilecon.c setenv.c signal.in.h \
+       sleep.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 \
+       $(top_srcdir)/build-aux/snippet/warn-on-use.h snprintf.c \
+       stat.c stat-macros.h stat-time.h stdalign.in.h stdarg.in.h \
+       stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \
+       stpcpy.c strcasecmp.c strncasecmp.c strchrnul.c \
+       strchrnul.valgrind strdup.c streq.h strerror.c \
+       strerror-override.c strerror-override.h string.in.h \
+       strings.in.h strndup.c strnlen.c strtol.c strtol.c strtoul.c \
+       strtol.c strtoul.c strtoull.c strtoimax.c strtoumax.c \
+       symlink.c at-func.c symlinkat.c sys_stat.in.h sys_time.in.h \
+       sys_types.in.h sysexits.in.h tempname.h time.in.h time_r.c \
+       timespec.h unistd.in.h unistd--.h unistd-safer.h unitypes.in.h \
+       localcharset.h uniwidth.in.h uniwidth/cjk.h unlink.c at-func.c \
+       unlinkat.c unlinkdir.h unlocked-io.h unsetenv.c utimens.h \
+       at-func.c utimensat.c asnprintf.c float+.h printf-args.c \
+       printf-args.h printf-parse.c printf-parse.h vasnprintf.c \
+       vasnprintf.h asprintf.c vasprintf.c verify.h vsnprintf.c \
+       wchar.in.h wcrtomb.c wctype.in.h wcwidth.c write.c xalloc.h \
+       xalloc-oversized.h xgetcwd.h xstrtol.h xalloc.h
 
 # The BUILT_SOURCES created by this Makefile snippet are not used via #include
 # statements but through direct file reference. Therefore this snippet must be
@@ -1105,97 +1327,117 @@ EXTRA_DIST = alloca.c alloca.in.h areadlink.h areadlink.h \
 # 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) arg-nonnull.h c++defs.h configmake.h \
-       dirent.h $(ERRNO_H) fcntl.h $(FLOAT_H) $(FNMATCH_H) \
-       $(GETOPT_H) inttypes.h langinfo.h parse-datetime.c $(STDARG_H) \
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# 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 dirent.h $(ERRNO_H) fcntl.h \
+       $(FLOAT_H) $(FNMATCH_H) $(GETOPT_H) inttypes.h langinfo.h \
+       locale.h parse-datetime.c selinux/selinux.h \
+       $(SELINUX_CONTEXT_H) signal.h arg-nonnull.h c++defs.h \
+       unused-parameter.h warn-on-use.h $(STDALIGN_H) $(STDARG_H) \
        $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h \
-       strings.h sys/stat.h sys/time.h $(SYSEXITS_H) time.h unistd.h \
-       $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWIDTH_H) \
-       warn-on-use.h wchar.h wctype.h
+       strings.h sys/stat.h sys/time.h sys/types.h $(SYSEXITS_H) \
+       time.h unistd.h $(LIBUNISTRING_UNITYPES_H) \
+       $(LIBUNISTRING_UNIWIDTH_H) wchar.h wctype.h
 SUFFIXES = .sed .sin
-MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arg-nonnull.h \
-       arg-nonnull.h-t c++defs.h c++defs.h-t dirent.h dirent.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 inttypes.h \
-       inttypes.h-t langinfo.h langinfo.h-t parse-datetime.c-t \
-       stdarg.h stdarg.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t \
-       stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \
-       string.h string.h-t strings.h strings.h-t sys/stat.h \
-       sys/stat.h-t sys/time.h sys/time.h-t sysexits.h sysexits.h-t \
+MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \
+       dirent.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 inttypes.h \
+       inttypes.h-t langinfo.h langinfo.h-t locale.h locale.h-t \
+       parse-datetime.c-t selinux/selinux.h selinux/selinux.h-t \
+       selinux/context.h selinux/context.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 stdalign.h stdalign.h-t stdarg.h stdarg.h-t \
+       stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \
+       stdio.h stdio.h-t stdlib.h stdlib.h-t string.h string.h-t \
+       strings.h strings.h-t sys/stat.h sys/stat.h-t sys/time.h \
+       sys/time.h-t sys/types.h sys/types.h-t sysexits.h sysexits.h-t \
        time.h time.h-t unistd.h unistd.h-t unitypes.h unitypes.h-t \
-       uniwidth.h uniwidth.h-t warn-on-use.h warn-on-use.h-t wchar.h \
-       wchar.h-t wctype.h wctype.h-t
-MOSTLYCLEANDIRS = sys
+       uniwidth.h uniwidth.h-t wchar.h wchar.h-t wctype.h wctype.h-t
+MOSTLYCLEANDIRS = selinux sys
 CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
        ref-del.sed
 DISTCLEANFILES = 
 MAINTAINERCLEANFILES = parse-datetime.c
-
-# This is for those projects which use "gettextize --intl" to put a source-code
-# copy of libintl into their package. In such projects, every Makefile.am needs
-# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
-# For the Makefile.ams in other directories it is the maintainer's
-# responsibility; for the one from gnulib we do it here.
-# This option has no effect when the user disables NLS (because then the intl
-# directory contains no libintl.h file) or when the project does not use
-# "gettextize --intl".
-AM_CPPFLAGS = -I$(top_builddir)/intl
-AM_CFLAGS = 
-libgnu_a_SOURCES = areadlink.c areadlinkat.c argp.h argp-ba.c \
-       argp-eexst.c argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c \
-       argp-help.c argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c \
-       argp-pvh.c argp-xinl.c argp-version-etc.h argp-version-etc.c \
-       bitrotate.h c-ctype.h c-ctype.c close-hook.c exitfail.c \
-       fdutimensat.c full-write.h full-write.c gettext.h imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
-       localcharset.c malloca.c mbchar.c mbscasecmp.c mbuiter.h \
-       openat-die.c parse-datetime.y priv-set.c progname.h progname.c \
-       size_max.h strnlen1.h strnlen1.c $(am__append_1) verify.h \
-       version-etc.h version-etc.c version-etc-fsf.c xalloc-die.c \
-       xsize.h xstrndup.h xstrndup.c xstrtoumax.c xvasprintf.h \
-       xvasprintf.c xasprintf.c
+AM_CPPFLAGS = 
+
+# Make the subset of Gnulib that GNU tar needs.
+AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
+libgnu_a_SOURCES = copy-acl.c set-acl.c allocator.c areadlink.c \
+       areadlinkat.c argmatch.c argp.h argp-ba.c argp-eexst.c \
+       argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c \
+       argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c \
+       argp-xinl.c argp-version-etc.h argp-version-etc.c backupfile.c \
+       bitrotate.h bitrotate.c c-ctype.h c-ctype.c c-strcase.h \
+       c-strcasecmp.c c-strncasecmp.c careadlinkat.c cloexec.c \
+       close-stream.c closeout.c opendir-safer.c dirname.c basename.c \
+       dirname-lgpl.c basename-lgpl.c stripslash.c exclude.c \
+       exitfail.c chmodat.c chownat.c fd-hook.c fdutimensat.c \
+       filenamecat-lgpl.c full-write.h full-write.c gettext.h \
+       gettime.c hash.c human.c imaxtostr.c inttostr.c offtostr.c \
+       uinttostr.c umaxtostr.c localcharset.h localcharset.c \
+       malloca.c mbchar.c mbscasecmp.c mbuiter.h mbuiter.c \
+       modechange.c openat-die.c parse-datetime.y priv-set.c \
+       progname.h progname.c acl-errno-valid.c file-has-acl.c \
+       qcopy-acl.c qset-acl.c quotearg.c safe-read.c safe-write.c \
+       save-cwd.c savedir.c se-context.in.h se-selinux.in.h \
+       se-context.c se-selinux.c size_max.h stat-time.c statat.c \
+       strnlen1.h strnlen1.c tempname.c timespec.c unistd.c \
+       dup-safer.c fd-safer.c pipe-safer.c $(am__append_1) \
+       unlinkdir.c utimens.c version-etc.h version-etc.c \
+       version-etc-fsf.c wctype-h.c xmalloc.c xalloc-die.c xgetcwd.c \
+       xsize.h xsize.c xstrndup.h xstrndup.c xstrtol.c xstrtoul.c \
+       xstrtol-error.c xstrtoumax.c xvasprintf.h xvasprintf.c \
+       xasprintf.c
 libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@
 libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@
-EXTRA_libgnu_a_SOURCES = alloca.c argmatch.c backupfile.c btowc.c \
-       canonicalize-lgpl.c chdir-long.c chown.c fchown-stub.c \
-       cloexec.c close.c close-stream.c closeout.c opendir-safer.c \
-       dirfd.c basename.c dirname.c stripslash.c basename-lgpl.c \
-       dirname-lgpl.c stripslash.c dup2.c error.c exclude.c fchdir.c \
-       fclose.c fcntl.c fdopendir.c openat-proc.c fileblocks.c \
-       filenamecat-lgpl.c fnmatch.c fnmatch_loop.c fpending.c \
-       fseeko.c futimens.c getcwd.c getdelim.c getdtablesize.c \
-       getline.c getopt.c getopt1.c getpagesize.c gettime.c \
-       gettimeofday.c hash.c human.c anytostr.c iswblank.c lchown.c \
-       link.c at-func2.c linkat.c lseek.c lstat.c malloc.c malloc.c \
-       mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \
-       memchr.c mempcpy.c memrchr.c mkdir.c mkdtemp.c mkfifo.c \
-       mkfifoat.c mknodat.c mknod.c mktime.c modechange.c \
-       nl_langinfo.c obstack.c open.c at-func.c fchmodat.c fchownat.c \
-       fstatat.c mkdirat.c openat-proc.c openat.c unlinkat.c quote.c \
-       quotearg.c rawmemchr.c readlink.c readlinkat.c realloc.c \
+EXTRA_libgnu_a_SOURCES = alloca.c at-func.c openat-proc.c btowc.c \
+       canonicalize-lgpl.c chdir-long.c chown.c fchown-stub.c close.c \
+       closedir.c dirfd.c stripslash.c dup.c dup2.c error.c fchdir.c \
+       at-func.c fchmodat.c at-func.c fchownat.c fcntl.c fdopendir.c \
+       fileblocks.c float.c itold.c fnmatch.c fnmatch_loop.c \
+       fpending.c fseek.c fseeko.c fstat.c at-func.c fstatat.c \
+       futimens.c getcwd.c getcwd-lgpl.c getdelim.c getdtablesize.c \
+       getline.c getopt.c getopt1.c getpagesize.c gettimeofday.c \
+       anytostr.c iswblank.c lchown.c link.c at-func2.c linkat.c \
+       localeconv.c lseek.c lstat.c malloc.c malloc.c mbrtowc.c \
+       mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c memchr.c \
+       mempcpy.c memrchr.c mkdir.c at-func.c mkdirat.c mkdtemp.c \
+       mkfifo.c at-func.c mkfifoat.c mknodat.c mknod.c mktime.c \
+       msvc-inval.c msvc-nothrow.c nl_langinfo.c obstack.c open.c \
+       openat.c opendir.c acl_entries.c raise.c rawmemchr.c read.c \
+       readdir.c readlink.c at-func.c readlinkat.c realloc.c \
        regcomp.c regex.c regex_internal.c regexec.c rename.c \
-       at-func2.c renameat.c rmdir.c rpmatch.c safe-read.c \
-       safe-write.c save-cwd.c savedir.c setenv.c sleep.c snprintf.c \
-       stat.c stpcpy.c strcasecmp.c strncasecmp.c strchrnul.c \
-       strdup.c strerror.c strndup.c strnlen.c strtoimax.c strtol.c \
-       strtoll.c strtoul.c strtoull.c strtoumax.c symlink.c \
-       symlinkat.c tempname.c time_r.c dup-safer.c fd-safer.c \
-       pipe-safer.c unlink.c unlinkdir.c unsetenv.c utimens.c \
-       utimensat.c asnprintf.c printf-args.c printf-parse.c \
-       vasnprintf.c asprintf.c vasprintf.c vsnprintf.c wcrtomb.c \
-       wcwidth.c write.c xmalloc.c xgetcwd.c xstrtol-error.c \
-       xstrtol.c xstrtoul.c
-ARG_NONNULL_H = arg-nonnull.h
-CXXDEFS_H = c++defs.h
+       at-func2.c renameat.c rewinddir.c rmdir.c rpmatch.c \
+       safe-read.c secure_getenv.c at-func.c selinux-at.c \
+       getfilecon.c setenv.c sleep.c snprintf.c stat.c stpcpy.c \
+       strcasecmp.c strncasecmp.c strchrnul.c strdup.c strerror.c \
+       strerror-override.c strndup.c strnlen.c strtol.c strtol.c \
+       strtoul.c strtol.c strtoul.c strtoull.c strtoimax.c \
+       strtoumax.c symlink.c at-func.c symlinkat.c time_r.c unlink.c \
+       at-func.c unlinkat.c unsetenv.c at-func.c utimensat.c \
+       asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
+       asprintf.c vasprintf.c vsnprintf.c wcrtomb.c wcwidth.c write.c
 charset_alias = $(DESTDIR)$(libdir)/charset.alias
 charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+_NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h
+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
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
 .SUFFIXES: .sed .sin .c .o .obj .y
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -1216,6 +1458,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(srcdir)/gnulib.mk:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1236,29 +1479,34 @@ uniwidth/$(DEPDIR)/$(am__dirstamp):
        @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
 uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) 
+libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libgnu.a
        $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD)
        $(AM_V_at)$(RANLIB) libgnu.a
 
 clean-noinstLTLIBRARIES:
        -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-       @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
+       @list='$(noinst_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
-       -rm -f uniwidth/width.$(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)/acl-errno-valid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acl_entries.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)/areadlinkat.Po@am__quote@
@@ -1281,20 +1529,28 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile.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)/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-strcasecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmodat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chownat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-hook.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-stream.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closedir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy-acl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirfd.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)/dup-safer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup.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@
@@ -1303,23 +1559,29 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.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)/fd-safer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdutimensat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-has-acl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.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)/fpending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseek.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futimens.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getfilecon.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.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@
@@ -1331,10 +1593,12 @@ distclean-compile:
 @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)/lchown.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.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)/lseek.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@
@@ -1346,6 +1610,7 @@ distclean-compile:
 @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)/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)/mempcpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@
@@ -1358,6 +1623,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mknodat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.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)/obstack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@
@@ -1366,15 +1633,20 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opendir-safer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opendir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse-datetime.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.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)/priv-set.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qcopy-acl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qset-acl.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)/rawmemchr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readdir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@
@@ -1384,20 +1656,29 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rename.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/renameat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rewinddir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmatch.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savedir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/se-context.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/se-selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secure_getenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selinux-at.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set-acl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.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)/stat-time.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.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)/stripslash.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@
@@ -1406,7 +1687,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.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)/strtoll.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@
@@ -1414,8 +1694,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlinkat.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)/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)/unlink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkdir.Po@am__quote@
@@ -1428,12 +1710,14 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.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)/write.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)/xgetcwd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.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@
@@ -1446,30 +1730,28 @@ distclean-compile:
 @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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .y.c:
-       $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
+       $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
        @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
@@ -1479,7 +1761,11 @@ $(RECURSIVE_TARGETS):
        done; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -1493,37 +1779,6 @@ $(RECURSIVE_TARGETS):
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
          test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
@@ -1532,6 +1787,10 @@ ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
          test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
+cscopelist-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+       done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1595,6 +1854,20 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -1630,13 +1903,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -1673,10 +1943,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
        -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
@@ -1768,49 +2043,36 @@ ps-am:
 uninstall-am: uninstall-local
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-       ctags-recursive install install-am install-strip \
-       tags-recursive
+       cscopelist-recursive ctags-recursive install install-am \
+       install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
        all all-am all-local check check-am clean clean-generic \
-       clean-noinstLIBRARIES clean-noinstLTLIBRARIES ctags \
-       ctags-recursive 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-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 installdirs-am maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \
-       tags-recursive uninstall uninstall-am uninstall-local
+       clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist \
+       cscopelist-recursive ctags ctags-recursive 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-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 \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-local pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-local
 
 
 # We need the following in order to create <alloca.h> when the system
 # doesn't have one that works with the given compiler.
-alloca.h: alloca.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/alloca.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ALLOCA_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_ALLOCA_H_TRUE@      cat $(srcdir)/alloca.in.h; \
+@GL_GENERATE_ALLOCA_H_TRUE@    } > $@-t && \
+@GL_GENERATE_ALLOCA_H_TRUE@    mv -f $@-t $@
+@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_FALSE@   rm -f $@
 
 # Listed in the same order as the GNU makefile conventions, and
 # provided by autoconf 2.59c+.
@@ -1847,34 +2109,40 @@ configmake.h: Makefile
          echo '#define PKGLIBDIR "$(pkglibdir)"'; \
          echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
        } | sed '/""/d' > $@-t && \
-       if test -f $@ && cmp $@-t $@ > /dev/null; then \
-         rm -f $@-t; \
-       else \
-         rm -f $@; mv $@-t $@; \
-       fi
+       mv -f $@-t $@
 
 # We need the following in order to create <dirent.h> when the system
 # doesn't have one that works with the given compiler.
-dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_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_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
-             -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \
-             -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \
-             -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \
-             -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \
+             -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \
+             -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \
+             -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \
+             -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/g' \
+             -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \
+             -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \
+             -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \
+             -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \
+             -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \
+             -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \
+             -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \
+             -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \
              -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
              -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \
              -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \
              -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \
              -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \
+             -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
              -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
              -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
              -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \
-             -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|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)' \
@@ -1884,35 +2152,40 @@ dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <errno.h> when the system
 # doesn't have one that is POSIX compliant.
-errno.h: errno.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-             -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-             -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-             -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-             -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-             -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-             -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-             < $(srcdir)/errno.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ERRNO_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_ERRNO_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           < $(srcdir)/errno.in.h; \
+@GL_GENERATE_ERRNO_H_TRUE@     } > $@-t && \
+@GL_GENERATE_ERRNO_H_TRUE@     mv $@-t $@
+@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_FALSE@    rm -f $@
 
 # We need the following in order to create <fcntl.h> when the system
 # doesn't have one that works with the given compiler.
-fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
-             -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \
-             -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
-             -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
+             -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+             -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+             -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
              -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
              -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
              -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
@@ -1927,33 +2200,40 @@ fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <float.h> when the system
 # doesn't have one that works with the given compiler.
-float.h: float.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-             < $(srcdir)/float.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_FLOAT_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_FLOAT_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           < $(srcdir)/float.in.h; \
+@GL_GENERATE_FLOAT_H_TRUE@     } > $@-t && \
+@GL_GENERATE_FLOAT_H_TRUE@     mv $@-t $@
+@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_FALSE@    rm -f $@
 
 # We need the following in order to create <fnmatch.h> when the system
 # doesn't have one that supports the required API.
-fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/fnmatch.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
+@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+@GL_GENERATE_FNMATCH_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_FNMATCH_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_FNMATCH_H_TRUE@     sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_FNMATCH_H_TRUE@         < $(srcdir)/fnmatch.in.h; \
+@GL_GENERATE_FNMATCH_H_TRUE@   } > $@-t && \
+@GL_GENERATE_FNMATCH_H_TRUE@   mv -f $@-t $@
+@GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status
+@GL_GENERATE_FNMATCH_H_FALSE@  rm -f $@
 
 # We need the following in order to create <getopt.h> when the system
 # doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(ARG_NONNULL_H)
+getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -1965,7 +2245,7 @@ getopt.h: getopt.in.h $(ARG_NONNULL_H)
 
 # We need the following in order to create <inttypes.h> when the system
 # doesn't have one that works with the given compiler.
-inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
          sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
@@ -1986,10 +2266,12 @@ inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
              -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
              -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/@''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' \
              -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/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)/inttypes.in.h; \
@@ -1998,15 +2280,16 @@ inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
 
 # We need the following in order to create an empty placeholder for
 # <langinfo.h> when the system doesn't have one.
-langinfo.h: langinfo.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
+langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
-             -e 's|@''GNULIB_NL_LANGINFO''@|$(GNULIB_NL_LANGINFO)|g' \
+             -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
              -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
              -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
              -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
@@ -2078,6 +2361,32 @@ charset.alias: config.charset
        sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
        mv t-$@ $@
 
+# We need the following in order to create <locale.h> when the system
+# doesn't have one that provides all definitions.
+locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
+             -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
+             -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+             -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
+             -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
+             -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
+             -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
+             -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
+             -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+             -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|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)/locale.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+
 # This rule overrides the Automake generated .y.c rule, to ensure that the
 # parse-datetime.c file gets generated in the source directory, not in the
 # build directory.
@@ -2089,129 +2398,257 @@ parse-datetime.c: parse-datetime.y
                                      -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
        mv parse-datetime.c parse-datetime.c-t && \
        mv parse-datetime.c-t $(srcdir)/parse-datetime.c
-
-# We need the following in order to create <stdarg.h> when the system
-# doesn't have one that works with the given compiler.
-stdarg.h: stdarg.in.h
+selinux/selinux.h: se-selinux.in.h $(top_builddir)/config.status $(UNUSED_PARAMETER_H)
+       $(AM_V_at)$(MKDIR_P) selinux
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STDARG_H''@|$(NEXT_STDARG_H)|g' \
-             < $(srcdir)/stdarg.in.h; \
+             -e 's|@''NEXT_SELINUX_SELINUX_H''@|$(NEXT_SELINUX_SELINUX_H)|g' \
+             -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
+             < $(srcdir)/se-selinux.in.h; \
        } > $@-t && \
+       chmod a-x $@-t && \
        mv $@-t $@
-
-# We need the following in order to create <stdbool.h> when the system
-# doesn't have one that works.
-stdbool.h: stdbool.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-
-# We need the following in order to create <stddef.h> when the system
-# doesn't have one that works with the given compiler.
-stddef.h: stddef.in.h
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@selinux/context.h: se-context.in.h $(top_builddir)/config.status $(UNUSED_PARAMETER_H)
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   $(AM_V_at)$(MKDIR_P) selinux
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@     sed -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@         < $(srcdir)/se-context.in.h; \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   } > $@-t && \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   chmod a-x $@-t && \
+@GL_GENERATE_SELINUX_CONTEXT_H_TRUE@   mv $@-t $@
+@GL_GENERATE_SELINUX_CONTEXT_H_FALSE@selinux/context.h: $(top_builddir)/config.status
+@GL_GENERATE_SELINUX_CONTEXT_H_FALSE@  rm -f $@
+
+# We need the following in order to create <signal.h> when the system
+# doesn't have a complete one.
+signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-             -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
-             -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-             < $(srcdir)/stddef.in.h; \
+             -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
+             -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
+             -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+             -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
+             -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
+             -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
+             -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
+             -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
+             -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
+             -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
+             -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
+             -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
+             -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
+             -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
+             -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
+             -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|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)/signal.in.h; \
        } > $@-t && \
        mv $@-t $@
+# 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.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+         > $@-t && \
+       mv $@-t $@
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/^.ifndef/,$$p' \
+         < $(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 <stdarg.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDARG_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDARG_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_STDARG_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDARG_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDARG_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDARG_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDARG_H_TRUE@          -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
+@GL_GENERATE_STDARG_H_TRUE@          < $(srcdir)/stdarg.in.h; \
+@GL_GENERATE_STDARG_H_TRUE@    } > $@-t && \
+@GL_GENERATE_STDARG_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status
+@GL_GENERATE_STDARG_H_FALSE@   rm -f $@
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDBOOL_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDBOOL_H_TRUE@     sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+@GL_GENERATE_STDBOOL_H_TRUE@   } > $@-t && \
+@GL_GENERATE_STDBOOL_H_TRUE@   mv $@-t $@
+@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_FALSE@  rm -f $@
+
+# We need the following in order to create <stddef.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDDEF_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_STDDEF_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          < $(srcdir)/stddef.in.h; \
+@GL_GENERATE_STDDEF_H_TRUE@    } > $@-t && \
+@GL_GENERATE_STDDEF_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
-stdint.h: stdint.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
-             -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
-             -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
-             -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
-             -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
-             -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
-             -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
-             -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
-             -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
-             -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
-             -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-             < $(srcdir)/stdint.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDINT_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDINT_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          < $(srcdir)/stdint.in.h; \
+@GL_GENERATE_STDINT_H_TRUE@    } > $@-t && \
+@GL_GENERATE_STDINT_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdio.h> when the system
 # doesn't have one that works with the given compiler.
-stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STDIO_H''@|$(NEXT_STDIO_H)|g' \
-             -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \
-             -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
-             -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
-             -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
-             -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \
-             -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
-             -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
-             -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \
-             -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
-             -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
-             -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
-             -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
-             -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
-             -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \
-             -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
-             -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
-             -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \
-             -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \
-             -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \
-             -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \
-             -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
-             -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \
-             -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \
-             -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \
-             -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \
-             -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \
-             -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
-             -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \
-             -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
-             -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \
-             -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \
-             -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \
-             -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
-             -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
-             -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
+             -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+             -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+             -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+             -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+             -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+             -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+             -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+             -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+             -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+             -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+             -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+             -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+             -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+             -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+             -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+             -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+             -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+             -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+             -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+             -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+             -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+             -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
+             -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+             -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+             -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+             -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+             -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+             -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+             -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+             -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+             -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+             -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+             -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+             -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+             -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+             -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+             -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+             -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+             -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+             -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
              < $(srcdir)/stdio.in.h | \
          sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
              -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
@@ -2224,11 +2661,14 @@ stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
              -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
              -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+             -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+             -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \
              -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
              -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
              -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
              -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
              -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
+             -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
              -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
              -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
              -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
@@ -2249,6 +2689,7 @@ stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
              -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
              -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+             -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
              -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
              -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
              -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
@@ -2266,41 +2707,47 @@ stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <stdlib.h> when the system
 # doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
+  $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-             -e 's|@''GNULIB__EXIT''@|$(GNULIB__EXIT)|g' \
-             -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
-             -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
-             -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-             -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \
-             -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_MBTOWC''@|$(GNULIB_MBTOWC)|g' \
-             -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \
-             -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-             -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \
-             -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \
-             -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
-             -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
-             -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \
-             -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
-             -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-             -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-             -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
-             -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
-             -e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \
-             -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
-             -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
-             -e 's|@''GNULIB_WCTOMB''@|$(GNULIB_WCTOMB)|g' \
+             -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+             -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+             -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+             -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+             -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+             -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+             -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+             -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+             -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_RANDOM''@/$(GNULIB_RANDOM)/g' \
+             -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+             -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
+             -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+             -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+             -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+             -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+             -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+             -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+             -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+             -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
              < $(srcdir)/stdlib.in.h | \
          sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
              -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
@@ -2313,11 +2760,15 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
              -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
              -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+             -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
              -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+             -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+             -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
              -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
              -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
              -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
              -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
              -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
@@ -2331,7 +2782,10 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
              -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
+             -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+             -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
              -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
              -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
@@ -2339,6 +2793,7 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
              -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
@@ -2346,50 +2801,55 @@ stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <string.h> when the system
 # doesn't have one that works with the given compiler.
-string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STRING_H''@|$(NEXT_STRING_H)|g' \
-             -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-             -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
-             -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-             -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-             -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-             -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-             -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-             -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-             -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-             -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-             -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-             -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-             -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-             -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-             -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
-             -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-             -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-             -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-             -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
-             -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-             -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-             -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-             -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-             -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \
-             -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-             -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-             -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-             -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-             -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
-             -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-             -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-             -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
-             -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \
-             -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
-             -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+             -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+             -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+             -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+             -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+             -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+             -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+             -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+             -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+             -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+             -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+             -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+             -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+             -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+             -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+             -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+             -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+             -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+             -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+             -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+             -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+             -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+             -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+             -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+             -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+             -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+             -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+             -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+             -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+             -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+             -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+             -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+             -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+             -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+             -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+             -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+             -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
              < $(srcdir)/string.in.h | \
-         sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+         sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+             -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+             -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
              -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
              -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
              -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
@@ -2412,6 +2872,7 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
              -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
              -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+             -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
              -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
              -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
              -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
@@ -2431,15 +2892,20 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <strings.h> when the system
 # doesn't have one that works with the given compiler.
-strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+             -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+             -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
              -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
              -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|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)/strings.in.h; \
@@ -2448,26 +2914,29 @@ strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H)
 
 # We need the following in order to create <sys/stat.h> when the system
 # has one that is incomplete.
-sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_at)$(MKDIR_P) sys
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
-             -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \
-             -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \
-             -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \
-             -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \
-             -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \
-             -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \
-             -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \
-             -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \
-             -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \
-             -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \
-             -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \
-             -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \
+             -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
+             -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+             -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \
+             -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \
+             -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \
+             -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \
+             -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \
+             -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \
+             -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \
+             -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \
+             -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \
+             -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \
+             -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \
+             -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \
              -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
              -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
              -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
@@ -2497,19 +2966,22 @@ sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <sys/time.h> when the system
 # doesn't have one that works with the given compiler.
-sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_at)$(MKDIR_P) sys
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
              -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
              -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
              -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
              -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
+             -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/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)' \
@@ -2517,34 +2989,54 @@ sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        } > $@-t && \
        mv $@-t $@
 
-# We need the following in order to create <sysexits.h> when the system
+# We need the following in order to create <sys/types.h> when the system
 # doesn't have one that works with the given compiler.
-sysexits.h: sysexits.in.h
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+       $(AM_V_at)$(MKDIR_P) sys
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \
+         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_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
-             < $(srcdir)/sysexits.in.h; \
+             -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             < $(srcdir)/sys_types.in.h; \
        } > $@-t && \
-       mv -f $@-t $@
+       mv $@-t $@
+
+# We need the following in order to create <sysexits.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_SYSEXITS_H_TRUE@sysexits.h: sysexits.in.h $(top_builddir)/config.status
+@GL_GENERATE_SYSEXITS_H_TRUE@  $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_SYSEXITS_H_TRUE@  { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_SYSEXITS_H_TRUE@    sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@        < $(srcdir)/sysexits.in.h; \
+@GL_GENERATE_SYSEXITS_H_TRUE@  } > $@-t && \
+@GL_GENERATE_SYSEXITS_H_TRUE@  mv -f $@-t $@
+@GL_GENERATE_SYSEXITS_H_FALSE@sysexits.h: $(top_builddir)/config.status
+@GL_GENERATE_SYSEXITS_H_FALSE@ rm -f $@
 
 # We need the following in order to create <time.h> when the system
 # doesn't have one that works with the given compiler.
-time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_TIME_H''@|$(NEXT_TIME_H)|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_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|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
              -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
              -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
@@ -2565,55 +3057,65 @@ time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
-unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-             -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-             -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
-             -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-             -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \
-             -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
-             -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
-             -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \
-             -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-             -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \
-             -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
-             -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-             -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-             -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
-             -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
-             -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \
-             -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
-             -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \
-             -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-             -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
-             -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
-             -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
-             -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
-             -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
-             -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
-             -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \
-             -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
-             -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
-             -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \
-             -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-             -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
-             -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
-             -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
-             -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \
-             -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
-             -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
-             -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
-             -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
-             -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
-             -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \
-             -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+             -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
+             -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+             -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+             -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+             -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+             -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+             -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+             -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+             -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
+             -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+             -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+             -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+             -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+             -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+             -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+             -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+             -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+             -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+             -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+             -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+             -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+             -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
+             -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+             -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+             -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+             -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+             -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+             -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+             -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+             -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+             -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+             -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+             -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+             -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+             -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
+             -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+             -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+             -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+             -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+             -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+             -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+             -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+             -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+             -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
              < $(srcdir)/unistd.in.h | \
          sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
              -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
@@ -2622,6 +3124,7 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
              -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
              -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+             -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
              -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
              -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
              -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
@@ -2629,6 +3132,7 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
              -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
              -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+             -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
              -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
              -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
              -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
@@ -2638,6 +3142,7 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
              -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
              -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+             -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
              -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
              -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
              -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
@@ -2645,10 +3150,12 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
              -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
              -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+             -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
              -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
              -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
              -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+             -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
              -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
              -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
              -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
@@ -2658,17 +3165,20 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
              -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
              -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
              -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
              -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+             -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
              -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
              -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
              -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
              -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
              -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
              -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
+             -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
              -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
              -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
              -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
@@ -2699,65 +3209,58 @@ uniwidth.h: uniwidth.in.h
          cat $(srcdir)/uniwidth.in.h; \
        } > $@-t && \
        mv -f $@-t $@
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
-         > $@-t && \
-       mv $@-t $@
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
-wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         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_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
              -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
-             -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
-             -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
-             -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
-             -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
-             -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
-             -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
-             -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
-             -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
-             -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
-             -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
-             -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
-             -e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \
-             -e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \
-             -e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \
-             -e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \
-             -e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \
-             -e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \
-             -e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \
-             -e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \
-             -e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \
-             -e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \
-             -e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \
-             -e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \
-             -e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \
-             -e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \
-             -e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \
-             -e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \
-             -e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \
-             -e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \
-             -e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \
-             -e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \
-             -e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \
-             -e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \
-             -e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \
-             -e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \
-             -e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \
-             -e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \
-             -e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \
-             -e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \
+             -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+             -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+             -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+             -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+             -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+             -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+             -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+             -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+             -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+             -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+             -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+             -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+             -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+             -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+             -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+             -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+             -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+             -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+             -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+             -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+             -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+             -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+             -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+             -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+             -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+             -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+             -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+             -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+             -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+             -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+             -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+             -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+             -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+             -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+             -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+             -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+             -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+             -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+             -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
              < $(srcdir)/wchar.in.h | \
          sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
              -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
@@ -2821,10 +3324,11 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
+wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
@@ -2841,6 +3345,7 @@ wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
              -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
              -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
              -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+             -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
              < $(srcdir)/wctype.in.h; \
diff --git a/gnu/acl-errno-valid.c b/gnu/acl-errno-valid.c
new file mode 100644 (file)
index 0000000..ef0ae95
--- /dev/null
@@ -0,0 +1,54 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test whether ACLs are well supported on this system.
+
+   Copyright 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/>.
+
+   Written by Paul Eggert.  */
+
+#include <config.h>
+
+#include <acl.h>
+
+#include <errno.h>
+
+/* Return true if errno value ERRNUM indicates that ACLs are well
+   supported on this system.  ERRNUM should be an errno value obtained
+   after an ACL-related system call fails.  */
+bool
+acl_errno_valid (int errnum)
+{
+  /* Recognize some common errors such as from an NFS mount that does
+     not support ACLs, even when local drives do.  */
+  switch (errnum)
+    {
+    case EBUSY: return false;
+    case EINVAL: return false;
+#if defined __APPLE__ && defined __MACH__
+    case ENOENT: return false;
+#endif
+    case ENOSYS: return false;
+
+#if defined ENOTSUP && ENOTSUP != EOPNOTSUPP
+# if ENOTSUP != ENOSYS /* Needed for the MS-Windows port of GNU Emacs.  */
+    case ENOTSUP: return false;
+# endif
+#endif
+
+    case EOPNOTSUPP: return false;
+    default: return true;
+    }
+}
diff --git a/gnu/acl-internal.h b/gnu/acl-internal.h
new file mode 100644 (file)
index 0000000..6d3e4cb
--- /dev/null
@@ -0,0 +1,252 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Internal implementation of access control lists.
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
+
+#include "acl.h"
+
+#include <stdbool.h>
+#include <stdlib.h>
+
+/* All systems define the ACL related API in <sys/acl.h>.  */
+#if HAVE_SYS_ACL_H
+# include <sys/acl.h>
+#endif
+#if defined HAVE_FACL && ! defined GETACLCNT && defined ACL_CNT
+# define GETACLCNT ACL_CNT
+#endif
+
+/* On Linux, additional ACL related API is available in <acl/libacl.h>.  */
+#ifdef HAVE_ACL_LIBACL_H
+# include <acl/libacl.h>
+#endif
+
+/* On HP-UX >= 11.11, additional ACL API is available in <aclv.h>.  */
+#if HAVE_ACLV_H
+# include <sys/types.h>
+# include <aclv.h>
+/* HP-UX 11.11 lacks these declarations.  */
+extern int acl (char *, int, int, struct acl *);
+extern int aclsort (int, int, struct acl *);
+#endif
+
+#include <errno.h>
+
+#include <limits.h>
+#ifndef MIN
+# define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#ifndef HAVE_FCHMOD
+# define HAVE_FCHMOD false
+# define fchmod(fd, mode) (-1)
+#endif
+
+_GL_INLINE_HEADER_BEGIN
+#ifndef ACL_INTERNAL_INLINE
+# define ACL_INTERNAL_INLINE _GL_INLINE
+#endif
+
+#if USE_ACL
+
+# if HAVE_ACL_GET_FILE
+/* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
+/* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */
+
+#  ifndef MIN_ACL_ENTRIES
+#   define MIN_ACL_ENTRIES 4
+#  endif
+
+/* POSIX 1003.1e (draft 17) */
+#  ifdef HAVE_ACL_GET_FD
+/* Most platforms have a 1-argument acl_get_fd, only OSF/1 has a 2-argument
+   macro(!).  */
+#   if HAVE_ACL_FREE_TEXT /* OSF/1 */
+ACL_INTERNAL_INLINE acl_t
+rpl_acl_get_fd (int fd)
+{
+  return acl_get_fd (fd, ACL_TYPE_ACCESS);
+}
+#    undef acl_get_fd
+#    define acl_get_fd rpl_acl_get_fd
+#   endif
+#  else
+#   define HAVE_ACL_GET_FD false
+#   undef acl_get_fd
+#   define acl_get_fd(fd) (NULL)
+#  endif
+
+/* POSIX 1003.1e (draft 17) */
+#  ifdef HAVE_ACL_SET_FD
+/* Most platforms have a 2-argument acl_set_fd, only OSF/1 has a 3-argument
+   macro(!).  */
+#   if HAVE_ACL_FREE_TEXT /* OSF/1 */
+ACL_INTERNAL_INLINE int
+rpl_acl_set_fd (int fd, acl_t acl)
+{
+  return acl_set_fd (fd, ACL_TYPE_ACCESS, acl);
+}
+#    undef acl_set_fd
+#    define acl_set_fd rpl_acl_set_fd
+#   endif
+#  else
+#   define HAVE_ACL_SET_FD false
+#   undef acl_set_fd
+#   define acl_set_fd(fd, acl) (-1)
+#  endif
+
+/* POSIX 1003.1e (draft 13) */
+#  if ! HAVE_ACL_FREE_TEXT
+#   define acl_free_text(buf) acl_free (buf)
+#  endif
+
+/* Linux-specific */
+#  ifndef HAVE_ACL_EXTENDED_FILE
+#   define HAVE_ACL_EXTENDED_FILE false
+#   define acl_extended_file(name) (-1)
+#  endif
+
+/* Linux-specific */
+#  ifndef HAVE_ACL_FROM_MODE
+#   define HAVE_ACL_FROM_MODE false
+#   define acl_from_mode(mode) (NULL)
+#  endif
+
+/* Set to 1 if a file's mode is implicit by the ACL.
+   Set to 0 if a file's mode is stored independently from the ACL.  */
+#  if (HAVE_ACL_COPY_EXT_NATIVE && HAVE_ACL_CREATE_ENTRY_NP) || defined __sgi /* Mac OS X, IRIX */
+#   define MODE_INSIDE_ACL 0
+#  else
+#   define MODE_INSIDE_ACL 1
+#  endif
+
+/* Return the number of entries in ACL.
+   Return -1 and set errno upon failure to determine it.  */
+/* Define a replacement for acl_entries if needed. (Only Linux has it.)  */
+#  if !HAVE_ACL_ENTRIES
+#   define acl_entries rpl_acl_entries
+extern int acl_entries (acl_t);
+#  endif
+
+#  if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+/* ACL is an ACL, from a file, stored as type ACL_TYPE_EXTENDED.
+   Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial.  */
+extern int acl_extended_nontrivial (acl_t);
+#  else
+/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS.
+   Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.
+   Return -1 and set errno upon failure to determine it.  */
+extern int acl_access_nontrivial (acl_t);
+#  endif
+
+# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
+
+/* Set to 1 if a file's mode is implicit by the ACL.
+   Set to 0 if a file's mode is stored independently from the ACL.  */
+#  if defined __CYGWIN__ /* Cygwin */
+#   define MODE_INSIDE_ACL 0
+#  else /* Solaris */
+#   define MODE_INSIDE_ACL 1
+#  endif
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int acl_nontrivial (int count, aclent_t *entries);
+
+#  ifdef ACE_GETACL /* Solaris 10 */
+
+/* Test an ACL retrieved with ACE_GETACL.
+   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int acl_ace_nontrivial (int count, ace_t *entries);
+
+/* Definitions for when the built executable is executed on Solaris 10
+   (newer version) or Solaris 11.  */
+/* For a_type.  */
+#   define OLD_ALLOW 0
+#   define OLD_DENY  1
+#   define NEW_ACE_ACCESS_ALLOWED_ACE_TYPE 0 /* replaces ALLOW */
+#   define NEW_ACE_ACCESS_DENIED_ACE_TYPE  1 /* replaces DENY */
+/* For a_flags.  */
+#   define OLD_ACE_OWNER            0x0100
+#   define OLD_ACE_GROUP            0x0200
+#   define OLD_ACE_OTHER            0x0400
+#   define NEW_ACE_OWNER            0x1000
+#   define NEW_ACE_GROUP            0x2000
+#   define NEW_ACE_IDENTIFIER_GROUP 0x0040
+#   define NEW_ACE_EVERYONE         0x4000
+/* For a_access_mask.  */
+#   define NEW_ACE_READ_DATA         0x001 /* corresponds to 'r' */
+#   define NEW_ACE_WRITE_DATA        0x002 /* corresponds to 'w' */
+#   define NEW_ACE_APPEND_DATA       0x004
+#   define NEW_ACE_READ_NAMED_ATTRS  0x008
+#   define NEW_ACE_WRITE_NAMED_ATTRS 0x010
+#   define NEW_ACE_EXECUTE           0x020
+#   define NEW_ACE_DELETE_CHILD      0x040
+#   define NEW_ACE_READ_ATTRIBUTES   0x080
+#   define NEW_ACE_WRITE_ATTRIBUTES  0x100
+#   define NEW_ACE_DELETE          0x10000
+#   define NEW_ACE_READ_ACL        0x20000
+#   define NEW_ACE_WRITE_ACL       0x40000
+#   define NEW_ACE_WRITE_OWNER     0x80000
+#   define NEW_ACE_SYNCHRONIZE    0x100000
+
+#  endif
+
+# elif HAVE_GETACL /* HP-UX */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int acl_nontrivial (int count, struct acl_entry *entries, struct stat *sb);
+
+#  if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int aclv_nontrivial (int count, struct acl *entries);
+
+#  endif
+
+# elif HAVE_ACLX_GET && 0 /* AIX */
+
+/* TODO */
+
+# elif HAVE_STATACL /* older AIX */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int acl_nontrivial (struct acl *a);
+
+# elif HAVE_ACLSORT /* NonStop Kernel */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+extern int acl_nontrivial (int count, struct acl *entries);
+
+# endif
+
+#endif
+
+_GL_INLINE_HEADER_END
diff --git a/gnu/acl.h b/gnu/acl.h
new file mode 100644 (file)
index 0000000..519a1d4
--- /dev/null
+++ b/gnu/acl.h
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* acl.c - access control lists
+
+   Copyright (C) 2002, 2008-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/>.
+
+   Written by Paul Eggert.  */
+
+#include <stdbool.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+bool acl_errno_valid (int) _GL_ATTRIBUTE_CONST;
+int file_has_acl (char const *, struct stat const *);
+int qset_acl (char const *, int, mode_t);
+int set_acl (char const *, int, mode_t);
+int qcopy_acl (char const *, int, char const *, int, mode_t);
+int copy_acl (char const *, int, char const *, int, mode_t);
+int chmod_or_fchmod (char const *, int, mode_t);
diff --git a/gnu/acl_entries.c b/gnu/acl_entries.c
new file mode 100644 (file)
index 0000000..d52d83a
--- /dev/null
@@ -0,0 +1,77 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Return the number of entries in an ACL.
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert and Andreas Gruenbacher.  */
+
+#include <config.h>
+
+#include "acl-internal.h"
+
+/* This file assumes POSIX-draft like ACLs
+   (Linux, FreeBSD, Mac OS X, IRIX, Tru64).  */
+
+/* Return the number of entries in ACL.
+   Return -1 and set errno upon failure to determine it.  */
+
+int
+acl_entries (acl_t acl)
+{
+  int count = 0;
+
+  if (acl != NULL)
+    {
+#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Mac OS X */
+# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+      /* acl_get_entry returns 0 when it successfully fetches an entry,
+         and -1/EINVAL at the end.  */
+      acl_entry_t ace;
+      int got_one;
+
+      for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
+           got_one >= 0;
+           got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
+        count++;
+# else /* Linux, FreeBSD */
+      /* acl_get_entry returns 1 when it successfully fetches an entry,
+         and 0 at the end.  */
+      acl_entry_t ace;
+      int got_one;
+
+      for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
+           got_one > 0;
+           got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
+        count++;
+      if (got_one < 0)
+        return -1;
+# endif
+#else /* IRIX, Tru64 */
+# if HAVE_ACL_TO_SHORT_TEXT /* IRIX */
+      /* Don't use acl_get_entry: it is undocumented.  */
+      count = acl->acl_cnt;
+# endif
+# if HAVE_ACL_FREE_TEXT /* Tru64 */
+      /* Don't use acl_get_entry: it takes only one argument and does not
+         work.  */
+      count = acl->acl_num;
+# endif
+#endif
+    }
+
+  return count;
+}
index a16fa392568417d5ffbce230f971ec7f760bd051..b14bba75a7e70e6ea8eab36be84dd3dabe4fd291 100644 (file)
@@ -95,25 +95,15 @@ long i00afunc ();
 static int stack_dir;           /* 1 or -1 once known.  */
 #   define STACK_DIR    stack_dir
 
-static void
-find_stack_direction (char **ptr)
+static int
+find_stack_direction (int *addr, int depth)
 {
-  auto char dummy;              /* To get stack address.  */
-
-  if (*ptr == NULL)
-    {                           /* Initial entry.  */
-      *ptr = ADDRESS_FUNCTION (dummy);
-
-      find_stack_direction (ptr);  /* Recurse once.  */
-    }
-  else
-    {
-      /* Second entry.  */
-      if (ADDRESS_FUNCTION (dummy) > *ptr)
-        stack_dir = 1;          /* Stack grew upward.  */
-      else
-        stack_dir = -1;         /* Stack grew downward.  */
-    }
+  int dir, dummy = 0;
+  if (! addr)
+    addr = &dummy;
+  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+  return dir + dummy;
 }
 
 #  endif /* STACK_DIRECTION == 0 */
@@ -156,10 +146,7 @@ alloca (size_t size)
 
 #  if STACK_DIRECTION == 0
   if (STACK_DIR == 0)           /* Unknown growth direction.  */
-    {
-      char *addr = NULL;        /* Address of first `dummy', once known.  */
-      find_stack_direction (&addr);
-    }
+    STACK_DIR = find_stack_direction (NULL, (size & 1) + 20);
 #  endif
 
   /* Reclaim garbage, defined as all alloca'd storage that
@@ -490,4 +477,4 @@ i00afunc (long address)
 #  endif /* CRAY */
 
 # endif /* no alloca */
-#endif /* not GCC version 3 */
+#endif /* not GCC 2 */
index 1461669ff96dfc2a86917ad4198067e379900419..2fce582ea28200847c2483cb59c07611f71d3353 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2011 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
@@ -16,9 +16,9 @@
    General Public License for more details.
 
    You should have received a copy of the GNU General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   License along with this program; if not, see
+   <http://www.gnu.org/licenses/>.
+  */
 
 /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
    means there is a real alloca function.  */
 #  define alloca _alloca
 # elif defined __DECC && defined __VMS
 #  define alloca __ALLOCA
+# elif defined __TANDEM && defined _TNS_E_TARGET
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *_alloca (unsigned short);
+#  pragma intrinsic (_alloca)
+#  define alloca _alloca
 # else
 #  include <stddef.h>
 #  ifdef  __cplusplus
diff --git a/gnu/allocator.c b/gnu/allocator.c
new file mode 100644 (file)
index 0000000..c512d4b
--- /dev/null
@@ -0,0 +1,7 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+#include "allocator.h"
+#include <stdlib.h>
+struct allocator const stdlib_allocator = { malloc, realloc, free, NULL };
diff --git a/gnu/allocator.h b/gnu/allocator.h
new file mode 100644 (file)
index 0000000..44fdefa
--- /dev/null
@@ -0,0 +1,60 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Memory allocators such as malloc+free.
+
+   Copyright (C) 2011-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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#ifndef _GL_ALLOCATOR_H
+#define _GL_ALLOCATOR_H
+
+#include <stddef.h>
+
+/* An object describing a memory allocator family.  */
+
+struct allocator
+{
+  /* Do not use GCC attributes such as __attribute__ ((malloc)) with
+     the function types pointed at by these members, because these
+     attributes do not work with pointers to functions.  See
+     <http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00007.html>.  */
+
+  /* Call ALLOCATE to allocate memory, like 'malloc'.  On failure ALLOCATE
+     should return NULL, though not necessarily set errno.  When given
+     a zero size it may return NULL even if successful.  */
+  void *(*allocate) (size_t);
+
+  /* If nonnull, call REALLOCATE to reallocate memory, like 'realloc'.
+     On failure REALLOCATE should return NULL, though not necessarily set
+     errno.  When given a zero size it may return NULL even if
+     successful.  */
+  void *(*reallocate) (void *, size_t);
+
+  /* Call FREE to free memory, like 'free'.  */
+  void (*free) (void *);
+
+  /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (...,
+     SIZE) fails.  DIE should not return.  SIZE should equal SIZE_MAX
+     if size_t overflow was detected while calculating sizes to be
+     passed to MALLOC or REALLOC.  */
+  void (*die) (size_t);
+};
+
+/* An allocator using the stdlib functions and a null DIE function.  */
+extern struct allocator const stdlib_allocator;
+
+#endif /* _GL_ALLOCATOR_H */
index 581c50fd1b27dc24c05882412811e585d2eda948..afffa8369d772e814bb4725d339e35bb24749d0d 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* anytostr.c -- convert integers to printable strings
 
-   Copyright (C) 2001, 2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2006, 2008-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
@@ -22,6 +22,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 681b12d288be60aa837dbea9574ad95ae239cba3..78504c8e124ae31b0aabddbe74ff42b99cba3415 100644 (file)
@@ -3,7 +3,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-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 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
 /* Specification.  */
 #include "areadlink.h"
 
-#include <errno.h>
-#include <limits.h>
-#include <stdint.h>
+#include "careadlinkat.h"
+
 #include <stdlib.h>
-#include <string.h>
 #include <unistd.h>
 
-#ifndef SSIZE_MAX
-# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
-#endif
-
-/* Use the system functions, not the gnulib overrides in this file.  */
-#undef malloc
-#undef realloc
-
-/* The initial buffer size for the link value.  A power of 2
-   detects arithmetic overflow earlier, but is not required.  */
-enum {
-  INITIAL_BUF_SIZE = 1024
-};
+/* Get the symbolic link value of FILENAME and put it into BUFFER, with
+   size BUFFER_SIZE.  This function acts like readlink but has
+   readlinkat's signature.  */
+static ssize_t
+careadlinkatcwd (int fd, char const *filename, char *buffer,
+                 size_t buffer_size)
+{
+  /* FD must be AT_FDCWD here, otherwise the caller is using this
+     function in contexts it was not meant for.  */
+  if (fd != AT_FDCWD)
+    abort ();
+  return readlink (filename, buffer, buffer_size);
+}
 
 /* Call readlink to get the symbolic link value of FILENAME.
    Return a pointer to that NUL-terminated string in malloc'd storage.
    If readlink fails, return NULL and set errno.
-   If realloc fails, or if the link value is longer than SIZE_MAX :-),
+   If allocation fails, or if the link value is longer than SIZE_MAX :-),
    return NULL and set errno to ENOMEM.  */
 
 char *
 areadlink (char const *filename)
 {
-  /* Allocate the initial buffer on the stack.  This way, in the common
-     case of a symlink of small size, we get away with a single small malloc()
-     instead of a big malloc() followed by a shrinking realloc().  */
-  char initial_buf[INITIAL_BUF_SIZE];
-
-  char *buffer = initial_buf;
-  size_t buf_size = sizeof initial_buf;
-
-  while (1)
-    {
-      /* Attempt to read the link into the current buffer.  */
-      ssize_t link_length = readlink (filename, buffer, buf_size);
-
-      /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-         with errno == ERANGE if the buffer is too small.  */
-      if (link_length < 0 && errno != ERANGE)
-        {
-          if (buffer != initial_buf)
-            {
-              int saved_errno = errno;
-              free (buffer);
-              errno = saved_errno;
-            }
-          return NULL;
-        }
-
-      if ((size_t) link_length < buf_size)
-        {
-          buffer[link_length++] = '\0';
-
-          /* Return it in a chunk of memory as small as possible.  */
-          if (buffer == initial_buf)
-            {
-              buffer = (char *) malloc (link_length);
-              if (buffer == NULL)
-                {
-                  /* It's easier to set errno to ENOMEM than to rely on the
-                     'malloc-posix' gnulib module.  */
-                  errno = ENOMEM;
-                  return NULL;
-                }
-              memcpy (buffer, initial_buf, link_length);
-            }
-          else
-            {
-              /* Shrink buffer before returning it.  */
-              if ((size_t) link_length < buf_size)
-                {
-                  char *smaller_buffer = (char *) realloc (buffer, link_length);
-
-                  if (smaller_buffer != NULL)
-                    buffer = smaller_buffer;
-                }
-            }
-          return buffer;
-        }
-
-      if (buffer != initial_buf)
-        free (buffer);
-      buf_size *= 2;
-      if (SSIZE_MAX < buf_size || (SIZE_MAX / 2 < SSIZE_MAX && buf_size == 0))
-        {
-          errno = ENOMEM;
-          return NULL;
-        }
-      buffer = (char *) malloc (buf_size);
-      if (buffer == NULL)
-        {
-          /* It's easier to set errno to ENOMEM than to rely on the
-             'malloc-posix' gnulib module.  */
-          errno = ENOMEM;
-          return NULL;
-        }
-    }
+  return careadlinkat (AT_FDCWD, filename, NULL, 0, NULL, careadlinkatcwd);
 }
index ada8eb1ff23326c291585fb89b9cdc0e7c61cc27..6619f78ea4eb5ff52b4908fb13be10bbc635bf97 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Read symbolic links without size limitation.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2011 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index abbfed3b1204892e8f121aee9b2561b6749ab8bb..0dfc0114b05cb5ad079abc8d9f6101ded10d0faa 100644 (file)
@@ -3,7 +3,7 @@
 /* areadlinkat.c -- readlinkat wrapper to return malloc'd link name
    Unlike xreadlinkat, only call exit on failure to change directory.
 
-   Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 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
 /* Specification.  */
 #include "areadlink.h"
 
-#include <errno.h>
-#include <limits.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#ifndef SSIZE_MAX
-# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
-#endif
+#include "careadlinkat.h"
 
 #if HAVE_READLINKAT
 
-/* The initial buffer size for the link value.  A power of 2
-   detects arithmetic overflow earlier, but is not required.  */
-enum {
-  INITIAL_BUF_SIZE = 1024
-};
-
 /* Call readlinkat to get the symbolic link value of FILENAME relative to FD.
    Return a pointer to that NUL-terminated string in malloc'd storage.
    If readlinkat fails, return NULL and set errno (although failure to
    change directory will issue a diagnostic and exit).
-   If realloc fails, or if the link value is longer than SIZE_MAX :-),
+   If allocation fails, or if the link value is longer than SIZE_MAX :-),
    return NULL and set errno to ENOMEM.  */
 
 char *
 areadlinkat (int fd, char const *filename)
 {
-  /* Allocate the initial buffer on the stack.  This way, in the common
-     case of a symlink of small size, we get away with a single small malloc()
-     instead of a big malloc() followed by a shrinking realloc().  */
-  char initial_buf[INITIAL_BUF_SIZE];
-
-  char *buffer = initial_buf;
-  size_t buf_size = sizeof initial_buf;
-
-  while (1)
-    {
-      /* Attempt to read the link into the current buffer.  */
-       ssize_t link_length = readlinkat (fd, filename, buffer, buf_size);
-
-      /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-         with errno == ERANGE if the buffer is too small.  */
-      if (link_length < 0 && errno != ERANGE)
-        {
-          if (buffer != initial_buf)
-            {
-              int saved_errno = errno;
-              free (buffer);
-              errno = saved_errno;
-            }
-          return NULL;
-        }
-
-      if ((size_t) link_length < buf_size)
-        {
-          buffer[link_length++] = '\0';
-
-          /* Return it in a chunk of memory as small as possible.  */
-          if (buffer == initial_buf)
-            {
-              buffer = (char *) malloc (link_length);
-              if (buffer == NULL)
-                /* errno is ENOMEM.  */
-                return NULL;
-              memcpy (buffer, initial_buf, link_length);
-            }
-          else
-            {
-              /* Shrink buffer before returning it.  */
-              if ((size_t) link_length < buf_size)
-                {
-                  char *smaller_buffer = (char *) realloc (buffer, link_length);
-
-                  if (smaller_buffer != NULL)
-                    buffer = smaller_buffer;
-                }
-            }
-          return buffer;
-        }
-
-      if (buffer != initial_buf)
-        free (buffer);
-      buf_size *= 2;
-      if (SSIZE_MAX < buf_size || (SIZE_MAX / 2 < SSIZE_MAX && buf_size == 0))
-        {
-          errno = ENOMEM;
-          return NULL;
-        }
-      buffer = (char *) malloc (buf_size);
-      if (buffer == NULL)
-        /* errno is ENOMEM.  */
-        return NULL;
-    }
+  return careadlinkat (fd, filename, NULL, 0, NULL, readlinkat);
 }
 
 #else /* !HAVE_READLINKAT */
index f51284476fed76faa59865bc876ae37b69672d87..459bf2e3674a062761b5005c07d5aaa9fff91b35 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* argmatch.c -- find a match for a string in an array
 
-   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2011 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -79,7 +79,7 @@ argmatch_exit_fn argmatch_die = __argmatch_die;
    synonyms, i.e., for
      "yes", "yop" -> 0
      "no", "nope" -> 1
-   "y" is a valid argument, for `0', and "n" for `1'.  */
+   "y" is a valid argument, for 0, and "n" for 1.  */
 
 ptrdiff_t
 argmatch (const char *arg, const char *const *arglist,
@@ -152,17 +152,17 @@ argmatch_valid (const char *const *arglist,
 
   /* We try to put synonyms on the same line.  The assumption is that
      synonyms follow each other */
-  fprintf (stderr, _("Valid arguments are:"));
+  fputs (_("Valid arguments are:"), stderr);
   for (i = 0; arglist[i]; i++)
     if ((i == 0)
         || memcmp (last_val, vallist + valsize * i, valsize))
       {
-        fprintf (stderr, "\n  - `%s'", arglist[i]);
+        fprintf (stderr, "\n  - %s", quote (arglist[i]));
         last_val = vallist + valsize * i;
       }
     else
       {
-        fprintf (stderr, ", `%s'", arglist[i]);
+        fprintf (stderr, ", %s", quote (arglist[i]));
       }
   putc ('\n', stderr);
 }
@@ -271,7 +271,7 @@ main (int argc, const char *const *argv)
     backup_type = XARGMATCH (program_name, argv[1],
                              backup_args, backup_vals);
 
-  printf ("The version control is `%s'\n",
+  printf ("The version control is '%s'\n",
           ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
 
   return 0;
index 3c3077961b2653c4b3c694320bb196017cd06412..f3730571e923959d99893f5465da01658014bf63 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* argmatch.h -- definitions and prototypes for argmatch.c
 
-   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2011 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2013 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
    to the same values in VALLIST).  */
 
 ptrdiff_t argmatch (char const *arg, char const *const *arglist,
-                    char const *vallist, size_t valsize);
+                    char const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE;
 
 # define ARGMATCH(Arg, Arglist, Vallist) \
   argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
 
 /* xargmatch calls this function when it fails.  This function should not
    return.  By default, this is a function that calls ARGMATCH_DIE which
-   in turn defaults to `exit (exit_failure)'.  */
+   in turn defaults to 'exit (exit_failure)'.  */
 typedef void (*argmatch_exit_fn) (void);
 extern argmatch_exit_fn argmatch_die;
 
@@ -75,8 +79,8 @@ void argmatch_valid (char const *const *arglist,
 
 
 
-/* Same as argmatch, but upon failure, reports a explanation on the
-   failure, and exits using the function EXIT_FN. */
+/* Same as argmatch, but upon failure, report an explanation of the
+   failure, and exit using the function EXIT_FN. */
 
 ptrdiff_t __xargmatch_internal (char const *context,
                                 char const *arg, char const *const *arglist,
@@ -95,10 +99,15 @@ ptrdiff_t __xargmatch_internal (char const *context,
 
 char const *argmatch_to_argument (char const *value,
                                   char const *const *arglist,
-                                  char const *vallist, size_t valsize);
+                                  char const *vallist, size_t valsize)
+  _GL_ATTRIBUTE_PURE;
 
 # define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist)                  \
   argmatch_to_argument (Value, Arglist,                                 \
                         (char const *) (Vallist), sizeof *(Vallist))
 
+#ifdef  __cplusplus
+}
+#endif
+
 #endif /* ARGMATCH_H_ */
index 607c07861c07b7ae8f68bc0fe24eec68d9537eef..566d916d94aac4ba0b36c235384fba036c6c81a6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Default definition for ARGP_PROGRAM_BUG_ADDRESS.
-   Copyright (C) 1996-1997, 1999, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-1997, 1999, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
 /* If set by the user program, it should point to string that is the
    bug-reporting address for the program.  It will be printed by argp_help if
    the ARGP_HELP_BUG_ADDR flag is set (as it is by various standard help
-   messages), embedded in a sentence that says something like `Report bugs to
-   ADDR.'.  */
+   messages), embedded in a sentence that says something like "Report bugs to
+   ADDR."  */
 const char *argp_program_bug_address
 /* This variable should be zero-initialized.  On most systems, putting it into
-   BSS is sufficient.  Not so on MacOS X 10.3 and 10.4, see
+   BSS is sufficient.  Not so on Mac OS X 10.3 and 10.4, see
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>.  */
 #if defined __ELF__
index c7d8d03cad06c95184b8ea064de2639b515e4aac..47d5848c518d02d1d4617b20de7a89858d107ac0 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Default definition for ARGP_ERR_EXIT_STATUS
-   Copyright (C) 1997, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
index 1abc5679cbf7b37c155d539a6f67a6e2c2648428..201df851ac2ed1622721a98903fb343665006c7d 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Word-wrapping and line-truncating streams
-   Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2011 Free Software
+   Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -19,7 +19,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/>.  */
 
-/* This package emulates glibc `line_wrap_stream' semantics for systems that
+/* This package emulates glibc 'line_wrap_stream' semantics for systems that
    don't have that.  */
 
 #ifdef HAVE_CONFIG_H
index 2e1c44cc2c6fb267fe8af6ab1661e8f14b7f0e1e..71b91b647b06c6ef92f0271593816cf68f6a567c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Word-wrapping and line-truncating streams.
-   Copyright (C) 1997, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2006-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -18,7 +18,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/>.  */
 
-/* This package emulates glibc `line_wrap_stream' semantics for systems that
+/* This package emulates glibc 'line_wrap_stream' semantics for systems that
    don't have that.  If the system does have it, it is just a wrapper for
    that.  This header file is only used internally while compiling argp, and
    shouldn't be installed.  */
@@ -135,7 +135,7 @@ extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs,
                                       const char *__fmt, ...)
      _GL_ATTRIBUTE_FORMAT ((printf, 2, 3));
 
-#if _LIBC || !defined __OPTIMIZE__
+#if _LIBC
 extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
 extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
 
@@ -156,7 +156,7 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
 #define __argp_fmtstream_rmargin argp_fmtstream_rmargin
 #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
 
-#if _LIBC || !defined __OPTIMIZE__
+#if _LIBC
 /* Set __FS's left margin to LMARGIN and return the old value.  */
 extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
                                           size_t __lmargin);
@@ -186,7 +186,7 @@ extern void __argp_fmtstream_update (argp_fmtstream_t __fs);
 extern int _argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 \f
-#ifdef __OPTIMIZE__
+#if !_LIBC || defined __OPTIMIZE__
 /* Inline versions of above routines.  */
 
 #if !_LIBC
@@ -199,6 +199,10 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
 #define __argp_fmtstream_point argp_fmtstream_point
 #define __argp_fmtstream_update _argp_fmtstream_update
 #define __argp_fmtstream_ensure _argp_fmtstream_ensure
+_GL_INLINE_HEADER_BEGIN
+#ifndef ARGP_FS_EI
+# define ARGP_FS_EI _GL_INLINE
+#endif
 #endif
 
 #ifndef ARGP_FS_EI
@@ -347,9 +351,10 @@ __argp_fmtstream_point (argp_fmtstream_t __fs)
 #undef __argp_fmtstream_point
 #undef __argp_fmtstream_update
 #undef __argp_fmtstream_ensure
+_GL_INLINE_HEADER_END
 #endif
 
-#endif /* __OPTIMIZE__ */
+#endif /* !_LIBC || __OPTIMIZE__ */
 
 #endif /* ARGP_FMTSTREAM_USE_LINEWRAP */
 
index cb20564489f03c6b2d4860b7926e11e1a527b5f2..f8158030b049d53960cfa869b22855ccfbe20f94 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Real definitions for extern inline functions in argp-fmtstream.h
-   Copyright (C) 1997, 2003-2004, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2003-2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
 # include <config.h>
 #endif
 
-#define ARGP_FS_EI
+#ifdef _LIBC
+# define ARGP_FS_EI
+#else
+# define ARGP_FS_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp-fmtstream.h"
index 7acfdac8e551ddbf5532812ce96601962644aa99..9f7a4f2a528749350db63a1f00fb145faf868da9 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Hierarchial argument parsing help output
-   Copyright (C) 1995-2005, 2007, 2009-2011 Free Software Foundation, Inc.
+/* Hierarchical argument parsing help output
+   Copyright (C) 1995-2005, 2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -31,6 +31,7 @@
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
+#include <strings.h>
 #include <assert.h>
 #include <stdarg.h>
 #include <ctype.h>
@@ -58,7 +59,7 @@
 \f
 /* User-selectable (using an environment variable) formatting parameters.
 
-   These may be specified in an environment variable called `ARGP_HELP_FMT',
+   These may be specified in an environment variable called 'ARGP_HELP_FMT',
    with a contents like:  VAR1=VAL1,VAR2=VAL2,BOOLVAR2,no-BOOLVAR2
    Where VALn must be a positive integer.  The list of variables is in the
    UPARAM_NAMES vector, below.  */
 #define RMARGIN      79         /* right margin used for wrapping */
 
 /* User-selectable (using an environment variable) formatting parameters.
-   They must all be of type `int' for the parsing code to work.  */
+   They must all be of type 'int' for the parsing code to work.  */
 struct uparams
 {
   /* If true, arguments for an option are shown with both short and long
-     options, even when a given option has both, e.g. `-x ARG, --longx=ARG'.
+     options, even when a given option has both, e.g. '-x ARG, --longx=ARG'.
      If false, then if an option has both, the argument is only shown with
-     the long one, e.g., `-x, --longx=ARG', and a message indicating that
+     the long one, e.g., '-x, --longx=ARG', and a message indicating that
      this really means both is printed below the options.  */
   int dup_args;
 
@@ -113,7 +114,7 @@ static struct uparams uparams = {
 struct uparam_name
 {
   const char *name;             /* User name.  */
-  int is_bool;                  /* Whether it's `boolean'.  */
+  int is_bool;                  /* Whether it's 'boolean'.  */
   size_t uparams_offs;          /* Location of the (int) field in UPARAMS.  */
 };
 
@@ -156,7 +157,7 @@ ARGP_HELP_FMT: %s value is less than or equal to %s"),
   uparams.valid = 1;
 }
 
-/* Read user options from the environment, and fill in UPARAMS appropiately. */
+/* Read user options from the environment, and fill in UPARAMS appropriately. */
 static void
 fill_in_uparams (const struct argp_state *state)
 {
@@ -261,7 +262,7 @@ fill_in_uparams (const struct argp_state *state)
 /* Returns true if OPT is an alias for an earlier option.  */
 #define oalias(opt) ((opt)->flags & OPTION_ALIAS)
 
-/* Returns true if OPT is an documentation-only entry.  */
+/* Returns true if OPT is a documentation-only entry.  */
 #define odoc(opt) ((opt)->flags & OPTION_DOC)
 
 /* Returns true if OPT should not be translated */
@@ -279,11 +280,11 @@ fill_in_uparams (const struct argp_state *state)
      -xARG, -yARG, --long1=ARG, --long2=ARG        Documentation...
 
    Where ARG will be omitted if there's no argument, for this option, or
-   will be surrounded by "[" and "]" appropiately if the argument is
-   optional.  The documentation string is word-wrapped appropiately, and if
+   will be surrounded by "[" and "]" appropriately if the argument is
+   optional.  The documentation string is word-wrapped appropriately, and if
    the list of options is long enough, it will be started on a separate line.
    If there are no short options for a given option, the first long option is
-   indented slighly in a way that's supposed to make most long options appear
+   indented slightly in a way that's supposed to make most long options appear
    to be in a separate column.
 
    For example, the following output (from ps):
@@ -361,7 +362,7 @@ struct hol_entry
   /* A pointers into the HOL's short_options field, to the first short option
      letter for this entry.  The order of the characters following this point
      corresponds to the order of options pointed to by OPT, and there are at
-     most NUM.  A short option recorded in a option following OPT is only
+     most NUM.  A short option recorded in an option following OPT is only
      valid if it occurs in the right place in SHORT_OPTIONS (otherwise it's
      probably been shadowed by some other entry).  */
   char *short_options;
@@ -650,7 +651,7 @@ hol_find_entry (struct hol *hol, const char *name)
   return 0;
 }
 \f
-/* If an entry with the long option NAME occurs in HOL, set it's special
+/* If an entry with the long option NAME occurs in HOL, set its special
    sort position to GROUP.  */
 static void
 hol_set_group (struct hol *hol, const char *name, int group)
@@ -715,7 +716,7 @@ hol_cluster_is_child (const struct hol_cluster *cl1,
   return cl1 == cl2;
 }
 \f
-/* Given the name of a OPTION_DOC option, modifies NAME to start at the tail
+/* Given the name of an OPTION_DOC option, modifies NAME to start at the tail
    that should be used for comparisons, and returns true iff it should be
    treated as a non-option.  */
 static int
@@ -730,7 +731,7 @@ canon_doc_option (const char **name)
       /* Skip initial whitespace.  */
       while (isspace ((unsigned char) **name))
         (*name)++;
-      /* Decide whether this looks like an option (leading `-') or not.  */
+      /* Decide whether this looks like an option (leading '-') or not.  */
       non_opt = (**name != '-');
       /* Skip until part of name used for sorting.  */
       while (**name && !isalnum ((unsigned char) **name))
@@ -755,9 +756,9 @@ hol_entry_cmp (const struct hol_entry *entry1,
   if (entry1->cluster != entry2->cluster)
     {
       /* The entries are not within the same cluster, so we can't compare them
-         directly, we have to use the appropiate clustering level too.  */
+         directly, we have to use the appropriate clustering level too.  */
       if (! entry1->cluster)
-        /* ENTRY1 is at the `base level', not in a cluster, so we have to
+        /* ENTRY1 is at the "base level", not in a cluster, so we have to
            compare it's group number with that of the base cluster in which
            ENTRY2 resides.  Note that if they're in the same group, the
            clustered option always comes laster.  */
@@ -787,7 +788,7 @@ hol_entry_cmp (const struct hol_entry *entry1,
         doc2 = canon_doc_option (&long2);
 
       if (doc1 != doc2)
-        /* `documentation' options always follow normal options (or
+        /* "documentation" options always follow normal options (or
            documentation options that *look* like normal options).  */
         return doc1 - doc2;
       else if (!short1 && !short2 && long1 && long2)
@@ -893,7 +894,8 @@ hol_append (struct hol *hol, struct hol *more)
 
           /* Fix up the short options pointers from HOL.  */
           for (e = entries, left = hol->num_entries; left > 0; e++, left--)
-            e->short_options += (short_options - hol->short_options);
+            e->short_options =
+              short_options + (e->short_options - hol->short_options);
 
           /* Now add the short options from MORE, fixing up its entries
              too.  */
@@ -1024,7 +1026,7 @@ filter_doc (const char *doc, int key, const struct argp *argp,
     return doc;
 }
 
-/* Prints STR as a header line, with the margin lines set appropiately, and
+/* Prints STR as a header line, with the margin lines set appropriately, and
    notes the fact that groups should be separated with a blank line.  ARGP is
    the argp that should dictate any user doc filtering to take place.  Note
    that the previous wrap margin isn't restored, but the left margin is reset
@@ -1146,7 +1148,7 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
 
   /* Now, long options.  */
   if (odoc (real))
-    /* A `documentation' option.  */
+    /* A "documentation" option.  */
     {
       __argp_fmtstream_set_wmargin (stream, uparams.doc_opt_col);
       for (opt = real, num = entry->num; num > 0; opt++, num--)
@@ -1440,7 +1442,7 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state,
       const char *cp = fdoc;
       nl = __strchrnul (cp, '\n');
       if (*nl != '\0')
-        /* This is a `multi-level' args doc; advance to the correct position
+        /* This is a "multi-level" args doc; advance to the correct position
            as determined by our state in LEVELS, and update LEVELS.  */
         {
           int i;
@@ -1481,9 +1483,9 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state,
 }
 \f
 /* Print the documentation for ARGP to STREAM; if POST is false, then
-   everything preceeding a `\v' character in the documentation strings (or
+   everything preceding a '\v' character in the documentation strings (or
    the whole string, for those with none) is printed, otherwise, everything
-   following the `\v' character (nothing for strings without).  Each separate
+   following the '\v' character (nothing for strings without).  Each separate
    bit of documentation is separated a blank line, and if PRE_BLANK is true,
    then the first is as well.  If FIRST_ONLY is true, only the first
    occurrence is output.  Returns true if anything was output.  */
@@ -1553,7 +1555,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
     free ((char *) inp_text);   /* We copied INP_TEXT, so free it now.  */
 
   if (post && argp->help_filter)
-    /* Now see if we have to output a ARGP_KEY_HELP_EXTRA text.  */
+    /* Now see if we have to output an ARGP_KEY_HELP_EXTRA text.  */
     {
       text = (*argp->help_filter) (ARGP_KEY_HELP_EXTRA, 0, input);
       if (text)
@@ -1580,8 +1582,8 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
 }
 \f
 /* Output a usage message for ARGP to STREAM.  If called from
-   argp_state_help, STATE is the relevent parsing state.  FLAGS are from the
-   set ARGP_HELP_*.  NAME is what to use wherever a `program name' is
+   argp_state_help, STATE is the relevant parsing state.  FLAGS are from the
+   set ARGP_HELP_*.  NAME is what to use wherever a "program name" is
    needed. */
 static void
 _help (const struct argp *argp, const struct argp_state *state, FILE *stream,
@@ -1622,7 +1624,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream,
     }
 
   if (flags & (ARGP_HELP_USAGE | ARGP_HELP_SHORT_USAGE))
-    /* Print a short `Usage:' message.  */
+    /* Print a short "Usage:" message.  */
     {
       int first_pattern = 1, more_patterns;
       size_t num_pattern_levels = argp_args_levels (argp);
@@ -1682,7 +1684,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream,
   if (flags & ARGP_HELP_SEE)
     {
       __argp_fmtstream_printf (fs, dgettext (argp->argp_domain, "\
-Try `%s --help' or `%s --usage' for more information.\n"),
+Try '%s --help' or '%s --usage' for more information.\n"),
                                name, name);
       anything = 1;
     }
@@ -1725,7 +1727,7 @@ Try `%s --help' or `%s --usage' for more information.\n"),
 }
 \f
 /* Output a usage message for ARGP to STREAM.  FLAGS are from the set
-   ARGP_HELP_*.  NAME is what to use wherever a `program name' is needed. */
+   ARGP_HELP_*.  NAME is what to use wherever a "program name" is needed. */
 void __argp_help (const struct argp *argp, FILE *stream,
                   unsigned flags, char *name)
 {
@@ -1783,7 +1785,7 @@ weak_alias (__argp_state_help, argp_state_help)
 #endif
 \f
 /* If appropriate, print the printf string FMT and following args, preceded
-   by the program name and `:', to stderr, and followed by a `Try ... --help'
+   by the program name and ':', to stderr, and followed by a "Try ... --help"
    message, then exit (1).  */
 void
 __argp_error (const struct argp_state *state, const char *fmt, ...)
@@ -1919,7 +1921,7 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
                   char const *s = NULL;
                   putc_unlocked (':', stream);
                   putc_unlocked (' ', stream);
-#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P)
+#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P && !defined strerror_r)
                   s = __strerror_r (errnum, buf, sizeof buf);
 #elif HAVE_DECL_STRERROR_R
                   if (__strerror_r (errnum, buf, sizeof buf) == 0)
index 0b86d33d219a5aacd67533f2b0398fb5a31b79f8..ca93741ac82d62123ae1a14f49b6cc77bc36713b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Name frobnication for compiling argp outside of glibc
-   Copyright (C) 1997, 2003, 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2003, 2007, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
index 07b723955957272c50a39be33d9fadea95fca6c3..0e8de131c4778a56210d27d02117c093b13c7f80 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Hierarchial argument parsing, layered over getopt
-   Copyright (C) 1995-2000, 2002-2004, 2009-2011 Free Software Foundation, Inc.
+/* Hierarchical argument parsing, layered over getopt
+   Copyright (C) 1995-2000, 2002-2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -23,6 +23,7 @@
 #endif
 
 #include <alloca.h>
+#include <stdalign.h>
 #include <stddef.h>
 #include <stdlib.h>
 #include <string.h>
@@ -44,7 +45,6 @@
 #include "argp.h"
 #include "argp-namefrob.h"
 
-#define alignof(type) offsetof (struct { char c; type x; }, x)
 #define alignto(n, d) ((((n) + (d) - 1) / (d)) * (d))
 
 /* Getopt return values.  */
@@ -156,8 +156,9 @@ argp_version_parser (int key, char *arg, struct argp_state *state)
       else if (argp_program_version)
         fprintf (state->out_stream, "%s\n", argp_program_version);
       else
-        __argp_error (state, dgettext (state->root_argp->argp_domain,
-                                       "(PROGRAM ERROR) No version known!?"));
+        __argp_error (state, "%s",
+                      dgettext (state->root_argp->argp_domain,
+                                "(PROGRAM ERROR) No version known!?"));
       if (! (state->flags & ARGP_NO_EXIT))
         exit (0);
       break;
@@ -189,7 +190,7 @@ find_long_option (struct option *long_options, const char *name)
 }
 
 \f
-/* The state of a `group' during parsing.  Each group corresponds to a
+/* The state of a "group" during parsing.  Each group corresponds to a
    particular argp structure from the tree of such descending from the top
    level argp passed to argp_parse.  */
 struct group
@@ -205,7 +206,7 @@ struct group
      particular short options is from.  */
   char *short_end;
 
-  /* The number of non-option args sucessfully handled by this parser.  */
+  /* The number of non-option args successfully handled by this parser.  */
   unsigned args_processed;
 
   /* This group's parser's parent's group.  */
@@ -256,7 +257,7 @@ struct parser
   struct group *groups;
   /* The end of the GROUPS array.  */
   struct group *egroup;
-  /* An vector containing storage for the CHILD_INPUTS field in all groups.  */
+  /* A vector containing storage for the CHILD_INPUTS field in all groups.  */
   void **child_inputs;
 
   /* True if we think using getopt is still useful; if false, then
@@ -387,7 +388,7 @@ convert_options (const struct argp *argp,
   return group;
 }
 
-/* Find the merged set of getopt options, with keys appropiately prefixed. */
+/* Find the merged set of getopt options, with keys appropriately prefixed. */
 static void
 parser_convert (struct parser *parser, const struct argp *argp, int flags)
 {
@@ -441,7 +442,7 @@ calc_sizes (const struct argp *argp,  struct parser_sizes *szs)
           int num_opts = 0;
           while (!__option_is_end (opt++))
             num_opts++;
-          szs->short_len += num_opts * 3; /* opt + up to 2 `:'s */
+          szs->short_len += num_opts * 3; /* opt + up to 2 ':'s */
           szs->long_len += num_opts;
         }
     }
@@ -783,7 +784,7 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey)
 
   if (parser->state.quoted && parser->state.next < parser->state.quoted)
     /* The next argument pointer has been moved to before the quoted
-       region, so pretend we never saw the quoting `--', and give getopt
+       region, so pretend we never saw the quoting "--", and give getopt
        another chance.  If the user hasn't removed it, getopt will just
        process it again.  */
     parser->state.quoted = 0;
@@ -815,7 +816,7 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey)
               && strcmp (parser->state.argv[parser->state.next - 1], QUOTE)
                    == 0)
             /* Not only is this the end of the options, but it's a
-               `quoted' region, which may have args that *look* like
+               "quoted" region, which may have args that *look* like
                options, so we definitely shouldn't try to use getopt past
                here, whatever happens.  */
             parser->state.quoted = parser->state.next;
@@ -881,11 +882,11 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags,
 #ifndef _LIBC
   if (!(flags & ARGP_PARSE_ARGV0))
     {
-#ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
+#if HAVE_DECL_PROGRAM_INVOCATION_NAME
       if (!program_invocation_name)
         program_invocation_name = argv[0];
 #endif
-#ifdef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
       if (!program_invocation_short_name)
         program_invocation_short_name = __argp_base_name (argv[0]);
 #endif
index a173463602c0d095d71fe0bb333b2338176964db..fd936e465cb9c27722254be5c353eee70bf9fc2e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Full and short program names for argp module
-   Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005, 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
@@ -26,4 +26,3 @@ char *program_invocation_short_name = 0;
 #ifndef HAVE_PROGRAM_INVOCATION_NAME
 char *program_invocation_name = 0;
 #endif
-
index 7071acdb91817bd0e33fc3e3ba9c415dd9c9db8b..ed657ebe6a1885cc5ccdec9986337a515c82c794 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Default definition for ARGP_PROGRAM_VERSION.
-   Copyright (C) 1996-1997, 1999, 2006, 2009-2011 Free Software Foundation,
+   Copyright (C) 1996-1997, 1999, 2006, 2009-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -25,7 +25,7 @@
    ARGP_NO_EXIT flag is used).  Overridden by ARGP_PROGRAM_VERSION_HOOK.  */
 const char *argp_program_version
 /* This variable should be zero-initialized.  On most systems, putting it into
-   BSS is sufficient.  Not so on MacOS X 10.3 and 10.4, see
+   BSS is sufficient.  Not so on Mac OS X 10.3 and 10.4, see
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>
    <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>.  */
 #if defined __ELF__
index 8147f51b7ee6910be60d663b16d7a038190176ee..74ff098670977ebee3736243eea01112cb883f9d 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Default definition for ARGP_PROGRAM_VERSION_HOOK.
-   Copyright (C) 1996-1997, 1999, 2004, 2009-2011 Free Software Foundation,
+   Copyright (C) 1996-1997, 1999, 2004, 2009-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
index 0a7ea8737c67f256dcc37d2cd361179790822655..b85934cfb634cc79cfa396b47db70004bb26734a 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Version hook for Argp.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 60b13dbb2f815c16ebac251961ca7d6dbd40baec..49670cf62c74bfd5af827f1e88c7b257ad20ce76 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Version hook for Argp.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 extern "C" {
 #endif
 
-/* Setup standard display of the version information for the `--version'
+/* Setup standard display of the version information for the '--version'
    option.  NAME is the canonical program name, and AUTHORS is a NULL-
    terminated array of author names. At least one author name must be
    given.
 
    If NAME is NULL, the package name (as given by the PACKAGE macro)
-   is asumed to be the name of the program.
+   is assumed to be the name of the program.
 
    This function is intended to be called before argp_parse().
 */
index 30bb64dcdfc0076998e292d76719fa06e50c6a0e..9e58ab774472358ccc4c9ed1fb58ce0d1b41de76 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Real definitions for extern inline functions in argp.h
-   Copyright (C) 1997-1998, 2004, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2004, 2009-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
 #ifndef __USE_EXTERN_INLINES
 # define __USE_EXTERN_INLINES   1
 #endif
-#define ARGP_EI
+#ifdef _LIBC
+# define ARGP_EI
+#else
+# define ARGP_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp.h"
index a085681740a10ac62791439272ec612cbb186491..dbaf366afbb72d763de211d575a029e93e4111fb 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Hierarchial argument parsing, layered over getopt.
-   Copyright (C) 1995-1999, 2003-2011 Free Software Foundation, Inc.
+/* Hierarchical argument parsing, layered over getopt.
+   Copyright (C) 1995-1999, 2003-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -96,7 +96,7 @@ struct argp_option
   /* The doc string for this option.  If both NAME and KEY are 0, This string
      will be printed outdented from the normal option column, making it
      useful as a group header (it will be the first thing printed in its
-     group); in this usage, it's conventional to end the string with a `:'.
+     group); in this usage, it's conventional to end the string with a ':'.
 
      Write the initial value as N_("TEXT") if you want xgettext to collect
      it into a POT file.  */
@@ -126,21 +126,21 @@ struct argp_option
 /* This option isn't actually an option (and so should be ignored by the
    actual option parser), but rather an arbitrary piece of documentation that
    should be displayed in much the same manner as the options.  If this flag
-   is set, then the option NAME field is displayed unmodified (e.g., no `--'
+   is set, then the option NAME field is displayed unmodified (e.g., no '--'
    prefix is added) at the left-margin (where a *short* option would normally
    be displayed), and the documentation string in the normal place. The NAME
    field will be translated using gettext, unless OPTION_NO_TRANS is set (see
    below). For purposes of sorting, any leading whitespace and punctuation is
-   ignored, except that if the first non-whitespace character is not `-', this
+   ignored, except that if the first non-whitespace character is not '-', this
    entry is displayed after all options (and OPTION_DOC entries with a leading
-   `-') in the same group.  */
+   '-') in the same group.  */
 #define OPTION_DOC              0x8
 
-/* This option shouldn't be included in `long' usage messages (but is still
+/* This option shouldn't be included in "long" usage messages (but is still
    included in help messages).  This is mainly intended for options that are
    completely documented in an argp's ARGS_DOC field, in which case including
    the option in the generic usage list would be redundant.  For instance,
-   if ARGS_DOC is "FOO BAR\n-x BLAH", and the `-x' option's purpose is to
+   if ARGS_DOC is "FOO BAR\n-x BLAH", and the '-x' option's purpose is to
    distinguish these two cases, -x should probably be marked
    OPTION_NO_USAGE.  */
 #define OPTION_NO_USAGE         0x10
@@ -169,7 +169,7 @@ typedef error_t (*argp_parser_t) (int key, char *arg,
    ARGP_ERR_UNKNOWN should be returned if they aren't understood.
 
    The sequence of keys to a parsing function is either (where each
-   uppercased word should be prefixed by `ARGP_KEY_' and opt is a user key):
+   uppercased word should be prefixed by 'ARGP_KEY_' and opt is a user key):
 
        INIT opt... NO_ARGS END SUCCESS  -- No non-option arguments at all
    or  INIT (opt | ARG)... END SUCCESS  -- All non-option args parsed
@@ -240,15 +240,15 @@ struct argp
   argp_parser_t parser;
 
   /* A string describing what other arguments are wanted by this program.  It
-     is only used by argp_usage to print the `Usage:' message.  If it
+     is only used by argp_usage to print the "Usage:" message.  If it
      contains newlines, the strings separated by them are considered
      alternative usage patterns, and printed on separate lines (lines after
-     the first are prefix by `  or: ' instead of `Usage:').  */
+     the first are prefix by "  or: " instead of "Usage:").  */
   const char *args_doc;
 
   /* If non-NULL, a string containing extra text to be printed before and
      after the options in a long help message (separated by a vertical tab
-     `\v' character).
+     '\v' character).
      Write the initial value as N_("BEFORE-TEXT") "\v" N_("AFTER-TEXT") if
      you want xgettext to collect the two pieces of text into a POT file.  */
   const char *doc;
@@ -267,7 +267,7 @@ struct argp
      defines, below, describing which other help text TEXT is.  The function
      should return either TEXT, if it should be used as-is, a replacement
      string, which should be malloced, and will be freed by argp, or NULL,
-     meaning `print nothing'.  The value for TEXT is *after* any translation
+     meaning "print nothing".  The value for TEXT is *after* any translation
      has been done, so if any of the replacement text also needs translation,
      that should be done by the filter function.  INPUT is either the input
      supplied to argp_parse, or NULL, if argp_help was called directly.  */
@@ -280,7 +280,7 @@ struct argp
 };
 
 /* Possible KEY arguments to a help filter function.  */
-#define ARGP_KEY_HELP_PRE_DOC   0x2000001 /* Help text preceeding options. */
+#define ARGP_KEY_HELP_PRE_DOC   0x2000001 /* Help text preceding options. */
 #define ARGP_KEY_HELP_POST_DOC  0x2000002 /* Help text following options. */
 #define ARGP_KEY_HELP_HEADER    0x2000003 /* Option header string. */
 #define ARGP_KEY_HELP_EXTRA     0x2000004 /* After all other documentation;
@@ -306,7 +306,7 @@ struct argp_child
      printing a header string, use a value of "".  */
   const char *header;
 
-  /* Where to group the child options relative to the other (`consolidated')
+  /* Where to group the child options relative to the other ("consolidated")
      options in the parent argp; the values are the same as the GROUP field
      in argp_option structs, but all child-groupings follow parent options at
      a particular group level.  If both this field and HEADER are zero, then
@@ -339,7 +339,7 @@ struct argp_state
   unsigned arg_num;
 
   /* If non-zero, the index in ARGV of the first argument following a special
-     `--' argument (which prevents anything following being interpreted as an
+     '--' argument (which prevents anything following being interpreted as an
      option).  Only set once argument parsing has proceeded past this point. */
   int quoted;
 
@@ -401,7 +401,7 @@ struct argp_state
 /* Don't exit on errors (they may still result in error messages).  */
 #define ARGP_NO_EXIT    0x20
 
-/* Use the gnu getopt `long-only' rules for parsing arguments.  */
+/* Use the gnu getopt "long-only" rules for parsing arguments.  */
 #define ARGP_LONG_ONLY  0x40
 
 /* Turns off any message-printing/exiting options.  */
@@ -458,7 +458,7 @@ extern void (*argp_program_version_hook) (FILE *__restrict __stream,
    the bug-reporting address for the program.  It will be printed by
    argp_help if the ARGP_HELP_BUG_ADDR flag is set (as it is by various
    standard help messages), embedded in a sentence that says something like
-   `Report bugs to ADDR.'.  */
+   "Report bugs to ADDR."  */
 extern const char *argp_program_bug_address;
 
 /* The exit status that argp will use when exiting due to a parsing error.
@@ -469,7 +469,7 @@ extern error_t argp_err_exit_status;
 /* Flags for argp_help.  */
 #define ARGP_HELP_USAGE         0x01 /* a Usage: message. */
 #define ARGP_HELP_SHORT_USAGE   0x02 /*  " but don't actually print options. */
-#define ARGP_HELP_SEE           0x04 /* a `Try ... for more help' message. */
+#define ARGP_HELP_SEE           0x04 /* a "Try ... for more help" message. */
 #define ARGP_HELP_LONG          0x08 /* a long help message. */
 #define ARGP_HELP_PRE_DOC       0x10 /* doc string preceding long help.  */
 #define ARGP_HELP_POST_DOC      0x20 /* doc string following long help.  */
@@ -508,7 +508,7 @@ extern void __argp_help (const struct argp *__restrict __argp,
    parsing routine (thus taking an argp_state structure as the first
    argument).  They may or may not print an error message and exit, depending
    on the flags in STATE -- in any case, the caller should be prepared for
-   them *not* to exit, and should return an appropiate error after calling
+   them *not* to exit, and should return an appropriate error after calling
    them.  [argp_usage & argp_error should probably be called argp_state_...,
    but they're used often enough that they should be short]  */
 
@@ -521,14 +521,14 @@ extern void __argp_state_help (const struct argp_state *__restrict __state,
                                FILE *__restrict __stream,
                                unsigned int __flags);
 
-#if _LIBC || !defined __USE_EXTERN_INLINES
+#if _LIBC
 /* Possibly output the standard usage message for ARGP to stderr and exit.  */
 extern void argp_usage (const struct argp_state *__state);
 extern void __argp_usage (const struct argp_state *__state);
 #endif
 
 /* If appropriate, print the printf string FMT and following args, preceded
-   by the program name and `:', to stderr, and followed by a `Try ... --help'
+   by the program name and ':', to stderr, and followed by a "Try ... --help"
    message, then exit (1).  */
 extern void argp_error (const struct argp_state *__restrict __state,
                         const char *__restrict __fmt, ...)
@@ -554,7 +554,7 @@ extern void __argp_failure (const struct argp_state *__restrict __state,
                             const char *__restrict __fmt, ...)
      _GL_ATTRIBUTE_FORMAT ((__printf__, 4, 5));
 
-#if _LIBC || !defined __USE_EXTERN_INLINES
+#if _LIBC
 /* Returns true if the option OPT is a valid short option.  */
 extern int _option_is_short (const struct argp_option *__opt) __THROW;
 extern int __option_is_short (const struct argp_option *__opt) __THROW;
@@ -574,13 +574,17 @@ extern void *__argp_input (const struct argp *__restrict __argp,
                            const struct argp_state *__restrict __state)
      __THROW;
 \f
-#ifdef __USE_EXTERN_INLINES
+#if !_LIBC || defined __USE_EXTERN_INLINES
 
 # if !_LIBC
 #  define __argp_usage argp_usage
 #  define __argp_state_help argp_state_help
 #  define __option_is_short _option_is_short
 #  define __option_is_end _option_is_end
+_GL_INLINE_HEADER_BEGIN
+#  ifndef ARGP_EI
+#   define ARGP_EI _GL_INLINE
+#  endif
 # endif
 
 # ifndef ARGP_EI
@@ -637,6 +641,7 @@ __NTH (__option_is_end (const struct argp_option *__opt))
 #  undef __argp_state_help
 #  undef __option_is_short
 #  undef __option_is_end
+_GL_INLINE_HEADER_END
 # endif
 #endif /* Use extern inlines.  */
 
index d54b3e8879d40217eb24e1aa220cea271eb7ea75..2995b56852a38f9bdae4a5d428a64a2c2141efea 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 9e6817e732b90a6bd6c5824cd4712f3633e0d23c..bb5eab575b077aa204a3c00b3717ea81ce923bab 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2011 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 96c165748217771b48a46869ff48cae8aa7e212c..875e039b622e2f54ac6d3aa148888ca116166d7f 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Define an at-style functions like fstatat, unlinkat, fchownat, etc.
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+/* Define at-style functions like fstatat, unlinkat, fchownat, etc.
+   Copyright (C) 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
 /* written by Jim Meyering */
 
 #include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
-#include "openat.h"
-#include "openat-priv.h"
-#include "save-cwd.h"
+
+#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD
+# include <errno.h>
+# ifndef ENOTSUP
+#  define ENOTSUP EINVAL
+# endif
+#else
+# include "openat.h"
+# include "openat-priv.h"
+# include "save-cwd.h"
+#endif
 
 #ifdef AT_FUNC_USE_F1_COND
 # define CALL_FUNC(F)                           \
@@ -53,7 +61,7 @@
 
 /* Call AT_FUNC_F1 to operate on FILE, which is in the directory
    open on descriptor FD.  If AT_FUNC_USE_F1_COND is defined to a value,
-   AT_FUNC_POST_FILE_PARAM_DECLS must inlude a parameter named flag;
+   AT_FUNC_POST_FILE_PARAM_DECLS must include a parameter named flag;
    call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than
    AT_FUNC_USE_F1_COND.  Return int and fail with -1 unless AT_FUNC_RESULT
    or AT_FUNC_FAIL are defined.  If possible, do it without changing the
 FUNC_RESULT
 AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS)
 {
+  VALIDATE_FLAG (flag);
+
+  if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file))
+    return CALL_FUNC (file);
+
+#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD
+  errno = ENOTSUP;
+  return FUNC_FAIL;
+#else
+  {
   /* Be careful to choose names unlikely to conflict with
      AT_FUNC_POST_FILE_PARAM_DECLS.  */
   struct saved_cwd saved_cwd;
   int saved_errno;
   FUNC_RESULT err;
 
-  VALIDATE_FLAG (flag);
-
-  if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file))
-    return CALL_FUNC (file);
-
   {
     char proc_buf[OPENAT_BUFFER_SIZE];
     char *proc_file = openat_proc_name (proc_buf, fd, file);
@@ -127,6 +140,8 @@ AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS)
   if (saved_errno)
     errno = saved_errno;
   return err;
+  }
+#endif
 }
 #undef CALL_FUNC
 #undef FUNC_RESULT
index c9727d9d48e2be51ce5264c602d4857ff67462cc..0c60c57a8cc37918d3f690cd7ecae5046f2d64a7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Define an at-style functions like linkat or renameat.
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+/* Define 2-FD at-style functions like linkat or renameat.
+   Copyright (C) 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
index b32877d77dee1f62bcc61a376a88eccef191c245..b2eb43a90dccb3e3cb6008857d63f4167e1470aa 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* backupfile.c -- make Emacs style backup file names
 
-   Copyright (C) 1990-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1990-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
@@ -77,7 +77,7 @@
    - It's typically faster.
    POSIX says that only '0' through '9' are digits.  Prefer ISDIGIT to
    ISDIGIT unless it's important to use the locale's definition
-   of `digit' even when the host does not conform to POSIX.  */
+   of "digit" even when the host does not conform to POSIX.  */
 #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
 
 /* The extension added to file names to produce a simple (as opposed
index 87efd8442b5320b497a548198a14f4419d3f9037..4232371e0f3db016d2152ae8c8cbfcd536f3648b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* backupfile.h -- declarations for making Emacs style backup file names
 
-   Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2011 Free Software
+   Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index ca8989f0cda23af01ea62211f6137b3a05bae175..7681409e65cdaff72cf4014fd7cdad19bd6d44ef 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index fd52498dfbc488afa86a844dcead5b1d63625f9c..7434a68dd22f13bbf6dcdb6234f31c962f6f0b68 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -42,8 +42,8 @@ base_name (char const *name)
   if (ISSLASH (base[length]))
     length++;
 
-  /* On systems with drive letters, `a/b:c' must return `./b:c' rather
-     than `b:c' to avoid confusion with a drive letter.  On systems
+  /* On systems with drive letters, "a/b:c" must return "./b:c" rather
+     than "b:c" to avoid confusion with a drive letter.  On systems
      with pure POSIX semantics, this is not an issue.  */
   if (FILE_SYSTEM_PREFIX_LEN (base))
     {
diff --git a/gnu/bitrotate.c b/gnu/bitrotate.c
new file mode 100644 (file)
index 0000000..d942185
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define BITROTATE_INLINE _GL_EXTERN_INLINE
+#include "bitrotate.h"
index d7cce24d4a950a5a424bf612c61957166ac6a2e2..ece6237329ee55193d50d5c758fdfa5419f2b4df 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* bitrotate.h - Rotate bits in integers
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
 #include <stdint.h>
 #include <sys/types.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef BITROTATE_INLINE
+# define BITROTATE_INLINE _GL_INLINE
+#endif
+
 #ifdef UINT64_MAX
 /* Given an unsigned 64-bit argument X, return the value corresponding
    to rotating the bits N steps to the left.  N must be between 1 and
    63 inclusive. */
-static inline uint64_t
+BITROTATE_INLINE uint64_t
 rotl64 (uint64_t x, int n)
 {
   return ((x << n) | (x >> (64 - n))) & UINT64_MAX;
@@ -38,7 +43,7 @@ rotl64 (uint64_t x, int n)
 /* Given an unsigned 64-bit argument X, return the value corresponding
    to rotating the bits N steps to the right.  N must be between 1 to
    63 inclusive.*/
-static inline uint64_t
+BITROTATE_INLINE uint64_t
 rotr64 (uint64_t x, int n)
 {
   return ((x >> n) | (x << (64 - n))) & UINT64_MAX;
@@ -48,7 +53,7 @@ rotr64 (uint64_t x, int n)
 /* Given an unsigned 32-bit argument X, return the value corresponding
    to rotating the bits N steps to the left.  N must be between 1 and
    31 inclusive. */
-static inline uint32_t
+BITROTATE_INLINE uint32_t
 rotl32 (uint32_t x, int n)
 {
   return ((x << n) | (x >> (32 - n))) & UINT32_MAX;
@@ -57,7 +62,7 @@ rotl32 (uint32_t x, int n)
 /* Given an unsigned 32-bit argument X, return the value corresponding
    to rotating the bits N steps to the right.  N must be between 1 to
    31 inclusive.*/
-static inline uint32_t
+BITROTATE_INLINE uint32_t
 rotr32 (uint32_t x, int n)
 {
   return ((x >> n) | (x << (32 - n))) & UINT32_MAX;
@@ -66,7 +71,7 @@ rotr32 (uint32_t x, int n)
 /* Given a size_t argument X, return the value corresponding
    to rotating the bits N steps to the left.  N must be between 1 and
    (CHAR_BIT * sizeof (size_t) - 1) inclusive.  */
-static inline size_t
+BITROTATE_INLINE size_t
 rotl_sz (size_t x, int n)
 {
   return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;
@@ -75,7 +80,7 @@ rotl_sz (size_t x, int n)
 /* Given a size_t argument X, return the value corresponding
    to rotating the bits N steps to the right.  N must be between 1 to
    (CHAR_BIT * sizeof (size_t) - 1) inclusive.  */
-static inline size_t
+BITROTATE_INLINE size_t
 rotr_sz (size_t x, int n)
 {
   return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX;
@@ -86,7 +91,7 @@ rotr_sz (size_t x, int n)
    15 inclusive, but on most relevant targets N can also be 0 and 16
    because 'int' is at least 32 bits and the arguments must widen
    before shifting. */
-static inline uint16_t
+BITROTATE_INLINE uint16_t
 rotl16 (uint16_t x, int n)
 {
   return ((x << n) | (x >> (16 - n))) & UINT16_MAX;
@@ -97,7 +102,7 @@ rotl16 (uint16_t x, int n)
    inclusive, but on most relevant targets N can also be 0 and 16
    because 'int' is at least 32 bits and the arguments must widen
    before shifting. */
-static inline uint16_t
+BITROTATE_INLINE uint16_t
 rotr16 (uint16_t x, int n)
 {
   return ((x >> n) | (x << (16 - n))) & UINT16_MAX;
@@ -108,7 +113,7 @@ rotr16 (uint16_t x, int n)
    inclusive, but on most relevant targets N can also be 0 and 8
    because 'int' is at least 32 bits and the arguments must widen
    before shifting. */
-static inline uint8_t
+BITROTATE_INLINE uint8_t
 rotl8 (uint8_t x, int n)
 {
   return ((x << n) | (x >> (8 - n))) & UINT8_MAX;
@@ -119,10 +124,12 @@ rotl8 (uint8_t x, int n)
    inclusive, but on most relevant targets N can also be 0 and 8
    because 'int' is at least 32 bits and the arguments must widen
    before shifting. */
-static inline uint8_t
+BITROTATE_INLINE uint8_t
 rotr8 (uint8_t x, int n)
 {
   return ((x >> n) | (x << (8 - n))) & UINT8_MAX;
 }
 
+_GL_INLINE_HEADER_END
+
 #endif /* _GL_BITROTATE_H */
index c6dbac53c3cffc8cbb1eddf1f921799b20a4a3bc..7481a7b4ef85d1606f3a53836a2d90c094d23238 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert unibyte character to wide character.
-   Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2013 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 835f4e1adcfafb831f8dbf43673b592042a27a04..ef403204160d2292351ea61d5e1b6e4f93b5c3a7 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Character handling in C locale.
 
-   Copyright 2000-2003, 2006, 2009-2011 Free Software Foundation, Inc.
+   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
@@ -15,8 +15,7 @@ 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, write to the Free Software Foundation,
-Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index a58913eabcde45ea08b4569123a6c987ff13ba26..1a9a1270cc9eb2dc579073686d5ea78f951302f7 100644 (file)
@@ -7,7 +7,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-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
@@ -20,8 +20,7 @@ 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, write to the Free Software Foundation,
-Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef C_CTYPE_H
 #define C_CTYPE_H
@@ -120,26 +119,27 @@ extern "C" {
          if (c_isalpha (*s)) ...
  */
 
-extern bool c_isascii (int c); /* not locale dependent */
+extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */
 
-extern bool c_isalnum (int c);
-extern bool c_isalpha (int c);
-extern bool c_isblank (int c);
-extern bool c_iscntrl (int c);
-extern bool c_isdigit (int c);
-extern bool c_islower (int c);
-extern bool c_isgraph (int c);
-extern bool c_isprint (int c);
-extern bool c_ispunct (int c);
-extern bool c_isspace (int c);
-extern bool c_isupper (int c);
-extern bool c_isxdigit (int c);
+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);
-extern int c_toupper (int c);
+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
+#if (defined __GNUC__ && !defined __STRICT_ANSI__ && defined __OPTIMIZE__ \
+     && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS)
 
 /* ASCII optimizations. */
 
diff --git a/gnu/c-strcase.h b/gnu/c-strcase.h
new file mode 100644 (file)
index 0000000..3c11861
--- /dev/null
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Case-insensitive string comparison functions in C locale.
+   Copyright (C) 1995-1996, 2001, 2003, 2005, 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, 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 C_STRCASE_H
+#define C_STRCASE_H
+
+#include <stddef.h>
+
+
+/* The functions defined in this file assume the "C" locale and a character
+   set without diacritics (ASCII-US or EBCDIC-US or something like that).
+   Even if the "C" locale on a particular system is an extension of the ASCII
+   character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+   is ISO-8859-1), the functions in this file recognize only the ASCII
+   characters.  More precisely, one of the string arguments must be an ASCII
+   string; the other one can also contain non-ASCII characters (but then
+   the comparison result will be nonzero).  */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
+   greater than zero if S1 is lexicographically less than, equal to or greater
+   than S2.  */
+extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE;
+
+/* Compare no more than N characters of strings S1 and S2, ignoring case,
+   returning less than, equal to or greater than zero if S1 is
+   lexicographically less than, equal to or greater than S2.  */
+extern int c_strncasecmp (const char *s1, const char *s2, size_t n)
+  _GL_ATTRIBUTE_PURE;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* C_STRCASE_H */
diff --git a/gnu/c-strcasecmp.c b/gnu/c-strcasecmp.c
new file mode 100644 (file)
index 0000000..b156a97
--- /dev/null
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* c-strcasecmp.c -- case insensitive string comparator in C locale
+   Copyright (C) 1998-1999, 2005-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, 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 "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strcasecmp (const char *s1, const char *s2)
+{
+  register const unsigned char *p1 = (const unsigned char *) s1;
+  register const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2)
+    return 0;
+
+  do
+    {
+      c1 = c_tolower (*p1);
+      c2 = c_tolower (*p2);
+
+      if (c1 == '\0')
+        break;
+
+      ++p1;
+      ++p2;
+    }
+  while (c1 == c2);
+
+  if (UCHAR_MAX <= INT_MAX)
+    return c1 - c2;
+  else
+    /* On machines where 'char' and 'int' are types of the same size, the
+       difference of two 'unsigned char' values - including the sign bit -
+       doesn't fit in an 'int'.  */
+    return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
diff --git a/gnu/c-strcaseeq.h b/gnu/c-strcaseeq.h
new file mode 100644 (file)
index 0000000..b640e1f
--- /dev/null
@@ -0,0 +1,186 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Optimized case-insensitive string comparison in C locale.
+   Copyright (C) 2001-2002, 2007, 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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>.  */
+
+#include "c-strcase.h"
+#include "c-ctype.h"
+
+/* STRCASEEQ allows to optimize string comparison with a small literal string.
+     STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0)
+   is semantically equivalent to
+     c_strcasecmp (s, "UTF-8") == 0
+   just faster.  */
+
+/* Help GCC to generate good code for string comparisons with
+   immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+/* Case insensitive comparison of ASCII characters.  */
+# 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))
+# endif
+
+static inline int
+strcaseeq9 (const char *s1, const char *s2)
+{
+  return c_strcasecmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+strcaseeq8 (const char *s1, const char *s2, char s28)
+{
+  if (CASEEQ (s1[8], s28))
+    {
+      if (s28 == 0)
+        return 1;
+      else
+        return strcaseeq9 (s1, s2);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq7 (const char *s1, const char *s2, char s27, char s28)
+{
+  if (CASEEQ (s1[7], s27))
+    {
+      if (s27 == 0)
+        return 1;
+      else
+        return strcaseeq8 (s1, s2, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[6], s26))
+    {
+      if (s26 == 0)
+        return 1;
+      else
+        return strcaseeq7 (s1, s2, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[5], s25))
+    {
+      if (s25 == 0)
+        return 1;
+      else
+        return strcaseeq6 (s1, s2, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[4], s24))
+    {
+      if (s24 == 0)
+        return 1;
+      else
+        return strcaseeq5 (s1, s2, s25, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[3], s23))
+    {
+      if (s23 == 0)
+        return 1;
+      else
+        return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[2], s22))
+    {
+      if (s22 == 0)
+        return 1;
+      else
+        return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[1], s21))
+    {
+      if (s21 == 0)
+        return 1;
+      else
+        return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+static inline int
+strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+  if (CASEEQ (s1[0], s20))
+    {
+      if (s20 == 0)
+        return 1;
+      else
+        return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+    }
+  else
+    return 0;
+}
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+  strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+  (c_strcasecmp (s1, s2) == 0)
+
+#endif
diff --git a/gnu/c-strncasecmp.c b/gnu/c-strncasecmp.c
new file mode 100644 (file)
index 0000000..7f08eae
--- /dev/null
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* c-strncasecmp.c -- case insensitive string comparator in C locale
+   Copyright (C) 1998-1999, 2005-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, 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 "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strncasecmp (const char *s1, const char *s2, size_t n)
+{
+  register const unsigned char *p1 = (const unsigned char *) s1;
+  register const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2 || n == 0)
+    return 0;
+
+  do
+    {
+      c1 = c_tolower (*p1);
+      c2 = c_tolower (*p2);
+
+      if (--n == 0 || c1 == '\0')
+        break;
+
+      ++p1;
+      ++p2;
+    }
+  while (c1 == c2);
+
+  if (UCHAR_MAX <= INT_MAX)
+    return c1 - c2;
+  else
+    /* On machines where 'char' and 'int' are types of the same size, the
+       difference of two 'unsigned char' values - including the sign bit -
+       doesn't fit in an 'int'.  */
+    return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+}
index 5267f253d419685e506c19a224f3d84a30fa6503..cddd07190af276c9be20896667e4b7023ba7b5ff 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Return the canonical absolute name of a given file.
-   Copyright (C) 1996-2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2013 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
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBC
+/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
+   optimizes away the name == NULL test below.  */
+# define _GL_ARG_NONNULL(params)
+
+# define _GL_USE_STDLIB_ALLOC 1
 # include <config.h>
 #endif
 
 #if !HAVE_CANONICALIZE_FILE_NAME || !FUNC_REALPATH_WORKS || defined _LIBC
 
-/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
-   optimizes away the name == NULL test below.  */
-#define _GL_ARG_NONNULL(params)
-
 /* Specification.  */
 #include <stdlib.h>
 
@@ -52,6 +53,7 @@
 # define __realpath realpath
 # include "pathmax.h"
 # include "malloca.h"
+# include "dosname.h"
 # if HAVE_GETCWD
 #  if IN_RELOCWRAPPER
     /* When building the relocatable program wrapper, use the system's getcwd
@@ -70,8 +72,6 @@
 # endif
 # define __readlink readlink
 # define __set_errno(e) errno = (e)
-/* Use the system functions, not the gnulib overrides in this file.  */
-# undef malloc
 # ifndef MAXSYMLINKS
 #  ifdef SYMLOOP_MAX
 #   define MAXSYMLINKS SYMLOOP_MAX
 
 #if !FUNC_REALPATH_WORKS || defined _LIBC
 /* Return the canonical absolute name of file NAME.  A canonical name
-   does not contain any `.', `..' components nor any repeated path
+   does not contain any ".", ".." components nor any repeated path
    separators ('/') or symlinks.  All path components must exist.  If
    RESOLVED is null, the result is malloc'd; otherwise, if the
-   canonical name is PATH_MAX chars or more, returns null with `errno'
+   canonical name is PATH_MAX chars or more, returns null with 'errno'
    set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
    returns the name in RESOLVED.  If the name cannot be resolved and
    RESOLVED is non-NULL, it contains the path of the first component
@@ -104,6 +104,7 @@ __realpath (const char *name, char *resolved)
   const char *start, *end, *rpath_limit;
   long int path_max;
   int num_links = 0;
+  size_t prefix_len;
 
   if (name == NULL)
     {
@@ -128,7 +129,7 @@ __realpath (const char *name, char *resolved)
 #else
   path_max = pathconf (name, _PC_PATH_MAX);
   if (path_max <= 0)
-    path_max = 1024;
+    path_max = 8192;
 #endif
 
   if (resolved == NULL)
@@ -146,7 +147,11 @@ __realpath (const char *name, char *resolved)
     rpath = resolved;
   rpath_limit = rpath + path_max;
 
-  if (name[0] != '/')
+  /* This is always zero for Posix hosts, but can be 2 for MS-Windows
+     and MS-DOS X:/foo/bar file names.  */
+  prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
+
+  if (!IS_ABSOLUTE_FILE_NAME (name))
     {
       if (!__getcwd (rpath, path_max))
         {
@@ -154,16 +159,28 @@ __realpath (const char *name, char *resolved)
           goto error;
         }
       dest = strchr (rpath, '\0');
+      start = name;
+      prefix_len = FILE_SYSTEM_PREFIX_LEN (rpath);
     }
   else
     {
-      rpath[0] = '/';
-      dest = rpath + 1;
-      if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/')
-        *dest++ = '/';
+      dest = rpath;
+      if (prefix_len)
+        {
+          memcpy (rpath, name, prefix_len);
+          dest += prefix_len;
+        }
+      *dest++ = '/';
+      if (DOUBLE_SLASH_IS_DISTINCT_ROOT)
+        {
+          if (ISSLASH (name[1]) && !ISSLASH (name[2]) && !prefix_len)
+            *dest++ = '/';
+          *dest = '\0';
+        }
+      start = name + prefix_len;
     }
 
-  for (start = end = name; *start; start = end)
+  for (end = start; *start; start = end)
     {
 #ifdef _LIBC
       struct stat64 st;
@@ -173,11 +190,11 @@ __realpath (const char *name, char *resolved)
       int n;
 
       /* Skip sequence of multiple path-separators.  */
-      while (*start == '/')
+      while (ISSLASH (*start))
         ++start;
 
       /* Find end of path component.  */
-      for (end = start; *end && *end != '/'; ++end)
+      for (end = start; *end && !ISSLASH (*end); ++end)
         /* Nothing.  */;
 
       if (end - start == 0)
@@ -187,17 +204,19 @@ __realpath (const char *name, char *resolved)
       else if (end - start == 2 && start[0] == '.' && start[1] == '.')
         {
           /* Back up to previous component, ignore if at root already.  */
-          if (dest > rpath + 1)
-            while ((--dest)[-1] != '/');
-          if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
-              && *dest == '/')
+          if (dest > rpath + prefix_len + 1)
+            for (--dest; dest > rpath && !ISSLASH (dest[-1]); --dest)
+              continue;
+          if (DOUBLE_SLASH_IS_DISTINCT_ROOT
+              && dest == rpath + 1 && !prefix_len
+              && ISSLASH (*dest) && !ISSLASH (dest[1]))
             dest++;
         }
       else
         {
           size_t new_size;
 
-          if (dest[-1] != '/')
+          if (!ISSLASH (dest[-1]))
             *dest++ = '/';
 
           if (dest + (end - start) >= rpath_limit)
@@ -208,7 +227,7 @@ __realpath (const char *name, char *resolved)
               if (resolved)
                 {
                   __set_errno (ENAMETOOLONG);
-                  if (dest > rpath + 1)
+                  if (dest > rpath + prefix_len + 1)
                     dest--;
                   *dest = '\0';
                   goto error;
@@ -298,20 +317,32 @@ __realpath (const char *name, char *resolved)
               memmove (&extra_buf[n], end, len + 1);
               name = end = memcpy (extra_buf, buf, n);
 
-              if (buf[0] == '/')
+              if (IS_ABSOLUTE_FILE_NAME (buf))
                 {
-                  dest = rpath + 1;     /* It's an absolute symlink */
-                  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/')
-                    *dest++ = '/';
+                  size_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf);
+
+                  if (pfxlen)
+                    memcpy (rpath, buf, pfxlen);
+                  dest = rpath + pfxlen;
+                  *dest++ = '/'; /* It's an absolute symlink */
+                  if (DOUBLE_SLASH_IS_DISTINCT_ROOT)
+                    {
+                      if (ISSLASH (buf[1]) && !ISSLASH (buf[2]) && !pfxlen)
+                        *dest++ = '/';
+                      *dest = '\0';
+                    }
+                  /* Install the new prefix to be in effect hereafter.  */
+                  prefix_len = pfxlen;
                 }
               else
                 {
                   /* Back up to previous component, ignore if at root
                      already: */
-                  if (dest > rpath + 1)
-                    while ((--dest)[-1] != '/');
+                  if (dest > rpath + prefix_len + 1)
+                    for (--dest; dest > rpath && !ISSLASH (dest[-1]); --dest)
+                      continue;
                   if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
-                      && *dest == '/')
+                      && ISSLASH (*dest) && !ISSLASH (dest[1]) && !prefix_len)
                     dest++;
                 }
             }
@@ -322,9 +353,10 @@ __realpath (const char *name, char *resolved)
             }
         }
     }
-  if (dest > rpath + 1 && dest[-1] == '/')
+  if (dest > rpath + prefix_len + 1 && ISSLASH (dest[-1]))
     --dest;
-  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/')
+  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && !prefix_len
+      && ISSLASH (*dest) && !ISSLASH (dest[1]))
     dest++;
   *dest = '\0';
 
diff --git a/gnu/careadlinkat.c b/gnu/careadlinkat.c
new file mode 100644 (file)
index 0000000..9c8d103
--- /dev/null
@@ -0,0 +1,162 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read symbolic links into a buffer without size limitation, relative to fd.
+
+   Copyright (C) 2001, 2003-2004, 2007, 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/>.  */
+
+/* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
+
+#include <config.h>
+
+#include "careadlinkat.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Define this independently so that stdint.h is not a prerequisite.  */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#ifndef SSIZE_MAX
+# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
+#endif
+
+#include "allocator.h"
+
+/* Assuming the current directory is FD, get the symbolic link value
+   of FILENAME as a null-terminated string and put it into a buffer.
+   If FD is AT_FDCWD, FILENAME is interpreted relative to the current
+   working directory, as in openat.
+
+   If the link is small enough to fit into BUFFER put it there.
+   BUFFER's size is BUFFER_SIZE, and BUFFER can be null
+   if BUFFER_SIZE is zero.
+
+   If the link is not small, put it into a dynamically allocated
+   buffer managed by ALLOC.  It is the caller's responsibility to free
+   the returned value if it is nonnull and is not BUFFER.  A null
+   ALLOC stands for the standard allocator.
+
+   The PREADLINKAT function specifies how to read links.  It operates
+   like POSIX readlinkat()
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+   but can assume that its first argument is the same as FD.
+
+   If successful, return the buffer address; otherwise return NULL and
+   set errno.  */
+
+char *
+careadlinkat (int fd, char const *filename,
+              char *buffer, size_t buffer_size,
+              struct allocator const *alloc,
+              ssize_t (*preadlinkat) (int, char const *, char *, size_t))
+{
+  char *buf;
+  size_t buf_size;
+  size_t buf_size_max =
+    SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX;
+  char stack_buf[1024];
+
+  if (! alloc)
+    alloc = &stdlib_allocator;
+
+  if (! buffer_size)
+    {
+      /* Allocate the initial buffer on the stack.  This way, in the
+         common case of a symlink of small size, we get away with a
+         single small malloc() instead of a big malloc() followed by a
+         shrinking realloc().  */
+      buffer = stack_buf;
+      buffer_size = sizeof stack_buf;
+    }
+
+  buf = buffer;
+  buf_size = buffer_size;
+
+  do
+    {
+      /* Attempt to read the link into the current buffer.  */
+      ssize_t link_length = preadlinkat (fd, filename, buf, buf_size);
+      size_t link_size;
+      if (link_length < 0)
+        {
+          /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
+             with errno == ERANGE if the buffer is too small.  */
+          int readlinkat_errno = errno;
+          if (readlinkat_errno != ERANGE)
+            {
+              if (buf != buffer)
+                {
+                  alloc->free (buf);
+                  errno = readlinkat_errno;
+                }
+              return NULL;
+            }
+        }
+
+      link_size = link_length;
+
+      if (link_size < buf_size)
+        {
+          buf[link_size++] = '\0';
+
+          if (buf == stack_buf)
+            {
+              char *b = (char *) alloc->allocate (link_size);
+              buf_size = link_size;
+              if (! b)
+                break;
+              memcpy (b, buf, link_size);
+              buf = b;
+            }
+          else if (link_size < buf_size && buf != buffer && alloc->reallocate)
+            {
+              /* Shrink BUF before returning it.  */
+              char *b = (char *) alloc->reallocate (buf, link_size);
+              if (b)
+                buf = b;
+            }
+
+          return buf;
+        }
+
+      if (buf != buffer)
+        alloc->free (buf);
+
+      if (buf_size <= buf_size_max / 2)
+        buf_size *= 2;
+      else if (buf_size < buf_size_max)
+        buf_size = buf_size_max;
+      else if (buf_size_max < SIZE_MAX)
+        {
+          errno = ENAMETOOLONG;
+          return NULL;
+        }
+      else
+        break;
+      buf = (char *) alloc->allocate (buf_size);
+    }
+  while (buf);
+
+  if (alloc->die)
+    alloc->die (buf_size);
+  errno = ENOMEM;
+  return NULL;
+}
diff --git a/gnu/careadlinkat.h b/gnu/careadlinkat.h
new file mode 100644 (file)
index 0000000..202b84f
--- /dev/null
@@ -0,0 +1,69 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read symbolic links into a buffer without size limitation, relative to fd.
+
+   Copyright (C) 2011-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/>.  */
+
+/* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
+
+#ifndef _GL_CAREADLINKAT_H
+#define _GL_CAREADLINKAT_H
+
+#include <fcntl.h>
+#include <unistd.h>
+
+struct allocator;
+
+/* Assuming the current directory is FD, get the symbolic link value
+   of FILENAME as a null-terminated string and put it into a buffer.
+   If FD is AT_FDCWD, FILENAME is interpreted relative to the current
+   working directory, as in openat.
+
+   If the link is small enough to fit into BUFFER put it there.
+   BUFFER's size is BUFFER_SIZE, and BUFFER can be null
+   if BUFFER_SIZE is zero.
+
+   If the link is not small, put it into a dynamically allocated
+   buffer managed by ALLOC.  It is the caller's responsibility to free
+   the returned value if it is nonnull and is not BUFFER.
+
+   The PREADLINKAT function specifies how to read links.  It operates
+   like POSIX readlinkat()
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+   but can assume that its first argument is the same as FD.
+
+   If successful, return the buffer address; otherwise return NULL and
+   set errno.  */
+
+char *careadlinkat (int fd, char const *filename,
+                    char *buffer, size_t buffer_size,
+                    struct allocator const *alloc,
+                    ssize_t (*preadlinkat) (int, char const *,
+                                            char *, size_t));
+
+/* Suitable value for careadlinkat's FD argument.  */
+#if HAVE_READLINKAT
+/* AT_FDCWD is declared in <fcntl.h>.  */
+#else
+/* Define AT_FDCWD independently, so that the careadlinkat module does
+   not depend on the fcntl-h module.  We might as well use the same value
+   as fcntl-h.  */
+# ifndef AT_FDCWD
+#  define AT_FDCWD (-3041965)
+# endif
+#endif
+
+#endif /* _GL_CAREADLINKAT_H */
index a7b40f092ca65c4f8ef9baa574c1f3349a6599de..872feb4d0649de7f2b60cc99a2892d88d2e391e6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide a chdir function that tries not to fail due to ENAMETOOLONG
-   Copyright (C) 2004-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004-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
@@ -44,19 +44,19 @@ struct cd_buf
   int fd;
 };
 
-static inline void
+static void
 cdb_init (struct cd_buf *cdb)
 {
   cdb->fd = AT_FDCWD;
 }
 
-static inline int
+static int
 cdb_fchdir (struct cd_buf const *cdb)
 {
   return fchdir (cdb->fd);
 }
 
-static inline void
+static void
 cdb_free (struct cd_buf const *cdb)
 {
   if (0 <= cdb->fd)
@@ -85,7 +85,7 @@ cdb_advance_fd (struct cd_buf *cdb, char const *dir)
 }
 
 /* Return a pointer to the first non-slash in S.  */
-static inline char *
+static char * _GL_ATTRIBUTE_PURE
 find_non_slash (char const *s)
 {
   size_t n_slash = strspn (s, "/");
@@ -98,7 +98,7 @@ find_non_slash (char const *s)
    name.  It handles an arbitrarily long directory name by operating
    on manageable portions of the name.  On systems without the openat
    syscall, this means changing the working directory to more and more
-   `distant' points along the long directory name and then restoring
+   "distant" points along the long directory name and then restoring
    the working directory.  If any of those attempts to save or restore
    the working directory fails, this function exits nonzero.
 
@@ -247,7 +247,7 @@ main (int argc, char *argv[])
 
   if (argc <= 1)
     {
-      /* Using `pwd' here makes sense only if it is a robust implementation,
+      /* Using 'pwd' here makes sense only if it is a robust implementation,
          like the one in coreutils after the 2004-04-19 changes.  */
       char const *cmd = "pwd";
       execlp (cmd, (char *) NULL);
index 56cbb93d4f9c9cde2c4815ec40aae34c84004949..fdcff3bacb1a67f17088d4c00b402a64608d6a90 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide a chdir function that tries not to fail due to ENAMETOOLONG
-   Copyright (C) 2004-2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004-2005, 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
 #include <unistd.h>
 #include <limits.h>
 
-#ifndef PATH_MAX
-# ifdef MAXPATHLEN
-#  define PATH_MAX MAXPATHLEN
-# endif
-#endif
+#include "pathmax.h"
 
 /* On systems without PATH_MAX, presume that chdir accepts
    arbitrarily long directory names.  */
diff --git a/gnu/chmodat.c b/gnu/chmodat.c
new file mode 100644 (file)
index 0000000..1f39887
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define FCHMODAT_INLINE _GL_EXTERN_INLINE
+#include "openat.h"
index 6f3556911e9a86e135fbe5220e0b439ea866ce0c..95a503cacdf353c1409a1969dced33e767598b41 100644 (file)
@@ -1,9 +1,9 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide consistent interface to chown for systems that don't interpret
-   an ID of -1 as meaning `don't change the corresponding ID'.
+   an ID of -1 as meaning "don't change the corresponding ID".
 
-   Copyright (C) 1997, 2004-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2004-2007, 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
@@ -55,7 +55,7 @@ chown (const char *file _GL_UNUSED, uid_t uid _GL_UNUSED,
 /* Provide a more-closely POSIX-conforming version of chown on
    systems with one or both of the following problems:
    - chown doesn't treat an ID of -1 as meaning
-   `don't change the corresponding ID'.
+   "don't change the corresponding ID".
    - chown doesn't dereference symlinks.  */
 
 int
diff --git a/gnu/chownat.c b/gnu/chownat.c
new file mode 100644 (file)
index 0000000..92485d1
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define FCHOWNAT_INLINE _GL_EXTERN_INLINE
+#include "openat.h"
index 98dad284ea4334507135c9099f6dea3b4be441eb..41507596d2a6b2fba59e08cbe69a71a056c836f4 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* closexec.c - set or clear the close-on-exec descriptor flag
 
-   Copyright (C) 1991, 2004-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1991, 2004-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
@@ -27,9 +27,9 @@
 #include <fcntl.h>
 #include <unistd.h>
 
-/* Set the `FD_CLOEXEC' flag of DESC if VALUE is true,
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
    or clear the flag if VALUE is false.
-   Return 0 on success, or -1 on error with `errno' set.
+   Return 0 on success, or -1 on error with 'errno' set.
 
    Note that on MingW, this function does NOT protect DESC from being
    inherited into spawned children.  Instead, either use dup_cloexec
index 377ab6c96e5961023448acbd9221a0bf0a45b78c..b214e06e2e81e043b7c26d9630c413ef5036a0ce 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* closexec.c - set or clear the close-on-exec descriptor flag
 
-   Copyright (C) 2004, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004, 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
@@ -21,9 +21,9 @@
 
 #include <stdbool.h>
 
-/* Set the `FD_CLOEXEC' flag of DESC if VALUE is true,
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
    or clear the flag if VALUE is false.
-   Return 0 on success, or -1 on error with `errno' set.
+   Return 0 on success, or -1 on error with 'errno' set.
 
    Note that on MingW, this function does NOT protect DESC from being
    inherited into spawned children.  Instead, either use dup_cloexec
index 2afb01d4be2f874705d383f11244bf31604ca84c..2df42d72017735ce42ad341516f70014653c4a8c 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Close a stream, with nicer error checking than fclose's.
 
-   Copyright (C) 1998-2002, 2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004, 2006-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
@@ -65,7 +65,7 @@ close_stream (FILE *stream)
      fclose failed, with one exception: ignore an fclose failure if
      there was no previous error, no data remains to be flushed, and
      fclose failed with EBADF.  That can happen when a program like cp
-     is invoked like this `cp a b >&-' (i.e., with standard output
+     is invoked like this 'cp a b >&-' (i.e., with standard output
      closed) and doesn't generate any output (hence no previous error
      and nothing to be flushed).  */
 
index b8bdcfa780b67b9478e86e9b6c0df35c6ca43fff..debab3b1929435df369a8bdf0306219a2c3b997b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* close replacement.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
 /* Specification.  */
 #include <unistd.h>
 
-#include "close-hook.h"
+#include <errno.h>
+
+#include "fd-hook.h"
+#include "msvc-inval.h"
+
+#undef close
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+close_nothrow (int fd)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = close (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define close_nothrow close
+#endif
 
 /* Override close() to call into other gnulib modules.  */
 
 int
 rpl_close (int fd)
-#undef close
 {
 #if WINDOWS_SOCKETS
-  int retval = execute_all_close_hooks (fd);
+  int retval = execute_all_close_hooks (close_nothrow, fd);
 #else
-  int retval = close (fd);
+  int retval = close_nothrow (fd);
 #endif
 
 #if REPLACE_FCHDIR
diff --git a/gnu/closedir.c b/gnu/closedir.c
new file mode 100644 (file)
index 0000000..7189b99
--- /dev/null
@@ -0,0 +1,69 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Stop reading the entries of a directory.
+   Copyright (C) 2006-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.  */
+#include <dirent.h>
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+#if HAVE_CLOSEDIR
+
+/* Override closedir(), to keep track of the open file descriptors.
+   Needed because there is a function dirfd().  */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+
+#endif
+
+int
+closedir (DIR *dirp)
+{
+# if REPLACE_FCHDIR
+  int fd = dirfd (dirp);
+# endif
+  int retval;
+
+#if HAVE_CLOSEDIR
+# undef closedir
+
+  retval = closedir (dirp);
+
+#else
+
+  if (dirp->current != INVALID_HANDLE_VALUE)
+    FindClose (dirp->current);
+  free (dirp);
+
+  retval = 0;
+
+#endif
+
+#if REPLACE_FCHDIR
+  if (retval >= 0)
+    _gl_unregister_fd (fd);
+#endif
+  return retval;
+}
index 8a105d5af337b9bc17fb26921dfcaaeb5cfd0dd0..d7e3060251afc4d138661c27747735000297e771 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Close standard output and standard error, exiting with a diagnostic on error.
 
-   Copyright (C) 1998-2002, 2004, 2006, 2008-2011 Free Software Foundation,
+   Copyright (C) 1998-2002, 2004, 2006, 2008-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -102,7 +102,7 @@ close_stdout_set_ignore_EPIPE (bool ignore)
    can bypass the removal of these files.
 
    It's important to detect such failures and exit nonzero because many
-   tools (most notably `make' and other build-management systems) depend
+   tools (most notably 'make' and other build-management systems) depend
    on being able to detect failure in other tools via their exit status.  */
 
 void
index e90b1a28e80790ac89fa8c37a84396a1b077285c..a7bc618ee1d38c33cbaa7c4e3d4fe321640861c9 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Close standard output and standard error.
 
-   Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2011 Free Software
+   Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 93b5a5d6da3c57c07651d83cf4e5de75003c1db7..a991419cd1c582e71ef5f254e757ab5b4cd0b8b8 100644 (file)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Output a system dependent table of character encoding aliases.
 #
-#   Copyright (C) 2000-2004, 2006-2011 Free Software Foundation, Inc.
+#   Copyright (C) 2000-2004, 2006-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
@@ -14,8 +14,7 @@
 #   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, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # The table consists of lines of the form
 #    ALIAS  CANONICAL
@@ -30,6 +29,8 @@
 # The current list of GNU canonical charset names is as follows.
 #
 #       name              MIME?             used by which systems
+#                                    (darwin = Mac OS X, woe32 = native Windows)
+#
 #   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin cygwin
 #   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
 #   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
diff --git a/gnu/copy-acl.c b/gnu/copy-acl.c
new file mode 100644 (file)
index 0000000..f60d584
--- /dev/null
@@ -0,0 +1,63 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* copy-acl.c - copy access control list from one file to another file
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
+
+#include <config.h>
+
+#include "acl.h"
+
+#include <errno.h>
+
+#include "quote.h"
+#include "error.h"
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+
+/* Copy access control lists from one file to another. If SOURCE_DESC is
+   a valid file descriptor, use file descriptor operations, else use
+   filename based operations on SRC_NAME. Likewise for DEST_DESC and
+   DST_NAME.
+   If access control lists are not available, fchmod the target file to
+   MODE.  Also sets the non-permission bits of the destination file
+   (S_ISUID, S_ISGID, S_ISVTX) to those from MODE if any are set.
+   Return 0 if successful, otherwise output a diagnostic and return a
+   negative error code.  */
+
+int
+copy_acl (const char *src_name, int source_desc, const char *dst_name,
+          int dest_desc, mode_t mode)
+{
+  int ret = qcopy_acl (src_name, source_desc, dst_name, dest_desc, mode);
+  switch (ret)
+    {
+    case -2:
+      error (0, errno, "%s", quote (src_name));
+      break;
+
+    case -1:
+      error (0, errno, _("preserving permissions for %s"), quote (dst_name));
+      break;
+
+    default:
+      break;
+    }
+  return ret;
+}
index f120077c1d91405910b13c6abfdaef9324cbda20..897afc011390ab698c18799530db215ecf3d7029 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Like dirent.h, but redefine some names to avoid glitches.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
diff --git a/gnu/dirent-private.h b/gnu/dirent-private.h
new file mode 100644 (file)
index 0000000..7fdeb35
--- /dev/null
@@ -0,0 +1,42 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Private details of the DIR type.
+   Copyright (C) 2011-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/>.  */
+
+#ifndef _DIRENT_PRIVATE_H
+#define _DIRENT_PRIVATE_H 1
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+struct gl_directory
+{
+  /* Status, or error code to produce in next readdir() call.
+     -2 means the end of the directory is already reached,
+     -1 means the entry was already filled by FindFirstFile,
+     0 means the entry needs to be filled using FindNextFile.
+     A positive value is an error code.  */
+  int status;
+  /* Handle, reading the directory, at current position.  */
+  HANDLE current;
+  /* Found directory entry.  */
+  WIN32_FIND_DATA entry;
+  /* Argument to pass to FindFirstFile.  It consists of the absolutized
+     directory name, followed by a directory separator and the wildcards.  */
+  char dir_name_mask[1];
+};
+
+#endif /* _DIRENT_PRIVATE_H */
index 4627a86bc19bf141c06988f43e761eaf819d276e..9a8b6ceea219c47afb16e2fdee2b6756baef6dfc 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Invoke dirent-like functions, but avoid some glitches.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 691db9240a318eaa1ddb0533da449a9e479c409a..33c649894cb54918e0597eabe00a37d04981a931 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A GNU-like <dirent.h>.
-   Copyright (C) 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-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
@@ -16,7 +16,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/>.  */
 
-#ifndef _GL_DIRENT_H
+#ifndef _@GUARD_PREFIX@_DIRENT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 @PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
-#@INCLUDE_NEXT@ @NEXT_DIRENT_H@
+#if @HAVE_DIRENT_H@
+# @INCLUDE_NEXT@ @NEXT_DIRENT_H@
+#endif
 
-#ifndef _GL_DIRENT_H
-#define _GL_DIRENT_H
+#ifndef _@GUARD_PREFIX@_DIRENT_H
+#define _@GUARD_PREFIX@_DIRENT_H
 
 /* Get ino_t.  Needed on some systems, including glibc 2.8.  */
 #include <sys/types.h>
 
+#if !@HAVE_DIRENT_H@
+/* Define types DIR and 'struct dirent'.  */
+# if !GNULIB_defined_struct_dirent
+struct dirent
+{
+  char d_type;
+  char d_name[1];
+};
+/* Possible values for 'd_type'.  */
+#  define DT_UNKNOWN 0
+#  define DT_FIFO    1          /* FIFO */
+#  define DT_CHR     2          /* character device */
+#  define DT_DIR     4          /* directory */
+#  define DT_BLK     6          /* block device */
+#  define DT_REG     8          /* regular file */
+#  define DT_LNK    10          /* symbolic link */
+#  define DT_SOCK   12          /* socket */
+#  define DT_WHT    14          /* whiteout */
+typedef struct gl_directory DIR;
+#  define GNULIB_defined_struct_dirent 1
+# endif
+#endif
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 
 /* Declare overridden functions.  */
 
-#if @REPLACE_CLOSEDIR@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define closedir rpl_closedir
+#if @GNULIB_OPENDIR@
+# if @REPLACE_OPENDIR@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef opendir
+#   define opendir rpl_opendir
+#  endif
+_GL_FUNCDECL_RPL (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (opendir, DIR *, (const char *dir_name));
+# else
+#  if !@HAVE_OPENDIR@
+_GL_FUNCDECL_SYS (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (opendir, DIR *, (const char *dir_name));
+# endif
+_GL_CXXALIASWARN (opendir);
+#elif defined GNULIB_POSIXCHECK
+# undef opendir
+# if HAVE_RAW_DECL_OPENDIR
+_GL_WARN_ON_USE (opendir, "opendir is not portable - "
+                 "use gnulib module opendir for portability");
+# endif
+#endif
+
+#if @GNULIB_READDIR@
+# if !@HAVE_READDIR@
+_GL_FUNCDECL_SYS (readdir, struct dirent *, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (readdir, struct dirent *, (DIR *dirp));
+_GL_CXXALIASWARN (readdir);
+#elif defined GNULIB_POSIXCHECK
+# undef readdir
+# if HAVE_RAW_DECL_READDIR
+_GL_WARN_ON_USE (readdir, "readdir is not portable - "
+                 "use gnulib module readdir for portability");
 # endif
-_GL_FUNCDECL_RPL (closedir, int, (DIR *) _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (closedir, int, (DIR *));
-#else
-_GL_CXXALIAS_SYS (closedir, int, (DIR *));
 #endif
+
+#if @GNULIB_REWINDDIR@
+# if !@HAVE_REWINDDIR@
+_GL_FUNCDECL_SYS (rewinddir, void, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (rewinddir, void, (DIR *dirp));
+_GL_CXXALIASWARN (rewinddir);
+#elif defined GNULIB_POSIXCHECK
+# undef rewinddir
+# if HAVE_RAW_DECL_REWINDDIR
+_GL_WARN_ON_USE (rewinddir, "rewinddir is not portable - "
+                 "use gnulib module rewinddir for portability");
+# endif
+#endif
+
+#if @GNULIB_CLOSEDIR@
+# if @REPLACE_CLOSEDIR@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef closedir
+#   define closedir rpl_closedir
+#  endif
+_GL_FUNCDECL_RPL (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (closedir, int, (DIR *dirp));
+# else
+#  if !@HAVE_CLOSEDIR@
+_GL_FUNCDECL_SYS (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (closedir, int, (DIR *dirp));
+# endif
 _GL_CXXALIASWARN (closedir);
+#elif defined GNULIB_POSIXCHECK
+# undef closedir
+# if HAVE_RAW_DECL_CLOSEDIR
+_GL_WARN_ON_USE (closedir, "closedir is not portable - "
+                 "use gnulib module closedir for portability");
+# endif
+#endif
 
 #if @GNULIB_DIRFD@
 /* Return the file descriptor associated with the given directory stream,
@@ -111,17 +207,6 @@ _GL_WARN_ON_USE (fdopendir, "fdopendir is unportable - "
 # endif
 #endif
 
-#if @REPLACE_OPENDIR@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define opendir rpl_opendir
-# endif
-_GL_FUNCDECL_RPL (opendir, DIR *, (const char *) _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (opendir, DIR *, (const char *));
-#else
-_GL_CXXALIAS_SYS (opendir, DIR *, (const char *));
-#endif
-_GL_CXXALIASWARN (opendir);
-
 #if @GNULIB_SCANDIR@
 /* Scan the directory DIR, calling FILTER on each directory entry.
    Entries for which FILTER returns nonzero are individually malloc'd,
@@ -154,6 +239,7 @@ _GL_WARN_ON_USE (scandir, "scandir is unportable - "
 # if !@HAVE_ALPHASORT@
 _GL_FUNCDECL_SYS (alphasort, int,
                   (const struct dirent **, const struct dirent **)
+                  _GL_ATTRIBUTE_PURE
                   _GL_ARG_NONNULL ((1, 2)));
 # endif
 /* Need to cast, because on glibc systems, the parameters are
@@ -170,5 +256,5 @@ _GL_WARN_ON_USE (alphasort, "alphasort is unportable - "
 #endif
 
 
-#endif /* _GL_DIRENT_H */
-#endif /* _GL_DIRENT_H */
+#endif /* _@GUARD_PREFIX@_DIRENT_H */
+#endif /* _@GUARD_PREFIX@_DIRENT_H */
index 99dea7291128d2fbc9684ee7a7b468f515d28f31..f496be6834c4d37868c2a2cee27dd14a76328b90 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* dirfd.c -- return the file descriptor associated with an open DIR*
 
-   Copyright (C) 2001, 2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2006, 2008-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
index 8ddec81b06ea5ef11dfda60d385e989f547405b8..e3a45ecde190d346d9bfef8ef0242351794d38c3 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* dirname.c -- return all but the last element in a file name
 
-   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
 
 /* Return the length of the prefix of FILE that will be used by
    dir_name.  If FILE is in the working directory, this returns zero
-   even though `dir_name (FILE)' will return ".".  Works properly even
+   even though 'dir_name (FILE)' will return ".".  Works properly even
    if there are trailing slashes (by effectively ignoring them).  */
 
 size_t
@@ -55,9 +55,9 @@ dir_len (char const *file)
 }
 
 
-/* In general, we can't use the builtin `dirname' function if available,
+/* In general, we can't use the builtin 'dirname' function if available,
    since it has different meanings in different environments.
-   In some environments the builtin `dirname' modifies its argument.
+   In some environments the builtin 'dirname' modifies its argument.
 
    Return the leading directories part of FILE, allocated with malloc.
    Works properly even if there are trailing slashes (by effectively
index d4e43b80aa4b9124fe9218ac5dd66ea0e1ecd8de..b7e18468bf5781b07b0139e05e0d7d4f27d51145 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* dirname.c -- return all but the last element in a file name
 
-   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index c9a02b314b6e8b059f66ba507855d2f1194853ca..7864dc39388150d096fcf9ecbab70c3b72e4c9f5 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /*  Take file names apart into directory and base names.
 
-    Copyright (C) 1998, 2001, 2003-2006, 2009-2011 Free Software Foundation,
+    Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation,
     Inc.
 
     This program is free software: you can redistribute it and/or modify
@@ -39,9 +39,9 @@ char *dir_name (char const *file);
 # endif
 
 char *mdir_name (char const *file);
-size_t base_len (char const *file);
-size_t dir_len (char const *file);
-char *last_component (char const *file);
+size_t base_len (char const *file) _GL_ATTRIBUTE_PURE;
+size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
+char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
 
 bool strip_trailing_slashes (char *file);
 
index d728598954345a9246c962d733264ff516f49194..5cea7498b4c339b17ffb2e0a557f5a8b7673d1df 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* File names on MS-DOS/Windows systems.
 
-   Copyright (C) 2000-2001, 2004-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2004-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
index 3b336f46a5c4b8e6fed2c25122a1d28c8ac31455..64cbd7e0254a71fbe5bff693404b41fc73c1477c 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Invoke dup, but avoid some glitches.
 
-   Copyright (C) 2001, 2004-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2004-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
diff --git a/gnu/dup.c b/gnu/dup.c
new file mode 100644 (file)
index 0000000..0d15169
--- /dev/null
+++ b/gnu/dup.c
@@ -0,0 +1,63 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Duplicate an open file descriptor.
+
+   Copyright (C) 2011-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.  */
+#include <unistd.h>
+
+#include <errno.h>
+
+#include "msvc-inval.h"
+
+#undef dup
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+dup_nothrow (int fd)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = dup (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define dup_nothrow dup
+#endif
+
+int
+rpl_dup (int fd)
+{
+  int result = dup_nothrow (fd);
+#if REPLACE_FCHDIR
+  if (result >= 0)
+    result = _gl_register_dup (fd, result);
+#endif
+  return result;
+}
index 4d26dd0f0c3d7b85ed5843074f627a2bfcaee2fc..172f24e79af68d59749901c154372ce4548806b6 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Duplicate an open file descriptor to a specified file descriptor.
 
-   Copyright (C) 1999, 2004-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2004-2007, 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
 #include <errno.h>
 #include <fcntl.h>
 
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* Get declarations of the Win32 API functions.  */
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-#endif
-
 #if HAVE_DUP2
 
 # undef dup2
 
-int
-rpl_dup2 (int fd, int desired_fd)
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+#  include "msvc-inval.h"
+
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
+
+static int
+ms_windows_dup2 (int fd, int desired_fd)
 {
   int result;
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
   /* If fd is closed, mingw hangs on dup2 (fd, fd).  If fd is open,
      dup2 (fd, fd) returns 0, but all further attempts to use fd in
      future dup2 calls will hang.  */
@@ -54,6 +59,7 @@ rpl_dup2 (int fd, int desired_fd)
         }
       return fd;
     }
+
   /* Wine 1.0.1 return 0 when desired_fd is negative but not -1:
      http://bugs.winehq.org/show_bug.cgi?id=21289 */
   if (desired_fd < 0)
@@ -61,26 +67,48 @@ rpl_dup2 (int fd, int desired_fd)
       errno = EBADF;
       return -1;
     }
-# elif !defined __linux__
-  /* On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC.  */
-  if (fd == desired_fd)
-    return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
-# endif
-  result = dup2 (fd, desired_fd);
-# ifdef __linux__
-  /* Correct a Linux return value.
-     <http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=commitdiff;h=2b79bc4f7ebbd5af3c8b867968f9f15602d5f802>
-   */
-  if (fd == desired_fd && result == (unsigned int) -EBADF)
+
+  TRY_MSVC_INVAL
+    {
+      result = dup2 (fd, desired_fd);
+    }
+  CATCH_MSVC_INVAL
     {
       errno = EBADF;
       result = -1;
     }
-# endif
+  DONE_MSVC_INVAL;
+
   if (result == 0)
     result = desired_fd;
-  /* Correct a cygwin 1.5.x errno value.  */
-  else if (result == -1 && errno == EMFILE)
+
+  return result;
+}
+
+#  define dup2 ms_windows_dup2
+
+# endif
+
+int
+rpl_dup2 (int fd, int desired_fd)
+{
+  int result;
+
+# ifdef F_GETFL
+  /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
+     On Cygwin 1.5.x, dup2 (1, 1) returns 0.
+     On Cygwin 1.7.17, dup2 (1, -1) dumps core.
+     On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC.  */
+  if (desired_fd < 0)
+    fd = desired_fd;
+  if (fd == desired_fd)
+    return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
+# endif
+
+  result = dup2 (fd, desired_fd);
+
+  /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x.  */
+  if (result == -1 && errno == EMFILE)
     errno = EBADF;
 # if REPLACE_FCHDIR
   if (fd != desired_fd && result != -1)
index 8ceed3a1a7e89dbd8dc7e24313bcde485752b532..cbc47335e1993092e6d813a3113fcdc8b0860301 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_ERRNO_H@
 
-#ifndef _GL_ERRNO_H
-#define _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
+#define _@GUARD_PREFIX@_ERRNO_H
 
 
 /* On native Windows platforms, many macros are not defined.  */
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
-/* POSIX says that EAGAIN and EWOULDBLOCK may have the same value.  */
-#  define EWOULDBLOCK     EAGAIN
-
-/* Values >= 100 seem safe to use.  */
-#  define ETXTBSY   100
-#  define GNULIB_defined_ETXTBSY 1
+/* These are the same values as defined by MSVC 10, for interoperability.  */
+
+#  ifndef ENOMSG
+#   define ENOMSG    122
+#   define GNULIB_defined_ENOMSG 1
+#  endif
+
+#  ifndef EIDRM
+#   define EIDRM     111
+#   define GNULIB_defined_EIDRM 1
+#  endif
+
+#  ifndef ENOLINK
+#   define ENOLINK   121
+#   define GNULIB_defined_ENOLINK 1
+#  endif
+
+#  ifndef EPROTO
+#   define EPROTO    134
+#   define GNULIB_defined_EPROTO 1
+#  endif
+
+#  ifndef EBADMSG
+#   define EBADMSG   104
+#   define GNULIB_defined_EBADMSG 1
+#  endif
+
+#  ifndef EOVERFLOW
+#   define EOVERFLOW 132
+#   define GNULIB_defined_EOVERFLOW 1
+#  endif
+
+#  ifndef ENOTSUP
+#   define ENOTSUP   129
+#   define GNULIB_defined_ENOTSUP 1
+#  endif
+
+#  ifndef ENETRESET
+#   define ENETRESET 117
+#   define GNULIB_defined_ENETRESET 1
+#  endif
+
+#  ifndef ECONNABORTED
+#   define ECONNABORTED 106
+#   define GNULIB_defined_ECONNABORTED 1
+#  endif
+
+#  ifndef ECANCELED
+#   define ECANCELED 105
+#   define GNULIB_defined_ECANCELED 1
+#  endif
+
+#  ifndef EOWNERDEAD
+#   define EOWNERDEAD 133
+#   define GNULIB_defined_EOWNERDEAD 1
+#  endif
+
+#  ifndef ENOTRECOVERABLE
+#   define ENOTRECOVERABLE 127
+#   define GNULIB_defined_ENOTRECOVERABLE 1
+#  endif
+
+#  ifndef EINPROGRESS
+#   define EINPROGRESS     112
+#   define EALREADY        103
+#   define ENOTSOCK        128
+#   define EDESTADDRREQ    109
+#   define EMSGSIZE        115
+#   define EPROTOTYPE      136
+#   define ENOPROTOOPT     123
+#   define EPROTONOSUPPORT 135
+#   define EOPNOTSUPP      130
+#   define EAFNOSUPPORT    102
+#   define EADDRINUSE      100
+#   define EADDRNOTAVAIL   101
+#   define ENETDOWN        116
+#   define ENETUNREACH     118
+#   define ECONNRESET      108
+#   define ENOBUFS         119
+#   define EISCONN         113
+#   define ENOTCONN        126
+#   define ETIMEDOUT       138
+#   define ECONNREFUSED    107
+#   define ELOOP           114
+#   define EHOSTUNREACH    110
+#   define EWOULDBLOCK     140
+#   define GNULIB_defined_ESOCK 1
+#  endif
+
+#  ifndef ETXTBSY
+#   define ETXTBSY         139
+#   define ENODATA         120  /* not required by POSIX */
+#   define ENOSR           124  /* not required by POSIX */
+#   define ENOSTR          125  /* not required by POSIX */
+#   define ETIME           137  /* not required by POSIX */
+#   define EOTHER          131  /* not required by POSIX */
+#   define GNULIB_defined_ESTREAMS 1
+#  endif
 
 /* These are intentionally the same values as the WSA* error numbers, defined
    in <winsock2.h>.  */
-#  define EINPROGRESS     10036
-#  define EALREADY        10037
-#  define ENOTSOCK        10038
-#  define EDESTADDRREQ    10039
-#  define EMSGSIZE        10040
-#  define EPROTOTYPE      10041
-#  define ENOPROTOOPT     10042
-#  define EPROTONOSUPPORT 10043
 #  define ESOCKTNOSUPPORT 10044  /* not required by POSIX */
-#  define EOPNOTSUPP      10045
 #  define EPFNOSUPPORT    10046  /* not required by POSIX */
-#  define EAFNOSUPPORT    10047
-#  define EADDRINUSE      10048
-#  define EADDRNOTAVAIL   10049
-#  define ENETDOWN        10050
-#  define ENETUNREACH     10051
-#  define ENETRESET       10052
-#  define ECONNABORTED    10053
-#  define ECONNRESET      10054
-#  define ENOBUFS         10055
-#  define EISCONN         10056
-#  define ENOTCONN        10057
 #  define ESHUTDOWN       10058  /* not required by POSIX */
 #  define ETOOMANYREFS    10059  /* not required by POSIX */
-#  define ETIMEDOUT       10060
-#  define ECONNREFUSED    10061
-#  define ELOOP           10062
 #  define EHOSTDOWN       10064  /* not required by POSIX */
-#  define EHOSTUNREACH    10065
 #  define EPROCLIM        10067  /* not required by POSIX */
 #  define EUSERS          10068  /* not required by POSIX */
 #  define EDQUOT          10069
 #  define ESTALE          10070
 #  define EREMOTE         10071  /* not required by POSIX */
-#  define GNULIB_defined_ESOCK 1
+#  define GNULIB_defined_EWINSOCK 1
 
 # endif
 
 #  define GNULIB_defined_ENOTSUP 1
 # endif
 
+# ifndef ENETRESET
+#  define ENETRESET 2011
+#  define GNULIB_defined_ENETRESET 1
+# endif
+
+# ifndef ECONNABORTED
+#  define ECONNABORTED 2012
+#  define GNULIB_defined_ECONNABORTED 1
+# endif
+
 # ifndef ESTALE
 #  define ESTALE    2009
 #  define GNULIB_defined_ESTALE 1
 #  define GNULIB_defined_ECANCELED 1
 # endif
 
+/* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not
+   defined.  */
+
+# ifndef EOWNERDEAD
+#  if defined __sun
+    /* Use the same values as defined for Solaris >= 8, for
+       interoperability.  */
+#   define EOWNERDEAD      58
+#   define ENOTRECOVERABLE 59
+#  elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+    /* We have a conflict here: pthreads-win32 defines these values
+       differently than MSVC 10.  It's hairy to decide which one to use.  */
+#   if defined __MINGW32__ && !defined USE_WINDOWS_THREADS
+     /* Use the same values as defined by pthreads-win32, for
+        interoperability.  */
+#    define EOWNERDEAD      43
+#    define ENOTRECOVERABLE 44
+#   else
+     /* Use the same values as defined by MSVC 10, for
+        interoperability.  */
+#    define EOWNERDEAD      133
+#    define ENOTRECOVERABLE 127
+#   endif
+#  else
+#   define EOWNERDEAD      2013
+#   define ENOTRECOVERABLE 2014
+#  endif
+#  define GNULIB_defined_EOWNERDEAD 1
+#  define GNULIB_defined_ENOTRECOVERABLE 1
+# endif
+
+# ifndef EILSEQ
+#  define EILSEQ 2015
+#  define GNULIB_defined_EILSEQ 1
+# endif
 
-#endif /* _GL_ERRNO_H */
-#endif /* _GL_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
index 120fc842c5cf37e28d07e1a9addc7a7c9307fe63..ae52a20a705d94085882edd3fb7ccb516898d2a4 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007, 2009-2013 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
@@ -56,7 +56,7 @@
    function without parameters instead.  */
 void (*error_print_progname) (void);
 
-/* This variable is incremented each time `error' is called.  */
+/* This variable is incremented each time 'error' is called.  */
 unsigned int error_message_count;
 
 #ifdef _LIBC
@@ -67,7 +67,7 @@ unsigned int error_message_count;
 # include <limits.h>
 # include <libio/libioP.h>
 
-/* In GNU libc we want do not want to use the common name `error' directly.
+/* In GNU libc we want do not want to use the common name 'error' directly.
    Instead make it a weak alias.  */
 extern void __error (int status, int errnum, const char *message, ...)
      __attribute__ ((__format__ (__printf__, 3, 4)));
@@ -91,19 +91,25 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
 # include <unistd.h>
 
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* Get declarations of the Win32 API functions.  */
+/* Get declarations of the native Windows API functions.  */
 #  define WIN32_LEAN_AND_MEAN
 #  include <windows.h>
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
 # endif
 
 /* The gnulib override of fcntl is not needed in this file.  */
 # undef fcntl
 
-# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+# if !HAVE_DECL_STRERROR_R
 #  ifndef HAVE_DECL_STRERROR_R
 "this configure-time declaration test was not run"
 #  endif
+#  if STRERROR_R_CHAR_P
 char *strerror_r ();
+#  else
+int strerror_r ();
+#  endif
 # endif
 
 /* The calling program should define program_name and set it to the
@@ -117,13 +123,14 @@ extern char *program_name;
 
 #if !_LIBC
 /* Return non-zero if FD is open.  */
-static inline int
+static int
 is_open (int fd)
 {
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-  /* On Win32: The initial state of unassigned standard file descriptors is
-     that they are open but point to an INVALID_HANDLE_VALUE.  There is no
-     fcntl, and the gnulib replacement fcntl does not support F_GETFL.  */
+  /* On native Windows: The initial state of unassigned standard file
+     descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
+     There is no fcntl, and the gnulib replacement fcntl does not support
+     F_GETFL.  */
   return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
 # else
 #  ifndef F_GETFL
@@ -134,7 +141,7 @@ is_open (int fd)
 }
 #endif
 
-static inline void
+static void
 flush_stdout (void)
 {
 #if !_LIBC
index 7622874d9478618e2832585b28c5b28aa90ab4b3..28cc8ff01fe2063a3df39f2173c240153185a908 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Declaration for error-reporting function
-   Copyright (C) 1995-1997, 2003, 2006, 2008-2011 Free Software Foundation,
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
@@ -37,9 +37,9 @@
 extern "C" {
 #endif
 
-/* Print a message with `fprintf (stderr, FORMAT, ...)';
+/* Print a message with 'fprintf (stderr, FORMAT, ...)';
    if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
+   If 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));
@@ -53,7 +53,7 @@ extern void error_at_line (int __status, int __errnum, const char *__fname,
    function without parameters instead.  */
 extern void (*error_print_progname) (void);
 
-/* This variable is incremented each time `error' is called.  */
+/* This variable is incremented each time 'error' is called.  */
 extern unsigned int error_message_count;
 
 /* Sometimes we want to have at most one error per line.  This
index 32334f16275acfa879f9a429b53677999fb172aa..ce16599e506ca9d8444e5b37b47a82aec39126e4 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* exclude.c -- exclude file names
 
-   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2011 Free Software
+   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -106,53 +106,46 @@ struct exclude_segment
     } v;
   };
 
-/* The exclude structure keeps a singly-linked list of exclude segments */
+/* The exclude structure keeps a singly-linked list of exclude segments,
+   maintained in reverse order.  */
 struct exclude
   {
-    struct exclude_segment *head, *tail;
+    struct exclude_segment *head;
   };
 
-/* Return true if str has wildcard characters */
+/* Return true if STR has or may have wildcards, when matched with OPTIONS.
+   Return false if STR definitely does not have wildcards.  */
 bool
 fnmatch_pattern_has_wildcards (const char *str, int options)
 {
-  const char *cset = "\\?*[]";
-  if (options & FNM_NOESCAPE)
-    cset++;
-  while (*str)
+  while (1)
     {
-      size_t n = strcspn (str, cset);
-      if (str[n] == 0)
-        break;
-      else if (str[n] == '\\')
+      switch (*str++)
         {
-          str += n + 1;
-          if (*str)
-            str++;
+        case '\\':
+          str += ! (options & FNM_NOESCAPE) && *str;
+          break;
+
+        case '+': case '@': case '!':
+          if (options & FNM_EXTMATCH && *str == '(')
+            return true;
+          break;
+
+        case '?': case '*': case '[':
+          return true;
+
+        case '\0':
+          return false;
         }
-      else
-        return true;
     }
-  return false;
 }
 
 static void
 unescape_pattern (char *str)
 {
-  int inset = 0;
-  char *q = str;
+  char const *q = str;
   do
-    {
-      if (inset)
-        {
-          if (*q == ']')
-            inset = 0;
-        }
-      else if (*q == '[')
-        inset = 1;
-      else if (*q == '\\')
-        q++;
-    }
+    q += *q == '\\' && q[1];
   while ((*str++ = *q++));
 }
 
@@ -221,8 +214,8 @@ string_free (void *data)
 }
 
 /* Create new exclude segment of given TYPE and OPTIONS, and attach it
-   to the tail of list in EX */
-static struct exclude_segment *
+   to the head of EX.  */
+static void
 new_exclude_segment (struct exclude *ex, enum exclude_type type, int options)
 {
   struct exclude_segment *sp = xzalloc (sizeof (struct exclude_segment));
@@ -244,12 +237,8 @@ new_exclude_segment (struct exclude *ex, enum exclude_type type, int options)
                                      string_free);
       break;
     }
-  if (ex->tail)
-    ex->tail->next = sp;
-  else
-    ex->head = sp;
-  ex->tail = sp;
-  return sp;
+  sp->next = ex->head;
+  ex->head = sp;
 }
 
 /* Free a single exclude segment */
@@ -349,36 +338,33 @@ exclude_fnmatch (char const *pattern, char const *f, int options)
   return matched;
 }
 
-/* Return true if the exclude_pattern segment SEG excludes F.  */
+/* Return true if the exclude_pattern segment SEG matches F.  */
 
 static bool
-excluded_file_pattern_p (struct exclude_segment const *seg, char const *f)
+file_pattern_matches (struct exclude_segment const *seg, char const *f)
 {
   size_t exclude_count = seg->v.pat.exclude_count;
   struct patopts const *exclude = seg->v.pat.exclude;
   size_t i;
-  bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE);
 
-  /* Scan through the options, until they change excluded */
   for (i = 0; i < exclude_count; i++)
     {
       char const *pattern = exclude[i].pattern;
       int options = exclude[i].options;
       if (exclude_fnmatch (pattern, f, options))
-        return !excluded;
+        return true;
     }
-  return excluded;
+  return false;
 }
 
-/* Return true if the exclude_hash segment SEG excludes F.
+/* Return true if the exclude_hash segment SEG matches F.
    BUFFER is an auxiliary storage of the same length as F (with nul
    terminator included) */
 static bool
-excluded_file_name_p (struct exclude_segment const *seg, char const *f,
-                      char *buffer)
+file_name_matches (struct exclude_segment const *seg, char const *f,
+                   char *buffer)
 {
   int options = seg->options;
-  bool excluded = !! (options & EXCLUDE_INCLUDE);
   Hash_table *table = seg->v.table;
 
   do
@@ -389,7 +375,7 @@ excluded_file_name_p (struct exclude_segment const *seg, char const *f,
       while (1)
         {
           if (hash_lookup (table, buffer))
-            return !excluded;
+            return true;
           if (options & FNM_LEADING_DIR)
             {
               char *p = strrchr (buffer, '/');
@@ -412,7 +398,8 @@ excluded_file_name_p (struct exclude_segment const *seg, char const *f,
         break;
     }
   while (f);
-  return excluded;
+
+  return false;
 }
 
 /* Return true if EX excludes F.  */
@@ -421,44 +408,46 @@ bool
 excluded_file_name (struct exclude const *ex, char const *f)
 {
   struct exclude_segment *seg;
-  bool excluded;
+  bool invert = false;
   char *filename = NULL;
 
   /* If no patterns are given, the default is to include.  */
   if (!ex->head)
     return false;
 
-  /* Otherwise, the default is the opposite of the first option.  */
-  excluded = !! (ex->head->options & EXCLUDE_INCLUDE);
-  /* Scan through the segments, seeing whether they change status from
-     excluded to included or vice versa.  */
-  for (seg = ex->head; seg; seg = seg->next)
+  /* Scan through the segments, reporting the status of the first match.
+     The segments are in reverse order, so this reports the status of
+     the last match in the original option list.  */
+  for (seg = ex->head; ; seg = seg->next)
     {
-      bool rc;
-
-      switch (seg->type)
+      if (seg->type == exclude_hash)
         {
-        case exclude_pattern:
-          rc = excluded_file_pattern_p (seg, f);
-          break;
-
-        case exclude_hash:
           if (!filename)
             filename = xmalloc (strlen (f) + 1);
-          rc = excluded_file_name_p (seg, f, filename);
-          break;
-
-        default:
-          abort ();
+          if (file_name_matches (seg, f, filename))
+            break;
         }
-      if (rc != excluded)
+      else
+        {
+          if (file_pattern_matches (seg, f))
+            break;
+        }
+
+      if (! seg->next)
         {
-          excluded = rc;
+          /* If patterns are given but none match, the default is the
+             opposite of the last segment (i.e., the first in the
+             original option list).  For example, in the command
+             'grep -r --exclude="a*" --include="*b" pat dir', the
+             first option is --exclude so any file name matching
+             neither a* nor *b is included.  */
+          invert = true;
           break;
         }
     }
+
   free (filename);
-  return excluded;
+  return invert ^ ! (seg->options & EXCLUDE_INCLUDE);
 }
 
 /* Append to EX the exclusion PATTERN with OPTIONS.  */
@@ -474,12 +463,11 @@ add_exclude (struct exclude *ex, char const *pattern, int options)
       struct exclude_pattern *pat;
       struct patopts *patopts;
 
-      if (ex->tail && ex->tail->type == exclude_pattern
-          && ((ex->tail->options & EXCLUDE_INCLUDE) ==
-              (options & EXCLUDE_INCLUDE)))
-        seg = ex->tail;
-      else
-        seg = new_exclude_segment (ex, exclude_pattern, options);
+      if (! (ex->head && ex->head->type == exclude_pattern
+             && ((ex->head->options & EXCLUDE_INCLUDE)
+                 == (options & EXCLUDE_INCLUDE))))
+        new_exclude_segment (ex, exclude_pattern, options);
+      seg = ex->head;
 
       pat = &seg->v.pat;
       if (pat->exclude_count == pat->exclude_alloc)
@@ -492,17 +480,16 @@ add_exclude (struct exclude *ex, char const *pattern, int options)
   else
     {
       char *str, *p;
-#define EXCLUDE_HASH_FLAGS (EXCLUDE_INCLUDE|EXCLUDE_ANCHORED|\
-                            FNM_LEADING_DIR|FNM_CASEFOLD)
-      if (ex->tail && ex->tail->type == exclude_hash
-          && ((ex->tail->options & EXCLUDE_HASH_FLAGS) ==
-              (options & EXCLUDE_HASH_FLAGS)))
-        seg = ex->tail;
-      else
-        seg = new_exclude_segment (ex, exclude_hash, options);
+      int exclude_hash_flags = (EXCLUDE_INCLUDE | EXCLUDE_ANCHORED
+                                | FNM_LEADING_DIR | FNM_CASEFOLD);
+      if (! (ex->head && ex->head->type == exclude_hash
+             && ((ex->head->options & exclude_hash_flags)
+                 == (options & exclude_hash_flags))))
+        new_exclude_segment (ex, exclude_hash, options);
+      seg = ex->head;
 
       str = xstrdup (pattern);
-      if (options & EXCLUDE_WILDCARDS)
+      if ((options & (EXCLUDE_WILDCARDS | FNM_NOESCAPE)) == EXCLUDE_WILDCARDS)
         unescape_pattern (str);
       p = hash_insert (seg->v.table, str);
       if (p != str)
index 81f2fd1b61630d84de36d9cb06b3fafeac04be3d..74a798e9a1062d3694b293e7e930bceef619cbe8 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* exclude.h -- declarations for excluding file names
 
-   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2011 Free
+   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2013 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -41,7 +41,7 @@
 
 struct exclude;
 
-bool fnmatch_pattern_has_wildcards (const char *, int);
+bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE;
 
 struct exclude *new_exclude (void);
 void free_exclude (struct exclude *);
index 19f9066466ab68e1d8142ccde003b2ce0d8fa477..164a948d98b11d22b0314cd4dcf181490cd4c9e6 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Failure exit status
 
-   Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2007, 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
index a044d4456cf8e46473ad43cfa92ccc11f340d3e6..f2e26607eb568cbe196a1315633b7e2124639587 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Failure exit status
 
-   Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002, 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
index d97dc3801ab008d05b1ccb291a53cf1ad57acced..193f2f785f24c3b4c3e29bcb91c0ae0ad3d00b4c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* fchdir replacement.
-   Copyright (C) 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-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
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#include "dosname.h"
+#include "filenamecat.h"
+
 #ifndef REPLACE_OPEN_DIRECTORY
 # define REPLACE_OPEN_DIRECTORY 0
 #endif
 
-#ifndef HAVE_CANONICALIZE_FILE_NAME
-# if GNULIB_CANONICALIZE || GNULIB_CANONICALIZE_LGPL
-#  define HAVE_CANONICALIZE_FILE_NAME 1
-# else
-#  define HAVE_CANONICALIZE_FILE_NAME 0
-#  define canonicalize_file_name(name) NULL
-# endif
-#endif
-
 /* This replacement assumes that a directory is not renamed while opened
    through a file descriptor.
 
@@ -92,36 +86,26 @@ ensure_dirs_slot (size_t fd)
   return true;
 }
 
-/* Return the canonical name of DIR in malloc'd storage.  */
+/* Return an absolute name of DIR in malloc'd storage.  */
 static char *
 get_name (char const *dir)
 {
+  char *cwd;
   char *result;
-  if (REPLACE_OPEN_DIRECTORY || !HAVE_CANONICALIZE_FILE_NAME)
-    {
-      /* The function canonicalize_file_name has not yet been ported
-         to mingw, with all its drive letter and backslash quirks.
-         Fortunately, getcwd is reliable in this case, but we ensure
-         we can get back to where we started before using it.  Treat
-         "." as a special case, as it is frequently encountered.  */
-      char *cwd = getcwd (NULL, 0);
-      int saved_errno;
-      if (dir[0] == '.' && dir[1] == '\0')
-        return cwd;
-      if (chdir (cwd))
-        return NULL;
-      result = chdir (dir) ? NULL : getcwd (NULL, 0);
-      saved_errno = errno;
-      if (chdir (cwd))
-        abort ();
-      free (cwd);
-      errno = saved_errno;
-    }
-  else
-    {
-      /* Avoid changing the directory.  */
-      result = canonicalize_file_name (dir);
-    }
+  int saved_errno;
+
+  if (IS_ABSOLUTE_FILE_NAME (dir))
+    return strdup (dir);
+
+  /* We often encounter "."; treat it as a special case.  */
+  cwd = getcwd (NULL, 0);
+  if (!cwd || (dir[0] == '.' && dir[1] == '\0'))
+    return cwd;
+
+  result = mfile_name_concat (cwd, dir, NULL);
+  saved_errno = errno;
+  free (cwd);
+  errno = saved_errno;
   return result;
 }
 
@@ -215,69 +199,6 @@ _gl_directory_name (int fd)
   return NULL;
 }
 
-#if REPLACE_OPEN_DIRECTORY
-/* Return stat information about FD in STATBUF.  Needed when
-   rpl_open() used a dummy file to work around an open() that can't
-   normally visit directories.  */
-# undef fstat
-int
-rpl_fstat (int fd, struct stat *statbuf)
-{
-  if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL)
-    return stat (dirs[fd].name, statbuf);
-  return fstat (fd, statbuf);
-}
-#endif
-
-/* Override opendir() and closedir(), to keep track of the open file
-   descriptors.  Needed because there is a function dirfd().  */
-
-int
-rpl_closedir (DIR *dp)
-#undef closedir
-{
-  int fd = dirfd (dp);
-  int retval = closedir (dp);
-
-  if (retval >= 0)
-    _gl_unregister_fd (fd);
-  return retval;
-}
-
-DIR *
-rpl_opendir (const char *filename)
-#undef opendir
-{
-  DIR *dp;
-
-  dp = opendir (filename);
-  if (dp != NULL)
-    {
-      int fd = dirfd (dp);
-      if (0 <= fd && _gl_register_fd (fd, filename) != fd)
-        {
-          int saved_errno = errno;
-          closedir (dp);
-          errno = saved_errno;
-          return NULL;
-        }
-    }
-  return dp;
-}
-
-/* Override dup(), to keep track of open file descriptors.  */
-
-int
-rpl_dup (int oldfd)
-#undef dup
-{
-  int newfd = dup (oldfd);
-
-  if (0 <= newfd)
-    newfd = _gl_register_dup (oldfd, newfd);
-  return newfd;
-}
-
 
 /* Implement fchdir() in terms of chdir().  */
 
index 14bca0d6db833542aa0a8e179a09023c7b8c67f1..d9a9250cfc465e313e47955f8ab759eef76d07f5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Change the protections of file relative to an open directory.
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 1611b1d95917bf3f029b1851c48332f1dc3b1d78..b4650031faaf6ba5ab9e1c3342c1f47a76ea86eb 100644 (file)
@@ -5,9 +5,9 @@
 #include <sys/types.h>
 #include <errno.h>
 
-/* A trivial substitute for `fchown'.
+/* A trivial substitute for 'fchown'.
 
-   DJGPP 2.03 and earlier (and perhaps later) don't have `fchown',
+   DJGPP 2.03 and earlier (and perhaps later) don't have 'fchown',
    so we pretend no-one has permission for this operation. */
 
 int
index 6892fd03d1948399cc037a782e22777ba60bb5e0..34dd509b829795f99f5d880a1e0b769c6bbcc219 100644 (file)
@@ -6,7 +6,7 @@
    when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it
    mistakenly affects the symlink referent, rather than the symlink itself.
 
-   Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 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
index febc21363a651e47ef9ea0c99c208304ebfd35c5..02f0ddba5c55538751b7a3f3891653f27567f790 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Provide file descriptor control.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 #undef fcntl
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* Get declarations of the Win32 API functions.  */
+/* Get declarations of the native Windows API functions.  */
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 
+/* Get _get_osfhandle.  */
+# include "msvc-nothrow.h"
+
 /* Upper bound on getdtablesize().  See lib/getdtablesize.c.  */
 # define OPEN_MAX_MAX 0x10000
 
@@ -93,7 +96,7 @@ dupfd (int oldfd, int newfd, int flags)
           result = -1;
           break;
         }
-      duplicated_fd = _open_osfhandle ((long) new_handle, flags);
+      duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags);
       if (duplicated_fd < 0)
         {
           CloseHandle (new_handle);
index c7d871bfc416c760dcd0f73ccef34272a3ec9304..1b816335fa89c3b8922534f21df9303e9801c618 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Like <fcntl.h>, but with non-working flags defined to 0.
 
-   Copyright (C) 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-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
@@ -27,6 +27,8 @@
 #if defined __need_system_fcntl_h
 /* Special invocation convention.  */
 
+/* Needed before <sys/stat.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>
 /* On some systems other than glibc, <sys/stat.h> is a prerequisite of
    <fcntl.h>.  On glibc systems, we would like to avoid namespace pollution.
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_FCNTL_H
+#ifndef _@GUARD_PREFIX@_FCNTL_H
 
+/* Needed before <sys/stat.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>
 /* On some systems other than glibc, <sys/stat.h> is a prerequisite of
    <fcntl.h>.  On glibc systems, we would like to avoid namespace pollution.
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_FCNTL_H@
 
-#ifndef _GL_FCNTL_H
-#define _GL_FCNTL_H
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+#define _@GUARD_PREFIX@_FCNTL_H
 
 #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems.  */
 # include <unistd.h>
 #endif
 
+/* Native Windows platforms declare open(), creat() in <io.h>.  */
+#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \
+    && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
@@ -179,13 +189,12 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 /* Fix up the O_* macros.  */
 
 #if !defined O_DIRECT && defined O_DIRECTIO
-/* Tru64 spells it `O_DIRECTIO'.  */
+/* Tru64 spells it 'O_DIRECTIO'.  */
 # define O_DIRECT O_DIRECTIO
 #endif
 
 #if !defined O_CLOEXEC && defined O_NOINHERIT
-/* Mingw spells it `O_NOINHERIT'.  Intentionally leave it
-   undefined if not available.  */
+/* Mingw spells it 'O_NOINHERIT'.  */
 # define O_CLOEXEC O_NOINHERIT
 #endif
 
@@ -209,6 +218,10 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_EXEC O_RDONLY /* This is often close enough in older systems.  */
 #endif
 
+#ifndef O_IGNORE_CTTY
+# define O_IGNORE_CTTY 0
+#endif
+
 #ifndef O_NDELAY
 # define O_NDELAY 0
 #endif
@@ -221,6 +234,19 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_NONBLOCK O_NDELAY
 #endif
 
+/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero
+   value of O_NONBLOCK.  Otherwise, O_NONBLOCK is defined (above) to O_NDELAY
+   or to 0 as fallback.  */
+#if @GNULIB_NONBLOCKING@
+# if O_NONBLOCK
+#  define GNULIB_defined_O_NONBLOCK 0
+# else
+#  define GNULIB_defined_O_NONBLOCK 1
+#  undef O_NONBLOCK
+#  define O_NONBLOCK 0x40000000
+# endif
+#endif
+
 #ifndef O_NOCTTY
 # define O_NOCTTY 0
 #endif
@@ -229,10 +255,18 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_NOFOLLOW 0
 #endif
 
+#ifndef O_NOLINK
+# define O_NOLINK 0
+#endif
+
 #ifndef O_NOLINKS
 # define O_NOLINKS 0
 #endif
 
+#ifndef O_NOTRANS
+# define O_NOTRANS 0
+#endif
+
 #ifndef O_RSYNC
 # define O_RSYNC 0
 #endif
@@ -249,6 +283,11 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 # define O_TTY_INIT 0
 #endif
 
+#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+# undef O_ACCMODE
+# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+#endif
+
 /* For systems that distinguish between text and binary I/O.
    O_BINARY is usually declared in fcntl.h  */
 #if !defined O_BINARY && defined _O_BINARY
@@ -305,6 +344,6 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 #endif
 
 
-#endif /* _GL_FCNTL_H */
-#endif /* _GL_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
 #endif
diff --git a/gnu/fd-hook.c b/gnu/fd-hook.c
new file mode 100644 (file)
index 0000000..ac4423b
--- /dev/null
@@ -0,0 +1,118 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+   Copyright (C) 2009-2013 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
+   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 "fd-hook.h"
+
+#include <stdlib.h>
+
+/* Currently, this entire code is only needed for the handling of sockets
+   on native Windows platforms.  */
+#if WINDOWS_SOCKETS
+
+/* The first and last link in the doubly linked list.
+   Initially the list is empty.  */
+static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL };
+
+int
+execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary,
+                     int fd)
+{
+  if (remaining_list == &anchor)
+    /* End of list reached.  */
+    return primary (fd);
+  else
+    return remaining_list->private_close_fn (remaining_list->private_next,
+                                             primary, fd);
+}
+
+int
+execute_all_close_hooks (gl_close_fn primary, int fd)
+{
+  return execute_close_hooks (anchor.private_next, primary, fd);
+}
+
+int
+execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary,
+                     int fd, int request, void *arg)
+{
+  if (remaining_list == &anchor)
+    /* End of list reached.  */
+    return primary (fd, request, arg);
+  else
+    return remaining_list->private_ioctl_fn (remaining_list->private_next,
+                                             primary, fd, request, arg);
+}
+
+int
+execute_all_ioctl_hooks (gl_ioctl_fn primary,
+                         int fd, int request, void *arg)
+{
+  return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg);
+}
+
+void
+register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link)
+{
+  if (close_hook == NULL)
+    close_hook = execute_close_hooks;
+  if (ioctl_hook == NULL)
+    ioctl_hook = execute_ioctl_hooks;
+
+  if (link->private_next == NULL && link->private_prev == NULL)
+    {
+      /* Add the link to the doubly linked list.  */
+      link->private_next = anchor.private_next;
+      link->private_prev = &anchor;
+      link->private_close_fn = close_hook;
+      link->private_ioctl_fn = ioctl_hook;
+      anchor.private_next->private_prev = link;
+      anchor.private_next = link;
+    }
+  else
+    {
+      /* The link is already in use.  */
+      if (link->private_close_fn != close_hook
+          || link->private_ioctl_fn != ioctl_hook)
+        abort ();
+    }
+}
+
+void
+unregister_fd_hook (struct fd_hook *link)
+{
+  struct fd_hook *next = link->private_next;
+  struct fd_hook *prev = link->private_prev;
+
+  if (next != NULL && prev != NULL)
+    {
+      /* The link is in use.  Remove it from the doubly linked list.  */
+      prev->private_next = next;
+      next->private_prev = prev;
+      /* Clear the link, to mark it unused.  */
+      link->private_next = NULL;
+      link->private_prev = NULL;
+      link->private_close_fn = NULL;
+      link->private_ioctl_fn = NULL;
+    }
+}
+
+#endif
diff --git a/gnu/fd-hook.h b/gnu/fd-hook.h
new file mode 100644 (file)
index 0000000..5a9d77c
--- /dev/null
@@ -0,0 +1,121 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+   Copyright (C) 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/>.  */
+
+
+#ifndef FD_HOOK_H
+#define FD_HOOK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Currently, this entire code is only needed for the handling of sockets
+   on native Windows platforms.  */
+#if WINDOWS_SOCKETS
+
+
+/* Type of function that closes FD.  */
+typedef int (*gl_close_fn) (int fd);
+
+/* Type of function that applies a control request to FD.  */
+typedef int (*gl_ioctl_fn) (int fd, int request, void *arg);
+
+/* An element of the list of file descriptor hooks.
+   In CLOS (Common Lisp Object System) speak, it consists of an "around"
+   method for the close() function and an "around" method for the ioctl()
+   function.
+   The fields of this structure are considered private.  */
+struct fd_hook
+{
+  /* Doubly linked list.  */
+  struct fd_hook *private_next;
+  struct fd_hook *private_prev;
+  /* Function that treats the types of FD that it knows about and calls
+     execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback.  */
+  int (*private_close_fn) (const struct fd_hook *remaining_list,
+                           gl_close_fn primary,
+                           int fd);
+  /* Function that treats the types of FD that it knows about and calls
+     execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a
+     fallback.  */
+  int (*private_ioctl_fn) (const struct fd_hook *remaining_list,
+                           gl_ioctl_fn primary,
+                           int fd, int request, void *arg);
+};
+
+/* This type of function closes FD, applying special knowledge for the FD
+   types it knows about, and calls
+   execute_close_hooks (REMAINING_LIST, PRIMARY, FD)
+   for the other FD types.
+   In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+   and PRIMARY is the "primary" method for close().  */
+typedef int (*close_hook_fn) (const struct fd_hook *remaining_list,
+                              gl_close_fn primary,
+                              int fd);
+
+/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+   Return 0 or -1, like close() would do.  */
+extern int execute_close_hooks (const struct fd_hook *remaining_list,
+                                gl_close_fn primary,
+                                int fd);
+
+/* Execute all close hooks, with PRIMARY as "primary" method.
+   Return 0 or -1, like close() would do.  */
+extern int execute_all_close_hooks (gl_close_fn primary, int fd);
+
+/* This type of function applies a control request to FD, applying special
+   knowledge for the FD types it knows about, and calls
+   execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG)
+   for the other FD types.
+   In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+   and PRIMARY is the "primary" method for ioctl().  */
+typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list,
+                              gl_ioctl_fn primary,
+                              int fd, int request, void *arg);
+
+/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+   Return 0 or -1, like ioctl() would do.  */
+extern int execute_ioctl_hooks (const struct fd_hook *remaining_list,
+                                gl_ioctl_fn primary,
+                                int fd, int request, void *arg);
+
+/* Execute all ioctl hooks, with PRIMARY as "primary" method.
+   Return 0 or -1, like ioctl() would do.  */
+extern int execute_all_ioctl_hooks (gl_ioctl_fn primary,
+                                    int fd, int request, void *arg);
+
+/* Add a function pair to the list of file descriptor hooks.
+   CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change.
+   The LINK variable points to a piece of memory which is guaranteed to be
+   accessible until the corresponding call to unregister_fd_hook.  */
+extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook,
+                              struct fd_hook *link);
+
+/* Removes a hook from the list of file descriptor hooks.  */
+extern void unregister_fd_hook (struct fd_hook *link);
+
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FD_HOOK_H */
index 20df80038c69dd330464c2f9361e7082fcaa5873..c6d1f50a085e06844548daacefdca9fbdcaddaac 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Return a safer copy of a file descriptor.
 
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
index 5c5ac67acda3df647cade44c47f33a5191e1403c..a2fe98822f6afbe46e4ce2f72d504c44c755a6c1 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide a replacement fdopendir function
-   Copyright (C) 2004-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004-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
index b42d8cc1f8d5ec8beb6416e0a4b3a5dee7b5548a..b1748d56f47dcd0ae1825ecd26e2f29fc70a7de3 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Set file access and modification times.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
diff --git a/gnu/file-has-acl.c b/gnu/file-has-acl.c
new file mode 100644 (file)
index 0000000..6dca5d9
--- /dev/null
@@ -0,0 +1,920 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test whether a file has a nontrivial access control list.
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
+
+/* Without this pragma, gcc 4.7.0 20120126 may suggest that the
+   file_has_acl function might be candidate for attribute 'const'  */
+#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
+#endif
+
+#include <config.h>
+
+#include "acl.h"
+
+#include "acl-internal.h"
+
+
+#if USE_ACL && HAVE_ACL_GET_FILE
+
+# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+
+/* ACL is an ACL, from a file, stored as type ACL_TYPE_EXTENDED.
+   Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial.  */
+int
+acl_extended_nontrivial (acl_t acl)
+{
+  /* acl is non-trivial if it is non-empty.  */
+  return (acl_entries (acl) > 0);
+}
+
+# else /* Linux, FreeBSD, IRIX, Tru64 */
+
+/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS.
+   Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.
+   Return -1 and set errno upon failure to determine it.  */
+int
+acl_access_nontrivial (acl_t acl)
+{
+  /* acl is non-trivial if it has some entries other than for "user::",
+     "group::", and "other::".  Normally these three should be present
+     at least, allowing us to write
+        return (3 < acl_entries (acl));
+     but the following code is more robust.  */
+#  if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD */
+
+  acl_entry_t ace;
+  int got_one;
+
+  for (got_one = acl_get_entry (acl, ACL_FIRST_ENTRY, &ace);
+       got_one > 0;
+       got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace))
+    {
+      acl_tag_t tag;
+      if (acl_get_tag_type (ace, &tag) < 0)
+        return -1;
+      if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ || tag == ACL_OTHER))
+        return 1;
+    }
+  return got_one;
+
+#  else /* IRIX, Tru64 */
+#   if HAVE_ACL_TO_SHORT_TEXT /* IRIX */
+  /* Don't use acl_get_entry: it is undocumented.  */
+
+  int count = acl->acl_cnt;
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      acl_entry_t ace = &acl->acl_entry[i];
+      acl_tag_t tag = ace->ae_tag;
+
+      if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ
+            || tag == ACL_OTHER_OBJ))
+        return 1;
+    }
+  return 0;
+
+#   endif
+#   if HAVE_ACL_FREE_TEXT /* Tru64 */
+  /* Don't use acl_get_entry: it takes only one argument and does not work.  */
+
+  int count = acl->acl_num;
+  acl_entry_t ace;
+
+  for (ace = acl->acl_first; count > 0; ace = ace->next, count--)
+    {
+      acl_tag_t tag;
+      acl_perm_t perm;
+
+      tag = ace->entry->acl_type;
+      if (!(tag == ACL_USER_OBJ || tag == ACL_GROUP_OBJ || tag == ACL_OTHER))
+        return 1;
+
+      perm = ace->entry->acl_perm;
+      /* On Tru64, perm can also contain non-standard bits such as
+         PERM_INSERT, PERM_DELETE, PERM_MODIFY, PERM_LOOKUP, ... */
+      if ((perm & ~(ACL_READ | ACL_WRITE | ACL_EXECUTE)) != 0)
+        return 1;
+    }
+  return 0;
+
+#   endif
+#  endif
+}
+
+# endif
+
+
+#elif USE_ACL && HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
+
+/* Test an ACL retrieved with GETACL.
+   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_nontrivial (int count, aclent_t *entries)
+{
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      aclent_t *ace = &entries[i];
+
+      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
+         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
+         We don't need to check ace->a_id in these cases.  */
+      if (!(ace->a_type == USER_OBJ
+            || ace->a_type == GROUP_OBJ
+            || ace->a_type == OTHER_OBJ
+            /* Note: Cygwin does not return a CLASS_OBJ ("mask:") entry
+               sometimes.  */
+            || ace->a_type == CLASS_OBJ))
+        return 1;
+    }
+  return 0;
+}
+
+# ifdef ACE_GETACL
+
+/* A shortcut for a bitmask.  */
+#  define NEW_ACE_WRITEA_DATA (NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA)
+
+/* Test an ACL retrieved with ACE_GETACL.
+   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_ace_nontrivial (int count, ace_t *entries)
+{
+  int i;
+
+  /* The flags in the ace_t structure changed in a binary incompatible way
+     when ACL_NO_TRIVIAL etc. were introduced in <sys/acl.h> version 1.15.
+     How to distinguish the two conventions at runtime?
+     In the old convention, usually three ACEs have a_flags = ACE_OWNER /
+     ACE_GROUP / ACE_OTHER, in the range 0x0100..0x0400.  In the new
+     convention, these values are not used.  */
+  int old_convention = 0;
+
+  for (i = 0; i < count; i++)
+    if (entries[i].a_flags & (OLD_ACE_OWNER | OLD_ACE_GROUP | OLD_ACE_OTHER))
+      {
+        old_convention = 1;
+        break;
+      }
+
+  if (old_convention)
+    /* Running on Solaris 10.  */
+    for (i = 0; i < count; i++)
+      {
+        ace_t *ace = &entries[i];
+
+        /* Note:
+           If ace->a_flags = ACE_OWNER, ace->a_who is the st_uid from stat().
+           If ace->a_flags = ACE_GROUP, ace->a_who is the st_gid from stat().
+           We don't need to check ace->a_who in these cases.  */
+        if (!(ace->a_type == OLD_ALLOW
+              && (ace->a_flags == OLD_ACE_OWNER
+                  || ace->a_flags == OLD_ACE_GROUP
+                  || ace->a_flags == OLD_ACE_OTHER)))
+          return 1;
+      }
+  else
+    {
+      /* Running on Solaris 10 (newer version) or Solaris 11.  */
+      unsigned int access_masks[6] =
+        {
+          0, /* owner@ deny */
+          0, /* owner@ allow */
+          0, /* group@ deny */
+          0, /* group@ allow */
+          0, /* everyone@ deny */
+          0  /* everyone@ allow */
+        };
+
+      for (i = 0; i < count; i++)
+        {
+          ace_t *ace = &entries[i];
+          unsigned int index1;
+          unsigned int index2;
+
+          if (ace->a_type == NEW_ACE_ACCESS_ALLOWED_ACE_TYPE)
+            index1 = 1;
+          else if (ace->a_type == NEW_ACE_ACCESS_DENIED_ACE_TYPE)
+            index1 = 0;
+          else
+            return 1;
+
+          if (ace->a_flags == NEW_ACE_OWNER)
+            index2 = 0;
+          else if (ace->a_flags == (NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP))
+            index2 = 2;
+          else if (ace->a_flags == NEW_ACE_EVERYONE)
+            index2 = 4;
+          else
+            return 1;
+
+          access_masks[index1 + index2] |= ace->a_access_mask;
+        }
+
+      /* The same bit shouldn't be both allowed and denied.  */
+      if (access_masks[0] & access_masks[1])
+        return 1;
+      if (access_masks[2] & access_masks[3])
+        return 1;
+      if (access_masks[4] & access_masks[5])
+        return 1;
+
+      /* Check minimum masks.  */
+      if ((NEW_ACE_WRITE_NAMED_ATTRS
+           | NEW_ACE_WRITE_ATTRIBUTES
+           | NEW_ACE_WRITE_ACL
+           | NEW_ACE_WRITE_OWNER)
+          & ~ access_masks[1])
+        return 1;
+      access_masks[1] &= ~(NEW_ACE_WRITE_NAMED_ATTRS
+                           | NEW_ACE_WRITE_ATTRIBUTES
+                           | NEW_ACE_WRITE_ACL
+                           | NEW_ACE_WRITE_OWNER);
+      if ((NEW_ACE_READ_NAMED_ATTRS
+           | NEW_ACE_READ_ATTRIBUTES
+           | NEW_ACE_READ_ACL
+           | NEW_ACE_SYNCHRONIZE)
+          & ~ access_masks[5])
+        return 1;
+      access_masks[5] &= ~(NEW_ACE_READ_NAMED_ATTRS
+                           | NEW_ACE_READ_ATTRIBUTES
+                           | NEW_ACE_READ_ACL
+                           | NEW_ACE_SYNCHRONIZE);
+
+      /* Check the allowed or denied bits.  */
+      switch ((access_masks[0] | access_masks[1])
+              & ~(NEW_ACE_READ_NAMED_ATTRS
+                  | NEW_ACE_READ_ATTRIBUTES
+                  | NEW_ACE_READ_ACL
+                  | NEW_ACE_SYNCHRONIZE))
+        {
+        case 0:
+        case NEW_ACE_READ_DATA:
+        case                     NEW_ACE_WRITEA_DATA:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
+        case                                           NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
+        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+          break;
+        default:
+          return 1;
+        }
+      switch ((access_masks[2] | access_masks[3])
+              & ~(NEW_ACE_READ_NAMED_ATTRS
+                  | NEW_ACE_READ_ATTRIBUTES
+                  | NEW_ACE_READ_ACL
+                  | NEW_ACE_SYNCHRONIZE))
+        {
+        case 0:
+        case NEW_ACE_READ_DATA:
+        case                     NEW_ACE_WRITEA_DATA:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
+        case                                           NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
+        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+          break;
+        default:
+          return 1;
+        }
+      switch ((access_masks[4] | access_masks[5])
+              & ~(NEW_ACE_WRITE_NAMED_ATTRS
+                  | NEW_ACE_WRITE_ATTRIBUTES
+                  | NEW_ACE_WRITE_ACL
+                  | NEW_ACE_WRITE_OWNER))
+        {
+        case 0:
+        case NEW_ACE_READ_DATA:
+        case                     NEW_ACE_WRITEA_DATA:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA:
+        case                                           NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA |                       NEW_ACE_EXECUTE:
+        case                     NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+        case NEW_ACE_READ_DATA | NEW_ACE_WRITEA_DATA | NEW_ACE_EXECUTE:
+          break;
+        default:
+          return 1;
+        }
+
+      /* Check that the NEW_ACE_WRITE_DATA and NEW_ACE_APPEND_DATA bits are
+         either both allowed or both denied.  */
+      if (((access_masks[0] & NEW_ACE_WRITE_DATA) != 0)
+          != ((access_masks[0] & NEW_ACE_APPEND_DATA) != 0))
+        return 1;
+      if (((access_masks[2] & NEW_ACE_WRITE_DATA) != 0)
+          != ((access_masks[2] & NEW_ACE_APPEND_DATA) != 0))
+        return 1;
+      if (((access_masks[4] & NEW_ACE_WRITE_DATA) != 0)
+          != ((access_masks[4] & NEW_ACE_APPEND_DATA) != 0))
+        return 1;
+    }
+
+  return 0;
+}
+
+# endif
+
+#elif USE_ACL && HAVE_GETACL /* HP-UX */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_nontrivial (int count, struct acl_entry *entries, struct stat *sb)
+{
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      struct acl_entry *ace = &entries[i];
+
+      if (!((ace->uid == sb->st_uid && ace->gid == ACL_NSGROUP)
+            || (ace->uid == ACL_NSUSER && ace->gid == sb->st_gid)
+            || (ace->uid == ACL_NSUSER && ace->gid == ACL_NSGROUP)))
+        return 1;
+    }
+  return 0;
+}
+
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+aclv_nontrivial (int count, struct acl *entries)
+{
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      struct acl *ace = &entries[i];
+
+      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
+         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
+         We don't need to check ace->a_id in these cases.  */
+      if (!(ace->a_type == USER_OBJ /* no need to check ace->a_id here */
+            || ace->a_type == GROUP_OBJ /* no need to check ace->a_id here */
+            || ace->a_type == CLASS_OBJ
+            || ace->a_type == OTHER_OBJ))
+        return 1;
+    }
+  return 0;
+}
+
+# endif
+
+#elif USE_ACL && (HAVE_ACLX_GET || HAVE_STATACL) /* AIX */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_nontrivial (struct acl *a)
+{
+  /* The normal way to iterate through an ACL is like this:
+       struct acl_entry *ace;
+       for (ace = a->acl_ext; ace != acl_last (a); ace = acl_nxt (ace))
+         {
+           struct ace_id *aei;
+           switch (ace->ace_type)
+             {
+             case ACC_PERMIT:
+             case ACC_DENY:
+             case ACC_SPECIFY:
+               ...;
+             }
+           for (aei = ace->ace_id; aei != id_last (ace); aei = id_nxt (aei))
+             ...
+         }
+   */
+  return (acl_last (a) != a->acl_ext ? 1 : 0);
+}
+
+# if HAVE_ACLX_GET && defined ACL_AIX_WIP /* newer AIX */
+
+/* Return 1 if the given ACL is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_nfs4_nontrivial (nfs4_acl_int_t *a)
+{
+#  if 1 /* let's try this first */
+  return (a->aclEntryN > 0 ? 1 : 0);
+#  else
+  int count = a->aclEntryN;
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      nfs4_ace_int_t *ace = &a->aclEntry[i];
+
+      if (!((ace->flags & ACE4_ID_SPECIAL) != 0
+            && (ace->aceWho.special_whoid == ACE4_WHO_OWNER
+                || ace->aceWho.special_whoid == ACE4_WHO_GROUP
+                || ace->aceWho.special_whoid == ACE4_WHO_EVERYONE)
+            && ace->aceType == ACE4_ACCESS_ALLOWED_ACE_TYPE
+            && ace->aceFlags == 0
+            && (ace->aceMask & ~(ACE4_READ_DATA | ACE4_LIST_DIRECTORY
+                                 | ACE4_WRITE_DATA | ACE4_ADD_FILE
+                                 | ACE4_EXECUTE)) == 0))
+        return 1;
+    }
+  return 0;
+#  endif
+}
+
+# endif
+
+#elif USE_ACL && HAVE_ACLSORT /* NonStop Kernel */
+
+/* Test an ACL retrieved with ACL_GET.
+   Return 1 if the given ACL, consisting of COUNT entries, is non-trivial.
+   Return 0 if it is trivial, i.e. equivalent to a simple stat() mode.  */
+int
+acl_nontrivial (int count, struct acl *entries)
+{
+  int i;
+
+  for (i = 0; i < count; i++)
+    {
+      struct acl *ace = &entries[i];
+
+      /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
+         If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
+         We don't need to check ace->a_id in these cases.  */
+      if (!(ace->a_type == USER_OBJ /* no need to check ace->a_id here */
+            || ace->a_type == GROUP_OBJ /* no need to check ace->a_id here */
+            || ace->a_type == CLASS_OBJ
+            || ace->a_type == OTHER_OBJ))
+        return 1;
+    }
+  return 0;
+}
+
+#endif
+
+
+/* Return 1 if NAME has a nontrivial access control list, 0 if NAME
+   only has no or a base access control list, and -1 (setting errno)
+   on error.  SB must be set to the stat buffer of NAME, obtained
+   through stat() or lstat().  */
+
+int
+file_has_acl (char const *name, struct stat const *sb)
+{
+#if USE_ACL
+  if (! S_ISLNK (sb->st_mode))
+    {
+# if HAVE_ACL_GET_FILE
+
+      /* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
+      /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */
+      int ret;
+
+      if (HAVE_ACL_EXTENDED_FILE) /* Linux */
+        {
+          /* On Linux, acl_extended_file is an optimized function: It only
+             makes two calls to getxattr(), one for ACL_TYPE_ACCESS, one for
+             ACL_TYPE_DEFAULT.  */
+          ret = acl_extended_file (name);
+        }
+      else /* FreeBSD, Mac OS X, IRIX, Tru64 */
+        {
+#  if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
+          /* On Mac OS X, acl_get_file (name, ACL_TYPE_ACCESS)
+             and acl_get_file (name, ACL_TYPE_DEFAULT)
+             always return NULL / EINVAL.  There is no point in making
+             these two useless calls.  The real ACL is retrieved through
+             acl_get_file (name, ACL_TYPE_EXTENDED).  */
+          acl_t acl = acl_get_file (name, ACL_TYPE_EXTENDED);
+          if (acl)
+            {
+              ret = acl_extended_nontrivial (acl);
+              acl_free (acl);
+            }
+          else
+            ret = -1;
+#  else /* FreeBSD, IRIX, Tru64 */
+          acl_t acl = acl_get_file (name, ACL_TYPE_ACCESS);
+          if (acl)
+            {
+              int saved_errno;
+
+              ret = acl_access_nontrivial (acl);
+              saved_errno = errno;
+              acl_free (acl);
+              errno = saved_errno;
+#   if HAVE_ACL_FREE_TEXT /* Tru64 */
+              /* On OSF/1, acl_get_file (name, ACL_TYPE_DEFAULT) always
+                 returns NULL with errno not set.  There is no point in
+                 making this call.  */
+#   else /* FreeBSD, IRIX */
+              /* On Linux, FreeBSD, IRIX, acl_get_file (name, ACL_TYPE_ACCESS)
+                 and acl_get_file (name, ACL_TYPE_DEFAULT) on a directory
+                 either both succeed or both fail; it depends on the
+                 file system.  Therefore there is no point in making the second
+                 call if the first one already failed.  */
+              if (ret == 0 && S_ISDIR (sb->st_mode))
+                {
+                  acl = acl_get_file (name, ACL_TYPE_DEFAULT);
+                  if (acl)
+                    {
+                      ret = (0 < acl_entries (acl));
+                      acl_free (acl);
+                    }
+                  else
+                    ret = -1;
+                }
+#   endif
+            }
+          else
+            ret = -1;
+#  endif
+        }
+      if (ret < 0)
+        return - acl_errno_valid (errno);
+      return ret;
+
+# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
+
+#  if defined ACL_NO_TRIVIAL
+
+      /* Solaris 10 (newer version), which has additional API declared in
+         <sys/acl.h> (acl_t) and implemented in libsec (acl_set, acl_trivial,
+         acl_fromtext, ...).  */
+      return acl_trivial (name);
+
+#  else /* Solaris, Cygwin, general case */
+
+      /* Solaris 2.5 through Solaris 10, Cygwin, and contemporaneous versions
+         of Unixware.  The acl() call returns the access and default ACL both
+         at once.  */
+      {
+        /* Initially, try to read the entries into a stack-allocated buffer.
+           Use malloc if it does not fit.  */
+        enum
+          {
+            alloc_init = 4000 / sizeof (aclent_t), /* >= 3 */
+            alloc_max = MIN (INT_MAX, SIZE_MAX / sizeof (aclent_t))
+          };
+        aclent_t buf[alloc_init];
+        size_t alloc = alloc_init;
+        aclent_t *entries = buf;
+        aclent_t *malloced = NULL;
+        int count;
+
+        for (;;)
+          {
+            count = acl (name, GETACL, alloc, entries);
+            if (count < 0 && errno == ENOSPC)
+              {
+                /* Increase the size of the buffer.  */
+                free (malloced);
+                if (alloc > alloc_max / 2)
+                  {
+                    errno = ENOMEM;
+                    return -1;
+                  }
+                alloc = 2 * alloc; /* <= alloc_max */
+                entries = malloced =
+                  (aclent_t *) malloc (alloc * sizeof (aclent_t));
+                if (entries == NULL)
+                  {
+                    errno = ENOMEM;
+                    return -1;
+                  }
+                continue;
+              }
+            break;
+          }
+        if (count < 0)
+          {
+            if (errno == ENOSYS || errno == ENOTSUP)
+              ;
+            else
+              {
+                int saved_errno = errno;
+                free (malloced);
+                errno = saved_errno;
+                return -1;
+              }
+          }
+        else if (count == 0)
+          ;
+        else
+          {
+            /* Don't use MIN_ACL_ENTRIES:  It's set to 4 on Cygwin, but Cygwin
+               returns only 3 entries for files with no ACL.  But this is safe:
+               If there are more than 4 entries, there cannot be only the
+               "user::", "group::", "other:", and "mask:" entries.  */
+            if (count > 4)
+              {
+                free (malloced);
+                return 1;
+              }
+
+            if (acl_nontrivial (count, entries))
+              {
+                free (malloced);
+                return 1;
+              }
+          }
+        free (malloced);
+      }
+
+#   ifdef ACE_GETACL
+      /* Solaris also has a different variant of ACLs, used in ZFS and NFSv4
+         file systems (whereas the other ones are used in UFS file systems).  */
+      {
+        /* Initially, try to read the entries into a stack-allocated buffer.
+           Use malloc if it does not fit.  */
+        enum
+          {
+            alloc_init = 4000 / sizeof (ace_t), /* >= 3 */
+            alloc_max = MIN (INT_MAX, SIZE_MAX / sizeof (ace_t))
+          };
+        ace_t buf[alloc_init];
+        size_t alloc = alloc_init;
+        ace_t *entries = buf;
+        ace_t *malloced = NULL;
+        int count;
+
+        for (;;)
+          {
+            count = acl (name, ACE_GETACL, alloc, entries);
+            if (count < 0 && errno == ENOSPC)
+              {
+                /* Increase the size of the buffer.  */
+                free (malloced);
+                if (alloc > alloc_max / 2)
+                  {
+                    errno = ENOMEM;
+                    return -1;
+                  }
+                alloc = 2 * alloc; /* <= alloc_max */
+                entries = malloced = (ace_t *) malloc (alloc * sizeof (ace_t));
+                if (entries == NULL)
+                  {
+                    errno = ENOMEM;
+                    return -1;
+                  }
+                continue;
+              }
+            break;
+          }
+        if (count < 0)
+          {
+            if (errno == ENOSYS || errno == EINVAL)
+              ;
+            else
+              {
+                int saved_errno = errno;
+                free (malloced);
+                errno = saved_errno;
+                return -1;
+              }
+          }
+        else if (count == 0)
+          ;
+        else
+          {
+            /* In the old (original Solaris 10) convention:
+               If there are more than 3 entries, there cannot be only the
+               ACE_OWNER, ACE_GROUP, ACE_OTHER entries.
+               In the newer Solaris 10 and Solaris 11 convention:
+               If there are more than 6 entries, there cannot be only the
+               ACE_OWNER, ACE_GROUP, ACE_EVERYONE entries, each once with
+               NEW_ACE_ACCESS_ALLOWED_ACE_TYPE and once with
+               NEW_ACE_ACCESS_DENIED_ACE_TYPE.  */
+            if (count > 6)
+              {
+                free (malloced);
+                return 1;
+              }
+
+            if (acl_ace_nontrivial (count, entries))
+              {
+                free (malloced);
+                return 1;
+              }
+          }
+        free (malloced);
+      }
+#   endif
+
+      return 0;
+#  endif
+
+# elif HAVE_GETACL /* HP-UX */
+
+      {
+        struct acl_entry entries[NACLENTRIES];
+        int count;
+
+        count = getacl (name, NACLENTRIES, entries);
+
+        if (count < 0)
+          {
+            /* ENOSYS is seen on newer HP-UX versions.
+               EOPNOTSUPP is typically seen on NFS mounts.
+               ENOTSUP was seen on Quantum StorNext file systems (cvfs).  */
+            if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+              ;
+            else
+              return -1;
+          }
+        else if (count == 0)
+          return 0;
+        else /* count > 0 */
+          {
+            if (count > NACLENTRIES)
+              /* If NACLENTRIES cannot be trusted, use dynamic memory
+                 allocation.  */
+              abort ();
+
+            /* If there are more than 3 entries, there cannot be only the
+               (uid,%), (%,gid), (%,%) entries.  */
+            if (count > 3)
+              return 1;
+
+            {
+              struct stat statbuf;
+
+              if (stat (name, &statbuf) < 0)
+                return -1;
+
+              return acl_nontrivial (count, entries, &statbuf);
+            }
+          }
+      }
+
+#  if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+      {
+        struct acl entries[NACLVENTRIES];
+        int count;
+
+        count = acl ((char *) name, ACL_GET, NACLVENTRIES, entries);
+
+        if (count < 0)
+          {
+            /* EOPNOTSUPP is seen on NFS in HP-UX 11.11, 11.23.
+               EINVAL is seen on NFS in HP-UX 11.31.  */
+            if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+              ;
+            else
+              return -1;
+          }
+        else if (count == 0)
+          return 0;
+        else /* count > 0 */
+          {
+            if (count > NACLVENTRIES)
+              /* If NACLVENTRIES cannot be trusted, use dynamic memory
+                 allocation.  */
+              abort ();
+
+            /* If there are more than 4 entries, there cannot be only the
+               four base ACL entries.  */
+            if (count > 4)
+              return 1;
+
+            return aclv_nontrivial (count, entries);
+          }
+      }
+
+#  endif
+
+# elif HAVE_ACLX_GET && defined ACL_AIX_WIP /* AIX */
+
+      acl_type_t type;
+      char aclbuf[1024];
+      void *acl = aclbuf;
+      size_t aclsize = sizeof (aclbuf);
+      mode_t mode;
+
+      for (;;)
+        {
+          /* The docs say that type being 0 is equivalent to ACL_ANY, but it
+             is not true, in AIX 5.3.  */
+          type.u64 = ACL_ANY;
+          if (aclx_get (name, 0, &type, aclbuf, &aclsize, &mode) >= 0)
+            break;
+          if (errno == ENOSYS)
+            return 0;
+          if (errno != ENOSPC)
+            {
+              if (acl != aclbuf)
+                {
+                  int saved_errno = errno;
+                  free (acl);
+                  errno = saved_errno;
+                }
+              return -1;
+            }
+          aclsize = 2 * aclsize;
+          if (acl != aclbuf)
+            free (acl);
+          acl = malloc (aclsize);
+          if (acl == NULL)
+            {
+              errno = ENOMEM;
+              return -1;
+            }
+        }
+
+      if (type.u64 == ACL_AIXC)
+        {
+          int result = acl_nontrivial ((struct acl *) acl);
+          if (acl != aclbuf)
+            free (acl);
+          return result;
+        }
+      else if (type.u64 == ACL_NFS4)
+        {
+          int result = acl_nfs4_nontrivial ((nfs4_acl_int_t *) acl);
+          if (acl != aclbuf)
+            free (acl);
+          return result;
+        }
+      else
+        {
+          /* A newer type of ACL has been introduced in the system.
+             We should better support it.  */
+          if (acl != aclbuf)
+            free (acl);
+          errno = EINVAL;
+          return -1;
+        }
+
+# elif HAVE_STATACL /* older AIX */
+
+      union { struct acl a; char room[4096]; } u;
+
+      if (statacl (name, STX_NORMAL, &u.a, sizeof (u)) < 0)
+        return -1;
+
+      return acl_nontrivial (&u.a);
+
+# elif HAVE_ACLSORT /* NonStop Kernel */
+
+      {
+        struct acl entries[NACLENTRIES];
+        int count;
+
+        count = acl ((char *) name, ACL_GET, NACLENTRIES, entries);
+
+        if (count < 0)
+          {
+            if (errno == ENOSYS || errno == ENOTSUP)
+              ;
+            else
+              return -1;
+          }
+        else if (count == 0)
+          return 0;
+        else /* count > 0 */
+          {
+            if (count > NACLENTRIES)
+              /* If NACLENTRIES cannot be trusted, use dynamic memory
+                 allocation.  */
+              abort ();
+
+            /* If there are more than 4 entries, there cannot be only the
+               four base ACL entries.  */
+            if (count > 4)
+              return 1;
+
+            return acl_nontrivial (count, entries);
+          }
+      }
+
+# endif
+    }
+#endif
+
+  return 0;
+}
index 44e0e9b4a60f230826a64789a328dd37791f7d1c..17ffe6a15358b03d43cddace01050225a866f341 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert file size to number of blocks on System V-like machines.
 
-   Copyright (C) 1990, 1997-1999, 2004-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1997-1999, 2004-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/filename.h b/gnu/filename.h
new file mode 100644 (file)
index 0000000..37e2469
--- /dev/null
@@ -0,0 +1,56 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Basic filename support macros.
+   Copyright (C) 2001-2004, 2007-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/>.  */
+
+#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 1969e21639207e47b7552ff258aa1c11a5c22204..2256630b200449488dedc164bcabd33bffabd059 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 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
@@ -36,7 +36,7 @@
 /* Return the longest suffix of F that is a relative file name.
    If it has no such suffix, return the empty string.  */
 
-static char const *
+static char const * _GL_ATTRIBUTE_PURE
 longest_relative_suffix (char const *f)
 {
   for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++)
index b3d876a54786f977f6decb70059daffb09d39069..d2e1b925215bba81b05a2bf813b305ee65b863a4 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2011 Free Software
+   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 6aab058df7cf6b333bd09e5998e2ea9aa032e619..6bc201cf4f1fc1c909e7deb2753ed2caa69076be 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Supplemental information about the floating-point formats.
-   Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _FLOATPLUS_H
 #define _FLOATPLUS_H
diff --git a/gnu/float.c b/gnu/float.c
new file mode 100644 (file)
index 0000000..948c765
--- /dev/null
@@ -0,0 +1,35 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Auxiliary definitions for <float.h>.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it 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 <float.h>
+
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+const union gl_long_double_union gl_LDBL_MAX =
+  { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } };
+#elif defined __i386__
+const union gl_long_double_union gl_LDBL_MAX =
+  { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } };
+#else
+/* This declaration is solely to ensure that after preprocessing
+   this file is never empty.  */
+typedef int dummy;
+#endif
index ddc3b6c1374595b2464fbfec2ef785522fdd8f7d..c52c500ebd725d49164bd9b5a4f3969e4986f81b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A correct <float.h>.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
@@ -17,7 +17,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/>.  */
 
-#ifndef _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_FLOAT_H@
 
-#ifndef _GL_FLOAT_H
-#define _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
+#define _@GUARD_PREFIX@_FLOAT_H
 
 /* 'long double' properties.  */
+
 #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
 /* Number of mantissa units, in base FLT_RADIX.  */
 # undef LDBL_MANT_DIG
 # define LDBL_MAX_10_EXP 4932
 #endif
 
-#endif /* _GL_FLOAT_H */
-#endif /* _GL_FLOAT_H */
+/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
+   precision in the compiler but 64 bits of precision at runtime.  See
+   <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>.  */
+#if defined __i386__ && defined __FreeBSD__
+/* Number of mantissa units, in base FLT_RADIX.  */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG   64
+/* Number of decimal digits that is sufficient for representing a number.  */
+# undef LDBL_DIG
+# define LDBL_DIG        18
+/* x-1 where x is the smallest representable number > 1.  */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number.  */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number.  */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP    16384
+/* Minimum positive normalized number.  */
+# undef LDBL_MIN
+# define LDBL_MIN        3.3621031431120935E-4932L /* = 0x1p-16382L */
+/* Maximum representable finite number.  */
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
+   But the largest literal that GCC allows us to write is
+   0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }.
+   So, define it like this through a reference to an external variable
+
+     const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 };
+     extern const long double LDBL_MAX;
+
+   Unfortunately, this is not a constant expression.  */
+union gl_long_double_union
+  {
+    struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd;
+    long double ld;
+  };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+/* Minimum e such that 10^e is in the range of normalized numbers.  */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers.  */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
+   wrong.
+   On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong.  */
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
+   It is not easy to define:
+     #define LDBL_MAX 1.79769313486231580793728971405302307166e308L
+   is too small, whereas
+     #define LDBL_MAX 1.79769313486231580793728971405302307167e308L
+   is too large.  Apparently a bug in GCC decimal-to-binary conversion.
+   Also, I can't get values larger than
+     #define LDBL63 ((long double) (1ULL << 63))
+     #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL)
+   which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }.
+   So, define it like this through a reference to an external variable
+
+     const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL };
+     extern const long double LDBL_MAX;
+
+   or through a pointer cast
+
+     #define LDBL_MAX \
+       (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL })
+
+   Unfortunately, this is not a constant expression, and the latter expression
+   does not work well when GCC is optimizing..  */
+union gl_long_double_union
+  {
+    struct { double hi; double lo; } dd;
+    long double ld;
+  };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+#endif
+
+/* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong.
+   On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON
+   are wrong.  */
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 106
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
+#  undef LDBL_MIN_10_EXP
+#  define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+#  undef LDBL_MIN
+#  define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+#  undef LDBL_EPSILON
+#  define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */
+# endif
+#endif
+
+#if @REPLACE_ITOLD@
+/* Pull in a function that fixes the 'int' to 'long double' conversion
+   of glibc 2.7.  */
+extern
+# ifdef __cplusplus
+"C"
+# endif
+void _Qp_itoq (long double *, int);
+static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq;
+#endif
+
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
index ecfc8fb0cbf81c3d851ac4166583ae34462d171c..d6d636313a9105794baa0447b58b519036cb9430 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991-1993, 1996-2007, 2009-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2007, 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
@@ -13,8 +13,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBC
 # include <config.h>
@@ -44,7 +43,7 @@
   (HAVE_WCTYPE_H && HAVE_BTOWC && HAVE_ISWCTYPE \
    && HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY))
 
-/* For platform which support the ISO C amendement 1 functionality we
+/* For platform which support the ISO C amendment 1 functionality we
    support user defined character classes.  */
 #if defined _LIBC || WIDE_CHAR_SUPPORT
 # include <wctype.h>
@@ -80,7 +79,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
    Library, but also included in many other GNU distributions.  Compiling
    and linking in this code is a waste when using the GNU C library
    (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
+   program understand 'configure --with-gnu-libc' and omit the object files,
    it is simpler to just do this in the source for each such file.  */
 
 #if defined _LIBC || !defined __GNU_LIBRARY__ || !HAVE_FNMATCH_GNU
@@ -94,7 +93,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
 
 # if defined _LIBC || WIDE_CHAR_SUPPORT
 /* The GNU C library provides support for user-defined character classes
-   and the functions from ISO C amendement 1.  */
+   and the functions from ISO C amendment 1.  */
 #  ifdef CHARCLASS_NAME_MAX
 #   define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
 #  else
@@ -121,7 +120,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags);
 #  endif
 
 # else
-#  define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */
+#  define CHAR_CLASS_MAX_LENGTH  6 /* Namely, 'xdigit'.  */
 
 #  define IS_CHAR_CLASS(string)                                               \
    (STREQ (string, "alpha") || STREQ (string, "upper")                        \
@@ -170,7 +169,6 @@ static int posixly_correct;
 #  endif
 # endif
 # define MEMCHR(S, C, N) memchr (S, C, N)
-# define STRCOLL(S1, S2) strcoll (S1, S2)
 # include "fnmatch_loop.c"
 
 
@@ -198,7 +196,6 @@ static int posixly_correct;
 #   endif
 #  endif
 #  define MEMCHR(S, C, N) wmemchr (S, C, N)
-#  define STRCOLL(S1, S2) wcscoll (S1, S2)
 #  define WIDE_CHAR_VERSION 1
 
 #  undef IS_CHAR_CLASS
index 6f60fcf72a43784ecaf8e38cddc060b1c8e636ed..c8f7132c1105c9b7d892fc811ba451770c5280bf 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2011 Free
+/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2013 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
@@ -16,8 +16,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _FNMATCH_H
 #define _FNMATCH_H      1
@@ -34,23 +33,23 @@ extern "C" {
 #undef  FNM_NOESCAPE
 #undef  FNM_PERIOD
 
-/* Bits set in the FLAGS argument to `fnmatch'.  */
-#define FNM_PATHNAME    (1 << 0) /* No wildcard can ever match `/'.  */
+/* Bits set in the FLAGS argument to 'fnmatch'.  */
+#define FNM_PATHNAME    (1 << 0) /* No wildcard can ever match '/'.  */
 #define FNM_NOESCAPE    (1 << 1) /* Backslashes don't quote special chars.  */
-#define FNM_PERIOD      (1 << 2) /* Leading `.' is matched only explicitly.  */
+#define FNM_PERIOD      (1 << 2) /* Leading '.' is matched only explicitly.  */
 
 #if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
 # define FNM_FILE_NAME   FNM_PATHNAME   /* Preferred GNU name.  */
-# define FNM_LEADING_DIR (1 << 3)       /* Ignore `/...' after a match.  */
+# define FNM_LEADING_DIR (1 << 3)       /* Ignore '/...' after a match.  */
 # define FNM_CASEFOLD    (1 << 4)       /* Compare without regard to case.  */
 # define FNM_EXTMATCH    (1 << 5)       /* Use ksh-like extended matching. */
 #endif
 
-/* Value returned by `fnmatch' if STRING does not match PATTERN.  */
+/* Value returned by 'fnmatch' if STRING does not match PATTERN.  */
 #define FNM_NOMATCH     1
 
 /* This value is returned if the implementation does not support
-   `fnmatch'.  Since this is not the case here it will never be
+   'fnmatch'.  Since this is not the case here it will never be
    returned but the conformance test suites still require the symbol
    to be defined.  */
 #ifdef _XOPEN_SOURCE
index f083cc2cd119c02e41f087b3615e9ce1dd8abcf4..19955061ac78818f8c34e01b87eb9939267acf3b 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991-1993, 1996-2006, 2009-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2006, 2009-2013 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Match STRING against the file name pattern PATTERN, returning zero if
    it matches, nonzero if not.  */
@@ -202,6 +201,8 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
         case L_('['):
           {
             /* Nonzero if the sense of the character class is inverted.  */
+            const CHAR *p_init = p;
+            const CHAR *n_init = n;
             register bool not;
             CHAR cold;
             UCHAR fn;
@@ -216,7 +217,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
               return FNM_NOMATCH;
 
             if (*n == L_('/') && (flags & FNM_FILE_NAME))
-              /* `/' cannot be matched.  */
+              /* '/' cannot be matched.  */
               return FNM_NOMATCH;
 
             not = (*p == L_('!') || (posixly_correct < 0 && *p == L_('^')));
@@ -382,7 +383,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                           {
                             /* We found a table entry.  Now see whether the
                                character we are currently at has the same
-                               equivalance class value.  */
+                               equivalence class value.  */
                             int len = weights[idx & 0xffffff];
                             int32_t idx2;
                             const UCHAR *np = (const UCHAR *) n;
@@ -412,8 +413,13 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                   }
 #endif
                 else if (c == L_('\0'))
-                  /* [ (unterminated) loses.  */
-                  return FNM_NOMATCH;
+                  {
+                    /* [ unterminated, treat as normal character.  */
+                    p = p_init;
+                    n = n_init;
+                    c = L_('[');
+                    goto normal_match;
+                  }
                 else
                   {
                     bool is_range = false;
@@ -631,7 +637,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                         UCHAR cend = *p++;
 
 # ifdef WIDE_CHAR_VERSION
-                        /* Search in the `names' array for the characters.  */
+                        /* Search in the 'names' array for the characters.  */
                         fcollseq = __collseq_table_lookup (collseq, fn);
                         if (fcollseq == ~((uint32_t) 0))
                           /* XXX We don't know anything about the character
@@ -834,7 +840,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 #else
                         /* We use a boring value comparison of the character
                            values.  This is better than comparing using
-                           `strcoll' since the latter would have surprising
+                           'strcoll' since the latter would have surprising
                            and sometimes fatal consequences.  */
                         UCHAR cend = *p++;
 
@@ -1151,7 +1157,7 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 
     case L_('@'):
       do
-        /* I cannot believe it but `strcat' is actually acceptable
+        /* I cannot believe it but 'strcat' is actually acceptable
            here.  Match the entire string with the prefix from the
            pattern list and the rest of the pattern following the
            pattern list.  */
@@ -1209,7 +1215,6 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 #undef END
 #undef MEMPCPY
 #undef MEMCHR
-#undef STRCOLL
 #undef STRLEN
 #undef STRCAT
 #undef L_
index 2792807c235873dea4787887eb4798ed265bd866..dcca8378696f5203c738049f3a43ed0f72304581 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* fpending.c -- return the number of pending output bytes on a stream
-   Copyright (C) 2000, 2004, 2006-2007, 2009-2011 Free Software Foundation,
+   Copyright (C) 2000, 2004, 2006-2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index e3fc1c31e875419f54f9af58f5b6db5f96ce23ed..6dfc099a96f7a3a62acfa9b82583d2b3697972d7 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Declare __fpending.
 
-   Copyright (C) 2000, 2003, 2005-2006, 2009-2011 Free Software Foundation,
+   Copyright (C) 2000, 2003, 2005-2006, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
 #include <stddef.h>
 #include <stdio.h>
 
-#ifndef HAVE_DECL___FPENDING
-"this configure-time declaration test was not run"
-#endif
-
 #if HAVE_DECL___FPENDING
 # if HAVE_STDIO_EXT_H
 #  include <stdio_ext.h>
diff --git a/gnu/fseek.c b/gnu/fseek.c
new file mode 100644 (file)
index 0000000..cfcc571
--- /dev/null
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An fseek() function that, together with fflush(), is POSIX compliant.
+   Copyright (C) 2007, 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.  */
+#include <stdio.h>
+
+/* Get off_t.  */
+#include <unistd.h>
+
+int
+fseek (FILE *fp, long offset, int whence)
+{
+  /* Use the replacement fseeko function with all its workarounds.  */
+  return fseeko (fp, (off_t)offset, whence);
+}
index 93e400d4642132c99d987c352a59247155384e4e..7c1ad9b4026a8e15b566bc7f98afad55b63d9254 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An fseeko() function that, together with fflush(), is POSIX compliant.
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
 /* Specification.  */
 #include <stdio.h>
 
-/* Get off_t and lseek.  */
+/* Get off_t, lseek, _POSIX_VERSION.  */
 #include <unistd.h>
 
 #include "stdio-impl.h"
@@ -34,6 +33,14 @@ fseeko (FILE *fp, off_t offset, int whence)
 # undef fseek
 # define fseeko fseek
 #endif
+#if _GL_WINDOWS_64_BIT_OFF_T
+# undef fseeko
+# if HAVE__FSEEKI64 /* msvc, mingw64 */
+#  define fseeko _fseeki64
+# else /* mingw */
+#  define fseeko fseeko64
+# endif
+#endif
 {
 #if LSEEK_PIPE_BROKEN
   /* mingw gives bogus answers rather than failure on non-seekable files.  */
@@ -46,7 +53,7 @@ fseeko (FILE *fp, off_t offset, int whence)
   if (fp->_IO_read_end == fp->_IO_read_ptr
       && fp->_IO_write_ptr == fp->_IO_write_base
       && fp->_IO_save_base == NULL)
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 # if defined __SL64 && defined __SCLE /* Cygwin */
   if ((fp->_flags & __SL64) == 0)
     {
@@ -71,6 +78,9 @@ fseeko (FILE *fp, off_t offset, int whence)
       && fp->_rcount == 0
       && fp->_wcount == 0
       && fp->_ungetc_count == 0)
+#elif defined __minix               /* Minix */
+  if (fp_->_ptr == fp_->_buf
+      && (fp_->_ptr == NULL || fp_->_count == 0))
 #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
   if (fp_->_ptr == fp_->_base
       && (fp_->_ptr == NULL || fp_->_cnt == 0))
@@ -88,21 +98,26 @@ fseeko (FILE *fp, off_t offset, int whence)
       && fp->__get_limit == fp->__bufp
       && fp->__put_limit == fp->__bufp
       && !fp->__pushed_back)
+#elif defined EPLAN9                /* Plan9 */
+  if (fp->rp == fp->buf
+      && fp->wp == fp->buf)
+#elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION
+  /* Cross-compiling to some other system advertising conformance to
+     POSIX.1-2008 or later.  Assume fseeko and fflush work as advertised.
+     If this assumption is incorrect, please report the bug to
+     bug-gnulib.  */
+  if (0)
 #else
-  #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib."
+  #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
 #endif
     {
-      /* We get here when an fflush() call immediately preceded this one.  We
-         know there are no buffers.
-         POSIX requires us to modify the file descriptor's position.
-         But we cannot position beyond end of file here.  */
-      off_t pos =
-        lseek (fileno (fp),
-               whence == SEEK_END && offset > 0 ? 0 : offset,
-               whence);
+      /* We get here when an fflush() call immediately preceded this one (or
+         if ftell() has created buffers but no I/O has occurred on a
+         newly-opened stream).  We know there are no buffers.  */
+      off_t pos = lseek (fileno (fp), offset, whence);
       if (pos == -1)
         {
-#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
           fp_->_flags &= ~__SOFF;
 #endif
           return -1;
@@ -110,7 +125,8 @@ fseeko (FILE *fp, off_t offset, int whence)
 
 #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
       fp->_flags &= ~_IO_EOF_SEEN;
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+      fp->_offset = pos;
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 # if defined __CYGWIN__
       /* fp_->_offset is typed as an integer.  */
       fp_->_offset = pos;
@@ -139,10 +155,7 @@ fseeko (FILE *fp, off_t offset, int whence)
       fp->__offset = pos;
       fp->__eof = 0;
 #endif
-      /* If we were not requested to position beyond end of file, we're
-         done.  */
-      if (!(whence == SEEK_END && offset > 0))
-        return 0;
+      return 0;
     }
   return fseeko (fp, offset, whence);
 }
diff --git a/gnu/fstat.c b/gnu/fstat.c
new file mode 100644 (file)
index 0000000..12a8bb6
--- /dev/null
@@ -0,0 +1,90 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* fstat() replacement.
+   Copyright (C) 2011-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/>.  */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to
+   rpl_fstat.  */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of fstat.  It might be defined as a macro.  */
+#include <sys/types.h>
+#include <sys/stat.h>
+#if _GL_WINDOWS_64_BIT_ST_SIZE
+# undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
+# define stat _stati64
+# undef fstat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
+# define fstat _fstati64
+#endif
+#undef __need_system_sys_stat_h
+
+static int
+orig_fstat (int fd, struct stat *buf)
+{
+  return fstat (fd, buf);
+}
+
+/* Specification.  */
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+# include "msvc-inval.h"
+#endif
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+fstat_nothrow (int fd, struct stat *buf)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = orig_fstat (fd, buf);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define fstat_nothrow orig_fstat
+#endif
+
+int
+rpl_fstat (int fd, struct stat *buf)
+{
+#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY
+  /* Handle the case when rpl_open() used a dummy file descriptor to work
+     around an open() that can't normally visit directories.  */
+  const char *name = _gl_directory_name (fd);
+  if (name != NULL)
+    return stat (name, buf);
+#endif
+
+  return fstat_nothrow (fd, buf);
+}
index 37c38f0a79d6d2057d8eddabd427480193ec4a07..c4ab81a679844f6032e77439891bcea5b22c08d5 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around an fstatat bug on Solaris 9.
 
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 
 /* Written by Paul Eggert and Jim Meyering.  */
 
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_fstatat doesn't recurse to
+   rpl_fstatat.  */
+#define __need_system_sys_stat_h
 #include <config.h>
 
+/* Get the original definition of fstatat.  It might be defined as a macro.  */
+#include <sys/types.h>
 #include <sys/stat.h>
+#undef __need_system_sys_stat_h
+
+#if HAVE_FSTATAT
+static int
+orig_fstatat (int fd, char const *filename, struct stat *buf, int flags)
+{
+  return fstatat (fd, filename, buf, flags);
+}
+#endif
+
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+#include "sys/stat.h"
 
 #include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 
-#if HAVE_FSTATAT
+#if HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG
 
-# undef fstatat
+# ifndef LSTAT_FOLLOWS_SLASHED_SYMLINK
+#  define LSTAT_FOLLOWS_SLASHED_SYMLINK 0
+# endif
 
 /* fstatat should always follow symbolic links that end in /, but on
    Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified.
    Likewise, trailing slash on a non-directory should be an error.
    These are the same problems that lstat.c and stat.c address, so
-   solve it in a similar way.  */
+   solve it in a similar way.
+
+   AIX 7.1 fstatat (AT_FDCWD, ..., 0) always fails, which is a bug.
+   Work around this bug if FSTATAT_AT_FDCWD_0_BROKEN is nonzero.  */
 
 int
 rpl_fstatat (int fd, char const *file, struct stat *st, int flag)
 {
-  int result = fstatat (fd, file, st, flag);
+  int result = orig_fstatat (fd, file, st, flag);
   size_t len;
 
-  if (result != 0)
+  if (LSTAT_FOLLOWS_SLASHED_SYMLINK || result != 0)
     return result;
   len = strlen (file);
   if (flag & AT_SYMLINK_NOFOLLOW)
@@ -56,7 +81,7 @@ rpl_fstatat (int fd, char const *file, struct stat *st, int flag)
           errno = ENOTDIR;
           return -1;
         }
-      result = fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW);
+      result = orig_fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW);
     }
   /* Fix stat behavior.  */
   if (result == 0 && !S_ISDIR (st->st_mode) && file[len - 1] == '/')
@@ -67,20 +92,20 @@ rpl_fstatat (int fd, char const *file, struct stat *st, int flag)
   return result;
 }
 
-#else /* !HAVE_FSTATAT */
+#else /* ! (HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG) */
 
-/* On mingw, the gnulib <sys/stat.h> defines `stat' as a function-like
+/* On mingw, the gnulib <sys/stat.h> defines 'stat' as a function-like
    macro; but using it in AT_FUNC_F2 causes compilation failure
    because the preprocessor sees a use of a macro that requires two
    arguments but is only given one.  Hence, we need an inline
    forwarder to get past the preprocessor.  */
-static inline int
+static int
 stat_func (char const *name, struct stat *st)
 {
   return stat (name, st);
 }
 
-/* Likewise, if there is no native `lstat', then the gnulib
+/* Likewise, if there is no native 'lstat', then the gnulib
    <sys/stat.h> defined it as stat, which also needs adjustment.  */
 # if !HAVE_LSTAT
 #  undef lstat
index 9b325a723007cf6d6be9456f488acb08fffc2645..b24549e539b18a765e97026f6f207ecb00329e3e 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to read and write that retries (if necessary) until complete.
 
-   Copyright (C) 1993-1994, 1997-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 1997-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
index 840b37efd4942609fd96600c20ca1d4d75ccf091..059c6a27a108c7556856f0ff8c5ea6a29c16fb38 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to write() that writes all it is asked to write.
 
-   Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 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
index ac30b035e9b846ec2501f7deaed54f4932de07ab..09c7b777fce3fa1b286454e29d0ad81abe6e8f5d 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Set the access and modification time of an open fd.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
diff --git a/gnu/getcwd-lgpl.c b/gnu/getcwd-lgpl.c
new file mode 100644 (file)
index 0000000..f197a11
--- /dev/null
@@ -0,0 +1,128 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2011-2013 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 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 <unistd.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if GNULIB_GETCWD
+/* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use.  */
+typedef int dummy;
+#else
+
+/* Get the name of the current working directory, and put it in SIZE
+   bytes of BUF.  Returns NULL if the directory couldn't be determined
+   (perhaps because the absolute name was longer than PATH_MAX, or
+   because of missing read/search permissions on parent directories)
+   or SIZE was too small.  If successful, returns BUF.  If BUF is
+   NULL, an array is allocated with 'malloc'; the array is SIZE bytes
+   long, unless SIZE == 0, in which case it is as big as
+   necessary.  */
+
+# undef getcwd
+char *
+rpl_getcwd (char *buf, size_t size)
+{
+  char *ptr;
+  char *result;
+
+  /* Handle single size operations.  */
+  if (buf)
+    {
+      if (!size)
+        {
+          errno = EINVAL;
+          return NULL;
+        }
+      return getcwd (buf, size);
+    }
+
+  if (size)
+    {
+      buf = malloc (size);
+      if (!buf)
+        {
+          errno = ENOMEM;
+          return NULL;
+        }
+      result = getcwd (buf, size);
+      if (!result)
+        {
+          int saved_errno = errno;
+          free (buf);
+          errno = saved_errno;
+        }
+      return result;
+    }
+
+  /* Flexible sizing requested.  Avoid over-allocation for the common
+     case of a name that fits within a 4k page, minus some space for
+     local variables, to be sure we don't skip over a guard page.  */
+  {
+    char tmp[4032];
+    size = sizeof tmp;
+    ptr = getcwd (tmp, size);
+    if (ptr)
+      {
+        result = strdup (ptr);
+        if (!result)
+          errno = ENOMEM;
+        return result;
+      }
+    if (errno != ERANGE)
+      return NULL;
+  }
+
+  /* My what a large directory name we have.  */
+  do
+    {
+      size <<= 1;
+      ptr = realloc (buf, size);
+      if (ptr == NULL)
+        {
+          free (buf);
+          errno = ENOMEM;
+          return NULL;
+        }
+      buf = ptr;
+      result = getcwd (buf, size);
+    }
+  while (!result && errno == ERANGE);
+
+  if (!result)
+    {
+      int saved_errno = errno;
+      free (buf);
+      errno = saved_errno;
+    }
+  else
+    {
+      /* Trim to fit, if possible.  */
+      result = realloc (buf, strlen (buf) + 1);
+      if (!result)
+        result = buf;
+    }
+  return result;
+}
+
+#endif
index 011d641776606379554837410cef2e3a8ac71ac5..22ba534ed3beed0b20fa200d3754f2a985956dc4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991-1999, 2004-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1999, 2004-2013 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
 
 #include <fcntl.h> /* For AT_FDCWD on Solaris 9.  */
 
-/* If this host provides the openat function, then enable
+/* If this host provides the openat function or if we're using the
+   gnulib replacement function with a native fdopendir, then enable
    code below to make getcwd more efficient and robust.  */
-#ifdef HAVE_OPENAT
+#if defined HAVE_OPENAT || (defined GNULIB_OPENAT && defined HAVE_FDOPENDIR)
 # define HAVE_OPENAT_SUPPORT 1
 #else
 # define HAVE_OPENAT_SUPPORT 0
@@ -59,8 +60,6 @@
 # endif
 #endif
 
-#include <limits.h>
-
 #ifndef MAX
 # define MAX(a, b) ((a) < (b) ? (b) : (a))
 #endif
 # define MIN(a, b) ((a) < (b) ? (a) : (b))
 #endif
 
+#include "pathmax.h"
+
+/* In this file, PATH_MAX only serves as a threshold for choosing among two
+   algorithms.  */
 #ifndef PATH_MAX
-# ifdef MAXPATHLEN
-#  define PATH_MAX MAXPATHLEN
-# else
-#  define PATH_MAX 1024
-# endif
+# define PATH_MAX 8192
 #endif
 
 #if D_INO_IN_DIRENT
 /* Get the name of the current working directory, and put it in SIZE
    bytes of BUF.  Returns NULL if the directory couldn't be determined or
    SIZE was too small.  If successful, returns BUF.  In GNU, if BUF is
-   NULL, an array is allocated with `malloc'; the array is SIZE bytes long,
+   NULL, an array is allocated with 'malloc'; the array is SIZE bytes long,
    unless SIZE == 0, in which case it is as big as necessary.  */
 
 char *
@@ -138,7 +137,7 @@ __getcwd (char *buf, size_t size)
   size_t allocated = size;
   size_t used;
 
-#if HAVE_RAW_DECL_GETCWD
+#if HAVE_MINIMALLY_WORKING_GETCWD
   /* If AT_FDCWD is not defined, the algorithm below is O(N**2) and
      this is much slower than the system getcwd (at least on
      GNU/Linux).  So trust the system getcwd's results unless they
@@ -146,11 +145,16 @@ __getcwd (char *buf, size_t size)
 
      Use the system getcwd even if we have openat support, since the
      system getcwd works even when a parent is unreadable, while the
-     openat-based approach does not.  */
+     openat-based approach does not.
+
+     But on AIX 5.1..7.1, the system getcwd is not even minimally
+     working: If the current directory name is slightly longer than
+     PATH_MAX, it omits the first directory component and returns
+     this wrong result with errno = 0.  */
 
 # undef getcwd
   dir = getcwd (buf, size);
-  if (dir)
+  if (dir || (size && errno == ERANGE))
     return dir;
 
   /* Solaris getcwd (NULL, 0) fails with errno == EINVAL, but it has
@@ -408,7 +412,7 @@ __getcwd (char *buf, size_t size)
     buf = realloc (dir, used);
 
   if (buf == NULL)
-    /* Either buf was NULL all along, or `realloc' failed but
+    /* Either buf was NULL all along, or 'realloc' failed but
        we still have the original string.  */
     buf = dir;
 
index 852eb03e29cb0e899cd1231d74c42eff282762ab..1e92393b349ffca2402f0cf0cb0428496c284ab1 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* getdelim.c --- Implementation of replacement getdelim function.
-   Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2011 Free Software
+   Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or
    General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Ported from glibc by Simon Josefsson. */
 
-#include <config.h>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 #include <stdio.h>
 
 #include <limits.h>
index 3258ae10a2f09fdadd62ed596dd609f48272940c..86cf88c9791645cdb40856b26141935e702a98ad 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* getdtablesize() function for platforms that don't have it.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
 
 #include <stdio.h>
 
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+_setmaxstdio_nothrow (int newmax)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _setmaxstdio (newmax);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+# define _setmaxstdio _setmaxstdio_nothrow
+#endif
+
 /* Cache for the previous getdtablesize () result.  */
 static int dtablesize;
 
diff --git a/gnu/getfilecon.c b/gnu/getfilecon.c
new file mode 100644 (file)
index 0000000..1b9d672
--- /dev/null
@@ -0,0 +1,88 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* wrap getfilecon, lgetfilecon, and fgetfilecon
+   Copyright (C) 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, 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 */
+
+#include <config.h>
+
+#include <selinux/selinux.h>
+
+#include <sys/types.h>
+#include <errno.h>
+#include <string.h>
+
+/* FIXME: remove this once there is an errno-gnu module
+   that guarantees the definition of ENODATA.  */
+#ifndef ENODATA
+# define ENODATA ENOTSUP
+#endif
+
+#undef getfilecon
+#undef lgetfilecon
+#undef fgetfilecon
+int getfilecon (char const *file, security_context_t *con);
+int lgetfilecon (char const *file, security_context_t *con);
+int fgetfilecon (int fd, security_context_t *con);
+
+/* getfilecon, lgetfilecon, and fgetfilecon can all misbehave, be it
+   via an old version of libselinux where these would return 0 and set the
+   result context to NULL, or via a modern kernel+lib operating on a file
+   from a disk whose attributes were set by a kernel from around 2006.
+   In that latter case, the functions return a length of 10 for the
+   "unlabeled" context.  Map both failures to a return value of -1, and
+   set errno to ENOTSUP in the first case, and ENODATA in the latter.  */
+
+static int
+map_to_failure (int ret, security_context_t *con)
+{
+  if (ret == 0)
+    {
+      errno = ENOTSUP;
+      return -1;
+    }
+
+  if (ret == 10 && strcmp (*con, "unlabeled") == 0)
+    {
+      freecon (*con);
+      errno = ENODATA;
+      return -1;
+    }
+
+  return ret;
+}
+
+int
+rpl_getfilecon (char const *file, security_context_t *con)
+{
+  int ret = getfilecon (file, con);
+  return map_to_failure (ret, con);
+}
+
+int
+rpl_lgetfilecon (char const *file, security_context_t *con)
+{
+  int ret = lgetfilecon (file, con);
+  return map_to_failure (ret, con);
+}
+
+int
+rpl_fgetfilecon (int fd, security_context_t *con)
+{
+  int ret = fgetfilecon (fd, con);
+  return map_to_failure (ret, con);
+}
index ab25df8cfe81d2404ff2a0b9b9b2021105f4f43c..40c406123b544ba4780c847d3507a320e313421f 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* getline.c --- Implementation of replacement getline function.
-   Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 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
@@ -14,9 +14,7 @@
    General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Simon Josefsson. */
 
index 91d17dd3806bacec7ef1be9c26e965bc3aafdfb8..504befd98a886de5c4050f274962dc76996042f8 100644 (file)
@@ -4,7 +4,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-2011 Free Software
+   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
 # include <wchar.h>
 #endif
 
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
+/* This version of 'getopt' appears to the caller like standard Unix 'getopt'
    but it behaves differently for the user, since it allows the user
    to intersperse the options with the other arguments.
 
-   As `getopt_long' works, it permutes the elements of ARGV so that,
+   As 'getopt_long' works, it permutes the elements of ARGV so that,
    when it is done, all the options precede everything else.  Thus
    all application programs are extended to handle flexible argument order.
 
-   Using `getopt' or setting the environment variable POSIXLY_CORRECT
+   Using 'getopt' or setting the environment variable POSIXLY_CORRECT
    disables permutation.
    Then the behavior is completely standard.
 
 
 #include "getopt_int.h"
 
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
+/* For communication from 'getopt' to the caller.
+   When 'getopt' finds an option that takes an argument,
    the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
+   Also, when 'ordering' is RETURN_IN_ORDER,
    each non-option ARGV-element is returned here.  */
 
 char *optarg;
 
 /* Index in ARGV of the next element to be scanned.
    This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
+   and for communication between successive calls to 'getopt'.
 
-   On entry to `getopt', zero means this is the first call; initialize.
+   On entry to 'getopt', zero means this is the first call; initialize.
 
-   When `getopt' returns -1, this is the index of the first of the
+   When 'getopt' returns -1, this is the index of the first of the
    non-option elements that the caller should itself scan.
 
-   Otherwise, `optind' communicates from one call to the next
+   Otherwise, 'optind' communicates from one call to the next
    how much of ARGV has been scanned so far.  */
 
 /* 1003.2 says this must be 1 before any call.  */
@@ -139,7 +139,7 @@ extern char *__getopt_nonoption_flags;
    The other is elements [last_nonopt,optind), which contains all
    the options processed since those non-options were skipped.
 
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
+   'first_nonopt' and 'last_nonopt' are relocated so that they describe
    the new indices of the non-options in ARGV after they are moved.  */
 
 static void
@@ -156,7 +156,7 @@ exchange (char **argv, struct _getopt_data *d)
      but it consists of two parts that need to be swapped next.  */
 
 #if defined _LIBC && defined USE_NONOPTION_FLAGS
-  /* First make sure the handling of the `__getopt_nonoption_flags'
+  /* First make sure the handling of the '__getopt_nonoption_flags'
      string can work normally.  Our top argument must be in the range
      of the string.  */
   if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len)
@@ -293,48 +293,48 @@ _getopt_initialize (int argc _GL_UNUSED,
 
    If an element of ARGV starts with '-', and is not exactly "-" or "--",
    then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
+   (aside from the initial '-') are option characters.  If 'getopt'
    is called repeatedly, it returns successively each of the option characters
    from each of the option elements.
 
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
+   If 'getopt' finds another option character, it returns that character,
+   updating 'optind' and 'nextchar' so that the next call to 'getopt' can
    resume the scan with the following option character or ARGV-element.
 
-   If there are no more option characters, `getopt' returns -1.
-   Then `optind' is the index in ARGV of the first ARGV-element
+   If there are no more option characters, 'getopt' returns -1.
+   Then 'optind' is the index in ARGV of the first ARGV-element
    that is not an option.  (The ARGV-elements have been permuted
    so that those that are not options now come last.)
 
    OPTSTRING is a string containing the legitimate option characters.
    If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
+   return '?' after printing an error message.  If you set 'opterr' to
    zero, the error message is suppressed but we still return '?'.
 
    If a char in OPTSTRING is followed by a colon, that means it wants an arg,
    so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
+   ARGV-element, is returned in 'optarg'.  Two colons mean an option that
    wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
+   it is returned in 'optarg', otherwise 'optarg' is set to zero.
 
-   If OPTSTRING starts with `-' or `+', it requests different methods of
+   If OPTSTRING starts with '-' or '+', it requests different methods of
    handling the non-option ARGV-elements.
    See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
 
-   Long-named options begin with `--' instead of `-'.
+   Long-named options begin with '--' instead of '-'.
    Their names may be abbreviated as long as the abbreviation is unique
    or is an exact match for some defined option.  If they have an
    argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
+   from the option name by a '=', or else the in next ARGV-element.
+   When 'getopt' finds a long-named option, it returns 0 if that option's
+   'flag' field is nonzero, the value of the option's 'val' field
+   if the 'flag' field is zero.
 
    The elements of ARGV aren't really const, because we permute them.
    But we pretend they're const in the prototype to be compatible
    with other systems.
 
-   LONGOPTS is a vector of `struct option' terminated by an
+   LONGOPTS is a vector of 'struct option' terminated by an
    element containing a name which is zero.
 
    LONGIND returns the index in LONGOPT of the long-named option found.
@@ -411,7 +411,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
           d->__last_nonopt = d->optind;
         }
 
-      /* The special ARGV-element `--' means premature end of options.
+      /* The special ARGV-element '--' means premature end of options.
          Skip it like a null option,
          then exchange with previous non-options as if it were an option,
          then skip everything else like a non-option.  */
@@ -481,23 +481,28 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
                             || !strchr (optstring, argv[d->optind][1])))))
     {
       char *nameend;
+      unsigned int namelen;
       const struct option *p;
       const struct option *pfound = NULL;
+      struct option_list
+      {
+        const struct option *p;
+        struct option_list *next;
+      } *ambig_list = NULL;
       int exact = 0;
-      int ambig = 0;
       int indfound = -1;
       int option_index;
 
       for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
         /* Do nothing.  */ ;
+      namelen = nameend - d->__nextchar;
 
       /* Test all long options for either exact match
          or abbreviated matches.  */
       for (p = longopts, option_index = 0; p->name; p++, option_index++)
-        if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+        if (!strncmp (p->name, d->__nextchar, namelen))
           {
-            if ((unsigned int) (nameend - d->__nextchar)
-                == (unsigned int) strlen (p->name))
+            if (namelen == (unsigned int) strlen (p->name))
               {
                 /* Exact match found.  */
                 pfound = p;
@@ -515,35 +520,71 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
                      || pfound->has_arg != p->has_arg
                      || pfound->flag != p->flag
                      || pfound->val != p->val)
-              /* Second or later nonexact match found.  */
-              ambig = 1;
+              {
+                /* Second or later nonexact match found.  */
+                struct option_list *newp = malloc (sizeof (*newp));
+                newp->p = p;
+                newp->next = ambig_list;
+                ambig_list = newp;
+              }
           }
 
-      if (ambig && !exact)
+      if (ambig_list != NULL && !exact)
         {
           if (print_errors)
             {
+              struct option_list first;
+              first.p = pfound;
+              first.next = ambig_list;
+              ambig_list = &first;
+
 #if defined _LIBC && defined USE_IN_LIBIO
-              char *buf;
+              char *buf = NULL;
+              size_t buflen = 0;
 
-              if (__asprintf (&buf, _("%s: option '%s' is ambiguous\n"),
-                              argv[0], argv[d->optind]) >= 0)
+              FILE *fp = open_memstream (&buf, &buflen);
+              if (fp != NULL)
                 {
-                  _IO_flockfile (stderr);
+                  fprintf (fp,
+                           _("%s: option '%s' is ambiguous; possibilities:"),
+                           argv[0], argv[d->optind]);
 
-                  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
-                  ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+                  do
+                    {
+                      fprintf (fp, " '--%s'", ambig_list->p->name);
+                      ambig_list = ambig_list->next;
+                    }
+                  while (ambig_list != NULL);
 
-                  __fxprintf (NULL, "%s", buf);
+                  fputc_unlocked ('\n', fp);
 
-                  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
-                  _IO_funlockfile (stderr);
+                  if (__builtin_expect (fclose (fp) != EOF, 1))
+                    {
+                      _IO_flockfile (stderr);
 
-                  free (buf);
+                      int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+                      ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+                      __fxprintf (NULL, "%s", buf);
+
+                      ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+                      _IO_funlockfile (stderr);
+
+                      free (buf);
+                    }
                 }
 #else
-              fprintf (stderr, _("%s: option '%s' is ambiguous\n"),
+              fprintf (stderr,
+                       _("%s: option '%s' is ambiguous; possibilities:"),
                        argv[0], argv[d->optind]);
+              do
+                {
+                  fprintf (stderr, " '--%s'", ambig_list->p->name);
+                  ambig_list = ambig_list->next;
+                }
+              while (ambig_list != NULL);
+
+              fputc ('\n', stderr);
 #endif
             }
           d->__nextchar += strlen (d->__nextchar);
@@ -552,6 +593,13 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
           return '?';
         }
 
+      while (ambig_list != NULL)
+        {
+          struct option_list *pn = ambig_list->next;
+          free (ambig_list);
+          ambig_list = pn;
+        }
+
       if (pfound != NULL)
         {
           option_index = indfound;
@@ -742,7 +790,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
     char c = *d->__nextchar++;
     const char *temp = strchr (optstring, c);
 
-    /* Increment `optind' when we start to process its last character.  */
+    /* Increment 'optind' when we start to process its last character.  */
     if (*d->__nextchar == '\0')
       ++d->optind;
 
@@ -793,6 +841,9 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
         int indfound = 0;
         int option_index;
 
+        if (longopts == NULL)
+          goto no_longs;
+
         /* This is an option that requires an argument.  */
         if (*d->__nextchar != '\0')
           {
@@ -838,7 +889,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
             return c;
           }
         else
-          /* We already incremented `d->optind' once;
+          /* We already incremented 'd->optind' once;
              increment it again when taking next ARGV-elt as argument.  */
           d->optarg = argv[d->optind++];
 
@@ -1000,8 +1051,10 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
               }
             return pfound->val;
           }
-          d->__nextchar = NULL;
-          return 'W';   /* Let the application handle it.   */
+
+      no_longs:
+        d->__nextchar = NULL;
+        return 'W';   /* Let the application handle it.   */
       }
     if (temp[1] == ':')
       {
@@ -1063,7 +1116,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
                   c = '?';
               }
             else
-              /* We already incremented `optind' once;
+              /* We already incremented 'optind' once;
                  increment it again when taking next ARGV-elt as argument.  */
               d->optarg = argv[d->optind++];
             d->__nextchar = NULL;
@@ -1126,7 +1179,7 @@ __posix_getopt (int argc, char *const *argv, const char *optstring)
 #ifdef TEST
 
 /* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
+   the above definition of 'getopt'.  */
 
 int
 main (int argc, char **argv)
index b2f2922d0bc10f4e98f5dfead300145312885fe2..550fe49973ef027208013b183f26b4b4733b28b7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2011 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -18,7 +18,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/>.  */
 
-#ifndef _GL_GETOPT_H
+#ifndef _@GUARD_PREFIX@_GETOPT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 # undef _GL_SYSTEM_GETOPT
 #endif
 
-#ifndef _GL_GETOPT_H
+#ifndef _@GUARD_PREFIX@_GETOPT_H
 
 #ifndef __need_getopt
-# define _GL_GETOPT_H 1
+# define _@GUARD_PREFIX@_GETOPT_H 1
 #endif
 
 /* Standalone applications should #define __GETOPT_PREFIX to an
@@ -51,7 +51,9 @@
    linkers.  */
 #if defined __GETOPT_PREFIX && !defined __need_getopt
 # if !@HAVE_GETOPT_H@
+#  define __need_system_stdlib_h
 #  include <stdlib.h>
+#  undef __need_system_stdlib_h
 #  include <stdio.h>
 #  include <unistd.h>
 # endif
@@ -84,7 +86,7 @@
    getopt_long_only can permute argv; this is required for backward
    compatibility (e.g., for LSB 2.0.1).
 
-   This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+   This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt',
    but it caused redefinition warnings if both unistd.h and getopt.h were
    included, since unistd.h includes getopt.h having previously defined
    __need_getopt.
 extern "C" {
 #endif
 
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
+/* For communication from 'getopt' to the caller.
+   When 'getopt' finds an option that takes an argument,
    the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
+   Also, when 'ordering' is RETURN_IN_ORDER,
    each non-option ARGV-element is returned here.  */
 
 extern char *optarg;
 
 /* Index in ARGV of the next element to be scanned.
    This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
+   and for communication between successive calls to 'getopt'.
 
-   On entry to `getopt', zero means this is the first call; initialize.
+   On entry to 'getopt', zero means this is the first call; initialize.
 
-   When `getopt' returns -1, this is the index of the first of the
+   When 'getopt' returns -1, this is the index of the first of the
    non-option elements that the caller should itself scan.
 
-   Otherwise, `optind' communicates from one call to the next
+   Otherwise, 'optind' communicates from one call to the next
    how much of ARGV has been scanned so far.  */
 
 extern int optind;
 
-/* Callers store zero here to inhibit the error message `getopt' prints
+/* Callers store zero here to inhibit the error message 'getopt' prints
    for unrecognized options.  */
 
 extern int opterr;
@@ -164,24 +166,24 @@ extern int optopt;
 #ifndef __need_getopt
 /* Describe the long-named options requested by the application.
    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
+   of 'struct option' terminated by an element containing a name which is
    zero.
 
-   The field `has_arg' is:
+   The field 'has_arg' is:
    no_argument          (or 0) if the option does not take an argument,
    required_argument    (or 1) if the option requires an argument,
    optional_argument    (or 2) if the option takes an optional argument.
 
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
+   If the field 'flag' is not NULL, it points to a variable that is set
+   to the value given in the field 'val' when the option is found, but
    left unchanged if the option is not found.
 
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
+   To have a long-named option do something other than set an 'int' to
+   a compiled-in constant, such as set a value from 'optarg', set the
+   option's 'flag' field to zero and its 'val' field to a nonzero
    value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
+   one).  For long options that have a zero 'flag' field, 'getopt'
+   returns the contents of the 'val' field.  */
 
 # if !GNULIB_defined_struct_option
 struct option
@@ -196,7 +198,7 @@ struct option
 #  define GNULIB_defined_struct_option 1
 # endif
 
-/* Names for the values of the `has_arg' field of `struct option'.  */
+/* Names for the values of the 'has_arg' field of 'struct option'.  */
 
 # define no_argument            0
 # define required_argument      1
@@ -210,23 +212,23 @@ struct option
 
    Return the option character from OPTS just read.  Return -1 when
    there are no more options.  For unrecognized options, or options
-   missing arguments, `optopt' is set to the option letter, and '?' is
+   missing arguments, 'optopt' is set to the option letter, and '?' is
    returned.
 
    The OPTS string is a list of characters which are recognized option
    letters, optionally followed by colons, specifying that that letter
-   takes an argument, to be placed in `optarg'.
+   takes an argument, to be placed in 'optarg'.
 
    If a letter in OPTS is followed by two colons, its argument is
-   optional.  This behavior is specific to the GNU `getopt'.
+   optional.  This behavior is specific to the GNU 'getopt'.
 
-   The argument `--' causes premature termination of argument
-   scanning, explicitly telling `getopt' that there are no more
+   The argument '--' causes premature termination of argument
+   scanning, explicitly telling 'getopt' that there are no more
    options.
 
-   If OPTS begins with `-', then non-option arguments are treated as
+   If OPTS begins with '-', then non-option arguments are treated as
    arguments to the option '\1'.  This behavior is specific to the GNU
-   `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in
+   'getopt'.  If OPTS begins with '+', or POSIXLY_CORRECT is set in
    the environment, then do not permute arguments.  */
 
 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
@@ -251,5 +253,5 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
 /* Make sure we later can get all the definitions and declarations.  */
 #undef __need_getopt
 
-#endif /* getopt.h */
-#endif /* getopt.h */
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
index c7fe745dbb48e89b02b566a69bd890027f341fce..043839a0fea56e9e4bcc9faf283f7c964762550e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2011 Free Software
+   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -143,11 +143,11 @@ main (int argc, char **argv)
           break;
 
         case 'c':
-          printf ("option c with value `%s'\n", optarg);
+          printf ("option c with value '%s'\n", optarg);
           break;
 
         case 'd':
-          printf ("option d with value `%s'\n", optarg);
+          printf ("option d with value '%s'\n", optarg);
           break;
 
         case '?':
index 2ec3a476fd0e26afb372a626bec48d23a10e28c7..5c1a90ded00039d7a0ff825ece3e78cf4ad9fe8b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Internal declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2011 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -42,7 +42,7 @@ extern int _getopt_internal (int ___argc, char **___argv,
    stop option processing when the first non-option is seen.
    This is what Unix does.
    This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
+   variable POSIXLY_CORRECT, or using '+' as the first character
    of the list of option characters, or by calling getopt.
 
    PERMUTE is the default.  We permute the contents of ARGV as we
@@ -54,12 +54,12 @@ extern int _getopt_internal (int ___argc, char **___argv,
    written to expect options and other ARGV-elements in any order
    and that care about the ordering of the two.  We describe each
    non-option ARGV-element as if it were the argument of an option
-   with character code 1.  Using `-' as the first character of the
+   with character code 1.  Using '-' as the first character of the
    list of option characters selects this mode of operation.
 
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+   The special argument '--' forces an end of option-scanning regardless
+   of the value of 'ordering'.  In the case of RETURN_IN_ORDER, only
+   '--' can cause 'getopt' to return -1 with 'optind' != ARGC.  */
 
 enum __ord
   {
@@ -101,8 +101,8 @@ struct _getopt_data
   /* Handle permutation of arguments.  */
 
   /* Describe the part of ARGV that contains non-options that have
-     been skipped.  `first_nonopt' is the index in ARGV of the first
-     of them; `last_nonopt' is the index after the last of them.  */
+     been skipped.  'first_nonopt' is the index in ARGV of the first
+     of them; 'last_nonopt' is the index after the last of them.  */
 
   int __first_nonopt;
   int __last_nonopt;
index 377375bf681c9f0090c4655a206273038b3d3a0b..fcd28ca586afd50588e93edfdfb860912b34a08b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* getpagesize emulation for systems where it cannot be done in a C macro.
 
-   Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007, 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
@@ -24,7 +24,7 @@
 /* Specification. */
 #include <unistd.h>
 
-/* This implementation is only for native Win32 systems.  */
+/* This implementation is only for native Windows systems.  */
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
 # define WIN32_LEAN_AND_MEAN
index ef0444317dfa26d1584af6398e77e9c9746f0a4e..b6a070eda67b58ee90d2896adf10e41695e872aa 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2011 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBGETTEXT_H
 #define _LIBGETTEXT_H 1
@@ -186,9 +185,12 @@ npgettext_aux (const char *domain,
 
 #include <string.h>
 
-#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
-   /* || __STDC_VERSION__ >= 199901L */ )
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
 
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
 #include <stdlib.h>
index 44af496751f2a3aced5ac758fde01abc05dbed5c..168e07bf476bb5ec8e346a42f4e436dd286aef59 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* gettime -- get the system clock
 
-   Copyright (C) 2002, 2004-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004-2007, 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
index 7532c0c082a15a848dd06d184410bc6c6c41a78e..693f2faaac0f276d8538ce7676ac46be28edc8e8 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Provide gettimeofday for systems that don't have it or for which it's broken.
 
-   Copyright (C) 2001-2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* written by Jim Meyering */
 
@@ -112,7 +111,18 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
   struct tm save = *localtime_buffer_addr;
 # endif
 
+# if defined timeval /* 'struct timeval' overridden by gnulib?  */
+#  undef timeval
+  struct timeval otv;
+  int result = gettimeofday (&otv, (struct timezone *) tz);
+  if (result == 0)
+    {
+      tv->tv_sec = otv.tv_sec;
+      tv->tv_usec = otv.tv_usec;
+    }
+# else
   int result = gettimeofday (tv, (struct timezone *) tz);
+# endif
 
 # if GETTIMEOFDAY_CLOBBERS_LOCALTIME
   *localtime_buffer_addr = save;
diff --git a/gnu/gnulib.mk b/gnu/gnulib.mk
new file mode 100644 (file)
index 0000000..aab99c0
--- /dev/null
@@ -0,0 +1,3338 @@
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-conditional-dependencies --no-libtool --macro-prefix=gl acl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail extern-inline fchmodat fchownat fcntl-h fdopendir fdutimensat fileblocks fnmatch-gnu fseeko fstatat full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset manywarnings mkdirat mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat root-uid rpmatch safe-read savedir selinux-at setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkat unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
+
+AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
+
+SUBDIRS =
+noinst_HEADERS =
+noinst_LIBRARIES =
+noinst_LTLIBRARIES =
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS =
+AM_CFLAGS =
+
+noinst_LIBRARIES += libgnu.a
+
+libgnu_a_SOURCES =
+libgnu_a_LIBADD = $(gl_LIBOBJS)
+libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
+EXTRA_libgnu_a_SOURCES =
+
+## begin gnulib module acl
+
+libgnu_a_SOURCES += copy-acl.c set-acl.c
+
+## end   gnulib module acl
+
+## begin gnulib module alloca
+
+
+libgnu_a_LIBADD += @ALLOCA@
+libgnu_a_DEPENDENCIES += @ALLOCA@
+EXTRA_DIST += alloca.c
+
+EXTRA_libgnu_a_SOURCES += alloca.c
+
+## end   gnulib module alloca
+
+## begin gnulib module alloca-opt
+
+BUILT_SOURCES += $(ALLOCA_H)
+
+# We need the following in order to create <alloca.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_ALLOCA_H
+alloca.h: alloca.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/alloca.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+else
+alloca.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += alloca.h alloca.h-t
+
+EXTRA_DIST += alloca.in.h
+
+## end   gnulib module alloca-opt
+
+## begin gnulib module allocator
+
+libgnu_a_SOURCES += allocator.c
+
+EXTRA_DIST += allocator.h
+
+## end   gnulib module allocator
+
+## begin gnulib module areadlink
+
+libgnu_a_SOURCES += areadlink.c
+
+EXTRA_DIST += areadlink.h
+
+## end   gnulib module areadlink
+
+## begin gnulib module areadlinkat
+
+libgnu_a_SOURCES += areadlinkat.c
+
+EXTRA_DIST += areadlink.h at-func.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c
+
+## end   gnulib module areadlinkat
+
+## begin gnulib module argmatch
+
+libgnu_a_SOURCES += argmatch.c
+
+EXTRA_DIST += argmatch.h
+
+## end   gnulib module argmatch
+
+## begin gnulib module argp
+
+libgnu_a_SOURCES += argp.h argp-ba.c argp-eexst.c \
+           argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c \
+           argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c \
+           argp-xinl.c
+
+## end   gnulib module argp
+
+## begin gnulib module argp-version-etc
+
+libgnu_a_SOURCES += argp-version-etc.h argp-version-etc.c
+
+## end   gnulib module argp-version-etc
+
+## begin gnulib module at-internal
+
+
+EXTRA_DIST += openat-priv.h openat-proc.c
+
+EXTRA_libgnu_a_SOURCES += openat-proc.c
+
+## end   gnulib module at-internal
+
+## begin gnulib module backupfile
+
+libgnu_a_SOURCES += backupfile.c
+
+EXTRA_DIST += backupfile.h
+
+## end   gnulib module backupfile
+
+## begin gnulib module bitrotate
+
+libgnu_a_SOURCES += bitrotate.h bitrotate.c
+
+## end   gnulib module bitrotate
+
+## begin gnulib module btowc
+
+
+EXTRA_DIST += btowc.c
+
+EXTRA_libgnu_a_SOURCES += btowc.c
+
+## end   gnulib module btowc
+
+## begin gnulib module c-ctype
+
+libgnu_a_SOURCES += c-ctype.h c-ctype.c
+
+## end   gnulib module c-ctype
+
+## begin gnulib module c-strcase
+
+libgnu_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
+
+## end   gnulib module c-strcase
+
+## begin gnulib module c-strcaseeq
+
+
+EXTRA_DIST += c-strcaseeq.h
+
+## end   gnulib module c-strcaseeq
+
+## begin gnulib module canonicalize-lgpl
+
+
+EXTRA_DIST += canonicalize-lgpl.c
+
+EXTRA_libgnu_a_SOURCES += canonicalize-lgpl.c
+
+## end   gnulib module canonicalize-lgpl
+
+## begin gnulib module careadlinkat
+
+libgnu_a_SOURCES += careadlinkat.c
+
+EXTRA_DIST += careadlinkat.h
+
+## end   gnulib module careadlinkat
+
+## begin gnulib module chdir-long
+
+
+EXTRA_DIST += chdir-long.c chdir-long.h
+
+EXTRA_libgnu_a_SOURCES += chdir-long.c
+
+## end   gnulib module chdir-long
+
+## begin gnulib module chown
+
+
+EXTRA_DIST += chown.c fchown-stub.c
+
+EXTRA_libgnu_a_SOURCES += chown.c fchown-stub.c
+
+## end   gnulib module chown
+
+## begin gnulib module cloexec
+
+libgnu_a_SOURCES += cloexec.c
+
+EXTRA_DIST += cloexec.h
+
+## end   gnulib module cloexec
+
+## begin gnulib module close
+
+
+EXTRA_DIST += close.c
+
+EXTRA_libgnu_a_SOURCES += close.c
+
+## end   gnulib module close
+
+## begin gnulib module close-stream
+
+libgnu_a_SOURCES += close-stream.c
+
+EXTRA_DIST += close-stream.h
+
+## end   gnulib module close-stream
+
+## begin gnulib module closedir
+
+
+EXTRA_DIST += closedir.c dirent-private.h
+
+EXTRA_libgnu_a_SOURCES += closedir.c
+
+## end   gnulib module closedir
+
+## begin gnulib module closeout
+
+libgnu_a_SOURCES += closeout.c
+
+EXTRA_DIST += closeout.h
+
+## end   gnulib module closeout
+
+## begin gnulib module configmake
+
+# Listed in the same order as the GNU makefile conventions, and
+# provided by autoconf 2.59c+.
+# The Automake-defined pkg* macros are appended, in the order
+# listed in the Automake 1.10a+ documentation.
+configmake.h: Makefile
+       $(AM_V_GEN)rm -f $@-t && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         echo '#define PREFIX "$(prefix)"'; \
+         echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+         echo '#define BINDIR "$(bindir)"'; \
+         echo '#define SBINDIR "$(sbindir)"'; \
+         echo '#define LIBEXECDIR "$(libexecdir)"'; \
+         echo '#define DATAROOTDIR "$(datarootdir)"'; \
+         echo '#define DATADIR "$(datadir)"'; \
+         echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+         echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+         echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+         echo '#define INCLUDEDIR "$(includedir)"'; \
+         echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+         echo '#define DOCDIR "$(docdir)"'; \
+         echo '#define INFODIR "$(infodir)"'; \
+         echo '#define HTMLDIR "$(htmldir)"'; \
+         echo '#define DVIDIR "$(dvidir)"'; \
+         echo '#define PDFDIR "$(pdfdir)"'; \
+         echo '#define PSDIR "$(psdir)"'; \
+         echo '#define LIBDIR "$(libdir)"'; \
+         echo '#define LISPDIR "$(lispdir)"'; \
+         echo '#define LOCALEDIR "$(localedir)"'; \
+         echo '#define MANDIR "$(mandir)"'; \
+         echo '#define MANEXT "$(manext)"'; \
+         echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+         echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+         echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+         echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+       } | sed '/""/d' > $@-t && \
+       mv -f $@-t $@
+
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end   gnulib module configmake
+
+## begin gnulib module dirent
+
+BUILT_SOURCES += dirent.h
+
+# We need the following in order to create <dirent.h> when the system
+# doesn't have one that works with the given compiler.
+dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_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_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
+             -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \
+             -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \
+             -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \
+             -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/g' \
+             -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \
+             -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \
+             -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \
+             -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \
+             -e 's/@''HAVE_OPENDIR''@/$(HAVE_OPENDIR)/g' \
+             -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \
+             -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \
+             -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \
+             -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
+             -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \
+             -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \
+             -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \
+             -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \
+             -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
+             -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
+             -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
+             -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|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)/dirent.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += dirent.h dirent.h-t
+
+EXTRA_DIST += dirent.in.h
+
+## end   gnulib module dirent
+
+## begin gnulib module dirent-safer
+
+libgnu_a_SOURCES += opendir-safer.c
+
+EXTRA_DIST += dirent--.h dirent-safer.h
+
+## end   gnulib module dirent-safer
+
+## begin gnulib module dirfd
+
+
+EXTRA_DIST += dirfd.c
+
+EXTRA_libgnu_a_SOURCES += dirfd.c
+
+## end   gnulib module dirfd
+
+## begin gnulib module dirname
+
+libgnu_a_SOURCES += dirname.c basename.c
+
+EXTRA_DIST += stripslash.c
+
+EXTRA_libgnu_a_SOURCES += stripslash.c
+
+## end   gnulib module dirname
+
+## begin gnulib module dirname-lgpl
+
+libgnu_a_SOURCES += dirname-lgpl.c basename-lgpl.c stripslash.c
+
+EXTRA_DIST += dirname.h
+
+## end   gnulib module dirname-lgpl
+
+## begin gnulib module dosname
+
+
+EXTRA_DIST += dosname.h
+
+## end   gnulib module dosname
+
+## begin gnulib module dup
+
+
+EXTRA_DIST += dup.c
+
+EXTRA_libgnu_a_SOURCES += dup.c
+
+## end   gnulib module dup
+
+## begin gnulib module dup2
+
+
+EXTRA_DIST += dup2.c
+
+EXTRA_libgnu_a_SOURCES += dup2.c
+
+## end   gnulib module dup2
+
+## begin gnulib module errno
+
+BUILT_SOURCES += $(ERRNO_H)
+
+# We need the following in order to create <errno.h> when the system
+# doesn't have one that is POSIX compliant.
+if GL_GENERATE_ERRNO_H
+errno.h: errno.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+             -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+             -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+             -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+             -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+             -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+             -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+             < $(srcdir)/errno.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+errno.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += errno.h errno.h-t
+
+EXTRA_DIST += errno.in.h
+
+## end   gnulib module errno
+
+## begin gnulib module error
+
+
+EXTRA_DIST += error.c error.h
+
+EXTRA_libgnu_a_SOURCES += error.c
+
+## end   gnulib module error
+
+## begin gnulib module exclude
+
+libgnu_a_SOURCES += exclude.c
+
+EXTRA_DIST += exclude.h
+
+## end   gnulib module exclude
+
+## begin gnulib module exitfail
+
+libgnu_a_SOURCES += exitfail.c
+
+EXTRA_DIST += exitfail.h
+
+## end   gnulib module exitfail
+
+## begin gnulib module fchdir
+
+
+EXTRA_DIST += fchdir.c
+
+EXTRA_libgnu_a_SOURCES += fchdir.c
+
+## end   gnulib module fchdir
+
+## begin gnulib module fchmodat
+
+libgnu_a_SOURCES += chmodat.c
+
+EXTRA_DIST += at-func.c fchmodat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c fchmodat.c
+
+## end   gnulib module fchmodat
+
+## begin gnulib module fchownat
+
+libgnu_a_SOURCES += chownat.c
+
+EXTRA_DIST += at-func.c fchownat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c fchownat.c
+
+## end   gnulib module fchownat
+
+## begin gnulib module fcntl
+
+
+EXTRA_DIST += fcntl.c
+
+EXTRA_libgnu_a_SOURCES += fcntl.c
+
+## end   gnulib module fcntl
+
+## begin gnulib module fcntl-h
+
+BUILT_SOURCES += fcntl.h
+
+# We need the following in order to create <fcntl.h> when the system
+# doesn't have one that works with the given compiler.
+fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+             -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+             -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+             -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
+             -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
+             -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+             -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
+             -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
+             -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|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)/fcntl.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += fcntl.h fcntl.h-t
+
+EXTRA_DIST += fcntl.in.h
+
+## end   gnulib module fcntl-h
+
+## begin gnulib module fd-hook
+
+libgnu_a_SOURCES += fd-hook.c
+
+EXTRA_DIST += fd-hook.h
+
+## end   gnulib module fd-hook
+
+## begin gnulib module fdopendir
+
+
+EXTRA_DIST += fdopendir.c
+
+EXTRA_libgnu_a_SOURCES += fdopendir.c
+
+## end   gnulib module fdopendir
+
+## begin gnulib module fdutimensat
+
+libgnu_a_SOURCES += fdutimensat.c
+
+EXTRA_DIST += utimens.h
+
+## end   gnulib module fdutimensat
+
+## begin gnulib module fileblocks
+
+
+EXTRA_DIST += fileblocks.c
+
+EXTRA_libgnu_a_SOURCES += fileblocks.c
+
+## end   gnulib module fileblocks
+
+## begin gnulib module filename
+
+
+EXTRA_DIST += filename.h
+
+## end   gnulib module filename
+
+## begin gnulib module filenamecat-lgpl
+
+libgnu_a_SOURCES += filenamecat-lgpl.c
+
+EXTRA_DIST += filenamecat.h
+
+## end   gnulib module filenamecat-lgpl
+
+## begin gnulib module float
+
+BUILT_SOURCES += $(FLOAT_H)
+
+# We need the following in order to create <float.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_FLOAT_H
+float.h: float.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+             < $(srcdir)/float.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+float.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += float.h float.h-t
+
+EXTRA_DIST += float.c float.in.h itold.c
+
+EXTRA_libgnu_a_SOURCES += float.c itold.c
+
+## end   gnulib module float
+
+## begin gnulib module fnmatch
+
+BUILT_SOURCES += $(FNMATCH_H)
+
+# We need the following in order to create <fnmatch.h> when the system
+# doesn't have one that supports the required API.
+if GL_GENERATE_FNMATCH_H
+fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             < $(srcdir)/fnmatch.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+else
+fnmatch.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t
+
+EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c
+
+EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c
+
+## end   gnulib module fnmatch
+
+## begin gnulib module fpending
+
+
+EXTRA_DIST += fpending.c fpending.h
+
+EXTRA_libgnu_a_SOURCES += fpending.c
+
+## end   gnulib module fpending
+
+## begin gnulib module fseek
+
+
+EXTRA_DIST += fseek.c
+
+EXTRA_libgnu_a_SOURCES += fseek.c
+
+## end   gnulib module fseek
+
+## begin gnulib module fseeko
+
+
+EXTRA_DIST += fseeko.c stdio-impl.h
+
+EXTRA_libgnu_a_SOURCES += fseeko.c
+
+## end   gnulib module fseeko
+
+## begin gnulib module fstat
+
+
+EXTRA_DIST += fstat.c
+
+EXTRA_libgnu_a_SOURCES += fstat.c
+
+## end   gnulib module fstat
+
+## begin gnulib module fstatat
+
+
+EXTRA_DIST += at-func.c fstatat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c fstatat.c
+
+## end   gnulib module fstatat
+
+## begin gnulib module full-write
+
+libgnu_a_SOURCES += full-write.h full-write.c
+
+## end   gnulib module full-write
+
+## begin gnulib module futimens
+
+
+EXTRA_DIST += futimens.c
+
+EXTRA_libgnu_a_SOURCES += futimens.c
+
+## end   gnulib module futimens
+
+## begin gnulib module getcwd
+
+
+EXTRA_DIST += getcwd.c
+
+EXTRA_libgnu_a_SOURCES += getcwd.c
+
+## end   gnulib module getcwd
+
+## begin gnulib module getcwd-lgpl
+
+
+EXTRA_DIST += getcwd-lgpl.c
+
+EXTRA_libgnu_a_SOURCES += getcwd-lgpl.c
+
+## end   gnulib module getcwd-lgpl
+
+## begin gnulib module getdelim
+
+
+EXTRA_DIST += getdelim.c
+
+EXTRA_libgnu_a_SOURCES += getdelim.c
+
+## end   gnulib module getdelim
+
+## begin gnulib module getdtablesize
+
+
+EXTRA_DIST += getdtablesize.c
+
+EXTRA_libgnu_a_SOURCES += getdtablesize.c
+
+## end   gnulib module getdtablesize
+
+## begin gnulib module getline
+
+
+EXTRA_DIST += getline.c
+
+EXTRA_libgnu_a_SOURCES += getline.c
+
+## end   gnulib module getline
+
+## begin gnulib module getopt-posix
+
+BUILT_SOURCES += $(GETOPT_H)
+
+# We need the following in order to create <getopt.h> when the system
+# doesn't have one that works with the given compiler.
+getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             < $(srcdir)/getopt.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += getopt.h getopt.h-t
+
+EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
+
+EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c
+
+## end   gnulib module getopt-posix
+
+## begin gnulib module getpagesize
+
+
+EXTRA_DIST += getpagesize.c
+
+EXTRA_libgnu_a_SOURCES += getpagesize.c
+
+## end   gnulib module getpagesize
+
+## begin gnulib module gettext
+
+# If your project uses "gettextize --intl" to put a source-code
+# copy of libintl into the package, every Makefile.am needs
+# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+# Here's one way to do this:
+#AM_CPPFLAGS += -I$(top_builddir)/intl
+# This option has no effect when the user disables NLS (because then
+# the intl directory contains no libintl.h file).  This option is not
+# enabled by default because the intl directory might not exist if
+# your project does not use "gettext --intl", and some compilers
+# complain about -I options applied to nonexistent directories.
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end   gnulib module gettext
+
+## begin gnulib module gettext-h
+
+libgnu_a_SOURCES += gettext.h
+
+## end   gnulib module gettext-h
+
+## begin gnulib module gettime
+
+libgnu_a_SOURCES += gettime.c
+
+## end   gnulib module gettime
+
+## begin gnulib module gettimeofday
+
+
+EXTRA_DIST += gettimeofday.c
+
+EXTRA_libgnu_a_SOURCES += gettimeofday.c
+
+## end   gnulib module gettimeofday
+
+## begin gnulib module gitlog-to-changelog
+
+
+EXTRA_DIST += $(top_srcdir)/build-aux/gitlog-to-changelog
+
+## end   gnulib module gitlog-to-changelog
+
+## begin gnulib module hash
+
+libgnu_a_SOURCES += hash.c
+
+EXTRA_DIST += hash.h
+
+## end   gnulib module hash
+
+## begin gnulib module havelib
+
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end   gnulib module havelib
+
+## begin gnulib module human
+
+libgnu_a_SOURCES += human.c
+
+EXTRA_DIST += human.h
+
+## end   gnulib module human
+
+## begin gnulib module intprops
+
+
+EXTRA_DIST += intprops.h
+
+## end   gnulib module intprops
+
+## begin gnulib module inttostr
+
+libgnu_a_SOURCES += \
+  imaxtostr.c \
+  inttostr.c \
+  offtostr.c \
+  uinttostr.c \
+  umaxtostr.c
+
+EXTRA_DIST += anytostr.c inttostr.h
+
+EXTRA_libgnu_a_SOURCES += anytostr.c
+
+## end   gnulib module inttostr
+
+## begin gnulib module inttypes-incomplete
+
+BUILT_SOURCES += inttypes.h
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+             -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_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
+             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+             -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/@''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' \
+             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/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)/inttypes.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += inttypes.h inttypes.h-t
+
+EXTRA_DIST += inttypes.in.h
+
+## end   gnulib module inttypes-incomplete
+
+## begin gnulib module iswblank
+
+
+EXTRA_DIST += iswblank.c
+
+EXTRA_libgnu_a_SOURCES += iswblank.c
+
+## end   gnulib module iswblank
+
+## begin gnulib module langinfo
+
+BUILT_SOURCES += langinfo.h
+
+# We need the following in order to create an empty placeholder for
+# <langinfo.h> when the system doesn't have one.
+langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
+             -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
+             -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
+             -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+             -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
+             -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \
+             -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
+             -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             < $(srcdir)/langinfo.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += langinfo.h langinfo.h-t
+
+EXTRA_DIST += langinfo.in.h
+
+## end   gnulib module langinfo
+
+## begin gnulib module lchown
+
+
+EXTRA_DIST += lchown.c
+
+EXTRA_libgnu_a_SOURCES += lchown.c
+
+## end   gnulib module lchown
+
+## begin gnulib module link
+
+
+EXTRA_DIST += link.c
+
+EXTRA_libgnu_a_SOURCES += link.c
+
+## end   gnulib module link
+
+## begin gnulib module linkat
+
+
+EXTRA_DIST += at-func2.c linkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func2.c linkat.c
+
+## end   gnulib module linkat
+
+## begin gnulib module localcharset
+
+libgnu_a_SOURCES += localcharset.h localcharset.c
+
+# We need the following in order to install a simple file in $(libdir)
+# which is shared with other installed packages. We use a list of referencing
+# packages so that "make uninstall" will remove the file if and only if it
+# is not used by another installed package.
+# On systems with glibc-2.1 or newer, the file is redundant, therefore we
+# avoid installing it.
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: install-exec-localcharset
+install-exec-localcharset: all-local
+       if test $(GLIBC21) = no; then \
+         case '$(host_os)' in \
+           darwin[56]*) \
+             need_charset_alias=true ;; \
+           darwin* | cygwin* | mingw* | pw32* | cegcc*) \
+             need_charset_alias=false ;; \
+           *) \
+             need_charset_alias=true ;; \
+         esac ; \
+       else \
+         need_charset_alias=false ; \
+       fi ; \
+       if $$need_charset_alias; then \
+         $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
+       fi ; \
+       if test -f $(charset_alias); then \
+         sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+         $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+         rm -f $(charset_tmp) ; \
+       else \
+         if $$need_charset_alias; then \
+           sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+           rm -f $(charset_tmp) ; \
+         fi ; \
+       fi
+
+uninstall-local: uninstall-localcharset
+uninstall-localcharset: all-local
+       if test -f $(charset_alias); then \
+         sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+         if grep '^# Packages using this file: $$' $(charset_tmp) \
+             > /dev/null; then \
+           rm -f $(charset_alias); \
+         else \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+         fi; \
+         rm -f $(charset_tmp); \
+       fi
+
+charset.alias: config.charset
+       $(AM_V_GEN)rm -f t-$@ $@ && \
+       $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
+       mv t-$@ $@
+
+SUFFIXES += .sed .sin
+.sin.sed:
+       $(AM_V_GEN)rm -f t-$@ $@ && \
+       sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
+       mv t-$@ $@
+
+CLEANFILES += charset.alias ref-add.sed ref-del.sed
+
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+
+## end   gnulib module localcharset
+
+## begin gnulib module locale
+
+BUILT_SOURCES += locale.h
+
+# We need the following in order to create <locale.h> when the system
+# doesn't have one that provides all definitions.
+locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
+             -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
+             -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+             -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
+             -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
+             -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
+             -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
+             -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
+             -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+             -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|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)/locale.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += locale.h locale.h-t
+
+EXTRA_DIST += locale.in.h
+
+## end   gnulib module locale
+
+## begin gnulib module localeconv
+
+
+EXTRA_DIST += localeconv.c
+
+EXTRA_libgnu_a_SOURCES += localeconv.c
+
+## end   gnulib module localeconv
+
+## begin gnulib module lseek
+
+
+EXTRA_DIST += lseek.c
+
+EXTRA_libgnu_a_SOURCES += lseek.c
+
+## end   gnulib module lseek
+
+## begin gnulib module lstat
+
+
+EXTRA_DIST += lstat.c
+
+EXTRA_libgnu_a_SOURCES += lstat.c
+
+## end   gnulib module lstat
+
+## begin gnulib module malloc-gnu
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_a_SOURCES += malloc.c
+
+## end   gnulib module malloc-gnu
+
+## begin gnulib module malloc-posix
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_a_SOURCES += malloc.c
+
+## end   gnulib module malloc-posix
+
+## begin gnulib module malloca
+
+libgnu_a_SOURCES += malloca.c
+
+EXTRA_DIST += malloca.h malloca.valgrind
+
+## end   gnulib module malloca
+
+## begin gnulib module mbchar
+
+libgnu_a_SOURCES += mbchar.c
+
+EXTRA_DIST += mbchar.h
+
+## end   gnulib module mbchar
+
+## begin gnulib module mbrtowc
+
+
+EXTRA_DIST += mbrtowc.c
+
+EXTRA_libgnu_a_SOURCES += mbrtowc.c
+
+## end   gnulib module mbrtowc
+
+## begin gnulib module mbscasecmp
+
+libgnu_a_SOURCES += mbscasecmp.c
+
+## end   gnulib module mbscasecmp
+
+## begin gnulib module mbsinit
+
+
+EXTRA_DIST += mbsinit.c
+
+EXTRA_libgnu_a_SOURCES += mbsinit.c
+
+## end   gnulib module mbsinit
+
+## begin gnulib module mbsrtowcs
+
+
+EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c
+
+EXTRA_libgnu_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c
+
+## end   gnulib module mbsrtowcs
+
+## begin gnulib module mbtowc
+
+
+EXTRA_DIST += mbtowc-impl.h mbtowc.c
+
+EXTRA_libgnu_a_SOURCES += mbtowc.c
+
+## end   gnulib module mbtowc
+
+## begin gnulib module mbuiter
+
+libgnu_a_SOURCES += mbuiter.h mbuiter.c
+
+## end   gnulib module mbuiter
+
+## begin gnulib module memchr
+
+
+EXTRA_DIST += memchr.c memchr.valgrind
+
+EXTRA_libgnu_a_SOURCES += memchr.c
+
+## end   gnulib module memchr
+
+## begin gnulib module mempcpy
+
+
+EXTRA_DIST += mempcpy.c
+
+EXTRA_libgnu_a_SOURCES += mempcpy.c
+
+## end   gnulib module mempcpy
+
+## begin gnulib module memrchr
+
+
+EXTRA_DIST += memrchr.c
+
+EXTRA_libgnu_a_SOURCES += memrchr.c
+
+## end   gnulib module memrchr
+
+## begin gnulib module mkdir
+
+
+EXTRA_DIST += mkdir.c
+
+EXTRA_libgnu_a_SOURCES += mkdir.c
+
+## end   gnulib module mkdir
+
+## begin gnulib module mkdirat
+
+
+EXTRA_DIST += at-func.c mkdirat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c mkdirat.c
+
+## end   gnulib module mkdirat
+
+## begin gnulib module mkdtemp
+
+
+EXTRA_DIST += mkdtemp.c
+
+EXTRA_libgnu_a_SOURCES += mkdtemp.c
+
+## end   gnulib module mkdtemp
+
+## begin gnulib module mkfifo
+
+
+EXTRA_DIST += mkfifo.c
+
+EXTRA_libgnu_a_SOURCES += mkfifo.c
+
+## end   gnulib module mkfifo
+
+## begin gnulib module mkfifoat
+
+
+EXTRA_DIST += at-func.c mkfifoat.c mknodat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c mkfifoat.c mknodat.c
+
+## end   gnulib module mkfifoat
+
+## begin gnulib module mknod
+
+
+EXTRA_DIST += mknod.c
+
+EXTRA_libgnu_a_SOURCES += mknod.c
+
+## end   gnulib module mknod
+
+## begin gnulib module mktime
+
+
+EXTRA_DIST += mktime-internal.h mktime.c
+
+EXTRA_libgnu_a_SOURCES += mktime.c
+
+## end   gnulib module mktime
+
+## begin gnulib module modechange
+
+libgnu_a_SOURCES += modechange.c
+
+EXTRA_DIST += modechange.h
+
+## end   gnulib module modechange
+
+## begin gnulib module msvc-inval
+
+
+EXTRA_DIST += msvc-inval.c msvc-inval.h
+
+EXTRA_libgnu_a_SOURCES += msvc-inval.c
+
+## end   gnulib module msvc-inval
+
+## begin gnulib module msvc-nothrow
+
+
+EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
+
+EXTRA_libgnu_a_SOURCES += msvc-nothrow.c
+
+## end   gnulib module msvc-nothrow
+
+## begin gnulib module nl_langinfo
+
+
+EXTRA_DIST += nl_langinfo.c
+
+EXTRA_libgnu_a_SOURCES += nl_langinfo.c
+
+## end   gnulib module nl_langinfo
+
+## begin gnulib module obstack
+
+
+EXTRA_DIST += obstack.c obstack.h
+
+EXTRA_libgnu_a_SOURCES += obstack.c
+
+## end   gnulib module obstack
+
+## begin gnulib module open
+
+
+EXTRA_DIST += open.c
+
+EXTRA_libgnu_a_SOURCES += open.c
+
+## end   gnulib module open
+
+## begin gnulib module openat
+
+
+EXTRA_DIST += openat.c
+
+EXTRA_libgnu_a_SOURCES += openat.c
+
+## end   gnulib module openat
+
+## begin gnulib module openat-die
+
+libgnu_a_SOURCES += openat-die.c
+
+## end   gnulib module openat-die
+
+## begin gnulib module openat-h
+
+
+EXTRA_DIST += openat.h
+
+## end   gnulib module openat-h
+
+## begin gnulib module opendir
+
+
+EXTRA_DIST += dirent-private.h opendir.c
+
+EXTRA_libgnu_a_SOURCES += opendir.c
+
+## end   gnulib module opendir
+
+## begin gnulib module parse-datetime
+
+# This rule overrides the Automake generated .y.c rule, to ensure that the
+# parse-datetime.c file gets generated in the source directory, not in the
+# build directory.
+parse-datetime.c: parse-datetime.y
+       $(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
+                                     y.tab.c parse-datetime.c \
+                                     y.tab.h parse-datetime.h \
+                                     y.output parse-datetime.output \
+                                     -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
+       mv parse-datetime.c parse-datetime.c-t && \
+       mv parse-datetime.c-t $(srcdir)/parse-datetime.c
+libgnu_a_SOURCES += parse-datetime.y
+BUILT_SOURCES += parse-datetime.c
+MOSTLYCLEANFILES += parse-datetime.c-t
+MAINTAINERCLEANFILES += parse-datetime.c
+EXTRA_DIST += parse-datetime.c
+
+EXTRA_DIST += parse-datetime.h
+
+## end   gnulib module parse-datetime
+
+## begin gnulib module pathmax
+
+
+EXTRA_DIST += pathmax.h
+
+## end   gnulib module pathmax
+
+## begin gnulib module priv-set
+
+libgnu_a_SOURCES += priv-set.c
+
+EXTRA_DIST += priv-set.h
+
+## end   gnulib module priv-set
+
+## begin gnulib module progname
+
+libgnu_a_SOURCES += progname.h progname.c
+
+## end   gnulib module progname
+
+## begin gnulib module qacl
+
+libgnu_a_SOURCES += acl-errno-valid.c file-has-acl.c qcopy-acl.c qset-acl.c
+
+EXTRA_DIST += acl-internal.h acl.h acl_entries.c
+
+EXTRA_libgnu_a_SOURCES += acl_entries.c
+
+## end   gnulib module qacl
+
+## begin gnulib module quote
+
+
+EXTRA_DIST += quote.h
+
+## end   gnulib module quote
+
+## begin gnulib module quotearg
+
+libgnu_a_SOURCES += quotearg.c
+
+EXTRA_DIST += quote.h quotearg.h
+
+## end   gnulib module quotearg
+
+## begin gnulib module raise
+
+
+EXTRA_DIST += raise.c
+
+EXTRA_libgnu_a_SOURCES += raise.c
+
+## end   gnulib module raise
+
+## begin gnulib module rawmemchr
+
+
+EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
+
+EXTRA_libgnu_a_SOURCES += rawmemchr.c
+
+## end   gnulib module rawmemchr
+
+## begin gnulib module read
+
+
+EXTRA_DIST += read.c
+
+EXTRA_libgnu_a_SOURCES += read.c
+
+## end   gnulib module read
+
+## begin gnulib module readdir
+
+
+EXTRA_DIST += dirent-private.h readdir.c
+
+EXTRA_libgnu_a_SOURCES += readdir.c
+
+## end   gnulib module readdir
+
+## begin gnulib module readlink
+
+
+EXTRA_DIST += readlink.c
+
+EXTRA_libgnu_a_SOURCES += readlink.c
+
+## end   gnulib module readlink
+
+## begin gnulib module readlinkat
+
+
+EXTRA_DIST += at-func.c readlinkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c readlinkat.c
+
+## end   gnulib module readlinkat
+
+## begin gnulib module realloc-posix
+
+
+EXTRA_DIST += realloc.c
+
+EXTRA_libgnu_a_SOURCES += realloc.c
+
+## end   gnulib module realloc-posix
+
+## begin gnulib module regex
+
+
+EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
+
+EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
+
+## end   gnulib module regex
+
+## begin gnulib module rename
+
+
+EXTRA_DIST += rename.c
+
+EXTRA_libgnu_a_SOURCES += rename.c
+
+## end   gnulib module rename
+
+## begin gnulib module renameat
+
+
+EXTRA_DIST += at-func2.c renameat.c
+
+EXTRA_libgnu_a_SOURCES += at-func2.c renameat.c
+
+## end   gnulib module renameat
+
+## begin gnulib module rewinddir
+
+
+EXTRA_DIST += dirent-private.h rewinddir.c
+
+EXTRA_libgnu_a_SOURCES += rewinddir.c
+
+## end   gnulib module rewinddir
+
+## begin gnulib module rmdir
+
+
+EXTRA_DIST += rmdir.c
+
+EXTRA_libgnu_a_SOURCES += rmdir.c
+
+## end   gnulib module rmdir
+
+## begin gnulib module root-uid
+
+
+EXTRA_DIST += root-uid.h
+
+## end   gnulib module root-uid
+
+## begin gnulib module rpmatch
+
+
+EXTRA_DIST += rpmatch.c
+
+EXTRA_libgnu_a_SOURCES += rpmatch.c
+
+## end   gnulib module rpmatch
+
+## begin gnulib module safe-read
+
+libgnu_a_SOURCES += safe-read.c
+
+EXTRA_DIST += safe-read.h
+
+## end   gnulib module safe-read
+
+## begin gnulib module safe-write
+
+libgnu_a_SOURCES += safe-write.c
+
+EXTRA_DIST += safe-read.c safe-write.h
+
+EXTRA_libgnu_a_SOURCES += safe-read.c
+
+## end   gnulib module safe-write
+
+## begin gnulib module same-inode
+
+
+EXTRA_DIST += same-inode.h
+
+## end   gnulib module same-inode
+
+## begin gnulib module save-cwd
+
+libgnu_a_SOURCES += save-cwd.c
+
+EXTRA_DIST += save-cwd.h
+
+## end   gnulib module save-cwd
+
+## begin gnulib module savedir
+
+libgnu_a_SOURCES += savedir.c
+
+EXTRA_DIST += savedir.h
+
+## end   gnulib module savedir
+
+## begin gnulib module secure_getenv
+
+
+EXTRA_DIST += secure_getenv.c
+
+EXTRA_libgnu_a_SOURCES += secure_getenv.c
+
+## end   gnulib module secure_getenv
+
+## begin gnulib module selinux-at
+
+
+EXTRA_DIST += at-func.c selinux-at.c selinux-at.h
+
+EXTRA_libgnu_a_SOURCES += at-func.c selinux-at.c
+
+## end   gnulib module selinux-at
+
+## begin gnulib module selinux-h
+
+libgnu_a_SOURCES += se-context.in.h se-selinux.in.h se-context.c se-selinux.c
+
+BUILT_SOURCES += selinux/selinux.h
+selinux/selinux.h: se-selinux.in.h $(top_builddir)/config.status $(UNUSED_PARAMETER_H)
+       $(AM_V_at)$(MKDIR_P) selinux
+       $(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_SELINUX_SELINUX_H''@|$(NEXT_SELINUX_SELINUX_H)|g' \
+             -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
+             < $(srcdir)/se-selinux.in.h; \
+       } > $@-t && \
+       chmod a-x $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += selinux/selinux.h selinux/selinux.h-t
+
+BUILT_SOURCES += $(SELINUX_CONTEXT_H)
+if GL_GENERATE_SELINUX_CONTEXT_H
+selinux/context.h: se-context.in.h $(top_builddir)/config.status $(UNUSED_PARAMETER_H)
+       $(AM_V_at)$(MKDIR_P) selinux
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
+             < $(srcdir)/se-context.in.h; \
+       } > $@-t && \
+       chmod a-x $@-t && \
+       mv $@-t $@
+else
+selinux/context.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += selinux/context.h selinux/context.h-t
+MOSTLYCLEANDIRS += selinux
+
+EXTRA_DIST += getfilecon.c
+
+EXTRA_libgnu_a_SOURCES += getfilecon.c
+
+## end   gnulib module selinux-h
+
+## begin gnulib module setenv
+
+
+EXTRA_DIST += setenv.c
+
+EXTRA_libgnu_a_SOURCES += setenv.c
+
+## end   gnulib module setenv
+
+## begin gnulib module signal-h
+
+BUILT_SOURCES += signal.h
+
+# We need the following in order to create <signal.h> when the system
+# doesn't have a complete one.
+signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
+             -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
+             -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+             -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
+             -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
+             -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
+             -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
+             -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
+             -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
+             -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
+             -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
+             -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
+             -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
+             -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
+             -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
+             -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|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)/signal.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += signal.h signal.h-t
+
+EXTRA_DIST += signal.in.h
+
+## end   gnulib module signal-h
+
+## begin gnulib module size_max
+
+libgnu_a_SOURCES += size_max.h
+
+## end   gnulib module size_max
+
+## begin gnulib module sleep
+
+
+EXTRA_DIST += sleep.c
+
+EXTRA_libgnu_a_SOURCES += sleep.c
+
+## end   gnulib module sleep
+
+## begin gnulib module snippet/_Noreturn
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+
+_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+## end   gnulib module snippet/_Noreturn
+
+## begin gnulib module snippet/arg-nonnull
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# 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
+# 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.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
+
+ARG_NONNULL_H=arg-nonnull.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+
+## end   gnulib module snippet/arg-nonnull
+
+## begin gnulib module snippet/c++defs
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# 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 += c++defs.h
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += c++defs.h c++defs.h-t
+
+CXXDEFS_H=c++defs.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h
+
+## end   gnulib module snippet/c++defs
+
+## begin gnulib module snippet/unused-parameter
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# 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 += unused-parameter.h
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
+
+UNUSED_PARAMETER_H=unused-parameter.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h
+
+## end   gnulib module snippet/unused-parameter
+
+## begin gnulib module snippet/warn-on-use
+
+BUILT_SOURCES += warn-on-use.h
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/^.ifndef/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
+
+WARN_ON_USE_H=warn-on-use.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h
+
+## end   gnulib module snippet/warn-on-use
+
+## begin gnulib module snprintf
+
+
+EXTRA_DIST += snprintf.c
+
+EXTRA_libgnu_a_SOURCES += snprintf.c
+
+## end   gnulib module snprintf
+
+## begin gnulib module stat
+
+
+EXTRA_DIST += stat.c
+
+EXTRA_libgnu_a_SOURCES += stat.c
+
+## end   gnulib module stat
+
+## begin gnulib module stat-macros
+
+
+EXTRA_DIST += stat-macros.h
+
+## end   gnulib module stat-macros
+
+## begin gnulib module stat-time
+
+libgnu_a_SOURCES += stat-time.c
+
+EXTRA_DIST += stat-time.h
+
+## end   gnulib module stat-time
+
+## begin gnulib module statat
+
+libgnu_a_SOURCES += statat.c
+
+## end   gnulib module statat
+
+## begin gnulib module stdalign
+
+BUILT_SOURCES += $(STDALIGN_H)
+
+# We need the following in order to create <stdalign.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_STDALIGN_H
+stdalign.h: stdalign.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/stdalign.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+stdalign.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += stdalign.h stdalign.h-t
+
+EXTRA_DIST += stdalign.in.h
+
+## end   gnulib module stdalign
+
+## begin gnulib module stdarg
+
+BUILT_SOURCES += $(STDARG_H)
+
+# We need the following in order to create <stdarg.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_STDARG_H
+stdarg.h: stdarg.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
+             < $(srcdir)/stdarg.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+stdarg.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += stdarg.h stdarg.h-t
+
+EXTRA_DIST += stdarg.in.h
+
+## end   gnulib module stdarg
+
+## begin gnulib module stdbool
+
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_STDBOOL_H
+stdbool.h: stdbool.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+stdbool.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+EXTRA_DIST += stdbool.in.h
+
+## end   gnulib module stdbool
+
+## begin gnulib module stddef
+
+BUILT_SOURCES += $(STDDEF_H)
+
+# We need the following in order to create <stddef.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_STDDEF_H
+stddef.h: stddef.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+             -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
+             -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
+             < $(srcdir)/stddef.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+stddef.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += stddef.h stddef.h-t
+
+EXTRA_DIST += stddef.in.h
+
+## end   gnulib module stddef
+
+## begin gnulib module stdint
+
+BUILT_SOURCES += $(STDINT_H)
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_STDINT_H
+stdint.h: stdint.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+             -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+             -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+             -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+             -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+             -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+             -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+             -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+             -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+             -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+             -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+             -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+             -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+             -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+             -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+             -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+             -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+             -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+             < $(srcdir)/stdint.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+else
+stdint.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint.in.h
+
+## end   gnulib module stdint
+
+## begin gnulib module stdio
+
+BUILT_SOURCES += stdio.h
+
+# We need the following in order to create <stdio.h> when the system
+# doesn't have one that works with the given compiler.
+stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+             -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+             -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+             -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+             -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+             -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+             -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+             -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+             -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+             -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+             -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+             -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+             -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+             -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+             -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+             -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+             -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+             -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+             -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+             -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+             -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+             -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+             -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
+             -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+             -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+             -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+             -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+             -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+             -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+             -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+             -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+             -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+             -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+             -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+             -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+             -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+             -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+             -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+             -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+             -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+             -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
+             < $(srcdir)/stdio.in.h | \
+         sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
+             -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
+             -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
+             -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
+             -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+             -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
+             -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
+             -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
+             -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
+             -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
+             -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+             -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+             -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \
+             -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
+             -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
+             -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
+             -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
+             -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
+             -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
+             -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+             -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
+             -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
+             -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
+             -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
+             -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
+             -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
+             -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
+             -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \
+             -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
+             -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
+             -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
+             -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \
+             -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
+             -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \
+             -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \
+             -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
+             -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
+             -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+             -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
+             -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
+             -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
+             -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
+             -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
+             -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
+             -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
+             -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
+             -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += stdio.h stdio.h-t
+
+EXTRA_DIST += stdio.in.h
+
+## end   gnulib module stdio
+
+## begin gnulib module stdlib
+
+BUILT_SOURCES += stdlib.h
+
+# We need the following in order to create <stdlib.h> when the system
+# doesn't have one that works with the given compiler.
+stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
+  $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+             -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+             -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+             -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+             -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+             -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+             -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+             -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+             -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+             -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_RANDOM''@/$(GNULIB_RANDOM)/g' \
+             -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+             -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
+             -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+             -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+             -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+             -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+             -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+             -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+             -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+             -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+             < $(srcdir)/stdlib.in.h | \
+         sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
+             -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
+             -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
+             -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
+             -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+             -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
+             -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+             -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
+             -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
+             -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
+             -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+             -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
+             -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+             -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+             -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
+             -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
+             -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+             -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
+             -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
+             -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
+             -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
+             -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
+             -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
+             -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
+             -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+             -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
+             -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
+             -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
+             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+             -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
+             -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
+             -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
+             -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+             -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
+             -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
+             -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
+             -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
+             -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
+             -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _Noreturn/r $(_NORETURN_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib.in.h
+
+## end   gnulib module stdlib
+
+## begin gnulib module stpcpy
+
+
+EXTRA_DIST += stpcpy.c
+
+EXTRA_libgnu_a_SOURCES += stpcpy.c
+
+## end   gnulib module stpcpy
+
+## begin gnulib module strcase
+
+
+EXTRA_DIST += strcasecmp.c strncasecmp.c
+
+EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c
+
+## end   gnulib module strcase
+
+## begin gnulib module strchrnul
+
+
+EXTRA_DIST += strchrnul.c strchrnul.valgrind
+
+EXTRA_libgnu_a_SOURCES += strchrnul.c
+
+## end   gnulib module strchrnul
+
+## begin gnulib module strdup-posix
+
+
+EXTRA_DIST += strdup.c
+
+EXTRA_libgnu_a_SOURCES += strdup.c
+
+## end   gnulib module strdup-posix
+
+## begin gnulib module streq
+
+
+EXTRA_DIST += streq.h
+
+## end   gnulib module streq
+
+## begin gnulib module strerror
+
+
+EXTRA_DIST += strerror.c
+
+EXTRA_libgnu_a_SOURCES += strerror.c
+
+## end   gnulib module strerror
+
+## begin gnulib module strerror-override
+
+
+EXTRA_DIST += strerror-override.c strerror-override.h
+
+EXTRA_libgnu_a_SOURCES += strerror-override.c
+
+## end   gnulib module strerror-override
+
+## begin gnulib module string
+
+BUILT_SOURCES += string.h
+
+# We need the following in order to create <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_STRING_H''@|$(NEXT_STRING_H)|g' \
+             -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+             -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+             -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+             -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+             -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+             -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+             -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+             -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+             -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+             -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+             -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+             -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+             -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+             -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+             -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+             -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+             -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+             -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+             -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+             -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+             -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+             -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+             -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+             -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+             -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+             -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+             -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+             -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+             -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+             -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+             -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+             -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+             -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+             -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+             -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+             -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
+             < $(srcdir)/string.in.h | \
+         sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+             -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+             -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+             -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
+             -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+             -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+             -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+             -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
+             -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+             -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+             -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+             -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+             -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+             -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+             -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+             -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+             -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+             -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+             -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
+             -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+             -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
+             -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
+             -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
+             -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+             -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+             -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
+             -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
+             -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+             -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+             -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
+             -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+             -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
+             -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
+             -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+             -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
+             -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+             < $(srcdir)/string.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += string.h string.h-t
+
+EXTRA_DIST += string.in.h
+
+## end   gnulib module string
+
+## begin gnulib module strings
+
+BUILT_SOURCES += strings.h
+
+# We need the following in order to create <strings.h> when the system
+# doesn't have one that works with the given compiler.
+strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+             -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+             -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
+             -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+             -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|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)/strings.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += strings.h strings.h-t
+
+EXTRA_DIST += strings.in.h
+
+## end   gnulib module strings
+
+## begin gnulib module strndup
+
+
+EXTRA_DIST += strndup.c
+
+EXTRA_libgnu_a_SOURCES += strndup.c
+
+## end   gnulib module strndup
+
+## begin gnulib module strnlen
+
+
+EXTRA_DIST += strnlen.c
+
+EXTRA_libgnu_a_SOURCES += strnlen.c
+
+## end   gnulib module strnlen
+
+## begin gnulib module strnlen1
+
+libgnu_a_SOURCES += strnlen1.h strnlen1.c
+
+## end   gnulib module strnlen1
+
+## begin gnulib module strtol
+
+
+EXTRA_DIST += strtol.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c
+
+## end   gnulib module strtol
+
+## begin gnulib module strtoul
+
+
+EXTRA_DIST += strtol.c strtoul.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c strtoul.c
+
+## end   gnulib module strtoul
+
+## begin gnulib module strtoull
+
+
+EXTRA_DIST += strtol.c strtoul.c strtoull.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c strtoul.c strtoull.c
+
+## end   gnulib module strtoull
+
+## begin gnulib module strtoumax
+
+
+EXTRA_DIST += strtoimax.c strtoumax.c
+
+EXTRA_libgnu_a_SOURCES += strtoimax.c strtoumax.c
+
+## end   gnulib module strtoumax
+
+## begin gnulib module symlink
+
+
+EXTRA_DIST += symlink.c
+
+EXTRA_libgnu_a_SOURCES += symlink.c
+
+## end   gnulib module symlink
+
+## begin gnulib module symlinkat
+
+
+EXTRA_DIST += at-func.c symlinkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c symlinkat.c
+
+## end   gnulib module symlinkat
+
+## begin gnulib module sys_stat
+
+BUILT_SOURCES += sys/stat.h
+
+# We need the following in order to create <sys/stat.h> when the system
+# has one that is incomplete.
+sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_at)$(MKDIR_P) sys
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
+             -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+             -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \
+             -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \
+             -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \
+             -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \
+             -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \
+             -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \
+             -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \
+             -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \
+             -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \
+             -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \
+             -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \
+             -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \
+             -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
+             -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
+             -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
+             -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \
+             -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
+             -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \
+             -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \
+             -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \
+             -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \
+             -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \
+             -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \
+             -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
+             -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
+             -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \
+             -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
+             -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
+             -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \
+             -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \
+             -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \
+             -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|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_stat.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_stat.in.h
+
+## end   gnulib module sys_stat
+
+## begin gnulib module sys_time
+
+BUILT_SOURCES += sys/time.h
+
+# We need the following in order to create <sys/time.h> when the system
+# doesn't have one that works with the given compiler.
+sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_at)$(MKDIR_P) sys
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
+             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+             -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
+             -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
+             -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
+             -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/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_time.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += sys/time.h sys/time.h-t
+
+EXTRA_DIST += sys_time.in.h
+
+## end   gnulib module sys_time
+
+## begin gnulib module sys_types
+
+BUILT_SOURCES += sys/types.h
+
+# We need the following in order to create <sys/types.h> when the system
+# doesn't have one that works with the given compiler.
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+       $(AM_V_at)$(MKDIR_P) sys
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             < $(srcdir)/sys_types.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += sys/types.h sys/types.h-t
+
+EXTRA_DIST += sys_types.in.h
+
+## end   gnulib module sys_types
+
+## begin gnulib module sysexits
+
+BUILT_SOURCES += $(SYSEXITS_H)
+
+# We need the following in order to create <sysexits.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_SYSEXITS_H
+sysexits.h: sysexits.in.h $(top_builddir)/config.status
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_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_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
+             < $(srcdir)/sysexits.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+else
+sysexits.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += sysexits.h sysexits.h-t
+
+EXTRA_DIST += sysexits.in.h
+
+## end   gnulib module sysexits
+
+## begin gnulib module tempname
+
+libgnu_a_SOURCES += tempname.c
+
+EXTRA_DIST += tempname.h
+
+## end   gnulib module tempname
+
+## begin gnulib module time
+
+BUILT_SOURCES += time.h
+
+# We need the following in order to create <time.h> when the system
+# doesn't have one that works with the given compiler.
+time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_TIME_H''@|$(NEXT_TIME_H)|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|@''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|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
+             -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
+             -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
+             -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
+             -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
+             -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
+             -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_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)' \
+             < $(srcdir)/time.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += time.h time.h-t
+
+EXTRA_DIST += time.in.h
+
+## end   gnulib module time
+
+## begin gnulib module time_r
+
+
+EXTRA_DIST += time_r.c
+
+EXTRA_libgnu_a_SOURCES += time_r.c
+
+## end   gnulib module time_r
+
+## begin gnulib module timespec
+
+libgnu_a_SOURCES += timespec.c
+
+EXTRA_DIST += timespec.h
+
+## end   gnulib module timespec
+
+## begin gnulib module unistd
+
+BUILT_SOURCES += unistd.h
+libgnu_a_SOURCES += unistd.c
+
+# We need the following in order to create an empty placeholder for
+# <unistd.h> when the system doesn't have one.
+unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+             -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
+             -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+             -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+             -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+             -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+             -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+             -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+             -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+             -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
+             -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+             -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+             -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+             -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+             -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+             -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+             -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+             -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+             -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+             -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+             -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+             -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+             -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
+             -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+             -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+             -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+             -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+             -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+             -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+             -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+             -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+             -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+             -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+             -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+             -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+             -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
+             -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+             -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+             -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+             -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+             -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+             -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+             -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+             -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+             -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
+             < $(srcdir)/unistd.in.h | \
+         sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
+             -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+             -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
+             -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
+             -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
+             -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
+             -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+             -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
+             -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
+             -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+             -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
+             -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
+             -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
+             -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
+             -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+             -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
+             -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
+             -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
+             -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
+             -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
+             -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
+             -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
+             -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
+             -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+             -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+             -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
+             -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+             -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
+             -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
+             -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
+             -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
+             -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+             -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+             -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
+             -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
+             -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+             -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
+             -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+             -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+             -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
+             -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+             -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+         | \
+         sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+             -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
+             -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
+             -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
+             -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
+             -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+             -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+             -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
+             -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
+             -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+             -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
+             -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+             -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
+             -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
+             -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+             -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
+             -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
+             -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
+             -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
+             -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
+             -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
+             -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
+             -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
+             -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
+             -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
+             -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \
+             -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \
+             -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \
+             -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += unistd.h unistd.h-t
+
+EXTRA_DIST += unistd.in.h
+
+## end   gnulib module unistd
+
+## begin gnulib module unistd-safer
+
+libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c
+
+EXTRA_DIST += unistd--.h unistd-safer.h
+
+## end   gnulib module unistd-safer
+
+## begin gnulib module unitypes
+
+BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
+
+unitypes.h: unitypes.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unitypes.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unitypes.h unitypes.h-t
+
+EXTRA_DIST += unitypes.in.h
+
+## end   gnulib module unitypes
+
+## begin gnulib module uniwidth/base
+
+BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H)
+
+uniwidth.h: uniwidth.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniwidth.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t
+
+EXTRA_DIST += localcharset.h uniwidth.in.h
+
+## end   gnulib module uniwidth/base
+
+## begin gnulib module uniwidth/width
+
+if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH
+libgnu_a_SOURCES += uniwidth/width.c
+endif
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end   gnulib module uniwidth/width
+
+## begin gnulib module unlink
+
+
+EXTRA_DIST += unlink.c
+
+EXTRA_libgnu_a_SOURCES += unlink.c
+
+## end   gnulib module unlink
+
+## begin gnulib module unlinkat
+
+
+EXTRA_DIST += at-func.c unlinkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c unlinkat.c
+
+## end   gnulib module unlinkat
+
+## begin gnulib module unlinkdir
+
+libgnu_a_SOURCES += unlinkdir.c
+
+EXTRA_DIST += unlinkdir.h
+
+## end   gnulib module unlinkdir
+
+## begin gnulib module unlocked-io
+
+
+EXTRA_DIST += unlocked-io.h
+
+## end   gnulib module unlocked-io
+
+## begin gnulib module unsetenv
+
+
+EXTRA_DIST += unsetenv.c
+
+EXTRA_libgnu_a_SOURCES += unsetenv.c
+
+## end   gnulib module unsetenv
+
+## begin gnulib module utimens
+
+libgnu_a_SOURCES += utimens.c
+
+EXTRA_DIST += utimens.h
+
+## end   gnulib module utimens
+
+## begin gnulib module utimensat
+
+
+EXTRA_DIST += at-func.c utimensat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c utimensat.c
+
+## end   gnulib module utimensat
+
+## begin gnulib module vasnprintf
+
+
+EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
+
+EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c
+
+## end   gnulib module vasnprintf
+
+## begin gnulib module vasprintf
+
+
+EXTRA_DIST += asprintf.c vasprintf.c
+
+EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c
+
+## end   gnulib module vasprintf
+
+## begin gnulib module verify
+
+
+EXTRA_DIST += verify.h
+
+## end   gnulib module verify
+
+## begin gnulib module version-etc
+
+libgnu_a_SOURCES += version-etc.h version-etc.c
+
+## end   gnulib module version-etc
+
+## begin gnulib module version-etc-fsf
+
+libgnu_a_SOURCES += version-etc-fsf.c
+
+## end   gnulib module version-etc-fsf
+
+## begin gnulib module vsnprintf
+
+
+EXTRA_DIST += vsnprintf.c
+
+EXTRA_libgnu_a_SOURCES += vsnprintf.c
+
+## end   gnulib module vsnprintf
+
+## begin gnulib module wchar
+
+BUILT_SOURCES += wchar.h
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -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_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+             -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
+             -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+             -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+             -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+             -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+             -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+             -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+             -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+             -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+             -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+             -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+             -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+             -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+             -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+             -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+             -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+             -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+             -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+             -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+             -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+             -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+             -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+             -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+             -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+             -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+             -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+             -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+             -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+             -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+             -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+             -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+             -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+             -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+             -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+             -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+             -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+             -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+             -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+             -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+             -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+             < $(srcdir)/wchar.in.h | \
+         sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+             -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
+             -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
+             -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
+             -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
+             -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
+             -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
+             -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
+             -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
+             -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+             -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
+             -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
+             -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
+             -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
+             -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
+             -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
+             -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
+             -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
+             -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
+             -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
+             -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
+             -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
+             -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
+             -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
+             -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
+             -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
+             -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
+             -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
+             -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
+             -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
+             -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
+             -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
+             -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
+             -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
+             -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
+             -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
+             -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
+             -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
+             -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+             -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+         | \
+         sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+             -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
+             -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+             -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
+             -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
+             -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
+             -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
+             -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
+             -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
+             -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
+             -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
+             -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+             -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar.in.h
+
+## end   gnulib module wchar
+
+## begin gnulib module wcrtomb
+
+
+EXTRA_DIST += wcrtomb.c
+
+EXTRA_libgnu_a_SOURCES += wcrtomb.c
+
+## end   gnulib module wcrtomb
+
+## begin gnulib module wctype-h
+
+BUILT_SOURCES += wctype.h
+libgnu_a_SOURCES += wctype-h.c
+
+# We need the following in order to create <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+             -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+             -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+             -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+             -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+             -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
+             -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
+             -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+             -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+             -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
+             -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+             -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
+             -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+             -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             < $(srcdir)/wctype.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += wctype.h wctype.h-t
+
+EXTRA_DIST += wctype.in.h
+
+## end   gnulib module wctype-h
+
+## begin gnulib module wcwidth
+
+
+EXTRA_DIST += wcwidth.c
+
+EXTRA_libgnu_a_SOURCES += wcwidth.c
+
+## end   gnulib module wcwidth
+
+## begin gnulib module write
+
+
+EXTRA_DIST += write.c
+
+EXTRA_libgnu_a_SOURCES += write.c
+
+## end   gnulib module write
+
+## begin gnulib module xalloc
+
+libgnu_a_SOURCES += xmalloc.c
+
+EXTRA_DIST += xalloc.h
+
+## end   gnulib module xalloc
+
+## begin gnulib module xalloc-die
+
+libgnu_a_SOURCES += xalloc-die.c
+
+## end   gnulib module xalloc-die
+
+## begin gnulib module xalloc-oversized
+
+
+EXTRA_DIST += xalloc-oversized.h
+
+## end   gnulib module xalloc-oversized
+
+## begin gnulib module xgetcwd
+
+libgnu_a_SOURCES += xgetcwd.c
+
+EXTRA_DIST += xgetcwd.h
+
+## end   gnulib module xgetcwd
+
+## begin gnulib module xsize
+
+libgnu_a_SOURCES += xsize.h xsize.c
+
+## end   gnulib module xsize
+
+## begin gnulib module xstrndup
+
+libgnu_a_SOURCES += xstrndup.h xstrndup.c
+
+## end   gnulib module xstrndup
+
+## begin gnulib module xstrtol
+
+libgnu_a_SOURCES += xstrtol.c xstrtoul.c xstrtol-error.c
+
+EXTRA_DIST += xstrtol.h
+
+## end   gnulib module xstrtol
+
+## begin gnulib module xstrtoumax
+
+libgnu_a_SOURCES += xstrtoumax.c
+
+## end   gnulib module xstrtoumax
+
+## begin gnulib module xvasprintf
+
+libgnu_a_SOURCES += xvasprintf.h xvasprintf.c xasprintf.c
+
+EXTRA_DIST += xalloc.h
+
+## end   gnulib module xvasprintf
+
+
+mostlyclean-local: mostlyclean-generic
+       @for dir in '' $(MOSTLYCLEANDIRS); do \
+         if test -n "$$dir" && test -d $$dir; then \
+           echo "rmdir $$dir"; rmdir $$dir; \
+         fi; \
+       done; \
+       :
index 1b4474ffebc1babfb4ec9a227a059106495ccb28..8921b4fec3ddcaa7b70cd70362f5234ff18094b9 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* hash - hashing table processing.
 
-   Copyright (C) 1998-2004, 2006-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-2004, 2006-2007, 2009-2013 Free Software Foundation, Inc.
 
    Written by Jim Meyering, 1992.
 
@@ -29,7 +29,7 @@
 #include "hash.h"
 
 #include "bitrotate.h"
-#include "xalloc.h"
+#include "xalloc-oversized.h"
 
 #include <stdint.h>
 #include <stdio.h>
@@ -65,7 +65,7 @@ struct hash_table
     /* Tuning arguments, kept in a physically separate structure.  */
     const Hash_tuning *tuning;
 
-    /* Three functions are given to `hash_initialize', see the documentation
+    /* Three functions are given to 'hash_initialize', see the documentation
        block for this function.  In a word, HASHER randomizes a user entry
        into a number up from 0 up to some maximum minus 1; COMPARATOR returns
        true if two user entries compare equally; and DATA_FREER is the cleanup
@@ -89,23 +89,23 @@ struct hash_table
    some user-provided data (also called a user entry).  An entry indistinctly
    refers to both the internal entry and its associated user entry.  A user
    entry contents may be hashed by a randomization function (the hashing
-   function, or just `hasher' for short) into a number (or `slot') between 0
+   function, or just "hasher" for short) into a number (or "slot") between 0
    and the current table size.  At each slot position in the hash table,
    starts a linked chain of entries for which the user data all hash to this
    slot.  A bucket is the collection of all entries hashing to the same slot.
 
-   A good `hasher' function will distribute entries rather evenly in buckets.
+   A good "hasher" function will distribute entries rather evenly in buckets.
    In the ideal case, the length of each bucket is roughly the number of
    entries divided by the table size.  Finding the slot for a data is usually
-   done in constant time by the `hasher', and the later finding of a precise
+   done in constant time by the "hasher", and the later finding of a precise
    entry is linear in time with the size of the bucket.  Consequently, a
    larger hash table size (that is, a larger number of buckets) is prone to
-   yielding shorter chains, *given* the `hasher' function behaves properly.
+   yielding shorter chains, *given* the "hasher" function behaves properly.
 
    Long buckets slow down the lookup algorithm.  One might use big hash table
    sizes in hope to reduce the average length of buckets, but this might
    become inordinate, as unused slots in the hash table take some space.  The
-   best bet is to make sure you are using a good `hasher' function (beware
+   best bet is to make sure you are using a good "hasher" function (beware
    that those are not that easy to write! :-), and to use a table size
    larger than the actual number of entries.  */
 
@@ -115,8 +115,8 @@ struct hash_table
    1.0).  The growth threshold defaults to 0.8, and the growth factor
    defaults to 1.414, meaning that the table will have doubled its size
    every second time 80% of the buckets get used.  */
-#define DEFAULT_GROWTH_THRESHOLD 0.8
-#define DEFAULT_GROWTH_FACTOR 1.414
+#define DEFAULT_GROWTH_THRESHOLD 0.8f
+#define DEFAULT_GROWTH_FACTOR 1.414f
 
 /* If a deletion empties a bucket and causes the ratio of used buckets to
    table size to become smaller than the shrink threshold (a number between
@@ -124,8 +124,8 @@ struct hash_table
    number greater than the shrink threshold but smaller than 1.0).  The shrink
    threshold and factor default to 0.0 and 1.0, meaning that the table never
    shrinks.  */
-#define DEFAULT_SHRINK_THRESHOLD 0.0
-#define DEFAULT_SHRINK_FACTOR 1.0
+#define DEFAULT_SHRINK_THRESHOLD 0.0f
+#define DEFAULT_SHRINK_FACTOR 1.0f
 
 /* Use this to initialize or reset a TUNING structure to
    some sensible values. */
@@ -302,7 +302,7 @@ hash_get_first (const Hash_table *table)
 }
 
 /* Return the user data for the entry following ENTRY, where ENTRY has been
-   returned by a previous call to either `hash_get_first' or `hash_get_next'.
+   returned by a previous call to either 'hash_get_first' or 'hash_get_next'.
    Return NULL if there are no more entries.  */
 
 void *
@@ -421,9 +421,9 @@ hash_string (const char *string, size_t n_buckets)
 
 #else /* not USE_DIFF_HASH */
 
-/* This one comes from `recode', and performs a bit better than the above as
+/* This one comes from 'recode', and performs a bit better than the above as
    per a few experiments.  It is inspired from a hashing routine found in the
-   very old Cyber `snoop', itself written in typical Greg Mansfield style.
+   very old Cyber 'snoop', itself written in typical Greg Mansfield style.
    (By the way, what happened to this excellent man?  Is he still alive?)  */
 
 size_t
@@ -442,7 +442,7 @@ hash_string (const char *string, size_t n_buckets)
 /* Return true if CANDIDATE is a prime number.  CANDIDATE should be an odd
    number at least equal to 11.  */
 
-static bool
+static bool _GL_ATTRIBUTE_CONST
 is_prime (size_t candidate)
 {
   size_t divisor = 3;
@@ -461,7 +461,7 @@ is_prime (size_t candidate)
 /* Round a given CANDIDATE number up to the nearest prime, and return that
    prime.  Primes lower than 10 are merely skipped.  */
 
-static size_t
+static size_t _GL_ATTRIBUTE_CONST
 next_prime (size_t candidate)
 {
   /* Skip small primes.  */
@@ -542,7 +542,7 @@ check_tuning (Hash_table *table)
    TUNING, or return 0 if there is no possible way to allocate that
    many entries.  */
 
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
 compute_bucket_size (size_t candidate, const Hash_tuning *tuning)
 {
   if (!tuning->is_n_buckets)
@@ -586,9 +586,9 @@ compute_bucket_size (size_t candidate, const Hash_tuning *tuning)
 
    The user-supplied DATA_FREER function, when not NULL, may be later called
    with the user data as an argument, just before the entry containing the
-   data gets freed.  This happens from within `hash_free' or `hash_clear'.
+   data gets freed.  This happens from within 'hash_free' or 'hash_clear'.
    You should specify this function only if you want these functions to free
-   all of your `data' data.  This is typically the case when your data is
+   all of your 'data' data.  This is typically the case when your data is
    simply an auxiliary struct that you have malloc'd to aggregate several
    values.  */
 
@@ -1020,7 +1020,9 @@ hash_rehash (Hash_table *table, size_t candidate)
   return false;
 }
 
-/* Return -1 upon memory allocation failure.
+/* Insert ENTRY into hash TABLE if there is not already a matching entry.
+
+   Return -1 upon memory allocation failure.
    Return 1 if insertion succeeded.
    Return 0 if there is already a matching entry in the table,
    and in that case, if MATCHED_ENT is non-NULL, set *MATCHED_ENT
@@ -1032,10 +1034,11 @@ hash_rehash (Hash_table *table, size_t candidate)
    hash_insert, the only way to distinguish those cases is to compare
    the return value and ENTRY.  That works only when you can have two
    different ENTRY values that point to data that compares "equal".  Thus,
-   when the ENTRY value is a simple scalar, you must use hash_insert0.
-   ENTRY must not be NULL.  */
+   when the ENTRY value is a simple scalar, you must use
+   hash_insert_if_absent.  ENTRY must not be NULL.  */
 int
-hash_insert0 (Hash_table *table, void const *entry, void const **matched_ent)
+hash_insert_if_absent (Hash_table *table, void const *entry,
+                       void const **matched_ent)
 {
   void *data;
   struct hash_entry *bucket;
@@ -1115,6 +1118,14 @@ hash_insert0 (Hash_table *table, void const *entry, void const **matched_ent)
   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.
@@ -1125,7 +1136,7 @@ void *
 hash_insert (Hash_table *table, void const *entry)
 {
   void const *matched_ent;
-  int err = hash_insert0 (table, entry, &matched_ent);
+  int err = hash_insert_if_absent (table, entry, &matched_ent);
   return (err == -1
           ? NULL
           : (void *) (err == 0 ? matched_ent : entry));
index afe8dd31ca0bf35e7771555c4afdbd3a8bbe8565..02d7e2472091688eff3a92850c07784133b72dbc 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* hash - hashing table processing.
-   Copyright (C) 1998-1999, 2001, 2003, 2009-2011 Free Software Foundation,
+   Copyright (C) 1998-1999, 2001, 2003, 2009-2013 Free Software Foundation,
    Inc.
    Written by Jim Meyering <meyering@ascend.com>, 1998.
 
@@ -21,7 +21,7 @@
 /* A generic hash table package.  */
 
 /* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
-   obstacks instead of malloc, and recompile `hash.c' with same setting.  */
+   obstacks instead of malloc, and recompile 'hash.c' with same setting.  */
 
 #ifndef HASH_H_
 # define HASH_H_
 #  define _GL_ATTRIBUTE_WUR /* empty */
 # endif
 
+# ifndef _GL_ATTRIBUTE_DEPRECATED
+/* The __attribute__((__deprecated__)) feature
+   is available in gcc versions 3.1 and newer.  */
+#  if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1)
+#   define _GL_ATTRIBUTE_DEPRECATED /* empty */
+#  else
+#   define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+#  endif
+# endif
+
 typedef size_t (*Hash_hasher) (const void *, size_t);
 typedef bool (*Hash_comparator) (const void *, const void *);
 typedef void (*Hash_data_freer) (void *);
@@ -44,8 +54,8 @@ typedef bool (*Hash_processor) (void *, void *);
 
 struct hash_tuning
   {
-    /* This structure is mainly used for `hash_initialize', see the block
-       documentation of `hash_reset_tuning' for more complete comments.  */
+    /* This structure is mainly used for 'hash_initialize', see the block
+       documentation of 'hash_reset_tuning' for more complete comments.  */
 
     float shrink_threshold;     /* ratio of used buckets to trigger a shrink */
     float shrink_factor;        /* ratio of new smaller size to original size */
@@ -61,22 +71,22 @@ struct hash_table;
 typedef struct hash_table Hash_table;
 
 /* Information and lookup.  */
-size_t hash_get_n_buckets (const Hash_table *);
-size_t hash_get_n_buckets_used (const Hash_table *);
-size_t hash_get_n_entries (const Hash_table *);
-size_t hash_get_max_bucket_length (const Hash_table *);
-bool hash_table_ok (const Hash_table *);
+size_t hash_get_n_buckets (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_n_buckets_used (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_n_entries (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_max_bucket_length (const Hash_table *) _GL_ATTRIBUTE_PURE;
+bool hash_table_ok (const Hash_table *) _GL_ATTRIBUTE_PURE;
 void hash_print_statistics (const Hash_table *, FILE *);
 void *hash_lookup (const Hash_table *, const void *);
 
 /* Walking.  */
-void *hash_get_first (const Hash_table *);
+void *hash_get_first (const Hash_table *) _GL_ATTRIBUTE_PURE;
 void *hash_get_next (const Hash_table *, const void *);
 size_t hash_get_entries (const Hash_table *, void **, size_t);
 size_t hash_do_for_each (const Hash_table *, Hash_processor, void *);
 
 /* Allocation and clean-up.  */
-size_t hash_string (const char *, size_t);
+size_t hash_string (const char *, size_t) _GL_ATTRIBUTE_PURE;
 void hash_reset_tuning (Hash_tuning *);
 Hash_table *hash_initialize (size_t, const Hash_tuning *,
                              Hash_hasher, Hash_comparator,
@@ -87,8 +97,13 @@ void hash_free (Hash_table *);
 /* Insertion and deletion.  */
 bool hash_rehash (Hash_table *, size_t) _GL_ATTRIBUTE_WUR;
 void *hash_insert (Hash_table *, const void *) _GL_ATTRIBUTE_WUR;
-int hash_insert0 (Hash_table *table, const void *entry,
-                  const void **matched_ent);
+
+/* 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 *);
 
 #endif
index b2ef3ea8988848000d321a990e8239c64a8d507f..be90515ebb97df5dd363bc5f8d6cfcb5c0fe11fd 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* human.c -- print human readable file size
 
-   Copyright (C) 1996-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 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
@@ -74,7 +74,7 @@ adjust_value (int inexact_style, long double value)
    each byte inserted.  Return the starting address of the modified
    number.
 
-   To group the digits, use GROUPING and THOUSANDS_SEP as in `struct
+   To group the digits, use GROUPING and THOUSANDS_SEP as in 'struct
    lconv' from <locale.h>.  */
 
 static char *
@@ -130,7 +130,7 @@ group_number (char *number, size_t numberlen,
    that cannot be expressed exactly.
 
    If (OPTS & human_group_digits), group the thousands digits
-   according to the locale, e.g., `1,000,000' in an American English
+   according to the locale, e.g., "1,000,000" in an American English
    locale.
 
    If (OPTS & human_autoscale), deduce the output block size
index a46aaaa392717bdcf1c22b29b84c2ce9230b0931..5c65b4a9d3215a5b2bf485edfafb25a2df491505 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* human.h -- print human readable file size
 
-   Copyright (C) 1996-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 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
@@ -54,7 +54,7 @@ enum
   /* Round to minus infinity.  */
   human_floor = 2,
 
-  /* Group digits together, e.g. `1,000,000'.  This uses the
+  /* Group digits together, e.g. "1,000,000".  This uses the
      locale-defined grouping; the traditional C locale does not group,
      so this has effect only if some other locale is in use.  */
   human_group_digits = 4,
index 45776063e40290e05b9aa65c5c46295c3a7761a3..9c205441b732cb89667d4fe41f6302b35c8de481 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2005, 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
 
 /* Written by Paul Eggert.  */
 
-#ifndef GL_INTPROPS_H
-# define GL_INTPROPS_H
+#ifndef _GL_INTPROPS_H
+#define _GL_INTPROPS_H
 
-# include <limits.h>
+#include <limits.h>
+
+/* Return an integer value, converted to the same type as the integer
+   expression E after integer type promotion.  V is the unconverted value.  */
+#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
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.  */
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
 
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
 
 /* True if the arithmetic type T is an integer type.  bool counts as
    an integer.  */
-# define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+#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)
+#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.  */
-# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#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)
+
 
-/* The maximum and minimum values for the integer type T.  These
+/* 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.  */
-# define TYPE_MINIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-        ? (t) 0 \
-        : TYPE_SIGNED_MAGNITUDE (t) \
-        ? ~ (t) 0 \
+
+/* 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_MAXIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-        ? (t) -1 \
+#define TYPE_MAXIMUM(t)                                                 \
+  ((t) (! TYPE_SIGNED (t)                                               \
+        ? (t) -1                                                        \
         : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
 
-/* Return zero if T can be determined to be an unsigned type.
-   Otherwise, return 1.
-   When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
-   tighter bound.  Otherwise, it overestimates the true bound by one byte
-   when applied to unsigned types of size 2, 4, 16, ... bytes.
-   The symbol signed_type_or_expr__ is private to this header file.  */
-# if __GNUC__ >= 2
-#  define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
-# else
-#  define signed_type_or_expr__(t) 1
-# endif
+/* 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)         \
+   : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e)                                              \
+  (_GL_INT_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)
+
+
+/* Return 1 if the __typeof__ keyword works.  This could be done by
+   'configure', but for now it's easier to do it by hand.  */
+#if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed.  Return 0
+   if it is definitely unsigned.  This macro does not evaluate its argument,
+   and expands to an integer constant expression.  */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
 
 /* Bound on length of the string representing an unsigned integer
    value representable in B bits.  log10 (2.0) < 146/485.  The
    smallest value of B where this bound is not tight is 2621.  */
-# define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
+#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
 
 /* Bound on length of the string representing an integer type or expression T.
    Subtract 1 for the sign bit if T is signed, and then add 1 more for
-   a minus sign if needed.  */
-# define INT_STRLEN_BOUND(t) \
-  (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) \
-   + signed_type_or_expr__ (t))
+   a minus sign if needed.
+
+   Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is
+   signed, this macro may overestimate the true bound by one byte when
+   applied to unsigned types of size 2, 4, 16, ... bytes.  */
+#define INT_STRLEN_BOUND(t)                                     \
+  (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT                 \
+                          - _GL_SIGNED_TYPE_OR_EXPR (t))        \
+   + _GL_SIGNED_TYPE_OR_EXPR (t))
 
 /* Bound on buffer size needed to represent an integer type or expression T,
    including the terminating null.  */
-# define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+
+
+/* Range overflow checks.
+
+   The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
+   operators might not yield numerically correct answers due to
+   arithmetic overflow.  They do not rely on undefined or
+   implementation-defined behavior.  Their implementations are simple
+   and straightforward, but they are a bit harder to use than the
+   INT_<op>_OVERFLOW macros described below.
+
+   Example usage:
+
+     long int i = ...;
+     long int j = ...;
+     if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
+       printf ("multiply would overflow");
+     else
+       printf ("product is %ld", i * j);
+
+   Restrictions on *_RANGE_OVERFLOW macros:
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times,
+   so the arguments should not have side effects.  The arithmetic
+   arguments (including the MIN and MAX arguments) must be of the same
+   integer type after the usual arithmetic conversions, and the type
+   must have minimum value MIN and maximum MAX.  Unsigned types should
+   use a zero MIN of the proper type.
+
+   These macros are tuned for constant MIN and MAX.  For commutative
+   operations such as A + B, they are also tuned for constant B.  */
+
+/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_ADD_RANGE_OVERFLOW(a, b, min, max)          \
+  ((b) < 0                                              \
+   ? (a) < (min) - (b)                                  \
+   : (max) - (b) < (a))
+
+/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? (max) + (b) < (a)                                  \
+   : (a) < (min) + (b))
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_NEGATE_RANGE_OVERFLOW(a, min, max)          \
+  ((min) < 0                                            \
+   ? (a) < - (max)                                      \
+   : 0 < (a))
+
+/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Avoid && and || as they tickle
+   bugs in Sun C 5.11 2010/08/13 and other compilers; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.  */
+#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? ((a) < 0                                           \
+      ? (a) < (max) / (b)                               \
+      : (b) == -1                                       \
+      ? 0                                               \
+      : (min) / (b) < (a))                              \
+   : (b) == 0                                           \
+   ? 0                                                  \
+   : ((a) < 0                                           \
+      ? (a) < (min) / (b)                               \
+      : (max) / (b) < (a)))
+
+/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.  */
+#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max)       \
+  ((min) < 0 && (b) == -1 && (a) < - (max))
+
+/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.
+   Mathematically, % should never overflow, but on x86-like hosts
+   INT_MIN % -1 traps, and the C standard permits this, so treat this
+   as an overflow too.  */
+#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max)    \
+  INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
+
+/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Here, MIN and MAX are for A only, and B need
+   not be of the same type as the other arguments.  The C standard says that
+   behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
+   A is negative then A << B has undefined behavior and A >> B has
+   implementation-defined behavior, but do not check these other
+   restrictions.  */
+#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max)   \
+  ((a) < 0                                              \
+   ? (a) < (min) >> (b)                                 \
+   : (max) >> (b) < (a))
+
+
+/* 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))
+#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                                     \
+   : (b) < 0 && (a) + (b) <= (a))
+#define _GL_REMAINDER_OVERFLOW(a, b, min, max)                          \
+  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
+   : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b)                     \
+   : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
+
+/* Return a nonzero value if A is a mathematical multiple of B, where
+   A is unsigned, B is negative, and MAX is the maximum value of A's
+   type.  A's type must be the same as (A % B)'s type.  Normally (A %
+   -B == 0) suffices, but things get tricky if -B would overflow.  */
+#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max)                            \
+  (((b) < -_GL_SIGNED_INT_MAXIMUM (b)                                   \
+    ? (_GL_SIGNED_INT_MAXIMUM (b) == (max)                              \
+       ? (a)                                                            \
+       : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1))   \
+    : (a) % - (b))                                                      \
+   == 0)
+
+
+/* Integer overflow checks.
+
+   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
+   on undefined behavior due to signed arithmetic overflow.
+
+   Example usage:
+
+     long int i = ...;
+     long int j = ...;
+     if (INT_MULTIPLY_OVERFLOW (i, j))
+       printf ("multiply would overflow");
+     else
+       printf ("product is %ld", i * j);
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times, so the
+   arguments should not have side effects.
+
+   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,
+   A % B, and A << B would overflow, respectively.  */
+
+#define INT_ADD_OVERFLOW(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))
+#define INT_MULTIPLY_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
+#define INT_DIVIDE_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
+#define INT_REMAINDER_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
+#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
+  INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
+                                 _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+
+/* Return 1 if the expression A <op> B would overflow,
+   where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
+   assuming MIN and MAX are the minimum and maximum for the result type.
+   Arguments should be free of side effects.  */
+#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
+  op_result_overflow (a, b,                                     \
+                      _GL_INT_MINIMUM (0 * (b) + (a)),          \
+                      _GL_INT_MAXIMUM (0 * (b) + (a)))
 
-#endif /* GL_INTPROPS_H */
+#endif /* _GL_INTPROPS_H */
index 937ec36514820caa040f4c6a89a534f44c172973..a65c6abba69cdf6c9f980802bec3583dd9671f90 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* inttostr.h -- convert integers to printable strings
 
-   Copyright (C) 2001-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-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
index 6f05803c452b8a10ff6c8e0ac9004078c8b9f30b..ba060dc4c511a64d913cb5971866234708ef8319 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 2006-2011 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2013 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
    The include_next requires a split double-inclusion guard.  */
 #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 # if @HAVE_INTTYPES_H@
+
+   /* Some pre-C++11 <stdint.h> implementations need this.  */
+#  if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
+#   define __STDC_FORMAT_MACROS 1
+#  endif
+
 #  @INCLUDE_NEXT@ @NEXT_INTTYPES_H@
 # endif
 #endif
 # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
 #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.  */
 
 /* 7.8.1 Macros for format specifiers */
 
-#if ! defined __cplusplus || defined __STDC_FORMAT_MACROS
-
-# if defined _TNS_R_TARGET
+#if defined _TNS_R_TARGET
    /* Tandem NonStop R series and compatible platforms released before
       July 2005 support %Ld but not %lld.  */
-#  define _LONG_LONG_FORMAT_PREFIX "L"
-# else
-#  define _LONG_LONG_FORMAT_PREFIX "ll"
-# endif
+# define _LONG_LONG_FORMAT_PREFIX "L"
+#else
+# define _LONG_LONG_FORMAT_PREFIX "ll"
+#endif
 
-# if !defined PRId8 || @PRI_MACROS_BROKEN@
-#  undef PRId8
-#  ifdef INT8_MAX
-#   define PRId8 "d"
-#  endif
+#if !defined PRId8 || @PRI_MACROS_BROKEN@
+# undef PRId8
+# ifdef INT8_MAX
+#  define PRId8 "d"
 # endif
-# if !defined PRIi8 || @PRI_MACROS_BROKEN@
-#  undef PRIi8
-#  ifdef INT8_MAX
-#   define PRIi8 "i"
-#  endif
+#endif
+#if !defined PRIi8 || @PRI_MACROS_BROKEN@
+# undef PRIi8
+# ifdef INT8_MAX
+#  define PRIi8 "i"
 # endif
-# if !defined PRIo8 || @PRI_MACROS_BROKEN@
-#  undef PRIo8
-#  ifdef UINT8_MAX
-#   define PRIo8 "o"
-#  endif
+#endif
+#if !defined PRIo8 || @PRI_MACROS_BROKEN@
+# undef PRIo8
+# ifdef UINT8_MAX
+#  define PRIo8 "o"
 # endif
-# if !defined PRIu8 || @PRI_MACROS_BROKEN@
-#  undef PRIu8
-#  ifdef UINT8_MAX
-#   define PRIu8 "u"
-#  endif
+#endif
+#if !defined PRIu8 || @PRI_MACROS_BROKEN@
+# undef PRIu8
+# ifdef UINT8_MAX
+#  define PRIu8 "u"
 # endif
-# if !defined PRIx8 || @PRI_MACROS_BROKEN@
-#  undef PRIx8
-#  ifdef UINT8_MAX
-#   define PRIx8 "x"
-#  endif
+#endif
+#if !defined PRIx8 || @PRI_MACROS_BROKEN@
+# undef PRIx8
+# ifdef UINT8_MAX
+#  define PRIx8 "x"
 # endif
-# if !defined PRIX8 || @PRI_MACROS_BROKEN@
-#  undef PRIX8
-#  ifdef UINT8_MAX
-#   define PRIX8 "X"
-#  endif
+#endif
+#if !defined PRIX8 || @PRI_MACROS_BROKEN@
+# undef PRIX8
+# ifdef UINT8_MAX
+#  define PRIX8 "X"
 # endif
-# if !defined PRId16 || @PRI_MACROS_BROKEN@
-#  undef PRId16
-#  ifdef INT16_MAX
-#   define PRId16 "d"
-#  endif
+#endif
+#if !defined PRId16 || @PRI_MACROS_BROKEN@
+# undef PRId16
+# ifdef INT16_MAX
+#  define PRId16 "d"
 # endif
-# if !defined PRIi16 || @PRI_MACROS_BROKEN@
-#  undef PRIi16
-#  ifdef INT16_MAX
-#   define PRIi16 "i"
-#  endif
+#endif
+#if !defined PRIi16 || @PRI_MACROS_BROKEN@
+# undef PRIi16
+# ifdef INT16_MAX
+#  define PRIi16 "i"
 # endif
-# if !defined PRIo16 || @PRI_MACROS_BROKEN@
-#  undef PRIo16
-#  ifdef UINT16_MAX
-#   define PRIo16 "o"
-#  endif
+#endif
+#if !defined PRIo16 || @PRI_MACROS_BROKEN@
+# undef PRIo16
+# ifdef UINT16_MAX
+#  define PRIo16 "o"
 # endif
-# if !defined PRIu16 || @PRI_MACROS_BROKEN@
-#  undef PRIu16
-#  ifdef UINT16_MAX
-#   define PRIu16 "u"
-#  endif
+#endif
+#if !defined PRIu16 || @PRI_MACROS_BROKEN@
+# undef PRIu16
+# ifdef UINT16_MAX
+#  define PRIu16 "u"
 # endif
-# if !defined PRIx16 || @PRI_MACROS_BROKEN@
-#  undef PRIx16
-#  ifdef UINT16_MAX
-#   define PRIx16 "x"
-#  endif
+#endif
+#if !defined PRIx16 || @PRI_MACROS_BROKEN@
+# undef PRIx16
+# ifdef UINT16_MAX
+#  define PRIx16 "x"
 # endif
-# if !defined PRIX16 || @PRI_MACROS_BROKEN@
-#  undef PRIX16
-#  ifdef UINT16_MAX
-#   define PRIX16 "X"
-#  endif
+#endif
+#if !defined PRIX16 || @PRI_MACROS_BROKEN@
+# undef PRIX16
+# ifdef UINT16_MAX
+#  define PRIX16 "X"
 # endif
-# if !defined PRId32 || @PRI_MACROS_BROKEN@
-#  undef PRId32
-#  ifdef INT32_MAX
-#   define PRId32 "d"
-#  endif
+#endif
+#if !defined PRId32 || @PRI_MACROS_BROKEN@
+# undef PRId32
+# ifdef INT32_MAX
+#  define PRId32 "d"
 # endif
-# if !defined PRIi32 || @PRI_MACROS_BROKEN@
-#  undef PRIi32
-#  ifdef INT32_MAX
-#   define PRIi32 "i"
-#  endif
+#endif
+#if !defined PRIi32 || @PRI_MACROS_BROKEN@
+# undef PRIi32
+# ifdef INT32_MAX
+#  define PRIi32 "i"
 # endif
-# if !defined PRIo32 || @PRI_MACROS_BROKEN@
-#  undef PRIo32
-#  ifdef UINT32_MAX
-#   define PRIo32 "o"
-#  endif
+#endif
+#if !defined PRIo32 || @PRI_MACROS_BROKEN@
+# undef PRIo32
+# ifdef UINT32_MAX
+#  define PRIo32 "o"
 # endif
-# if !defined PRIu32 || @PRI_MACROS_BROKEN@
-#  undef PRIu32
-#  ifdef UINT32_MAX
-#   define PRIu32 "u"
-#  endif
+#endif
+#if !defined PRIu32 || @PRI_MACROS_BROKEN@
+# undef PRIu32
+# ifdef UINT32_MAX
+#  define PRIu32 "u"
 # endif
-# if !defined PRIx32 || @PRI_MACROS_BROKEN@
-#  undef PRIx32
-#  ifdef UINT32_MAX
-#   define PRIx32 "x"
-#  endif
+#endif
+#if !defined PRIx32 || @PRI_MACROS_BROKEN@
+# undef PRIx32
+# ifdef UINT32_MAX
+#  define PRIx32 "x"
 # endif
-# if !defined PRIX32 || @PRI_MACROS_BROKEN@
-#  undef PRIX32
-#  ifdef UINT32_MAX
-#   define PRIX32 "X"
-#  endif
+#endif
+#if !defined PRIX32 || @PRI_MACROS_BROKEN@
+# undef PRIX32
+# ifdef UINT32_MAX
+#  define PRIX32 "X"
 # endif
-# ifdef INT64_MAX
-#  if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
-#   define _PRI64_PREFIX "l"
-#  elif defined _MSC_VER || defined __MINGW32__
-#   define _PRI64_PREFIX "I64"
-#  elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-#   define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
-#  endif
-#  if !defined PRId64 || @PRI_MACROS_BROKEN@
-#   undef PRId64
-#   define PRId64 _PRI64_PREFIX "d"
-#  endif
-#  if !defined PRIi64 || @PRI_MACROS_BROKEN@
-#   undef PRIi64
-#   define PRIi64 _PRI64_PREFIX "i"
-#  endif
+#endif
+#ifdef INT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
+#  define _PRI64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _PRI64_PREFIX "I64"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRId64 || @PRI_MACROS_BROKEN@
+#  undef PRId64
+#  define PRId64 _PRI64_PREFIX "d"
+# endif
+# if !defined PRIi64 || @PRI_MACROS_BROKEN@
+#  undef PRIi64
+#  define PRIi64 _PRI64_PREFIX "i"
 # endif
-# ifdef UINT64_MAX
-#  if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
-#   define _PRIu64_PREFIX "l"
-#  elif defined _MSC_VER || defined __MINGW32__
-#   define _PRIu64_PREFIX "I64"
-#  elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-#   define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
-#  endif
-#  if !defined PRIo64 || @PRI_MACROS_BROKEN@
-#   undef PRIo64
-#   define PRIo64 _PRIu64_PREFIX "o"
-#  endif
-#  if !defined PRIu64 || @PRI_MACROS_BROKEN@
-#   undef PRIu64
-#   define PRIu64 _PRIu64_PREFIX "u"
-#  endif
-#  if !defined PRIx64 || @PRI_MACROS_BROKEN@
-#   undef PRIx64
-#   define PRIx64 _PRIu64_PREFIX "x"
-#  endif
-#  if !defined PRIX64 || @PRI_MACROS_BROKEN@
-#   undef PRIX64
-#   define PRIX64 _PRIu64_PREFIX "X"
-#  endif
+#endif
+#ifdef UINT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
+#  define _PRIu64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _PRIu64_PREFIX "I64"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRIo64 || @PRI_MACROS_BROKEN@
+#  undef PRIo64
+#  define PRIo64 _PRIu64_PREFIX "o"
+# endif
+# if !defined PRIu64 || @PRI_MACROS_BROKEN@
+#  undef PRIu64
+#  define PRIu64 _PRIu64_PREFIX "u"
+# endif
+# if !defined PRIx64 || @PRI_MACROS_BROKEN@
+#  undef PRIx64
+#  define PRIx64 _PRIu64_PREFIX "x"
+# endif
+# if !defined PRIX64 || @PRI_MACROS_BROKEN@
+#  undef PRIX64
+#  define PRIX64 _PRIu64_PREFIX "X"
 # endif
+#endif
 
-# if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIdLEAST8
-#  define PRIdLEAST8 "d"
-# endif
-# if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIiLEAST8
-#  define PRIiLEAST8 "i"
-# endif
-# if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIoLEAST8
-#  define PRIoLEAST8 "o"
-# endif
-# if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIuLEAST8
-#  define PRIuLEAST8 "u"
-# endif
-# if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIxLEAST8
-#  define PRIxLEAST8 "x"
-# endif
-# if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIXLEAST8
-#  define PRIXLEAST8 "X"
-# endif
-# if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIdLEAST16
-#  define PRIdLEAST16 "d"
-# endif
-# if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIiLEAST16
-#  define PRIiLEAST16 "i"
-# endif
-# if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIoLEAST16
-#  define PRIoLEAST16 "o"
-# endif
-# if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIuLEAST16
-#  define PRIuLEAST16 "u"
-# endif
-# if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIxLEAST16
-#  define PRIxLEAST16 "x"
-# endif
-# if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIXLEAST16
-#  define PRIXLEAST16 "X"
-# endif
-# if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIdLEAST32
-#  define PRIdLEAST32 "d"
-# endif
-# if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIiLEAST32
-#  define PRIiLEAST32 "i"
-# endif
-# if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIoLEAST32
-#  define PRIoLEAST32 "o"
-# endif
-# if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIuLEAST32
-#  define PRIuLEAST32 "u"
-# endif
-# if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIxLEAST32
-#  define PRIxLEAST32 "x"
-# endif
-# if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIXLEAST32
-#  define PRIXLEAST32 "X"
-# endif
-# ifdef INT64_MAX
-#  if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIdLEAST64
-#   define PRIdLEAST64 PRId64
-#  endif
-#  if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIiLEAST64
-#   define PRIiLEAST64 PRIi64
-#  endif
+#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST8
+# define PRIdLEAST8 "d"
+#endif
+#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST8
+# define PRIiLEAST8 "i"
+#endif
+#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST8
+# define PRIoLEAST8 "o"
+#endif
+#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST8
+# define PRIuLEAST8 "u"
+#endif
+#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST8
+# define PRIxLEAST8 "x"
+#endif
+#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST8
+# define PRIXLEAST8 "X"
+#endif
+#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST16
+# define PRIdLEAST16 "d"
+#endif
+#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST16
+# define PRIiLEAST16 "i"
+#endif
+#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST16
+# define PRIoLEAST16 "o"
+#endif
+#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST16
+# define PRIuLEAST16 "u"
+#endif
+#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST16
+# define PRIxLEAST16 "x"
+#endif
+#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST16
+# define PRIXLEAST16 "X"
+#endif
+#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST32
+# define PRIdLEAST32 "d"
+#endif
+#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST32
+# define PRIiLEAST32 "i"
+#endif
+#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST32
+# define PRIoLEAST32 "o"
+#endif
+#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST32
+# define PRIuLEAST32 "u"
+#endif
+#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST32
+# define PRIxLEAST32 "x"
+#endif
+#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST32
+# define PRIXLEAST32 "X"
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIdLEAST64
+#  define PRIdLEAST64 PRId64
 # endif
-# ifdef UINT64_MAX
-#  if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIoLEAST64
-#   define PRIoLEAST64 PRIo64
-#  endif
-#  if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIuLEAST64
-#   define PRIuLEAST64 PRIu64
-#  endif
-#  if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIxLEAST64
-#   define PRIxLEAST64 PRIx64
-#  endif
-#  if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIXLEAST64
-#   define PRIXLEAST64 PRIX64
-#  endif
+# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIiLEAST64
+#  define PRIiLEAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIoLEAST64
+#  define PRIoLEAST64 PRIo64
+# endif
+# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIuLEAST64
+#  define PRIuLEAST64 PRIu64
+# endif
+# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIxLEAST64
+#  define PRIxLEAST64 PRIx64
 # endif
+# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIXLEAST64
+#  define PRIXLEAST64 PRIX64
+# endif
+#endif
 
-# if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIdFAST8
-#  if INT_FAST8_MAX > INT32_MAX
-#   define PRIdFAST8 PRId64
-#  else
-#   define PRIdFAST8 "d"
-#  endif
+#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define PRIdFAST8 PRId64
+# else
+#  define PRIdFAST8 "d"
 # endif
-# if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIiFAST8
-#  if INT_FAST8_MAX > INT32_MAX
-#   define PRIiFAST8 PRIi64
-#  else
-#   define PRIiFAST8 "i"
-#  endif
+#endif
+#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define PRIiFAST8 PRIi64
+# else
+#  define PRIiFAST8 "i"
 # endif
-# if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIoFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define PRIoFAST8 PRIo64
-#  else
-#   define PRIoFAST8 "o"
-#  endif
+#endif
+#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIoFAST8 PRIo64
+# else
+#  define PRIoFAST8 "o"
 # endif
-# if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIuFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define PRIuFAST8 PRIu64
-#  else
-#   define PRIuFAST8 "u"
-#  endif
+#endif
+#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIuFAST8 PRIu64
+# else
+#  define PRIuFAST8 "u"
 # endif
-# if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIxFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define PRIxFAST8 PRIx64
-#  else
-#   define PRIxFAST8 "x"
-#  endif
+#endif
+#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIxFAST8 PRIx64
+# else
+#  define PRIxFAST8 "x"
 # endif
-# if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
-#  undef PRIXFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define PRIXFAST8 PRIX64
-#  else
-#   define PRIXFAST8 "X"
-#  endif
+#endif
+#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIXFAST8 PRIX64
+# else
+#  define PRIXFAST8 "X"
 # endif
-# if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIdFAST16
-#  if INT_FAST16_MAX > INT32_MAX
-#   define PRIdFAST16 PRId64
-#  else
-#   define PRIdFAST16 "d"
-#  endif
+#endif
+#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define PRIdFAST16 PRId64
+# else
+#  define PRIdFAST16 "d"
 # endif
-# if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIiFAST16
-#  if INT_FAST16_MAX > INT32_MAX
-#   define PRIiFAST16 PRIi64
-#  else
-#   define PRIiFAST16 "i"
-#  endif
+#endif
+#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define PRIiFAST16 PRIi64
+# else
+#  define PRIiFAST16 "i"
 # endif
-# if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIoFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define PRIoFAST16 PRIo64
-#  else
-#   define PRIoFAST16 "o"
-#  endif
+#endif
+#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIoFAST16 PRIo64
+# else
+#  define PRIoFAST16 "o"
 # endif
-# if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIuFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define PRIuFAST16 PRIu64
-#  else
-#   define PRIuFAST16 "u"
-#  endif
+#endif
+#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIuFAST16 PRIu64
+# else
+#  define PRIuFAST16 "u"
 # endif
-# if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIxFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define PRIxFAST16 PRIx64
-#  else
-#   define PRIxFAST16 "x"
-#  endif
+#endif
+#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIxFAST16 PRIx64
+# else
+#  define PRIxFAST16 "x"
 # endif
-# if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
-#  undef PRIXFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define PRIXFAST16 PRIX64
-#  else
-#   define PRIXFAST16 "X"
-#  endif
+#endif
+#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIXFAST16 PRIX64
+# else
+#  define PRIXFAST16 "X"
 # endif
-# if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIdFAST32
-#  if INT_FAST32_MAX > INT32_MAX
-#   define PRIdFAST32 PRId64
-#  else
-#   define PRIdFAST32 "d"
-#  endif
+#endif
+#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define PRIdFAST32 PRId64
+# else
+#  define PRIdFAST32 "d"
 # endif
-# if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIiFAST32
-#  if INT_FAST32_MAX > INT32_MAX
-#   define PRIiFAST32 PRIi64
-#  else
-#   define PRIiFAST32 "i"
-#  endif
+#endif
+#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define PRIiFAST32 PRIi64
+# else
+#  define PRIiFAST32 "i"
 # endif
-# if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIoFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define PRIoFAST32 PRIo64
-#  else
-#   define PRIoFAST32 "o"
-#  endif
+#endif
+#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIoFAST32 PRIo64
+# else
+#  define PRIoFAST32 "o"
 # endif
-# if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIuFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define PRIuFAST32 PRIu64
-#  else
-#   define PRIuFAST32 "u"
-#  endif
+#endif
+#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIuFAST32 PRIu64
+# else
+#  define PRIuFAST32 "u"
 # endif
-# if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIxFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define PRIxFAST32 PRIx64
-#  else
-#   define PRIxFAST32 "x"
-#  endif
+#endif
+#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIxFAST32 PRIx64
+# else
+#  define PRIxFAST32 "x"
 # endif
-# if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
-#  undef PRIXFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define PRIXFAST32 PRIX64
-#  else
-#   define PRIXFAST32 "X"
-#  endif
+#endif
+#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIXFAST32 PRIX64
+# else
+#  define PRIXFAST32 "X"
 # endif
-# ifdef INT64_MAX
-#  if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIdFAST64
-#   define PRIdFAST64 PRId64
-#  endif
-#  if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIiFAST64
-#   define PRIiFAST64 PRIi64
-#  endif
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIdFAST64
+#  define PRIdFAST64 PRId64
 # endif
-# ifdef UINT64_MAX
-#  if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIoFAST64
-#   define PRIoFAST64 PRIo64
-#  endif
-#  if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIuFAST64
-#   define PRIuFAST64 PRIu64
-#  endif
-#  if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIxFAST64
-#   define PRIxFAST64 PRIx64
-#  endif
-#  if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
-#   undef PRIXFAST64
-#   define PRIXFAST64 PRIX64
-#  endif
+# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIiFAST64
+#  define PRIiFAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIoFAST64
+#  define PRIoFAST64 PRIo64
+# endif
+# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIuFAST64
+#  define PRIuFAST64 PRIu64
+# endif
+# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIxFAST64
+#  define PRIxFAST64 PRIx64
 # endif
+# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIXFAST64
+#  define PRIXFAST64 PRIX64
+# endif
+#endif
 
-# if !defined PRIdMAX || @PRI_MACROS_BROKEN@
-#  undef PRIdMAX
-#  if @INT32_MAX_LT_INTMAX_MAX@
-#   define PRIdMAX PRId64
-#  else
-#   define PRIdMAX "ld"
-#  endif
+#if !defined PRIdMAX || @PRI_MACROS_BROKEN@
+# undef PRIdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define PRIdMAX PRId64
+# else
+#  define PRIdMAX "ld"
 # endif
-# if !defined PRIiMAX || @PRI_MACROS_BROKEN@
-#  undef PRIiMAX
-#  if @INT32_MAX_LT_INTMAX_MAX@
-#   define PRIiMAX PRIi64
-#  else
-#   define PRIiMAX "li"
-#  endif
+#endif
+#if !defined PRIiMAX || @PRI_MACROS_BROKEN@
+# undef PRIiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define PRIiMAX PRIi64
+# else
+#  define PRIiMAX "li"
 # endif
-# if !defined PRIoMAX || @PRI_MACROS_BROKEN@
-#  undef PRIoMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define PRIoMAX PRIo64
-#  else
-#   define PRIoMAX "lo"
-#  endif
+#endif
+#if !defined PRIoMAX || @PRI_MACROS_BROKEN@
+# undef PRIoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIoMAX PRIo64
+# else
+#  define PRIoMAX "lo"
 # endif
-# if !defined PRIuMAX || @PRI_MACROS_BROKEN@
-#  undef PRIuMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define PRIuMAX PRIu64
-#  else
-#   define PRIuMAX "lu"
-#  endif
+#endif
+#if !defined PRIuMAX || @PRI_MACROS_BROKEN@
+# undef PRIuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIuMAX PRIu64
+# else
+#  define PRIuMAX "lu"
 # endif
-# if !defined PRIxMAX || @PRI_MACROS_BROKEN@
-#  undef PRIxMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define PRIxMAX PRIx64
-#  else
-#   define PRIxMAX "lx"
-#  endif
+#endif
+#if !defined PRIxMAX || @PRI_MACROS_BROKEN@
+# undef PRIxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIxMAX PRIx64
+# else
+#  define PRIxMAX "lx"
 # endif
-# if !defined PRIXMAX || @PRI_MACROS_BROKEN@
-#  undef PRIXMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define PRIXMAX PRIX64
-#  else
-#   define PRIXMAX "lX"
-#  endif
+#endif
+#if !defined PRIXMAX || @PRI_MACROS_BROKEN@
+# undef PRIXMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIXMAX PRIX64
+# else
+#  define PRIXMAX "lX"
 # endif
+#endif
 
-# if !defined PRIdPTR || @PRI_MACROS_BROKEN@
-#  undef PRIdPTR
-#  ifdef INTPTR_MAX
-#   define PRIdPTR @PRIPTR_PREFIX@ "d"
-#  endif
+#if !defined PRIdPTR || @PRI_MACROS_BROKEN@
+# undef PRIdPTR
+# ifdef INTPTR_MAX
+#  define PRIdPTR @PRIPTR_PREFIX@ "d"
 # endif
-# if !defined PRIiPTR || @PRI_MACROS_BROKEN@
-#  undef PRIiPTR
-#  ifdef INTPTR_MAX
-#   define PRIiPTR @PRIPTR_PREFIX@ "i"
-#  endif
+#endif
+#if !defined PRIiPTR || @PRI_MACROS_BROKEN@
+# undef PRIiPTR
+# ifdef INTPTR_MAX
+#  define PRIiPTR @PRIPTR_PREFIX@ "i"
 # endif
-# if !defined PRIoPTR || @PRI_MACROS_BROKEN@
-#  undef PRIoPTR
-#  ifdef UINTPTR_MAX
-#   define PRIoPTR @PRIPTR_PREFIX@ "o"
-#  endif
+#endif
+#if !defined PRIoPTR || @PRI_MACROS_BROKEN@
+# undef PRIoPTR
+# ifdef UINTPTR_MAX
+#  define PRIoPTR @PRIPTR_PREFIX@ "o"
 # endif
-# if !defined PRIuPTR || @PRI_MACROS_BROKEN@
-#  undef PRIuPTR
-#  ifdef UINTPTR_MAX
-#   define PRIuPTR @PRIPTR_PREFIX@ "u"
-#  endif
+#endif
+#if !defined PRIuPTR || @PRI_MACROS_BROKEN@
+# undef PRIuPTR
+# ifdef UINTPTR_MAX
+#  define PRIuPTR @PRIPTR_PREFIX@ "u"
 # endif
-# if !defined PRIxPTR || @PRI_MACROS_BROKEN@
-#  undef PRIxPTR
-#  ifdef UINTPTR_MAX
-#   define PRIxPTR @PRIPTR_PREFIX@ "x"
-#  endif
+#endif
+#if !defined PRIxPTR || @PRI_MACROS_BROKEN@
+# undef PRIxPTR
+# ifdef UINTPTR_MAX
+#  define PRIxPTR @PRIPTR_PREFIX@ "x"
 # endif
-# if !defined PRIXPTR || @PRI_MACROS_BROKEN@
-#  undef PRIXPTR
-#  ifdef UINTPTR_MAX
-#   define PRIXPTR @PRIPTR_PREFIX@ "X"
-#  endif
+#endif
+#if !defined PRIXPTR || @PRI_MACROS_BROKEN@
+# undef PRIXPTR
+# ifdef UINTPTR_MAX
+#  define PRIXPTR @PRIPTR_PREFIX@ "X"
 # endif
+#endif
 
-# if !defined SCNd8 || @PRI_MACROS_BROKEN@
-#  undef SCNd8
-#  ifdef INT8_MAX
-#   define SCNd8 "hhd"
-#  endif
+#if !defined SCNd8 || @PRI_MACROS_BROKEN@
+# undef SCNd8
+# ifdef INT8_MAX
+#  define SCNd8 "hhd"
 # endif
-# if !defined SCNi8 || @PRI_MACROS_BROKEN@
-#  undef SCNi8
-#  ifdef INT8_MAX
-#   define SCNi8 "hhi"
-#  endif
+#endif
+#if !defined SCNi8 || @PRI_MACROS_BROKEN@
+# undef SCNi8
+# ifdef INT8_MAX
+#  define SCNi8 "hhi"
 # endif
-# if !defined SCNo8 || @PRI_MACROS_BROKEN@
-#  undef SCNo8
-#  ifdef UINT8_MAX
-#   define SCNo8 "hho"
-#  endif
+#endif
+#if !defined SCNo8 || @PRI_MACROS_BROKEN@
+# undef SCNo8
+# ifdef UINT8_MAX
+#  define SCNo8 "hho"
 # endif
-# if !defined SCNu8 || @PRI_MACROS_BROKEN@
-#  undef SCNu8
-#  ifdef UINT8_MAX
-#   define SCNu8 "hhu"
-#  endif
+#endif
+#if !defined SCNu8 || @PRI_MACROS_BROKEN@
+# undef SCNu8
+# ifdef UINT8_MAX
+#  define SCNu8 "hhu"
 # endif
-# if !defined SCNx8 || @PRI_MACROS_BROKEN@
-#  undef SCNx8
-#  ifdef UINT8_MAX
-#   define SCNx8 "hhx"
-#  endif
+#endif
+#if !defined SCNx8 || @PRI_MACROS_BROKEN@
+# undef SCNx8
+# ifdef UINT8_MAX
+#  define SCNx8 "hhx"
 # endif
-# if !defined SCNd16 || @PRI_MACROS_BROKEN@
-#  undef SCNd16
-#  ifdef INT16_MAX
-#   define SCNd16 "hd"
-#  endif
+#endif
+#if !defined SCNd16 || @PRI_MACROS_BROKEN@
+# undef SCNd16
+# ifdef INT16_MAX
+#  define SCNd16 "hd"
 # endif
-# if !defined SCNi16 || @PRI_MACROS_BROKEN@
-#  undef SCNi16
-#  ifdef INT16_MAX
-#   define SCNi16 "hi"
-#  endif
+#endif
+#if !defined SCNi16 || @PRI_MACROS_BROKEN@
+# undef SCNi16
+# ifdef INT16_MAX
+#  define SCNi16 "hi"
 # endif
-# if !defined SCNo16 || @PRI_MACROS_BROKEN@
-#  undef SCNo16
-#  ifdef UINT16_MAX
-#   define SCNo16 "ho"
-#  endif
+#endif
+#if !defined SCNo16 || @PRI_MACROS_BROKEN@
+# undef SCNo16
+# ifdef UINT16_MAX
+#  define SCNo16 "ho"
 # endif
-# if !defined SCNu16 || @PRI_MACROS_BROKEN@
-#  undef SCNu16
-#  ifdef UINT16_MAX
-#   define SCNu16 "hu"
-#  endif
+#endif
+#if !defined SCNu16 || @PRI_MACROS_BROKEN@
+# undef SCNu16
+# ifdef UINT16_MAX
+#  define SCNu16 "hu"
 # endif
-# if !defined SCNx16 || @PRI_MACROS_BROKEN@
-#  undef SCNx16
-#  ifdef UINT16_MAX
-#   define SCNx16 "hx"
-#  endif
+#endif
+#if !defined SCNx16 || @PRI_MACROS_BROKEN@
+# undef SCNx16
+# ifdef UINT16_MAX
+#  define SCNx16 "hx"
 # endif
-# if !defined SCNd32 || @PRI_MACROS_BROKEN@
-#  undef SCNd32
-#  ifdef INT32_MAX
-#   define SCNd32 "d"
-#  endif
+#endif
+#if !defined SCNd32 || @PRI_MACROS_BROKEN@
+# undef SCNd32
+# ifdef INT32_MAX
+#  define SCNd32 "d"
 # endif
-# if !defined SCNi32 || @PRI_MACROS_BROKEN@
-#  undef SCNi32
-#  ifdef INT32_MAX
-#   define SCNi32 "i"
-#  endif
+#endif
+#if !defined SCNi32 || @PRI_MACROS_BROKEN@
+# undef SCNi32
+# ifdef INT32_MAX
+#  define SCNi32 "i"
 # endif
-# if !defined SCNo32 || @PRI_MACROS_BROKEN@
-#  undef SCNo32
-#  ifdef UINT32_MAX
-#   define SCNo32 "o"
-#  endif
+#endif
+#if !defined SCNo32 || @PRI_MACROS_BROKEN@
+# undef SCNo32
+# ifdef UINT32_MAX
+#  define SCNo32 "o"
 # endif
-# if !defined SCNu32 || @PRI_MACROS_BROKEN@
-#  undef SCNu32
-#  ifdef UINT32_MAX
-#   define SCNu32 "u"
-#  endif
+#endif
+#if !defined SCNu32 || @PRI_MACROS_BROKEN@
+# undef SCNu32
+# ifdef UINT32_MAX
+#  define SCNu32 "u"
 # endif
-# if !defined SCNx32 || @PRI_MACROS_BROKEN@
-#  undef SCNx32
-#  ifdef UINT32_MAX
-#   define SCNx32 "x"
-#  endif
+#endif
+#if !defined SCNx32 || @PRI_MACROS_BROKEN@
+# undef SCNx32
+# ifdef UINT32_MAX
+#  define SCNx32 "x"
 # endif
-# ifdef INT64_MAX
-#  if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
-#   define _SCN64_PREFIX "l"
-#  elif defined _MSC_VER || defined __MINGW32__
-#   define _SCN64_PREFIX "I64"
-#  elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-#   define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
-#  endif
-#  if !defined SCNd64 || @PRI_MACROS_BROKEN@
-#   undef SCNd64
-#   define SCNd64 _SCN64_PREFIX "d"
-#  endif
-#  if !defined SCNi64 || @PRI_MACROS_BROKEN@
-#   undef SCNi64
-#   define SCNi64 _SCN64_PREFIX "i"
-#  endif
+#endif
+#ifdef INT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
+#  define _SCN64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _SCN64_PREFIX "I64"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNd64 || @PRI_MACROS_BROKEN@
+#  undef SCNd64
+#  define SCNd64 _SCN64_PREFIX "d"
+# endif
+# if !defined SCNi64 || @PRI_MACROS_BROKEN@
+#  undef SCNi64
+#  define SCNi64 _SCN64_PREFIX "i"
 # endif
-# ifdef UINT64_MAX
-#  if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
-#   define _SCNu64_PREFIX "l"
-#  elif defined _MSC_VER || defined __MINGW32__
-#   define _SCNu64_PREFIX "I64"
-#  elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-#   define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
-#  endif
-#  if !defined SCNo64 || @PRI_MACROS_BROKEN@
-#   undef SCNo64
-#   define SCNo64 _SCNu64_PREFIX "o"
-#  endif
-#  if !defined SCNu64 || @PRI_MACROS_BROKEN@
-#   undef SCNu64
-#   define SCNu64 _SCNu64_PREFIX "u"
-#  endif
-#  if !defined SCNx64 || @PRI_MACROS_BROKEN@
-#   undef SCNx64
-#   define SCNx64 _SCNu64_PREFIX "x"
-#  endif
+#endif
+#ifdef UINT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
+#  define _SCNu64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _SCNu64_PREFIX "I64"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNo64 || @PRI_MACROS_BROKEN@
+#  undef SCNo64
+#  define SCNo64 _SCNu64_PREFIX "o"
+# endif
+# if !defined SCNu64 || @PRI_MACROS_BROKEN@
+#  undef SCNu64
+#  define SCNu64 _SCNu64_PREFIX "u"
+# endif
+# if !defined SCNx64 || @PRI_MACROS_BROKEN@
+#  undef SCNx64
+#  define SCNx64 _SCNu64_PREFIX "x"
 # endif
+#endif
 
-# if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNdLEAST8
-#  define SCNdLEAST8 "hhd"
-# endif
-# if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNiLEAST8
-#  define SCNiLEAST8 "hhi"
-# endif
-# if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNoLEAST8
-#  define SCNoLEAST8 "hho"
-# endif
-# if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNuLEAST8
-#  define SCNuLEAST8 "hhu"
-# endif
-# if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNxLEAST8
-#  define SCNxLEAST8 "hhx"
-# endif
-# if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNdLEAST16
-#  define SCNdLEAST16 "hd"
-# endif
-# if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNiLEAST16
-#  define SCNiLEAST16 "hi"
-# endif
-# if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNoLEAST16
-#  define SCNoLEAST16 "ho"
-# endif
-# if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNuLEAST16
-#  define SCNuLEAST16 "hu"
-# endif
-# if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNxLEAST16
-#  define SCNxLEAST16 "hx"
-# endif
-# if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNdLEAST32
-#  define SCNdLEAST32 "d"
-# endif
-# if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNiLEAST32
-#  define SCNiLEAST32 "i"
-# endif
-# if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNoLEAST32
-#  define SCNoLEAST32 "o"
-# endif
-# if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNuLEAST32
-#  define SCNuLEAST32 "u"
-# endif
-# if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNxLEAST32
-#  define SCNxLEAST32 "x"
-# endif
-# ifdef INT64_MAX
-#  if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNdLEAST64
-#   define SCNdLEAST64 SCNd64
-#  endif
-#  if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNiLEAST64
-#   define SCNiLEAST64 SCNi64
-#  endif
+#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST8
+# define SCNdLEAST8 "hhd"
+#endif
+#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST8
+# define SCNiLEAST8 "hhi"
+#endif
+#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST8
+# define SCNoLEAST8 "hho"
+#endif
+#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST8
+# define SCNuLEAST8 "hhu"
+#endif
+#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST8
+# define SCNxLEAST8 "hhx"
+#endif
+#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST16
+# define SCNdLEAST16 "hd"
+#endif
+#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST16
+# define SCNiLEAST16 "hi"
+#endif
+#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST16
+# define SCNoLEAST16 "ho"
+#endif
+#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST16
+# define SCNuLEAST16 "hu"
+#endif
+#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST16
+# define SCNxLEAST16 "hx"
+#endif
+#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST32
+# define SCNdLEAST32 "d"
+#endif
+#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST32
+# define SCNiLEAST32 "i"
+#endif
+#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST32
+# define SCNoLEAST32 "o"
+#endif
+#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST32
+# define SCNuLEAST32 "u"
+#endif
+#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST32
+# define SCNxLEAST32 "x"
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNdLEAST64
+#  define SCNdLEAST64 SCNd64
 # endif
-# ifdef UINT64_MAX
-#  if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNoLEAST64
-#   define SCNoLEAST64 SCNo64
-#  endif
-#  if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNuLEAST64
-#   define SCNuLEAST64 SCNu64
-#  endif
-#  if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNxLEAST64
-#   define SCNxLEAST64 SCNx64
-#  endif
+# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNiLEAST64
+#  define SCNiLEAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNoLEAST64
+#  define SCNoLEAST64 SCNo64
+# endif
+# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNuLEAST64
+#  define SCNuLEAST64 SCNu64
+# endif
+# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNxLEAST64
+#  define SCNxLEAST64 SCNx64
 # endif
+#endif
 
-# if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNdFAST8
-#  if INT_FAST8_MAX > INT32_MAX
-#   define SCNdFAST8 SCNd64
-#  elif INT_FAST8_MAX == 0x7fff
-#   define SCNdFAST8 "hd"
-#  elif INT_FAST8_MAX == 0x7f
-#   define SCNdFAST8 "hhd"
-#  else
-#   define SCNdFAST8 "d"
-#  endif
+#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define SCNdFAST8 SCNd64
+# elif INT_FAST8_MAX == 0x7fff
+#  define SCNdFAST8 "hd"
+# elif INT_FAST8_MAX == 0x7f
+#  define SCNdFAST8 "hhd"
+# else
+#  define SCNdFAST8 "d"
 # endif
-# if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNiFAST8
-#  if INT_FAST8_MAX > INT32_MAX
-#   define SCNiFAST8 SCNi64
-#  elif INT_FAST8_MAX == 0x7fff
-#   define SCNiFAST8 "hi"
-#  elif INT_FAST8_MAX == 0x7f
-#   define SCNiFAST8 "hhi"
-#  else
-#   define SCNiFAST8 "i"
-#  endif
+#endif
+#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define SCNiFAST8 SCNi64
+# elif INT_FAST8_MAX == 0x7fff
+#  define SCNiFAST8 "hi"
+# elif INT_FAST8_MAX == 0x7f
+#  define SCNiFAST8 "hhi"
+# else
+#  define SCNiFAST8 "i"
 # endif
-# if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNoFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define SCNoFAST8 SCNo64
-#  elif UINT_FAST8_MAX == 0xffff
-#   define SCNoFAST8 "ho"
-#  elif UINT_FAST8_MAX == 0xff
-#   define SCNoFAST8 "hho"
-#  else
-#   define SCNoFAST8 "o"
-#  endif
+#endif
+#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNoFAST8 SCNo64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNoFAST8 "ho"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNoFAST8 "hho"
+# else
+#  define SCNoFAST8 "o"
 # endif
-# if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNuFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define SCNuFAST8 SCNu64
-#  elif UINT_FAST8_MAX == 0xffff
-#   define SCNuFAST8 "hu"
-#  elif UINT_FAST8_MAX == 0xff
-#   define SCNuFAST8 "hhu"
-#  else
-#   define SCNuFAST8 "u"
-#  endif
+#endif
+#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNuFAST8 SCNu64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNuFAST8 "hu"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNuFAST8 "hhu"
+# else
+#  define SCNuFAST8 "u"
 # endif
-# if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
-#  undef SCNxFAST8
-#  if UINT_FAST8_MAX > UINT32_MAX
-#   define SCNxFAST8 SCNx64
-#  elif UINT_FAST8_MAX == 0xffff
-#   define SCNxFAST8 "hx"
-#  elif UINT_FAST8_MAX == 0xff
-#   define SCNxFAST8 "hhx"
-#  else
-#   define SCNxFAST8 "x"
-#  endif
+#endif
+#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNxFAST8 SCNx64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNxFAST8 "hx"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNxFAST8 "hhx"
+# else
+#  define SCNxFAST8 "x"
 # endif
-# if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNdFAST16
-#  if INT_FAST16_MAX > INT32_MAX
-#   define SCNdFAST16 SCNd64
-#  elif INT_FAST16_MAX == 0x7fff
-#   define SCNdFAST16 "hd"
-#  else
-#   define SCNdFAST16 "d"
-#  endif
+#endif
+#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define SCNdFAST16 SCNd64
+# elif INT_FAST16_MAX == 0x7fff
+#  define SCNdFAST16 "hd"
+# else
+#  define SCNdFAST16 "d"
 # endif
-# if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNiFAST16
-#  if INT_FAST16_MAX > INT32_MAX
-#   define SCNiFAST16 SCNi64
-#  elif INT_FAST16_MAX == 0x7fff
-#   define SCNiFAST16 "hi"
-#  else
-#   define SCNiFAST16 "i"
-#  endif
+#endif
+#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define SCNiFAST16 SCNi64
+# elif INT_FAST16_MAX == 0x7fff
+#  define SCNiFAST16 "hi"
+# else
+#  define SCNiFAST16 "i"
 # endif
-# if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNoFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define SCNoFAST16 SCNo64
-#  elif UINT_FAST16_MAX == 0xffff
-#   define SCNoFAST16 "ho"
-#  else
-#   define SCNoFAST16 "o"
-#  endif
+#endif
+#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNoFAST16 SCNo64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNoFAST16 "ho"
+# else
+#  define SCNoFAST16 "o"
 # endif
-# if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNuFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define SCNuFAST16 SCNu64
-#  elif UINT_FAST16_MAX == 0xffff
-#   define SCNuFAST16 "hu"
-#  else
-#   define SCNuFAST16 "u"
-#  endif
+#endif
+#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNuFAST16 SCNu64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNuFAST16 "hu"
+# else
+#  define SCNuFAST16 "u"
 # endif
-# if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
-#  undef SCNxFAST16
-#  if UINT_FAST16_MAX > UINT32_MAX
-#   define SCNxFAST16 SCNx64
-#  elif UINT_FAST16_MAX == 0xffff
-#   define SCNxFAST16 "hx"
-#  else
-#   define SCNxFAST16 "x"
-#  endif
+#endif
+#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNxFAST16 SCNx64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNxFAST16 "hx"
+# else
+#  define SCNxFAST16 "x"
 # endif
-# if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNdFAST32
-#  if INT_FAST32_MAX > INT32_MAX
-#   define SCNdFAST32 SCNd64
-#  else
-#   define SCNdFAST32 "d"
-#  endif
+#endif
+#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define SCNdFAST32 SCNd64
+# else
+#  define SCNdFAST32 "d"
 # endif
-# if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNiFAST32
-#  if INT_FAST32_MAX > INT32_MAX
-#   define SCNiFAST32 SCNi64
-#  else
-#   define SCNiFAST32 "i"
-#  endif
+#endif
+#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define SCNiFAST32 SCNi64
+# else
+#  define SCNiFAST32 "i"
 # endif
-# if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNoFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define SCNoFAST32 SCNo64
-#  else
-#   define SCNoFAST32 "o"
-#  endif
+#endif
+#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNoFAST32 SCNo64
+# else
+#  define SCNoFAST32 "o"
 # endif
-# if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNuFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define SCNuFAST32 SCNu64
-#  else
-#   define SCNuFAST32 "u"
-#  endif
+#endif
+#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNuFAST32 SCNu64
+# else
+#  define SCNuFAST32 "u"
 # endif
-# if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
-#  undef SCNxFAST32
-#  if UINT_FAST32_MAX > UINT32_MAX
-#   define SCNxFAST32 SCNx64
-#  else
-#   define SCNxFAST32 "x"
-#  endif
+#endif
+#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNxFAST32 SCNx64
+# else
+#  define SCNxFAST32 "x"
 # endif
-# ifdef INT64_MAX
-#  if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNdFAST64
-#   define SCNdFAST64 SCNd64
-#  endif
-#  if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNiFAST64
-#   define SCNiFAST64 SCNi64
-#  endif
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNdFAST64
+#  define SCNdFAST64 SCNd64
 # endif
-# ifdef UINT64_MAX
-#  if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNoFAST64
-#   define SCNoFAST64 SCNo64
-#  endif
-#  if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNuFAST64
-#   define SCNuFAST64 SCNu64
-#  endif
-#  if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
-#   undef SCNxFAST64
-#   define SCNxFAST64 SCNx64
-#  endif
+# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNiFAST64
+#  define SCNiFAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNoFAST64
+#  define SCNoFAST64 SCNo64
 # endif
+# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNuFAST64
+#  define SCNuFAST64 SCNu64
+# endif
+# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNxFAST64
+#  define SCNxFAST64 SCNx64
+# endif
+#endif
 
-# if !defined SCNdMAX || @PRI_MACROS_BROKEN@
-#  undef SCNdMAX
-#  if @INT32_MAX_LT_INTMAX_MAX@
-#   define SCNdMAX SCNd64
-#  else
-#   define SCNdMAX "ld"
-#  endif
+#if !defined SCNdMAX || @PRI_MACROS_BROKEN@
+# undef SCNdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define SCNdMAX SCNd64
+# else
+#  define SCNdMAX "ld"
 # endif
-# if !defined SCNiMAX || @PRI_MACROS_BROKEN@
-#  undef SCNiMAX
-#  if @INT32_MAX_LT_INTMAX_MAX@
-#   define SCNiMAX SCNi64
-#  else
-#   define SCNiMAX "li"
-#  endif
+#endif
+#if !defined SCNiMAX || @PRI_MACROS_BROKEN@
+# undef SCNiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define SCNiMAX SCNi64
+# else
+#  define SCNiMAX "li"
 # endif
-# if !defined SCNoMAX || @PRI_MACROS_BROKEN@
-#  undef SCNoMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define SCNoMAX SCNo64
-#  else
-#   define SCNoMAX "lo"
-#  endif
+#endif
+#if !defined SCNoMAX || @PRI_MACROS_BROKEN@
+# undef SCNoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNoMAX SCNo64
+# else
+#  define SCNoMAX "lo"
 # endif
-# if !defined SCNuMAX || @PRI_MACROS_BROKEN@
-#  undef SCNuMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define SCNuMAX SCNu64
-#  else
-#   define SCNuMAX "lu"
-#  endif
+#endif
+#if !defined SCNuMAX || @PRI_MACROS_BROKEN@
+# undef SCNuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNuMAX SCNu64
+# else
+#  define SCNuMAX "lu"
 # endif
-# if !defined SCNxMAX || @PRI_MACROS_BROKEN@
-#  undef SCNxMAX
-#  if @UINT32_MAX_LT_UINTMAX_MAX@
-#   define SCNxMAX SCNx64
-#  else
-#   define SCNxMAX "lx"
-#  endif
+#endif
+#if !defined SCNxMAX || @PRI_MACROS_BROKEN@
+# undef SCNxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNxMAX SCNx64
+# else
+#  define SCNxMAX "lx"
 # endif
+#endif
 
-# if !defined SCNdPTR || @PRI_MACROS_BROKEN@
-#  undef SCNdPTR
-#  ifdef INTPTR_MAX
-#   define SCNdPTR @PRIPTR_PREFIX@ "d"
-#  endif
+#if !defined SCNdPTR || @PRI_MACROS_BROKEN@
+# undef SCNdPTR
+# ifdef INTPTR_MAX
+#  define SCNdPTR @PRIPTR_PREFIX@ "d"
 # endif
-# if !defined SCNiPTR || @PRI_MACROS_BROKEN@
-#  undef SCNiPTR
-#  ifdef INTPTR_MAX
-#   define SCNiPTR @PRIPTR_PREFIX@ "i"
-#  endif
+#endif
+#if !defined SCNiPTR || @PRI_MACROS_BROKEN@
+# undef SCNiPTR
+# ifdef INTPTR_MAX
+#  define SCNiPTR @PRIPTR_PREFIX@ "i"
 # endif
-# if !defined SCNoPTR || @PRI_MACROS_BROKEN@
-#  undef SCNoPTR
-#  ifdef UINTPTR_MAX
-#   define SCNoPTR @PRIPTR_PREFIX@ "o"
-#  endif
+#endif
+#if !defined SCNoPTR || @PRI_MACROS_BROKEN@
+# undef SCNoPTR
+# ifdef UINTPTR_MAX
+#  define SCNoPTR @PRIPTR_PREFIX@ "o"
 # endif
-# if !defined SCNuPTR || @PRI_MACROS_BROKEN@
-#  undef SCNuPTR
-#  ifdef UINTPTR_MAX
-#   define SCNuPTR @PRIPTR_PREFIX@ "u"
-#  endif
+#endif
+#if !defined SCNuPTR || @PRI_MACROS_BROKEN@
+# undef SCNuPTR
+# ifdef UINTPTR_MAX
+#  define SCNuPTR @PRIPTR_PREFIX@ "u"
 # endif
-# if !defined SCNxPTR || @PRI_MACROS_BROKEN@
-#  undef SCNxPTR
-#  ifdef UINTPTR_MAX
-#   define SCNxPTR @PRIPTR_PREFIX@ "x"
-#  endif
+#endif
+#if !defined SCNxPTR || @PRI_MACROS_BROKEN@
+# undef SCNxPTR
+# ifdef UINTPTR_MAX
+#  define SCNxPTR @PRIPTR_PREFIX@ "x"
 # endif
-
 #endif
 
 /* 7.8.2 Functions for greatest-width integer types */
@@ -1077,9 +1081,23 @@ _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
 #endif
 
 #if @GNULIB_STRTOIMAX@
-# if !@HAVE_DECL_STRTOIMAX@
-extern intmax_t strtoimax (const char *, char **, int) _GL_ARG_NONNULL ((1));
+# if @REPLACE_STRTOIMAX@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strtoimax
+#   define strtoimax rpl_strtoimax
+#  endif
+_GL_FUNCDECL_RPL (strtoimax, intmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
+# else
+#  if !@HAVE_DECL_STRTOIMAX@
+#   undef strtoimax
+_GL_FUNCDECL_SYS (strtoimax, intmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
 # endif
+_GL_CXXALIASWARN (strtoimax);
 #elif defined GNULIB_POSIXCHECK
 # undef strtoimax
 # if HAVE_RAW_DECL_STRTOIMAX
@@ -1090,8 +1108,12 @@ _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
 
 #if @GNULIB_STRTOUMAX@
 # if !@HAVE_DECL_STRTOUMAX@
-extern uintmax_t strtoumax (const char *, char **, int) _GL_ARG_NONNULL ((1));
+#  undef strtoumax
+_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
 # endif
+_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
+_GL_CXXALIASWARN (strtoumax);
 #elif defined GNULIB_POSIXCHECK
 # undef strtoumax
 # if HAVE_RAW_DECL_STRTOUMAX
index 38d53637cb347c13c0cef342673afded8a98ef53..13f0f0bfe32838ffea0a689cfc490cd8d49ab1fd 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test wide character for being blank.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff --git a/gnu/itold.c b/gnu/itold.c
new file mode 100644 (file)
index 0000000..406763e
--- /dev/null
@@ -0,0 +1,30 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Replacement for 'int' to 'long double' conversion routine.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it 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 <float.h>
+
+void
+_Qp_itoq (long double *result, int a)
+{
+  /* Convert from 'int' to 'double', then from 'double' to 'long double'.  */
+  *result = (double) a;
+}
index cd94d251b14141dbf93870ccab2156c721a1024c..782a8fa4b260a875f27e64070129281fe687b8fa 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Substitute for and wrapper around <langinfo.h>.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /*
  * POSIX <langinfo.h> for platforms that lack it or have an incomplete one.
  * <http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html>
  */
 
-#ifndef _GL_LANGINFO_H
+#ifndef _@GUARD_PREFIX@_LANGINFO_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
@@ -34,8 +33,8 @@
 # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@
 #endif
 
-#ifndef _GL_LANGINFO_H
-#define _GL_LANGINFO_H
+#ifndef _@GUARD_PREFIX@_LANGINFO_H
+#define _@GUARD_PREFIX@_LANGINFO_H
 
 
 #if !@HAVE_LANGINFO_H@
@@ -175,5 +174,5 @@ _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - "
 #endif
 
 
-#endif /* _GL_LANGINFO_H */
-#endif /* _GL_LANGINFO_H */
+#endif /* _@GUARD_PREFIX@_LANGINFO_H */
+#endif /* _@GUARD_PREFIX@_LANGINFO_H */
index fae44964bdb7f3871b00c6e14688ec844f28e778..99c794c336d49db7744be63f5057a883b373af0b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Provide a stub lchown function for systems that lack it.
 
-   Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2011 Free Software
+   Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index acbaec44f7b55cd15c318d782b4d845d405024f5..f715846be0e63a459b03d10b2a9d75dde3365def 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Emulate link on platforms that lack it, namely native Windows platforms.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -157,9 +156,20 @@ link (const char *file1, const char *file2)
 int
 rpl_link (char const *file1, char const *file2)
 {
+  size_t len1;
+  size_t len2;
+  struct stat st;
+
+  /* Don't allow IRIX to dereference dangling file2 symlink.  */
+  if (!lstat (file2, &st))
+    {
+      errno = EEXIST;
+      return -1;
+    }
+
   /* Reject trailing slashes on non-directories.  */
-  size_t len1 = strlen (file1);
-  size_t len2 = strlen (file2);
+  len1 = strlen (file1);
+  len2 = strlen (file2);
   if ((len1 && file1[len1 - 1] == '/')
       || (len2 && file2[len2 - 1] == '/'))
     {
@@ -167,7 +177,6 @@ rpl_link (char const *file1, char const *file2)
          If stat() fails, then link() should fail for the same reason
          (although on Solaris 9, link("file/","oops") mistakenly
          succeeds); if stat() succeeds, require a directory.  */
-      struct stat st;
       if (stat (file1, &st))
         return -1;
       if (!S_ISDIR (st.st_mode))
@@ -180,7 +189,6 @@ rpl_link (char const *file1, char const *file2)
     {
       /* Fix Cygwin 1.5.x bug where link("a","b/.") creates file "b".  */
       char *dir = strdup (file2);
-      struct stat st;
       char *p;
       if (!dir)
         return -1;
index a8e3a4e8fc299503a823caf86d76cede48b3341f..5a5770c822896655973d1ac0bff8ea7b76b88f04 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a hard link relative to open directories.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -25,7 +25,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
-#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
index d8b5953c23fa0714dc5fbaa513eeae95945638d0..4f56dfa2d78c262f7d2c88244390f8d1275e53f9 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Determine a canonical name for the current locale's character encoding.
 
-   Copyright (C) 2000-2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006, 2008-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>.  */
 
 #include <stdlib.h>
 
 #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
-# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */
+# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */
 #endif
 
 #if defined _WIN32 || defined __WIN32__
-# define WIN32_NATIVE
+# define WINDOWS_NATIVE
 #endif
 
 #if defined __EMX__
@@ -46,7 +45,7 @@
 # endif
 #endif
 
-#if !defined WIN32_NATIVE
+#if !defined WINDOWS_NATIVE
 # include <unistd.h>
 # if HAVE_LANGINFO_CODESET
 #  include <langinfo.h>
@@ -59,7 +58,7 @@
 #  define WIN32_LEAN_AND_MEAN
 #  include <windows.h>
 # endif
-#elif defined WIN32_NATIVE
+#elif defined WINDOWS_NATIVE
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 #endif
@@ -85,7 +84,7 @@
 #endif
 
 #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
-  /* Win32, Cygwin, OS/2, DOS */
+  /* Native Windows, Cygwin, OS/2, DOS */
 # define ISSLASH(C) ((C) == '/' || (C) == '\\')
 #endif
 
@@ -125,7 +124,7 @@ get_charset_aliases (void)
   cp = charset_aliases;
   if (cp == NULL)
     {
-#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__)
       const char *dir;
       const char *base = "charset.alias";
       char *file_name;
@@ -310,7 +309,7 @@ get_charset_aliases (void)
            "DECKOREAN" "\0" "EUC-KR" "\0";
 # endif
 
-# if defined WIN32_NATIVE || defined __CYGWIN__
+# if defined WINDOWS_NATIVE || defined __CYGWIN__
       /* 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.  */
@@ -362,7 +361,7 @@ locale_charset (void)
   const char *codeset;
   const char *aliases;
 
-#if !(defined WIN32_NATIVE || defined OS2)
+#if !(defined WINDOWS_NATIVE || defined OS2)
 
 # if HAVE_LANGINFO_CODESET
 
@@ -409,10 +408,10 @@ locale_charset (void)
             }
         }
 
-      /* Woe32 has a function returning the locale's codepage as a number:
-         GetACP().  This encoding is used by Cygwin, unless the user has set
-         the environment variable CYGWIN=codepage:oem (which very few people
-         do).
+      /* The Windows API has a function returning the locale's codepage as a
+         number: GetACP().  This encoding is used by Cygwin, unless the user
+         has set the environment variable CYGWIN=codepage:oem (which very few
+         people do).
          Output directed to console windows needs to be converted (to
          GetOEMCP() if the console is using a raster font, or to
          GetConsoleOutputCP() if it is using a TrueType font).  Cygwin does
@@ -455,12 +454,12 @@ locale_charset (void)
 
 # endif
 
-#elif defined WIN32_NATIVE
+#elif defined WINDOWS_NATIVE
 
   static char buf[2 + 10 + 1];
 
-  /* Woe32 has a function returning the locale's codepage as a number:
-     GetACP().
+  /* 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.
@@ -545,5 +544,12 @@ locale_charset (void)
   if (codeset[0] == '\0')
     codeset = "ASCII";
 
+#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)
+    codeset = "ASCII";
+#endif
+
   return codeset;
 }
index 53c8a948b9a5021b30d82f8254b9da98060c16df..eacfd66bfee62358611e7d00152f5ef9a10c3d50 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Determine a canonical name for the current locale's character encoding.
-   Copyright (C) 2000-2003, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2009-2013 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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LOCALCHARSET_H
 #define _LOCALCHARSET_H
diff --git a/gnu/locale.in.h b/gnu/locale.in.h
new file mode 100644 (file)
index 0000000..0e9272f
--- /dev/null
@@ -0,0 +1,218 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A POSIX <locale.h>.
+   Copyright (C) 2007-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/>.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#ifdef _GL_ALREADY_INCLUDING_LOCALE_H
+
+/* Special invocation conventions to handle Solaris header files
+   (through Solaris 10) when combined with gettext's libintl.h.  */
+
+#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_LOCALE_H
+
+#define _GL_ALREADY_INCLUDING_LOCALE_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
+
+#undef _GL_ALREADY_INCLUDING_LOCALE_H
+
+#ifndef _@GUARD_PREFIX@_LOCALE_H
+#define _@GUARD_PREFIX@_LOCALE_H
+
+/* NetBSD 5.0 mis-defines NULL.  */
+#include <stddef.h>
+
+/* Mac OS X 10.5 defines the locale_t type in <xlocale.h>.  */
+#if @HAVE_XLOCALE_H@
+# include <xlocale.h>
+#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.  */
+
+/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
+   On systems that don't define it, use the same value as GNU libintl.  */
+#if !defined LC_MESSAGES
+# define LC_MESSAGES 1729
+#endif
+
+/* Bionic libc's 'struct lconv' is just a dummy.  */
+#if @REPLACE_STRUCT_LCONV@
+# define lconv rpl_lconv
+struct lconv
+{
+  /* All 'char *' are actually 'const char *'.  */
+
+  /* Members that depend on the LC_NUMERIC category of the locale.  See
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04> */
+
+  /* Symbol used as decimal point.  */
+  char *decimal_point;
+  /* Symbol used to separate groups of digits to the left of the decimal
+     point.  */
+  char *thousands_sep;
+  /* Definition of the size of groups of digits to the left of the decimal
+     point.  */
+  char *grouping;
+
+  /* Members that depend on the LC_MONETARY category of the locale.  See
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_03> */
+
+  /* Symbol used as decimal point.  */
+  char *mon_decimal_point;
+  /* Symbol used to separate groups of digits to the left of the decimal
+     point.  */
+  char *mon_thousands_sep;
+  /* Definition of the size of groups of digits to the left of the decimal
+     point.  */
+  char *mon_grouping;
+  /* Sign used to indicate a value >= 0.  */
+  char *positive_sign;
+  /* Sign used to indicate a value < 0.  */
+  char *negative_sign;
+
+  /* For formatting local currency.  */
+  /* Currency symbol (3 characters) followed by separator (1 character).  */
+  char *currency_symbol;
+  /* Number of digits after the decimal point.  */
+  char frac_digits;
+  /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char p_cs_precedes;
+  /* For values >= 0: Position of the sign.  */
+  char p_sign_posn;
+  /* For values >= 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char p_sep_by_space;
+  /* For values < 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char n_cs_precedes;
+  /* For values < 0: Position of the sign.  */
+  char n_sign_posn;
+  /* For values < 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char n_sep_by_space;
+
+  /* For formatting international currency.  */
+  /* Currency symbol (3 characters) followed by separator (1 character).  */
+  char *int_curr_symbol;
+  /* Number of digits after the decimal point.  */
+  char int_frac_digits;
+  /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char int_p_cs_precedes;
+  /* For values >= 0: Position of the sign.  */
+  char int_p_sign_posn;
+  /* For values >= 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char int_p_sep_by_space;
+  /* For values < 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char int_n_cs_precedes;
+  /* For values < 0: Position of the sign.  */
+  char int_n_sign_posn;
+  /* For values < 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char int_n_sep_by_space;
+};
+#endif
+
+#if @GNULIB_LOCALECONV@
+# if @REPLACE_LOCALECONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef localeconv
+#   define localeconv rpl_localeconv
+#  endif
+_GL_FUNCDECL_RPL (localeconv, struct lconv *, (void));
+_GL_CXXALIAS_RPL (localeconv, struct lconv *, (void));
+# else
+_GL_CXXALIAS_SYS (localeconv, struct lconv *, (void));
+# endif
+_GL_CXXALIASWARN (localeconv);
+#elif @REPLACE_STRUCT_LCONV@
+# undef localeconv
+# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv
+#elif defined GNULIB_POSIXCHECK
+# undef localeconv
+# if HAVE_RAW_DECL_LOCALECONV
+_GL_WARN_ON_USE (localeconv,
+                 "localeconv returns too few information on some platforms - "
+                 "use gnulib module localeconv for portability");
+# endif
+#endif
+
+#if @GNULIB_SETLOCALE@
+# if @REPLACE_SETLOCALE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef setlocale
+#   define setlocale rpl_setlocale
+#   define GNULIB_defined_setlocale 1
+#  endif
+_GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale));
+_GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale));
+# else
+_GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale));
+# endif
+_GL_CXXALIASWARN (setlocale);
+#elif defined GNULIB_POSIXCHECK
+# undef setlocale
+# if HAVE_RAW_DECL_SETLOCALE
+_GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - "
+                 "use gnulib module setlocale for portability");
+# endif
+#endif
+
+#if @GNULIB_DUPLOCALE@
+# if @REPLACE_DUPLOCALE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef duplocale
+#   define duplocale rpl_duplocale
+#  endif
+_GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale));
+# else
+#  if @HAVE_DUPLOCALE@
+_GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale));
+#  endif
+# endif
+# if @HAVE_DUPLOCALE@
+_GL_CXXALIASWARN (duplocale);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef duplocale
+# if HAVE_RAW_DECL_DUPLOCALE
+_GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - "
+                 "use gnulib module duplocale for portability");
+# endif
+#endif
+
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
+#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
diff --git a/gnu/localeconv.c b/gnu/localeconv.c
new file mode 100644 (file)
index 0000000..c7aa1a8
--- /dev/null
@@ -0,0 +1,105 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Query locale dependent information for formatting numbers.
+   Copyright (C) 2012-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.  */
+#include <locale.h>
+
+#if HAVE_STRUCT_LCONV_DECIMAL_POINT
+
+/* Override for platforms where 'struct lconv' lacks the int_p_*, int_n_*
+   members.  */
+
+struct lconv *
+localeconv (void)
+{
+  static struct lconv result;
+# undef lconv
+# undef localeconv
+  struct lconv *sys_result = localeconv ();
+
+  result.decimal_point = sys_result->decimal_point;
+  result.thousands_sep = sys_result->thousands_sep;
+  result.grouping = sys_result->grouping;
+  result.mon_decimal_point = sys_result->mon_decimal_point;
+  result.mon_thousands_sep = sys_result->mon_thousands_sep;
+  result.mon_grouping = sys_result->mon_grouping;
+  result.positive_sign = sys_result->positive_sign;
+  result.negative_sign = sys_result->negative_sign;
+  result.currency_symbol = sys_result->currency_symbol;
+  result.frac_digits = sys_result->frac_digits;
+  result.p_cs_precedes = sys_result->p_cs_precedes;
+  result.p_sign_posn = sys_result->p_sign_posn;
+  result.p_sep_by_space = sys_result->p_sep_by_space;
+  result.n_cs_precedes = sys_result->n_cs_precedes;
+  result.n_sign_posn = sys_result->n_sign_posn;
+  result.n_sep_by_space = sys_result->n_sep_by_space;
+  result.int_curr_symbol = sys_result->int_curr_symbol;
+  result.int_frac_digits = sys_result->int_frac_digits;
+  result.int_p_cs_precedes = sys_result->p_cs_precedes;
+  result.int_p_sign_posn = sys_result->p_sign_posn;
+  result.int_p_sep_by_space = sys_result->p_sep_by_space;
+  result.int_n_cs_precedes = sys_result->n_cs_precedes;
+  result.int_n_sign_posn = sys_result->n_sign_posn;
+  result.int_n_sep_by_space = sys_result->n_sep_by_space;
+
+  return &result;
+}
+
+#else
+
+/* Override for platforms where 'struct lconv' is a dummy.  */
+
+# include <limits.h>
+
+struct lconv *
+localeconv (void)
+{
+  static /*const*/ struct lconv result =
+    {
+      /* decimal_point */ ".",
+      /* thousands_sep */ "",
+      /* grouping */ "",
+      /* mon_decimal_point */ "",
+      /* mon_thousands_sep */ "",
+      /* mon_grouping */ "",
+      /* positive_sign */ "",
+      /* negative_sign */ "",
+      /* currency_symbol */ "",
+      /* frac_digits */ CHAR_MAX,
+      /* p_cs_precedes */ CHAR_MAX,
+      /* p_sign_posn */ CHAR_MAX,
+      /* p_sep_by_space */ CHAR_MAX,
+      /* n_cs_precedes */ CHAR_MAX,
+      /* n_sign_posn */ CHAR_MAX,
+      /* n_sep_by_space */ CHAR_MAX,
+      /* int_curr_symbol */ "",
+      /* int_frac_digits */ CHAR_MAX,
+      /* int_p_cs_precedes */ CHAR_MAX,
+      /* int_p_sign_posn */ CHAR_MAX,
+      /* int_p_sep_by_space */ CHAR_MAX,
+      /* int_n_cs_precedes */ CHAR_MAX,
+      /* int_n_sign_posn */ CHAR_MAX,
+      /* int_n_sep_by_space */ CHAR_MAX
+    };
+
+  return &result;
+}
+
+#endif
index b33a75686b7b5e7374dd9437cae9b5181a64d3b6..b5fdcca0cc205a658ea77c605b22a59c7bf622da 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An lseek() function that detects pipes.
-   Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007, 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -26,6 +25,8 @@
 /* Windows platforms.  */
 /* Get GetFileType.  */
 # include <windows.h>
+/* Get _get_osfhandle.  */
+# include "msvc-nothrow.h"
 #else
 # include <sys/stat.h>
 #endif
@@ -60,5 +61,9 @@ rpl_lseek (int fd, off_t offset, int whence)
       return -1;
     }
 #endif
+#if _GL_WINDOWS_64_BIT_OFF_T
+  return _lseeki64 (fd, offset, whence);
+#else
   return lseek (fd, offset, whence);
+#endif
 }
index 1e0499f0f8fb88eed9fdc322fa28a9f899e8d6e3..8314b2777bec894b5510a4ac5fa43422b63b5767 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around a bug of lstat on some systems
 
-   Copyright (C) 1997-2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2008-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
 
 /* written by Jim Meyering */
 
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to
+   rpl_lstat.  */
+#define __need_system_sys_stat_h
 #include <config.h>
 
 #if !HAVE_LSTAT
@@ -29,29 +33,31 @@ typedef int dummy;
 #else /* HAVE_LSTAT */
 
 /* Get the original definition of lstat.  It might be defined as a macro.  */
-# define __need_system_sys_stat_h
 # include <sys/types.h>
 # include <sys/stat.h>
 # undef __need_system_sys_stat_h
 
-static inline int
+static int
 orig_lstat (const char *filename, struct stat *buf)
 {
   return lstat (filename, buf);
 }
 
 /* Specification.  */
-# include <sys/stat.h>
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+# include "sys/stat.h"
 
 # include <string.h>
 # include <errno.h>
 
 /* lstat works differently on Linux and Solaris systems.  POSIX (see
-   `pathname resolution' in the glossary) requires that programs like
-   `ls' take into consideration the fact that FILE has a trailing slash
+   "pathname resolution" in the glossary) requires that programs like
+   'ls' take into consideration the fact that FILE has a trailing slash
    when FILE is a symbolic link.  On Linux and Solaris 10 systems, the
    lstat function already has the desired semantics (in treating
-   `lstat ("symlink/", sbuf)' just like `lstat ("symlink/.", sbuf)',
+   'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)',
    but on Solaris 9 and earlier it does not.
 
    If FILE has a trailing slash and specifies a symbolic link,
index f4c36e24cf4d7255c2a1819a14692badefcbb667..88792e0eb8856b7e2d7d05dfcea72e956ab494ea 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997-1998, 2006-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2006-2007, 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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* written by Jim Meyering and Bruno Haible */
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
 #ifdef malloc
 # define NEED_MALLOC_GNU 1
 #endif
 
-/* Specification.  */
 #include <stdlib.h>
 
 #include <errno.h>
 
-/* Call the system's malloc below.  */
-#undef malloc
-
 /* Allocate an N-byte block of memory from the heap.
    If N is zero, allocate a 1-byte block.  */
 
index 64ca9875dfec27fb227052b577c691bc563d2175..b6b223d6008e15b115e6213c67b7447721a24e44 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Safe automatic memory allocation.
-   Copyright (C) 2003, 2006-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 
 /* Specification.  */
 #include "malloca.h"
 
-#include "verify.h"
+#include <stdint.h>
 
-/* Use the system functions, not the gnulib overrides in this file.  */
-#undef malloc
+#include "verify.h"
 
 /* The speed critical point in this file is freea() applied to an alloca()
    result: it must be fast, to match the speed of alloca().  The speed of
 #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
@@ -77,20 +82,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 = (unsigned long) p % HASH_TABLE_SIZE;
-          ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+          slot = (uintptr_t) p % HASH_TABLE_SIZE;
+          h->next = mmalloca_results[slot];
           mmalloca_results[slot] = p;
 
           return p;
@@ -122,19 +128,21 @@ freea (void *p)
         {
           /* Looks like a mmalloca() result.  To see whether it really is one,
              perform a lookup in the hash table.  */
-          size_t slot = (unsigned long) p % HASH_TABLE_SIZE;
+          size_t slot = (uintptr_t) p % HASH_TABLE_SIZE;
           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 933fa7ec708cd42145c0a4a85e66cf444745c4be..82568898de5bbb540e7ea72c71c20b87b8aa2043 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Safe automatic memory allocation.
-   Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _MALLOCA_H
 #define _MALLOCA_H
@@ -45,7 +44,7 @@ extern "C" {
    and a page size can be as small as 4096 bytes.  So we cannot safely
    allocate anything larger than 4096 bytes.  Also care for the possibility
    of a few compiler-allocated temporary stack slots.
-   This must be a macro, not an inline function.  */
+   This must be a macro, not a function.  */
 # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
 #else
 # define safe_alloca(N) ((void) (N), NULL)
@@ -95,7 +94,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 0abf8cc17cb1910c6c43a56b83d8a50fe9b734e5..2ec35224a8e52e6aaa8902eee4f88b71bdad958d 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 2001, 2006, 2009-2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 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
@@ -18,6 +18,8 @@
 
 #include <config.h>
 
+#define MBCHAR_INLINE _GL_EXTERN_INLINE
+
 #include <limits.h>
 
 #include "mbchar.h"
index 2a8140f5ee80d0c1dc4d910c5c62ee5825949a89..cadf157693304608356c94d78f17caf6d852fca2 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Multibyte character data type.
-   Copyright (C) 2001, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005-2007, 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
 #include <wchar.h>
 #include <wctype.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef MBCHAR_INLINE
+# define MBCHAR_INLINE _GL_INLINE
+#endif
+
 #define MBCHAR_BUF_SIZE 24
 
 struct mbchar
@@ -237,7 +242,7 @@ typedef struct mbchar mbchar_t;
 /* Unprintable characters appear as a small box of width 1.  */
 #define MB_UNPRINTABLE_WIDTH 1
 
-static inline int
+MBCHAR_INLINE int
 mb_width_aux (wint_t wc)
 {
   int w = wcwidth (wc);
@@ -258,7 +263,7 @@ mb_width_aux (wint_t wc)
    (mbc)->wc = (mbc)->buf[0] = (sc))
 
 /* Copying a character.  */
-static inline void
+MBCHAR_INLINE void
 mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
 {
   if (old_mbc->ptr == &old_mbc->buf[0])
@@ -306,7 +311,7 @@ mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
 
 extern const unsigned int is_basic_table[];
 
-static inline bool
+MBCHAR_INLINE bool
 is_basic (char c)
 {
   return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
@@ -315,7 +320,7 @@ is_basic (char c)
 
 #else
 
-static inline bool
+MBCHAR_INLINE bool
 is_basic (char c)
 {
   switch (c)
@@ -349,4 +354,6 @@ is_basic (char c)
 
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* _MBCHAR_H */
index 19f515915b14869fdbfd71fa7a3e22516e3a1d2a..22022f39c4e0752e88d0257c8bab22c5e6c03d05 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
@@ -130,7 +130,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
       {
         const char *encoding = locale_charset ();
 
-        if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+        if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
           {
             /* Cf. unistr/u8-mblen.c.  */
             unsigned char c = (unsigned char) p[0];
@@ -187,7 +187,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
         /* As a reference for this code, you can use the GNU libiconv
            implementation.  Look for uses of the RET_TOOFEW macro.  */
 
-        if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
           {
             if (m == 1)
               {
@@ -210,9 +211,12 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
-            || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
-            || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+            || STREQ_OPT (encoding,
+                          "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+            || STREQ_OPT (encoding,
+                          "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
           {
             if (m == 1)
               {
@@ -223,7 +227,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
           {
             if (m == 1)
               {
@@ -241,7 +246,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+        if (STREQ_OPT (encoding,
+                       "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
           {
             if (m == 1)
               {
@@ -274,7 +280,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
+        if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
           {
             if (m == 1)
               {
@@ -337,7 +343,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
   {
     static mbstate_t internal_state;
 
-    /* Override mbrtowc's internal state.  We can not call mbsinit() on the
+    /* Override mbrtowc's internal state.  We cannot call mbsinit() on the
        hidden internal state, but we can call it on our variable.  */
     if (ps == NULL)
       ps = &internal_state;
index 88441295dc0690a889bae5c8971c92ad1ddc3ef7..15f6b0d833e25fba74a62440d249d54c1481a88e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005,
    based on earlier glibc code.
 
index d3b3f2004b649fd2c82c274b1462016d578d636f..5db59b67b72a8665b28adba2559df88196257ba3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test for initial conversion state.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 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 a68df83ba8c3869b1b917284bc6ed76d712ea82c..a73fedff930558e5513493f25d393b2306a5c0c6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert string to wide string.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 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 7d29674bb257aa2f4eab62cc50419cab33571b86..cb5b164bb80d7ada83819666db87439a7dd5aa63 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert string to wide string.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
@@ -24,7 +24,7 @@
 /* Internal state used by the functions mbsrtowcs() and mbsnrtowcs().  */
 mbstate_t _gl_mbsrtowcs_state
 /* The state must initially be in the "initial state"; so, zero-initialize it.
-   On most systems, putting it into BSS is sufficient.  Not so on MacOS X 10.3,
+   On most systems, putting it into BSS is sufficient.  Not so on Mac OS X 10.3,
    see <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>.
    When it needs an initializer, use 0 or {0} as initializer? 0 only works
    when mbstate_t is a scalar type (such as when gnulib defines it, or on
index 108c781269fb5b03d4101375cc27f6c5f94aa80e..8b265f585c52748505fe7d289965e2619668ce82 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert string to wide string.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 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 3e6653f3bc296472f84f6faf67eb50bd4bdbc756..e8ea212220675d86a946fa4316ec9aba9f927250 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 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 06a29d07f6a941d444ee644912354d73ef4a40fc..9019b98db1f3a5fc49683c7caf571111d383c5e6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/mbuiter.c b/gnu/mbuiter.c
new file mode 100644 (file)
index 0000000..3be645f
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define MBUITER_INLINE _GL_EXTERN_INLINE
+#include "mbuiter.h"
index 7897d12ad83c7b1fcc5a711d347e4fda4e02ef67..1dd87f710468a5682b50807252f6f52677627ab1 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 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
@@ -57,9 +57,9 @@
      initializes the iterator, starting at startptr.
 
    mbui_avail (iter)
-     returns true if there are more multibyte chracters available before
+     returns true if there are more multibyte characters available before
      the end of string is reached. In this case, mbui_cur (iter) is
-     initialized to the next multibyte chracter.
+     initialized to the next multibyte character.
 
    mbui_advance (iter)
      advances the iterator by one multibyte character.
 #include "mbchar.h"
 #include "strnlen1.h"
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef MBUITER_INLINE
+# define MBUITER_INLINE _GL_INLINE
+#endif
+
 struct mbuiter_multi
 {
   bool in_shift;        /* true if next byte may not be interpreted as ASCII */
@@ -122,7 +127,7 @@ struct mbuiter_multi
         */
 };
 
-static inline void
+MBUITER_INLINE void
 mbuiter_multi_next (struct mbuiter_multi *iter)
 {
   if (iter->next_done)
@@ -183,13 +188,13 @@ mbuiter_multi_next (struct mbuiter_multi *iter)
   iter->next_done = true;
 }
 
-static inline void
+MBUITER_INLINE void
 mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
 {
   iter->cur.ptr += ptrdiff;
 }
 
-static inline void
+MBUITER_INLINE void
 mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter)
 {
   if ((new_iter->in_shift = old_iter->in_shift))
@@ -221,4 +226,6 @@ typedef struct mbuiter_multi mbui_iterator_t;
 /* Copying an iterator.  */
 #define mbui_copy mbuiter_multi_copy
 
+_GL_INLINE_HEADER_END
+
 #endif /* _MBUITER_H */
index 1bc3f9989d1c9c320ad8af7c52707a823afd0c38..a623ba5e16d41212b2a19780ef8f795af67d8e94 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2011
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013
    Free Software Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 02ed5662765ed716e995224e3ceadb53d4d22fb9..db99441e35504e798008b84519316dc89240bf66 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Copy memory area and return pointer after last written byte.
-   Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2007, 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 98b6080213d9441487b62914184890f37d4650c7..984ad52006b80e2ab5c986ba5927839ad8ac80d8 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* memrchr -- find the last occurrence of a byte in a memory block
 
-   Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2011 Free Software
+   Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2013 Free Software
    Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 69d253a8a75cf960d4197f1dc30e3229d1df4191..e3816d63690eaaa0e7b1612fe20cd28341062fd0 100644 (file)
@@ -3,7 +3,7 @@
 /* On some systems, mkdir ("foo/", 0700) fails because of the trailing
    slash.  On those systems, this wrapper removes the trailing slash.
 
-   Copyright (C) 2001, 2003, 2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2008-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
index 08ab19f77dab610f5952c8a530ac01b0dd77f315..897553050680ae71de2eabab22e45779418c898b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* fd-relative mkdir
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
index d4b7d82b2036a1f568576b47f570e215a755ea8a..f5ae4d447f472b31ef4ae899dc7c4448348e4514 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2011 Free Software
+/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 1c27a2579a12af684787b12569224ec0febcf0b1..5c3b4976f09f270a1cc3dc553a9ea5781b8c1490 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a named fifo.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 3ae8aef1923b83f5cd5b3aa1c7f026e3635128ba..5c0b8c5b137fb8e352cb327a7222f7d6fc6cd78e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a named fifo relative to an open directory.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 7d811a35a380b240058a9e249effb7333f28b6ba..ff25d897f26aa4de38f5b8e5517e643146790a44 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a device inode.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 384315a4c4004924aa6ad3dde2f3594b7058a1bf..f5d0e4799236b4d14b7fd71511875cf1e86c5be3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create an inode relative to an open directory.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 9b4d1f14268c2ef2da22d1c5bcf1b5785ca0445b..e703cd29ebe81a1055fdc93490568a520f0612d3 100644 (file)
@@ -1,23 +1,23 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Convert a `struct tm' to a time_t value.
-   Copyright (C) 1993-1999, 2002-2007, 2009-2011 Free Software Foundation, Inc.
+/* Convert a 'struct tm' to a time_t value.
+   Copyright (C) 1993-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <eggert@twinsun.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   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
    mktime.  */
 # include <config.h>
 #endif
 
-/* 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.  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__
-#  pragma GCC optimize ("wrapv")
-#  define WRAPV 1
-# else
-#  define WRAPV 0
-# endif
-#endif
-
 /* Assume that leap seconds are possible, unless told otherwise.
-   If the host has a `zic' command with a `-L leapsecondfilename' option,
+   If the host has a 'zic' command with a '-L leapsecondfilename' option,
    then it supports leap seconds; otherwise it probably doesn't.  */
 #ifndef LEAP_SECONDS_POSSIBLE
 # define LEAP_SECONDS_POSSIBLE 1
@@ -56,7 +38,7 @@
 
 #include <limits.h>
 
-#include <string.h>             /* For the real memcpy prototype.  */
+#include <string.h>            /* For the real memcpy prototype.  */
 
 #if DEBUG
 # include <stdio.h>
 # 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]; }
 
@@ -114,12 +118,12 @@ verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
    your host.  */
 #define TYPE_MINIMUM(t) \
   ((t) (! TYPE_SIGNED (t) \
-        ? (t) 0 \
-        : ~ TYPE_MAXIMUM (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)))
+       ? (t) -1 \
+       : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
 
 #ifndef TIME_T_MIN
 # define TIME_T_MIN TYPE_MINIMUM (time_t)
@@ -131,16 +135,16 @@ verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
 
 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)));
+       (TYPE_TWOS_COMPLEMENT (int)
+        && TYPE_TWOS_COMPLEMENT (long_int)
+        && TYPE_TWOS_COMPLEMENT (time_t)));
 
 #define EPOCH_YEAR 1970
 #define TM_YEAR_BASE 1900
 verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
 
 /* Return 1 if YEAR + TM_YEAR_BASE is a leap year.  */
-static inline int
+static int
 leapyear (long_int year)
 {
   /* Don't add YEAR to TM_YEAR_BASE, as that might overflow.
@@ -148,7 +152,7 @@ leapyear (long_int year)
   return
     ((year & 3) == 0
      && (year % 100 != 0
-         || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3)));
+        || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3)));
 }
 
 /* How many days come before each month (0-12).  */
@@ -180,7 +184,7 @@ const unsigned short int __mon_yday[2][13] =
 static int
 isdst_differ (int a, int b)
 {
-  return (!a != !b) & (0 <= a) & (0 <= b);
+  return (!a != !b) && (0 <= a) && (0 <= b);
 }
 
 /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) -
@@ -194,9 +198,9 @@ isdst_differ (int a, int b)
    The result may overflow.  It is the caller's responsibility to
    detect overflow.  */
 
-static inline time_t
+static time_t
 ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1,
-            int year0, int yday0, int hour0, int min0, int sec0)
+           int year0, int yday0, int hour0, int min0, int sec0)
 {
   verify (C99_integer_division, -1 / 2 == 0);
 
@@ -277,15 +281,15 @@ time_t_int_add_ok (time_t a, int b)
    yield a value equal to *T.  */
 static time_t
 guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
-               const time_t *t, const struct tm *tp)
+              const time_t *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);
+                            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;
+       return *t + d;
     }
 
   /* Overflow occurred one way or another.  Return the nearest result
@@ -294,8 +298,8 @@ guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
      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));
+         ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN)
+         : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX));
 }
 
 /* Use CONVERT to convert *T to a broken down time in *TP.
@@ -303,7 +307,7 @@ guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
    it is the nearest in-range value and then convert that.  */
 static struct tm *
 ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
-                time_t *t, struct tm *tp)
+               time_t *t, struct tm *tp)
 {
   struct tm *r = convert (t, tp);
 
@@ -313,25 +317,25 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
       time_t ok = 0;
 
       /* BAD is a known unconvertible time_t, and OK is a known good one.
-         Use binary search to narrow the range between BAD and OK until
-         they differ by 1.  */
+        Use binary search to narrow the range between BAD and OK until
+        they differ by 1.  */
       while (bad != ok + (bad < 0 ? -1 : 1))
-        {
-          time_t mid = *t = time_t_avg (ok, bad);
-          r = convert (t, tp);
-          if (r)
-            ok = mid;
-          else
-            bad = mid;
-        }
+       {
+         time_t mid = *t = time_t_avg (ok, bad);
+         r = convert (t, tp);
+         if (r)
+           ok = mid;
+         else
+           bad = mid;
+       }
 
       if (!r && ok)
-        {
-          /* The last conversion attempt failed;
-             revert to the most recent successful attempt.  */
-          *t = ok;
-          r = convert (t, tp);
-        }
+       {
+         /* The last conversion attempt failed;
+            revert to the most recent successful attempt.  */
+         *t = ok;
+         r = convert (t, tp);
+       }
     }
 
   return r;
@@ -346,8 +350,8 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
    This function is external because it is used also by timegm.c.  */
 time_t
 __mktime_internal (struct tm *tp,
-                   struct tm *(*convert) (const time_t *, struct tm *),
-                   time_t *offset)
+                  struct tm *(*convert) (const time_t *, struct tm *),
+                  time_t *offset)
 {
   time_t t, gt, t0, t1, t2;
   struct tm tm;
@@ -386,8 +390,8 @@ __mktime_internal (struct tm *tp,
   /* Calculate day of year from year, month, and day of month.
      The result need not be in range.  */
   int mon_yday = ((__mon_yday[leapyear (year)]
-                   [mon_remainder + 12 * negative_mon_remainder])
-                  - 1);
+                  [mon_remainder + 12 * negative_mon_remainder])
+                 - 1);
   long_int lmday = mday;
   long_int yday = mon_yday + lmday;
 
@@ -398,33 +402,33 @@ __mktime_internal (struct tm *tp,
   if (LEAP_SECONDS_POSSIBLE)
     {
       /* Handle out-of-range seconds specially,
-         since ydhms_tm_diff assumes every minute has 60 seconds.  */
+        since ydhms_tm_diff assumes every minute has 60 seconds.  */
       if (sec < 0)
-        sec = 0;
+       sec = 0;
       if (59 < sec)
-        sec = 59;
+       sec = 59;
     }
 
   /* Invert CONVERT by probing.  First assume the same offset as last
      time.  */
 
   t0 = ydhms_diff (year, yday, hour, min, sec,
-                   EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset);
+                  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.  */
+        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.  */
+        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;
@@ -432,64 +436,64 @@ __mktime_internal (struct tm *tp,
       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)));
+       (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 abs_diff = diff < 0 ? -1 - diff : diff;
+      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) */
+        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 < 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;
-          abs_diff = diff < 0 ? -1 - diff : diff;
-          if (overflow_threshold < abs_diff)
-            return -1;
-          guessed_offset += repaired_t0 - t0;
-          t0 = repaired_t0;
-        }
+       (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;
+       }
     }
 
   /* 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,
-                            ranged_convert (convert, &t, &tm)),
-        t != gt);
+                           ranged_convert (convert, &t, &tm)),
+       t != gt);
        t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0)
     if (t == t1 && t != t2
-        && (tm.tm_isdst < 0
-            || (isdst < 0
-                ? dst2 <= (tm.tm_isdst != 0)
-                : (isdst != 0) != (tm.tm_isdst != 0))))
+       && (tm.tm_isdst < 0
+           || (isdst < 0
+               ? dst2 <= (tm.tm_isdst != 0)
+               : (isdst != 0) != (tm.tm_isdst != 0))))
       /* We can't possibly find a match, as we are oscillating
-         between two values.  The requested time probably falls
-         within a spring-forward gap of size GT - T.  Follow the common
-         practice in this case, which is to return a time that is GT - T
-         away from the requested time, preferring a time whose
-         tm_isdst differs from the requested value.  (If no tm_isdst
-         was requested and only one of the two values has a nonzero
-         tm_isdst, prefer that value.)  In practice, this is more
-         useful than returning -1.  */
+        between two values.  The requested time probably falls
+        within a spring-forward gap of size GT - T.  Follow the common
+        practice in this case, which is to return a time that is GT - T
+        away from the requested time, preferring a time whose
+        tm_isdst differs from the requested value.  (If no tm_isdst
+        was requested and only one of the two values has a nonzero
+        tm_isdst, prefer that value.)  In practice, this is more
+        useful than returning -1.  */
       goto offset_found;
     else if (--remaining_probes == 0)
       return -1;
@@ -499,50 +503,50 @@ __mktime_internal (struct tm *tp,
   if (isdst_differ (isdst, tm.tm_isdst))
     {
       /* tm.tm_isdst has the wrong value.  Look for a neighboring
-         time with the right value, and use its UTC offset.
+        time with the right value, and use its UTC offset.
 
-         Heuristic: probe the adjacent timestamps in both directions,
-         looking for the desired isdst.  This should work for all real
-         time zone histories in the tz database.  */
+        Heuristic: probe the adjacent timestamps in both directions,
+        looking for the desired isdst.  This should work for all real
+        time zone histories in the tz database.  */
 
       /* Distance between probes when looking for a DST boundary.  In
-         tzdata2003a, the shortest period of DST is 601200 seconds
-         (e.g., America/Recife starting 2000-10-08 01:00), and the
-         shortest period of non-DST surrounded by DST is 694800
-         seconds (Africa/Tunis starting 1943-04-17 01:00).  Use the
-         minimum of these two values, so we don't miss these short
-         periods when probing.  */
+        tzdata2003a, the shortest period of DST is 601200 seconds
+        (e.g., America/Recife starting 2000-10-08 01:00), and the
+        shortest period of non-DST surrounded by DST is 694800
+        seconds (Africa/Tunis starting 1943-04-17 01:00).  Use the
+        minimum of these two values, so we don't miss these short
+        periods when probing.  */
       int stride = 601200;
 
       /* The longest period of DST in tzdata2003a is 536454000 seconds
-         (e.g., America/Jujuy starting 1946-10-01 01:00).  The longest
-         period of non-DST is much longer, but it makes no real sense
-         to search for more than a year of non-DST, so use the DST
-         max.  */
+        (e.g., America/Jujuy starting 1946-10-01 01:00).  The longest
+        period of non-DST is much longer, but it makes no real sense
+        to search for more than a year of non-DST, so use the DST
+        max.  */
       int duration_max = 536454000;
 
       /* Search in both directions, so the maximum distance is half
-         the duration; add the stride to avoid off-by-1 problems.  */
+        the duration; add the stride to avoid off-by-1 problems.  */
       int delta_bound = duration_max / 2 + stride;
 
       int delta, direction;
 
       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;
-                }
-            }
+       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;
+               }
+           }
     }
 
  offset_found:
@@ -551,16 +555,16 @@ __mktime_internal (struct tm *tp,
   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.  */
+        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))
-        return -1;
+       return -1;
       t1 = t + sec_requested;
       if (! time_t_int_add_ok (t1, sec_adjustment))
-        return -1;
+       return -1;
       t2 = t1 + sec_adjustment;
       if (! convert (&t2, &tm))
-        return -1;
+       return -1;
       t = t2;
     }
 
@@ -581,7 +585,7 @@ mktime (struct tm *tp)
 {
 #ifdef _LIBC
   /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
-     time zone names contained in the external variable `tzname' shall
+     time zone names contained in the external variable 'tzname' shall
      be set as if the tzset() function had been called.  */
   __tzset ();
 #endif
@@ -604,13 +608,13 @@ static int
 not_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)
-          | (a->tm_yday ^ b->tm_yday)
-          | isdst_differ (a->tm_isdst, b->tm_isdst));
+         | (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)
+         | (a->tm_yday ^ b->tm_yday)
+         | isdst_differ (a->tm_isdst, b->tm_isdst));
 }
 
 static void
@@ -618,9 +622,9 @@ print_tm (const struct tm *tp)
 {
   if (tp)
     printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
-            tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
-            tp->tm_hour, tp->tm_min, tp->tm_sec,
-            tp->tm_yday, tp->tm_wday, tp->tm_isdst);
+           tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
+           tp->tm_hour, tp->tm_min, tp->tm_sec,
+           tp->tm_yday, tp->tm_wday, tp->tm_isdst);
   else
     printf ("0");
 }
@@ -652,11 +656,11 @@ main (int argc, char **argv)
 
   if ((argc == 3 || argc == 4)
       && (sscanf (argv[1], "%d-%d-%d%c",
-                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
-          == 3)
+                 &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
+         == 3)
       && (sscanf (argv[2], "%d:%d:%d%c",
-                  &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
-          == 3))
+                 &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
+         == 3))
     {
       tm.tm_year -= TM_YEAR_BASE;
       tm.tm_mon--;
@@ -665,10 +669,10 @@ main (int argc, char **argv)
       tl = mktime (&tmk);
       lt = localtime (&tl);
       if (lt)
-        {
-          tml = *lt;
-          lt = &tml;
-        }
+       {
+         tml = *lt;
+         lt = &tml;
+       }
       printf ("mktime returns %ld == ", (long int) tl);
       print_tm (&tmk);
       printf ("\n");
@@ -681,51 +685,51 @@ main (int argc, char **argv)
       time_t to = atol (argv[3]);
 
       if (argc == 4)
-        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
-          {
-            lt = localtime (&tl);
-            if (lt)
-              {
-                tmk = tml = *lt;
-                tk = mktime (&tmk);
-                status |= check_result (tk, tmk, tl, &tml);
-              }
-            else
-              {
-                printf ("localtime (%ld) yields 0\n", (long int) tl);
-                status = 1;
-              }
-            tl1 = tl + by;
-            if ((tl1 < tl) != (by < 0))
-              break;
-          }
+       for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
+         {
+           lt = localtime (&tl);
+           if (lt)
+             {
+               tmk = tml = *lt;
+               tk = mktime (&tmk);
+               status |= check_result (tk, tmk, tl, &tml);
+             }
+           else
+             {
+               printf ("localtime (%ld) yields 0\n", (long int) tl);
+               status = 1;
+             }
+           tl1 = tl + by;
+           if ((tl1 < tl) != (by < 0))
+             break;
+         }
       else
-        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
-          {
-            /* Null benchmark.  */
-            lt = localtime (&tl);
-            if (lt)
-              {
-                tmk = tml = *lt;
-                tk = tl;
-                status |= check_result (tk, tmk, tl, &tml);
-              }
-            else
-              {
-                printf ("localtime (%ld) yields 0\n", (long int) tl);
-                status = 1;
-              }
-            tl1 = tl + by;
-            if ((tl1 < tl) != (by < 0))
-              break;
-          }
+       for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
+         {
+           /* Null benchmark.  */
+           lt = localtime (&tl);
+           if (lt)
+             {
+               tmk = tml = *lt;
+               tk = tl;
+               status |= check_result (tk, tmk, tl, &tml);
+             }
+           else
+             {
+               printf ("localtime (%ld) yields 0\n", (long int) tl);
+               status = 1;
+             }
+           tl1 = tl + by;
+           if ((tl1 < tl) != (by < 0))
+             break;
+         }
     }
   else
     printf ("Usage:\
 \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\
 \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\
 \t%s FROM BY TO - # Do not test those values (for benchmark).\n",
-            argv[0], argv[0], argv[0]);
+           argv[0], argv[0], argv[0]);
 
   return status;
 }
index 97a8d1a5b22d8b5004829fb8b40f81aa00b1a060..4d003c0a41d0ce166d40a60f3c0a27ef6c22a029 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* modechange.c -- file mode manipulation
 
-   Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -20,7 +20,7 @@
 
 /* Written by David MacKenzie <djm@ai.mit.edu> */
 
-/* The ASCII mode string is compiled into an array of `struct
+/* The ASCII mode string is compiled into an array of 'struct
    modechange', which can then be applied to each file to be changed.
    We do this instead of re-parsing the ASCII string for each file
    because the compiled form requires less computation to use; when
@@ -92,7 +92,7 @@ enum
 
     /* Instead of the typical case, copy some existing permissions for
        u, g, or o onto the other two.  Which of u, g, or o is copied
-       is determined by which bits are set in the `value' field.  */
+       is determined by which bits are set in the 'value' field.  */
     MODE_COPY_EXISTING
   };
 
@@ -106,8 +106,8 @@ struct mode_change
   mode_t mentioned;             /* Bits explicitly mentioned.  */
 };
 
-/* Return a mode_change array with the specified `=ddd'-style
-   mode change operation, where NEW_MODE is `ddd' and MENTIONED
+/* Return a mode_change array with the specified "=ddd"-style
+   mode change operation, where NEW_MODE is "ddd" and MENTIONED
    contains the bits explicitly mentioned in the mode are MENTIONED.  */
 
 static struct mode_change *
@@ -129,7 +129,7 @@ make_node_op_equals (mode_t new_mode, mode_t mentioned)
    the form:
    [ugoa...][[+-=][rwxXstugo...]...][,...]
 
-   Return NULL if `mode_string' does not contain a valid
+   Return NULL if 'mode_string' does not contain a valid
    representation of file mode change operations.  */
 
 struct mode_change *
@@ -138,6 +138,7 @@ mode_compile (char const *mode_string)
   /* The array of mode-change directives to be returned.  */
   struct mode_change *mc;
   size_t used = 0;
+  char const *p;
 
   if ('0' <= *mode_string && *mode_string < '8')
     {
@@ -145,40 +146,43 @@ mode_compile (char const *mode_string)
       mode_t mode;
       mode_t mentioned;
 
+      p = mode_string;
       do
         {
-          octal_mode = 8 * octal_mode + *mode_string++ - '0';
+          octal_mode = 8 * octal_mode + *p++ - '0';
           if (ALLM < octal_mode)
             return NULL;
         }
-      while ('0' <= *mode_string && *mode_string < '8');
+      while ('0' <= *p && *p < '8');
 
-      if (*mode_string)
+      if (*p)
         return NULL;
 
       mode = octal_to_mode (octal_mode);
-      mentioned = (mode & (S_ISUID | S_ISGID)) | S_ISVTX | S_IRWXUGO;
+      mentioned = (p - mode_string < 5
+                   ? (mode & (S_ISUID | S_ISGID)) | S_ISVTX | S_IRWXUGO
+                   : CHMOD_MODE_BITS);
       return make_node_op_equals (mode, mentioned);
     }
 
   /* Allocate enough space to hold the result.  */
   {
     size_t needed = 1;
-    char const *p;
     for (p = mode_string; *p; p++)
       needed += (*p == '=' || *p == '+' || *p == '-');
     mc = xnmalloc (needed, sizeof *mc);
   }
 
-  /* One loop iteration for each `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.  */
-  for (;; mode_string++)
+  /* One loop iteration for each
+     '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.  */
+  for (p = mode_string; ; p++)
     {
       /* Which bits in the mode are operated on.  */
       mode_t affected = 0;
 
-      /* Turn on all the bits in `affected' for each group given.  */
-      for (;; mode_string++)
-        switch (*mode_string)
+      /* Turn on all the bits in 'affected' for each group given.  */
+      for (;; p++)
+        switch (*p)
           {
           default:
             goto invalid;
@@ -201,35 +205,60 @@ mode_compile (char const *mode_string)
 
       do
         {
-          char op = *mode_string++;
+          char op = *p++;
           mode_t value;
+          mode_t mentioned = 0;
           char flag = MODE_COPY_EXISTING;
           struct mode_change *change;
 
-          switch (*mode_string++)
+          switch (*p)
             {
+            case '0': case '1': case '2': case '3':
+            case '4': case '5': case '6': case '7':
+              {
+                unsigned int octal_mode = 0;
+
+                do
+                  {
+                    octal_mode = 8 * octal_mode + *p++ - '0';
+                    if (ALLM < octal_mode)
+                      return NULL;
+                  }
+                while ('0' <= *p && *p < '8');
+
+                if (affected || (*p && *p != ','))
+                  return NULL;
+                affected = mentioned = CHMOD_MODE_BITS;
+                value = octal_to_mode (octal_mode);
+                flag = MODE_ORDINARY_CHANGE;
+                break;
+              }
+
             case 'u':
-              /* Set the affected bits to the value of the `u' bits
+              /* Set the affected bits to the value of the "u" bits
                  on the same file.  */
               value = S_IRWXU;
+              p++;
               break;
             case 'g':
-              /* Set the affected bits to the value of the `g' bits
+              /* Set the affected bits to the value of the "g" bits
                  on the same file.  */
               value = S_IRWXG;
+              p++;
               break;
             case 'o':
-              /* Set the affected bits to the value of the `o' bits
+              /* Set the affected bits to the value of the "o" bits
                  on the same file.  */
               value = S_IRWXO;
+              p++;
               break;
 
             default:
               value = 0;
               flag = MODE_ORDINARY_CHANGE;
 
-              for (mode_string--;; mode_string++)
-                switch (*mode_string)
+              for (;; p++)
+                switch (*p)
                   {
                   case 'r':
                     value |= S_IRUSR | S_IRGRP | S_IROTH;
@@ -244,11 +273,11 @@ mode_compile (char const *mode_string)
                     flag = MODE_X_IF_ANY_X;
                     break;
                   case 's':
-                    /* Set the setuid/gid bits if `u' or `g' is selected.  */
+                    /* Set the setuid/gid bits if 'u' or 'g' is selected.  */
                     value |= S_ISUID | S_ISGID;
                     break;
                   case 't':
-                    /* Set the "save text image" bit if `o' is selected.  */
+                    /* Set the "save text image" bit if 'o' is selected.  */
                     value |= S_ISVTX;
                     break;
                   default:
@@ -262,16 +291,16 @@ mode_compile (char const *mode_string)
           change->flag = flag;
           change->affected = affected;
           change->value = value;
-          change->mentioned = (affected ? affected & value : value);
+          change->mentioned =
+            (mentioned ? mentioned : affected ? affected & value : value);
         }
-      while (*mode_string == '=' || *mode_string == '+'
-             || *mode_string == '-');
+      while (*p == '=' || *p == '+' || *p == '-');
 
-      if (*mode_string != ',')
+      if (*p != ',')
         break;
     }
 
-  if (*mode_string == 0)
+  if (*p == 0)
     {
       mc[used].flag = MODE_DONE;
       return mc;
@@ -331,7 +360,7 @@ mode_adjust (mode_t oldmode, bool dir, mode_t umask_value,
           break;
 
         case MODE_COPY_EXISTING:
-          /* Isolate in `value' the bits in `newmode' to copy.  */
+          /* Isolate in 'value' the bits in 'newmode' to copy.  */
           value &= newmode;
 
           /* Copy the isolated bits to the other two parts.  */
index bad2e474935aa8957df371228ea51989ae566e50..3efc6440280382925981e7b1a36a08e7891fccf5 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* modechange.h -- definitions for file mode manipulation
 
-   Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/msvc-inval.c b/gnu/msvc-inval.c
new file mode 100644 (file)
index 0000000..9efed19
--- /dev/null
@@ -0,0 +1,131 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-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, 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 "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+
+/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler
+   declaration.  */
+# include <stdlib.h>
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+}
+
+# else
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+#  if defined _MSC_VER
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  else
+
+/* An index to thread-local storage.  */
+static DWORD tls_index;
+static int tls_initialized /* = 0 */;
+
+/* Used as a fallback only.  */
+static struct gl_msvc_inval_per_thread not_per_thread;
+
+struct gl_msvc_inval_per_thread *
+gl_msvc_inval_current (void)
+{
+  if (!tls_initialized)
+    {
+      tls_index = TlsAlloc ();
+      tls_initialized = 1;
+    }
+  if (tls_index == TLS_OUT_OF_INDEXES)
+    /* TlsAlloc had failed.  */
+    return &not_per_thread;
+  else
+    {
+      struct gl_msvc_inval_per_thread *pointer =
+        (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index);
+      if (pointer == NULL)
+        {
+          /* First call.  Allocate a new 'struct gl_msvc_inval_per_thread'.  */
+          pointer =
+            (struct gl_msvc_inval_per_thread *)
+            malloc (sizeof (struct gl_msvc_inval_per_thread));
+          if (pointer == NULL)
+            /* Could not allocate memory.  Use the global storage.  */
+            pointer = &not_per_thread;
+          TlsSetValue (tls_index, pointer);
+        }
+      return pointer;
+    }
+}
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current ();
+  if (current->restart_valid)
+    longjmp (current->restart, 1);
+  else
+    /* An invalid parameter notification from outside the gnulib code.
+       Give the caller a chance to intervene.  */
+    RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  endif
+
+# endif
+
+static int gl_msvc_inval_initialized /* = 0 */;
+
+void
+gl_msvc_inval_ensure_handler (void)
+{
+  if (gl_msvc_inval_initialized == 0)
+    {
+      _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler);
+      gl_msvc_inval_initialized = 1;
+    }
+}
+
+#endif
diff --git a/gnu/msvc-inval.h b/gnu/msvc-inval.h
new file mode 100644 (file)
index 0000000..e47789f
--- /dev/null
@@ -0,0 +1,224 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-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, 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 _MSVC_INVAL_H
+#define _MSVC_INVAL_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines macros that turn such an invalid parameter notification
+   into a non-local exit.  An error code can then be produced at the target
+   of this exit.  You can thus write code like
+
+     TRY_MSVC_INVAL
+       {
+         <Code that can trigger an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     CATCH_MSVC_INVAL
+       {
+         <Code that handles an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     DONE_MSVC_INVAL;
+
+   This entire block expands to a single statement.
+
+   The handling of invalid parameters can be done in three ways:
+
+     * The default way, which is reasonable for programs (not libraries):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING])
+
+     * The way for libraries that make "hairy" calls (like close(-1), or
+       fclose(fp) where fileno(fp) is closed, or simply getdtablesize()):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING])
+
+     * The way for libraries that make no "hairy" calls:
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING])
+ */
+
+#define DEFAULT_HANDLING       0
+#define HAIRY_LIBRARY_HANDLING 1
+#define SANE_LIBRARY_HANDLING  2
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+/* A native Windows platform with the "invalid parameter handler" concept,
+   and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING.  */
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+/* Default handling.  */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+
+/* Ensure that the invalid parameter handler in installed that just returns.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#  ifdef __cplusplus
+}
+#  endif
+
+#  define TRY_MSVC_INVAL \
+     do                                                                        \
+       {                                                                       \
+         gl_msvc_inval_ensure_handler ();                                      \
+         if (1)
+#  define CATCH_MSVC_INVAL \
+         else
+#  define DONE_MSVC_INVAL \
+       }                                                                       \
+     while (0)
+
+# else
+/* Handling for hairy libraries.  */
+
+#  include <excpt.h>
+
+/* Gnulib can define its own status codes, as described in the page
+   "Raising Software Exceptions" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/het71c37.aspx>.
+   Our status codes are composed of
+     - 0xE0000000, mandatory for all user-defined status codes,
+     - 0x474E550, a API identifier ("GNU"),
+     - 0, 1, 2, ..., used to distinguish different status codes from the
+       same API.  */
+#  define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0)
+
+#  if defined _MSC_VER
+/* A compiler that supports __try/__except, as described in the page
+   "try-except statement" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
+   With __try/__except, we can use the multithread-safe exception handling.  */
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+/* Ensure that the invalid parameter handler in installed that raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          gl_msvc_inval_ensure_handler ();                                     \
+          __try
+#   define CATCH_MSVC_INVAL \
+          __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER     \
+                    ? EXCEPTION_EXECUTE_HANDLER                                \
+                    : EXCEPTION_CONTINUE_SEARCH)
+#   define DONE_MSVC_INVAL \
+        }                                                                      \
+      while (0)
+
+#  else
+/* Any compiler.
+   We can only use setjmp/longjmp.  */
+
+#   include <setjmp.h>
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+struct gl_msvc_inval_per_thread
+{
+  /* The restart that will resume execution at the code between
+     CATCH_MSVC_INVAL and DONE_MSVC_INVAL.  It is enabled only between
+     TRY_MSVC_INVAL and CATCH_MSVC_INVAL.  */
+  jmp_buf restart;
+
+  /* Tells whether the contents of restart is valid.  */
+  int restart_valid;
+};
+
+/* Ensure that the invalid parameter handler in installed that passes
+   control to the gl_msvc_inval_restart if it is valid, or raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+/* Return a pointer to the per-thread data for the current thread.  */
+extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          struct gl_msvc_inval_per_thread *msvc_inval_current;                 \
+          gl_msvc_inval_ensure_handler ();                                     \
+          msvc_inval_current = gl_msvc_inval_current ();                       \
+          /* First, initialize gl_msvc_inval_restart.  */                      \
+          if (setjmp (msvc_inval_current->restart) == 0)                       \
+            {                                                                  \
+              /* Then, mark it as valid.  */                                   \
+              msvc_inval_current->restart_valid = 1;
+#   define CATCH_MSVC_INVAL \
+              /* Execution completed.                                          \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;                           \
+            }                                                                  \
+          else                                                                 \
+            {                                                                  \
+              /* Execution triggered an invalid parameter notification.        \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;
+#   define DONE_MSVC_INVAL \
+            }                                                                  \
+        }                                                                      \
+      while (0)
+
+#  endif
+
+# endif
+
+#else
+/* A platform that does not need to the invalid parameter handler,
+   or when SANE_LIBRARY_HANDLING is desired.  */
+
+/* The braces here avoid GCC warnings like
+   "warning: suggest explicit braces to avoid ambiguous 'else'".  */
+# define TRY_MSVC_INVAL \
+    do                                                                         \
+      {                                                                        \
+        if (1)
+# define CATCH_MSVC_INVAL \
+        else
+# define DONE_MSVC_INVAL \
+      }                                                                        \
+    while (0)
+
+#endif
+
+#endif /* _MSVC_INVAL_H */
diff --git a/gnu/msvc-nothrow.c b/gnu/msvc-nothrow.c
new file mode 100644 (file)
index 0000000..84f1355
--- /dev/null
@@ -0,0 +1,51 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-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, 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 "msvc-nothrow.h"
+
+/* Get declarations of the native Windows API functions.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#include "msvc-inval.h"
+
+#undef _get_osfhandle
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+intptr_t
+_gl_nothrow_get_osfhandle (int fd)
+{
+  intptr_t result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _get_osfhandle (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = (intptr_t) INVALID_HANDLE_VALUE;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#endif
diff --git a/gnu/msvc-nothrow.h b/gnu/msvc-nothrow.h
new file mode 100644 (file)
index 0000000..d8e2bcb
--- /dev/null
@@ -0,0 +1,45 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-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, 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 _MSVC_NOTHROW_H
+#define _MSVC_NOTHROW_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines wrappers that turn such an invalid parameter notification
+   into an error code.  */
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get original declaration of _get_osfhandle.  */
+# include <io.h>
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Override _get_osfhandle.  */
+extern intptr_t _gl_nothrow_get_osfhandle (int fd);
+#  define _get_osfhandle _gl_nothrow_get_osfhandle
+
+# endif
+
+#endif
+
+#endif /* _MSVC_NOTHROW_H */
index aef5e202fdf642df08e973672f03cf4e384d2934..bf3aa8ff60af328dfb1e80f72d44f92fda4f2973 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* nl_langinfo() replacement: query locale dependent information.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
@@ -143,7 +143,8 @@ nl_langinfo (nl_item item)
       {
         static char buf[2 + 10 + 1];
 
-        /* Woe32 has a function returning the locale's codepage as a number.  */
+        /* The Windows API has a function returning the locale's codepage as
+           a number.  */
         sprintf (buf, "CP%u", GetACP ());
         return buf;
       }
index dea57e15080ae00a01d91688241a0d22bdebb358..e2b80b682c3137a5b935d22ec359922c6382040e 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* obstack.c - subroutines used implicitly by object stack macros
 
-   Copyright (C) 1988-1994, 1996-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1988-1994, 1996-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
@@ -36,7 +36,7 @@
    C Library, but also included in many other GNU distributions.  Compiling
    and linking in this code is a waste when using the GNU C library
    (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object
+   program understand 'configure --with-gnu-libc' and omit the object
    files, it is simpler to just do this in the source for each such file.  */
 
 #include <stdio.h>              /* Random thing to get __GNU_LIBRARY__.  */
@@ -76,23 +76,23 @@ enum
 
 /* When we copy a long block of data, this is the unit to do it with.
    On some machines, copying successive ints does not work;
-   in such a case, redefine COPYING_UNIT to `long' (if that works)
-   or `char' as a last resort.  */
+   in such a case, redefine COPYING_UNIT to 'long' (if that works)
+   or 'char' as a last resort.  */
 # ifndef COPYING_UNIT
 #  define COPYING_UNIT int
 # endif
 
 
-/* The functions allocating more room by calling `obstack_chunk_alloc'
-   jump to the handler pointed to by `obstack_alloc_failed_handler'.
+/* The functions allocating more room by calling 'obstack_chunk_alloc'
+   jump to the handler pointed to by 'obstack_alloc_failed_handler'.
    This can be set to a user defined function which should either
    abort gracefully or use longjump - but shouldn't return.  This
    variable by default points to the internal function
-   `print_and_abort'.  */
-static void print_and_abort (void);
+   'print_and_abort'.  */
+static _Noreturn void print_and_abort (void);
 void (*obstack_alloc_failed_handler) (void) = print_and_abort;
 
-/* Exit value used when `print_and_abort' is used.  */
+/* Exit value used when 'print_and_abort' is used.  */
 # include <stdlib.h>
 # ifdef _LIBC
 int obstack_exit_failure = EXIT_FAILURE;
@@ -403,15 +403,7 @@ _obstack_memory_used (struct obstack *h)
 #  include <libio/iolibio.h>
 # endif
 
-# ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#   define __attribute__(Spec) /* empty */
-#  endif
-# endif
-
-static void
-__attribute__ ((noreturn))
+static _Noreturn void
 print_and_abort (void)
 {
   /* Don't change any of these strings.  Yes, it would be possible to add
index 19d4429aa08406777e9a61a0b89b16bc08e118b7..b5f0bb4fdbab3db49922564411966a4b39da2fc6 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* obstack.h - object stack macros
-   Copyright (C) 1988-1994, 1996-1999, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1988-1994, 1996-1999, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -34,11 +34,11 @@ stack" is typically an immature growing object, while the rest of the
 stack is of mature, fixed size and fixed address objects.
 
 These routines grab large chunks of memory, using a function you
-supply, called `obstack_chunk_alloc'.  On occasion, they free chunks,
-by calling `obstack_chunk_free'.  You must define them and declare
+supply, called 'obstack_chunk_alloc'.  On occasion, they free chunks,
+by calling 'obstack_chunk_free'.  You must define them and declare
 them before using any obstack macros.
 
-Each independent stack is represented by a `struct obstack'.
+Each independent stack is represented by a 'struct obstack'.
 Each of the obstack macros expects a pointer to such a structure
 as the first argument.
 
@@ -95,7 +95,7 @@ Summary:
         Exactly one object is growing in an obstack at any one time.
         You can run one obstack per control block.
         You may have as many control blocks as you dare.
-        Because of the way we do it, you can `unwind' an obstack
+        Because of the way we do it, you can "unwind" an obstack
           back to a previous state. (You may remove objects much
           as you would with a stack.)
 */
@@ -124,7 +124,7 @@ Summary:
 
 #define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A)))
 
-/* Similiar to _BPTR_ALIGN (B, P, A), except optimize the common case
+/* Similar to _BPTR_ALIGN (B, P, A), except optimize the common case
    where pointers can be converted to integers, aligned as integers,
    and converted back again.  If PTR_INT_TYPE is narrower than a
    pointer (e.g., the AS/400), play it safe and compute the alignment
@@ -161,7 +161,7 @@ struct obstack          /* control current object in current chunk */
     void *tempptr;
   } temp;                       /* Temporary for some macros.  */
   int   alignment_mask;         /* Mask of alignment for each object. */
-  /* These prototypes vary based on `use_extra_arg', and we use
+  /* These prototypes vary based on 'use_extra_arg', and we use
      casts to the prototypeless function type in all assignments,
      but having prototypes here quiets -Wstrict-prototypes.  */
   struct _obstack_chunk *(*chunkfun) (void *, long);
@@ -195,13 +195,13 @@ extern int _obstack_memory_used (struct obstack *);
 extern void __obstack_free (struct obstack *obstack, void *block);
 
 \f
-/* Error handler called when `obstack_chunk_alloc' failed to allocate
+/* Error handler called when 'obstack_chunk_alloc' failed to allocate
    more memory.  This can be set to a user defined function which
    should either abort gracefully or use longjump - but shouldn't
    return.  The default action is to print a message and abort.  */
 extern void (*obstack_alloc_failed_handler) (void);
 
-/* Exit value used when `print_and_abort' is used.  */
+/* Exit value used when 'print_and_abort' is used.  */
 extern int obstack_exit_failure;
 \f
 /* Pointer to beginning of object being allocated or to be allocated next.
@@ -255,7 +255,7 @@ extern int obstack_exit_failure;
 
 #define obstack_memory_used(h) _obstack_memory_used (h)
 \f
-#if defined __GNUC__ && defined __STDC__ && __STDC__
+#if defined __GNUC__
 /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
    does not implement __extension__.  But that compiler doesn't define
    __GNUC_MINOR__.  */
@@ -266,7 +266,7 @@ extern int obstack_exit_failure;
 /* For GNU C, if not -traditional,
    we can define these macros to compute all args only once
    without using a global variable.
-   Also, we can avoid using the `temp' slot, to make faster code.  */
+   Also, we can avoid using the 'temp' slot, to make faster code.  */
 
 # define obstack_object_size(OBSTACK)                                   \
   __extension__                                                         \
@@ -344,14 +344,16 @@ __extension__                                                           \
 # define obstack_ptr_grow_fast(OBSTACK,aptr)                            \
 __extension__                                                           \
 ({ struct obstack *__o1 = (OBSTACK);                                    \
-   *(const void **) __o1->next_free = (aptr);                           \
+   void *__p1 = __o1->next_free;                                        \
+   *(const void **) __p1 = (aptr);                                      \
    __o1->next_free += sizeof (const void *);                            \
    (void) 0; })
 
 # define obstack_int_grow_fast(OBSTACK,aint)                            \
 __extension__                                                           \
 ({ struct obstack *__o1 = (OBSTACK);                                    \
-   *(int *) __o1->next_free = (aint);                                   \
+   void *__p1 = __o1->next_free;                                        \
+   *(int *) __p1 = (aint);                                              \
    __o1->next_free += sizeof (int);                                     \
    (void) 0; })
 
@@ -407,7 +409,7 @@ __extension__                                                           \
      __o->next_free = __o->object_base = (char *)__obj;                 \
    else (__obstack_free) (__o, __obj); })
 \f
-#else /* not __GNUC__ or not __STDC__ */
+#else /* not __GNUC__ */
 
 # define obstack_object_size(h) \
  (unsigned) ((h)->next_free - (h)->object_base)
@@ -505,7 +507,7 @@ __extension__                                                           \
             = (h)->temp.tempint + (char *) (h)->chunk)                  \
    : (((__obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0), 0)))
 
-#endif /* not __GNUC__ or not __STDC__ */
+#endif /* not __GNUC__ */
 
 #ifdef __cplusplus
 }       /* C++ */
index 98c20fcb445ff6af0422c8f334665b78dad5c187..61a950f3e51790cf384a8df4a8f84aa2d819dde7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Open a descriptor to a file.
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+   the system's <fcntl.h> here, so that orig_open doesn't recurse to
+   rpl_open.  */
+#define __need_system_fcntl_h
 #include <config.h>
 
 /* Get the original definition of open.  It might be defined as a macro.  */
-#define __need_system_fcntl_h
 #include <fcntl.h>
-#undef __need_system_fcntl_h
 #include <sys/types.h>
+#undef __need_system_fcntl_h
 
-static inline int
+static int
 orig_open (const char *filename, int flags, mode_t mode)
 {
   return open (filename, flags, mode);
 }
 
 /* Specification.  */
-#include <fcntl.h>
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+   this include because of the preliminary #include <fcntl.h> above.  */
+#include "fcntl.h"
 
 #include <errno.h>
 #include <stdarg.h>
@@ -65,6 +70,15 @@ open (const char *filename, int flags, ...)
       va_end (arg);
     }
 
+#if GNULIB_defined_O_NONBLOCK
+  /* The only known platform that lacks O_NONBLOCK is mingw, but it
+     also lacks named pipes and Unix sockets, which are the only two
+     file types that require non-blocking handling in open().
+     Therefore, it is safe to ignore O_NONBLOCK here.  It is handy
+     that mingw also lacks openat(), so that is also covered here.  */
+  flags &= ~O_NONBLOCK;
+#endif
+
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
   if (strcmp (filename, "/dev/null") == 0)
     filename = "NUL";
index 5f642ac64e5acac12cb78e49ca32d821b2faca61..b06472a2d66f9b389e4a1bfac5df63390b2d618b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Report a save- or restore-cwd failure in our openat replacement and then exit.
 
-   Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-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
@@ -39,7 +39,7 @@ openat_save_fail (int errnum)
   error (exit_failure, errnum,
          _("unable to record current working directory"));
 #endif
-  /* The `noreturn' attribute cannot be applied to error, since it returns
+  /* _Noreturn cannot be applied to error, since it returns
      when its first argument is 0.  To help compilers understand that this
      function does not return, call abort.  Also, the abort is a
      safety feature if exit_failure is 0 (which shouldn't happen).  */
index 71ea882e4ed2f90d21659448259701cc688e5bcd..26983e1853ce3af597cc21ad4a6292343920c0bf 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Internals for openat-like functions.
 
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
index 5e0d9d7965ee45144d76cf22b3f0b02736a6818e..a5837fc98ef26f4ee9a05126234f0757f6f6f597 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create /proc/self/fd-related names for subfiles of open directories.
 
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -33,7 +33,6 @@
 #include <unistd.h>
 
 #include "intprops.h"
-#include "same-inode.h"
 
 /* The results of open() in this file are not used with fchdir,
    and we do not leak fds to any single-threaded code that could use stdio,
@@ -77,20 +76,20 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file)
          problem is exhibited on code that built on Solaris 8 and
          running on Solaris 10.  */
 
-      int proc_self_fd = open ("/proc/self/fd", O_SEARCH);
+      int proc_self_fd = open ("/proc/self/fd",
+                               O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
       if (proc_self_fd < 0)
         proc_status = -1;
       else
         {
-          struct stat proc_self_fd_dotdot_st;
-          struct stat proc_self_st;
-          char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof ".." - 1)];
-          sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, "..");
-          proc_status =
-            ((stat (dotdot_buf, &proc_self_fd_dotdot_st) == 0
-              && stat ("/proc/self", &proc_self_st) == 0
-              && SAME_INODE (proc_self_fd_dotdot_st, proc_self_st))
-             ? 1 : -1);
+          /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the
+             number of a file descriptor open on /proc/self/fd.  On Linux,
+             that name resolves to /proc/self/fd, which was opened above.
+             However, on Solaris, it may resolve to /proc/self/fd/fd, which
+             cannot exist, since all names in /proc/self/fd are numeric.  */
+          char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof "../fd" - 1)];
+          sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, "../fd");
+          proc_status = access (dotdot_buf, F_OK) ? -1 : 1;
           close (proc_self_fd);
         }
     }
index b01972a8180d0696ab67734fdaaf853ad7bce941..cea1b472e01059403d8793054baed27826d5144b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide a replacement openat function
-   Copyright (C) 2004-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004-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
 
 /* written by Jim Meyering */
 
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+   the system's <fcntl.h> here, so that orig_openat doesn't recurse to
+   rpl_openat.  */
+#define __need_system_fcntl_h
 #include <config.h>
 
+/* Get the original definition of open.  It might be defined as a macro.  */
+#include <fcntl.h>
+#include <sys/types.h>
+#undef __need_system_fcntl_h
+
+#if HAVE_OPENAT
+static int
+orig_openat (int fd, char const *filename, int flags, mode_t mode)
+{
+  return openat (fd, filename, flags, mode);
+}
+#endif
+
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+   this include because of the preliminary #include <fcntl.h> above.  */
+#include "fcntl.h"
+
 #include "openat.h"
 
 #include <stdarg.h>
+#include <stdbool.h>
 #include <stddef.h>
 #include <string.h>
 #include <sys/stat.h>
-
-#include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
-#include "openat-priv.h"
-#include "save-cwd.h"
+#include <errno.h>
 
 #if HAVE_OPENAT
 
-# undef openat
-
 /* Like openat, but work around Solaris 9 bugs with trailing slash.  */
 int
 rpl_openat (int dfd, char const *filename, int flags, ...)
@@ -88,7 +105,7 @@ rpl_openat (int dfd, char const *filename, int flags, ...)
     }
 # endif
 
-  fd = openat (dfd, filename, flags, mode);
+  fd = orig_openat (dfd, filename, flags, mode);
 
 # if OPEN_TRAILING_SLASH_BUG
   /* If the filename ends in a slash and fd does not refer to a directory,
@@ -126,6 +143,10 @@ rpl_openat (int dfd, char const *filename, int flags, ...)
 
 #else /* !HAVE_OPENAT */
 
+# include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+# include "openat-priv.h"
+# include "save-cwd.h"
+
 /* Replacement for Solaris' openat function.
    <http://www.google.com/search?q=openat+site:docs.sun.com>
    First, try to simulate it via open ("/proc/self/fd/FD/FILE").
@@ -161,7 +182,7 @@ openat (int fd, char const *file, int flags, ...)
    directory argument.
 
    If a previous attempt to restore the current working directory
-   failed, then we must not even try to access a `.'-relative name.
+   failed, then we must not even try to access a '.'-relative name.
    It is the caller's responsibility not to call this function
    in that case.  */
 
index aaf5392437008c28157c8144e81473a9e0e3950f..4143e9ce047e225b932a5df57c47f0ef5bc5ca3e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* provide a replacement openat function
-   Copyright (C) 2004-2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004-2006, 2008-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
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <dirent.h>
 #include <unistd.h>
 #include <stdbool.h>
 
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-#endif
+_GL_INLINE_HEADER_BEGIN
 
 #if !HAVE_OPENAT
 
@@ -49,52 +44,79 @@ bool openat_needs_fchdir (void);
 
 #endif
 
-void openat_restore_fail (int) _GL_ATTRIBUTE_NORETURN;
-void openat_save_fail (int) _GL_ATTRIBUTE_NORETURN;
+_Noreturn void openat_restore_fail (int);
+_Noreturn void openat_save_fail (int);
 
 /* Using these function names makes application code
    slightly more readable than it would be with
    fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW).  */
-static inline int
+
+#if GNULIB_FCHOWNAT
+
+# ifndef FCHOWNAT_INLINE
+#  define FCHOWNAT_INLINE _GL_INLINE
+# endif
+
+FCHOWNAT_INLINE int
 chownat (int fd, char const *file, uid_t owner, gid_t group)
 {
   return fchownat (fd, file, owner, group, 0);
 }
 
-static inline int
+FCHOWNAT_INLINE int
 lchownat (int fd, char const *file, uid_t owner, gid_t group)
 {
   return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW);
 }
 
-static inline int
+#endif
+
+#if GNULIB_FCHMODAT
+
+# ifndef FCHMODAT_INLINE
+#  define FCHMODAT_INLINE _GL_INLINE
+# endif
+
+FCHMODAT_INLINE int
 chmodat (int fd, char const *file, mode_t mode)
 {
   return fchmodat (fd, file, mode, 0);
 }
 
-static inline int
+FCHMODAT_INLINE int
 lchmodat (int fd, char const *file, mode_t mode)
 {
   return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW);
 }
 
-static inline int
+#endif
+
+#if GNULIB_STATAT
+
+# ifndef STATAT_INLINE
+#  define STATAT_INLINE _GL_INLINE
+# endif
+
+STATAT_INLINE int
 statat (int fd, char const *name, struct stat *st)
 {
   return fstatat (fd, name, st, 0);
 }
 
-static inline int
+STATAT_INLINE int
 lstatat (int fd, char const *name, struct stat *st)
 {
   return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW);
 }
 
+#endif
+
 /* For now, there are no wrappers named laccessat or leuidaccessat,
    since gnulib doesn't support faccessat(,AT_SYMLINK_NOFOLLOW) and
    since access rights on symlinks are of limited utility.  Likewise,
    wrappers are not provided for accessat or euidaccessat, so as to
    avoid dragging in -lgen on some platforms.  */
 
+_GL_INLINE_HEADER_END
+
 #endif /* _GL_HEADER_OPENAT */
index 3d8007ab33b794571ae39169ef5c9f6363c558bf..98272f4bc1e8830e6ea4337402db0fa3e3d0c32d 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Invoke opendir, but avoid some glitches.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -52,10 +52,18 @@ opendir_safer (char const *name)
           int e;
 #if HAVE_FDOPENDIR || GNULIB_FDOPENDIR
           int f = dup_safer (fd);
-          newdp = fdopendir (f);
-          e = errno;
-          if (! newdp)
-            close (f);
+          if (f < 0)
+            {
+              e = errno;
+              newdp = NULL;
+            }
+          else
+            {
+              newdp = fdopendir (f);
+              e = errno;
+              if (! newdp)
+                close (f);
+            }
 #else /* !FDOPENDIR */
           newdp = opendir_safer (name);
           e = errno;
diff --git a/gnu/opendir.c b/gnu/opendir.c
new file mode 100644 (file)
index 0000000..a967782
--- /dev/null
@@ -0,0 +1,150 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Start reading the entries of a directory.
+   Copyright (C) 2006-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.  */
+#include <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#if HAVE_OPENDIR
+
+/* Override opendir(), to keep track of the open file descriptors.
+   Needed because there is a function dirfd().  */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+# include "filename.h"
+
+#endif
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+DIR *
+opendir (const char *dir_name)
+{
+#if HAVE_OPENDIR
+# undef opendir
+  DIR *dirp;
+
+  dirp = opendir (dir_name);
+  if (dirp == NULL)
+    return NULL;
+
+#else
+
+  char dir_name_mask[MAX_PATH + 1 + 1 + 1];
+  int status;
+  HANDLE current;
+  WIN32_FIND_DATA entry;
+  struct gl_directory *dirp;
+
+  if (dir_name[0] == '\0')
+    {
+      errno = ENOENT;
+      return NULL;
+    }
+
+  /* Make the dir_name absolute, so that we continue reading the same
+     directory if the current directory changed between this opendir()
+     call and a subsequent rewinddir() call.  */
+  if (!GetFullPathName (dir_name, MAX_PATH, dir_name_mask, NULL))
+    {
+      errno = EINVAL;
+      return NULL;
+    }
+
+  /* Append the mask.
+     "*" and "*.*" appear to be equivalent.  */
+  {
+    char *p;
+
+    p = dir_name_mask + strlen (dir_name_mask);
+    if (p > dir_name_mask && !ISSLASH (p[-1]))
+      *p++ = '\\';
+    *p++ = '*';
+    *p = '\0';
+  }
+
+  /* Start searching the directory.  */
+  status = -1;
+  current = FindFirstFile (dir_name_mask, &entry);
+  if (current == INVALID_HANDLE_VALUE)
+    {
+      switch (GetLastError ())
+        {
+        case ERROR_FILE_NOT_FOUND:
+          status = -2;
+          break;
+        case ERROR_PATH_NOT_FOUND:
+          errno = ENOENT;
+          return NULL;
+        case ERROR_DIRECTORY:
+          errno = ENOTDIR;
+          return NULL;
+        case ERROR_ACCESS_DENIED:
+          errno = EACCES;
+          return NULL;
+        default:
+          errno = EIO;
+          return NULL;
+        }
+    }
+
+  /* Allocate the result.  */
+  dirp =
+    (struct gl_directory *)
+    malloc (offsetof (struct gl_directory, dir_name_mask[0])
+            + strlen (dir_name_mask) + 1);
+  if (dirp == NULL)
+    {
+      if (current != INVALID_HANDLE_VALUE)
+        FindClose (current);
+      errno = ENOMEM;
+      return NULL;
+    }
+  dirp->status = status;
+  dirp->current = current;
+  if (status == -1)
+    memcpy (&dirp->entry, &entry, sizeof (WIN32_FIND_DATA));
+  strcpy (dirp->dir_name_mask, dir_name_mask);
+
+#endif
+
+#if REPLACE_FCHDIR
+  {
+    int fd = dirfd (dirp);
+    if (0 <= fd && _gl_register_fd (fd, dir_name) != fd)
+      {
+        int saved_errno = errno;
+        closedir (dirp);
+        errno = saved_errno;
+        return NULL;
+      }
+  }
+#endif
+
+  return dirp;
+}
index 3a77713fa2dc659db8bf6882a417f5e4fb4faefe..972632eb3243a74fd6f887bf0a6592b9aded3c14 100644 (file)
@@ -1,24 +1,21 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 2.5.1.  */
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+/* Bison implementation for Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
+   This program is free software: you can 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.
-
+   the Free Software Foundation, either 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, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +26,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -47,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.5.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 /* Pure parsers.  */
 #define YYPURE 1
 
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
+/* Push parsers.  */
+#define YYPUSH 0
 
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tAGO = 258,
-     tDST = 259,
-     tYEAR_UNIT = 260,
-     tMONTH_UNIT = 261,
-     tHOUR_UNIT = 262,
-     tMINUTE_UNIT = 263,
-     tSEC_UNIT = 264,
-     tDAY_UNIT = 265,
-     tDAY_SHIFT = 266,
-     tDAY = 267,
-     tDAYZONE = 268,
-     tLOCAL_ZONE = 269,
-     tMERIDIAN = 270,
-     tMONTH = 271,
-     tORDINAL = 272,
-     tZONE = 273,
-     tSNUMBER = 274,
-     tUNUMBER = 275,
-     tSDECIMAL_NUMBER = 276,
-     tUDECIMAL_NUMBER = 277
-   };
-#endif
-/* Tokens.  */
-#define tAGO 258
-#define tDST 259
-#define tYEAR_UNIT 260
-#define tMONTH_UNIT 261
-#define tHOUR_UNIT 262
-#define tMINUTE_UNIT 263
-#define tSEC_UNIT 264
-#define tDAY_UNIT 265
-#define tDAY_SHIFT 266
-#define tDAY 267
-#define tDAYZONE 268
-#define tLOCAL_ZONE 269
-#define tMERIDIAN 270
-#define tMONTH 271
-#define tORDINAL 272
-#define tZONE 273
-#define tSNUMBER 274
-#define tUNUMBER 275
-#define tSDECIMAL_NUMBER 276
-#define tUDECIMAL_NUMBER 277
+/* Pull parsers.  */
+#define YYPULL 1
 
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
 
 
 /* Copy the first part of user declarations.  */
-#line 1 "parse-datetime.y"
+
+/* Line 268 of yacc.c  */
+#line 1 "./parse-datetime.y"
 
 /* Parse a string into an internal time stamp.
 
-   Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-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
    - It's typically faster.
    POSIX says that only '0' through '9' are digits.  Prefer ISDIGIT to
    isdigit unless it's important to use the locale's definition
-   of `digit' even when the host does not conform to POSIX.  */
+   of "digit" even when the host does not conform to POSIX.  */
 #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
 
 /* Shift A right by B bits portably, by dividing A by 2**B and
@@ -230,6 +182,11 @@ typedef long int long_time_t;
 typedef time_t long_time_t;
 #endif
 
+/* Convert a possibly-signed character to an unsigned character.  This is
+   a bit safer than casting to unsigned char, since it catches some type
+   errors that the cast doesn't.  */
+static unsigned char to_uchar (char ch) { return ch; }
+
 /* Lots of this code assumes time_t and time_t-like values fit into
    long_time_t.  */
 verify (TYPE_MINIMUM (long_time_t) <= TYPE_MINIMUM (time_t)
@@ -321,7 +278,7 @@ typedef struct
   size_t times_seen;
   size_t zones_seen;
 
-  /* Table of local time zone abbrevations, terminated by a null entry.  */
+  /* Table of local time zone abbreviations, terminated by a null entry.  */
   table local_time_zone_table[3];
 } parser_control;
 
@@ -396,6 +353,17 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 
 
 
+/* Line 268 of yacc.c  */
+#line 358 "parse-datetime.c"
+
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
+
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -414,30 +382,88 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 # define YYTOKEN_TABLE 0
 #endif
 
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     tAGO = 258,
+     tDST = 259,
+     tYEAR_UNIT = 260,
+     tMONTH_UNIT = 261,
+     tHOUR_UNIT = 262,
+     tMINUTE_UNIT = 263,
+     tSEC_UNIT = 264,
+     tDAY_UNIT = 265,
+     tDAY_SHIFT = 266,
+     tDAY = 267,
+     tDAYZONE = 268,
+     tLOCAL_ZONE = 269,
+     tMERIDIAN = 270,
+     tMONTH = 271,
+     tORDINAL = 272,
+     tZONE = 273,
+     tSNUMBER = 274,
+     tUNUMBER = 275,
+     tSDECIMAL_NUMBER = 276,
+     tUDECIMAL_NUMBER = 277
+   };
+#endif
+/* Tokens.  */
+#define tAGO 258
+#define tDST 259
+#define tYEAR_UNIT 260
+#define tMONTH_UNIT 261
+#define tHOUR_UNIT 262
+#define tMINUTE_UNIT 263
+#define tSEC_UNIT 264
+#define tDAY_UNIT 265
+#define tDAY_SHIFT 266
+#define tDAY 267
+#define tDAYZONE 268
+#define tLOCAL_ZONE 269
+#define tMERIDIAN 270
+#define tMONTH 271
+#define tORDINAL 272
+#define tZONE 273
+#define tSNUMBER 274
+#define tUNUMBER 275
+#define tSDECIMAL_NUMBER 276
+#define tUDECIMAL_NUMBER 277
+
+
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 292 "parse-datetime.y"
 {
+
+/* Line 295 of yacc.c  */
+#line 297 "./parse-datetime.y"
+
   long int intval;
   textint textintval;
   struct timespec timespec;
   relative_time rel;
-}
-/* Line 187 of yacc.c.  */
-#line 428 "parse-datetime.c"
-       YYSTYPE;
+
+
+
+/* Line 295 of yacc.c  */
+#line 455 "parse-datetime.c"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
-
 /* Copy the second part of user declarations.  */
 
 
-/* Line 216 of yacc.c.  */
-#line 441 "parse-datetime.c"
+/* Line 345 of yacc.c  */
+#line 467 "parse-datetime.c"
 
 #ifdef short
 # undef short
@@ -487,7 +513,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -512,14 +538,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
@@ -540,11 +566,12 @@ YYID (i)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef _STDLIB_H
-#      define _STDLIB_H 1
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
 #     endif
 #    endif
 #   endif
@@ -567,24 +594,24 @@ YYID (i)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
-#  if (defined __cplusplus && ! defined _STDLIB_H \
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
             && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef _STDLIB_H
-#    define _STDLIB_H 1
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
 #   endif
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
@@ -600,9 +627,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -613,35 +640,19 @@ union yyalloc
      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         YYSIZE_T yyi;                         \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (YYID (0))
-#  endif
-# endif
+# define YYCOPY_NEEDED 1
 
 /* Relocate STACK from its old location to the new one.  The
    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
     do                                                                 \
       {                                                                        \
        YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
+       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+       Stack = &yyptr->Stack_alloc;                                    \
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
@@ -649,19 +660,39 @@ union yyalloc
 
 #endif
 
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+#  else
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (YYID (0))
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  12
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   98
+#define YYLAST   112
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  27
+#define YYNTOKENS  28
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  21
+#define YYNNTS  26
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  82
+#define YYNRULES  91
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  100
+#define YYNSTATES  114
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -677,11 +708,11 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    25,     2,     2,    26,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    24,     2,
+       2,     2,     2,     2,    26,     2,     2,    27,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    25,     2,
        2,     2,     2,     2,    23,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,    24,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -709,57 +740,61 @@ static const yytype_uint8 yytranslate[] =
 static const yytype_uint8 yyprhs[] =
 {
        0,     0,     3,     5,     7,    10,    11,    14,    16,    18,
-      20,    22,    24,    26,    28,    30,    33,    38,    44,    51,
-      59,    61,    64,    66,    69,    73,    75,    78,    80,    83,
-      86,    89,    93,    99,   103,   107,   111,   114,   119,   122,
-     126,   129,   131,   133,   136,   139,   141,   144,   147,   149,
-     152,   155,   157,   160,   163,   165,   168,   171,   173,   176,
-     179,   182,   185,   187,   189,   192,   195,   198,   201,   204,
-     207,   209,   211,   213,   215,   217,   219,   221,   223,   226,
-     227,   230,   231
+      20,    22,    24,    26,    28,    30,    32,    34,    38,    41,
+      46,    53,    55,    58,    63,    70,    71,    73,    76,    78,
+      81,    83,    85,    88,    91,    95,    97,   100,   102,   105,
+     108,   111,   115,   121,   125,   129,   132,   137,   140,   144,
+     146,   150,   153,   155,   157,   160,   163,   165,   168,   171,
+     173,   176,   179,   181,   184,   187,   189,   192,   195,   197,
+     200,   203,   206,   209,   211,   213,   216,   219,   222,   225,
+     228,   231,   233,   235,   237,   239,   241,   243,   245,   247,
+     250,   251
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      28,     0,    -1,    29,    -1,    30,    -1,    23,    41,    -1,
-      -1,    30,    31,    -1,    32,    -1,    33,    -1,    34,    -1,
-      36,    -1,    35,    -1,    37,    -1,    44,    -1,    45,    -1,
-      20,    15,    -1,    20,    24,    20,    47,    -1,    20,    24,
-      20,    19,    46,    -1,    20,    24,    20,    24,    43,    47,
-      -1,    20,    24,    20,    24,    43,    19,    46,    -1,    14,
-      -1,    14,     4,    -1,    18,    -1,    18,    39,    -1,    18,
-      19,    46,    -1,    13,    -1,    18,     4,    -1,    12,    -1,
-      12,    25,    -1,    17,    12,    -1,    20,    12,    -1,    20,
-      26,    20,    -1,    20,    26,    20,    26,    20,    -1,    20,
-      19,    19,    -1,    20,    16,    19,    -1,    16,    19,    19,
-      -1,    16,    20,    -1,    16,    20,    25,    20,    -1,    20,
-      16,    -1,    20,    16,    20,    -1,    38,     3,    -1,    38,
-      -1,    40,    -1,    17,     5,    -1,    20,     5,    -1,     5,
-      -1,    17,     6,    -1,    20,     6,    -1,     6,    -1,    17,
-      10,    -1,    20,    10,    -1,    10,    -1,    17,     7,    -1,
-      20,     7,    -1,     7,    -1,    17,     8,    -1,    20,     8,
-      -1,     8,    -1,    17,     9,    -1,    20,     9,    -1,    21,
-       9,    -1,    22,     9,    -1,     9,    -1,    39,    -1,    19,
-       5,    -1,    19,     6,    -1,    19,    10,    -1,    19,     7,
-      -1,    19,     8,    -1,    19,     9,    -1,    11,    -1,    42,
-      -1,    43,    -1,    21,    -1,    19,    -1,    22,    -1,    20,
-      -1,    20,    -1,    20,    39,    -1,    -1,    24,    20,    -1,
-      -1,    15,    -1
+      29,     0,    -1,    30,    -1,    31,    -1,    23,    48,    -1,
+      -1,    31,    32,    -1,    33,    -1,    35,    -1,    39,    -1,
+      40,    -1,    42,    -1,    41,    -1,    44,    -1,    51,    -1,
+      52,    -1,    34,    -1,    43,    24,    36,    -1,    20,    15,
+      -1,    20,    25,    20,    15,    -1,    20,    25,    20,    25,
+      50,    15,    -1,    36,    -1,    20,    38,    -1,    20,    25,
+      20,    37,    -1,    20,    25,    20,    25,    50,    37,    -1,
+      -1,    38,    -1,    19,    53,    -1,    14,    -1,    14,     4,
+      -1,    18,    -1,    24,    -1,    18,    46,    -1,    24,    46,
+      -1,    18,    19,    53,    -1,    13,    -1,    18,     4,    -1,
+      12,    -1,    12,    26,    -1,    17,    12,    -1,    20,    12,
+      -1,    20,    27,    20,    -1,    20,    27,    20,    27,    20,
+      -1,    20,    16,    19,    -1,    16,    19,    19,    -1,    16,
+      20,    -1,    16,    20,    26,    20,    -1,    20,    16,    -1,
+      20,    16,    20,    -1,    43,    -1,    20,    19,    19,    -1,
+      45,     3,    -1,    45,    -1,    47,    -1,    17,     5,    -1,
+      20,     5,    -1,     5,    -1,    17,     6,    -1,    20,     6,
+      -1,     6,    -1,    17,    10,    -1,    20,    10,    -1,    10,
+      -1,    17,     7,    -1,    20,     7,    -1,     7,    -1,    17,
+       8,    -1,    20,     8,    -1,     8,    -1,    17,     9,    -1,
+      20,     9,    -1,    21,     9,    -1,    22,     9,    -1,     9,
+      -1,    46,    -1,    19,     5,    -1,    19,     6,    -1,    19,
+      10,    -1,    19,     7,    -1,    19,     8,    -1,    19,     9,
+      -1,    11,    -1,    49,    -1,    50,    -1,    21,    -1,    19,
+      -1,    22,    -1,    20,    -1,    20,    -1,    20,    46,    -1,
+      -1,    25,    20,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   318,   318,   319,   323,   330,   332,   336,   338,   340,
-     342,   344,   346,   347,   348,   352,   357,   362,   369,   374,
-     384,   389,   397,   399,   402,   404,   406,   411,   416,   421,
-     426,   434,   439,   459,   466,   474,   482,   487,   493,   498,
-     507,   509,   511,   516,   518,   520,   522,   524,   526,   528,
-     530,   532,   534,   536,   538,   540,   542,   544,   546,   548,
-     550,   552,   554,   556,   560,   562,   564,   566,   568,   570,
-     575,   579,   579,   582,   583,   588,   589,   594,   599,   610,
-     611,   617,   618
+       0,   324,   324,   325,   329,   336,   338,   342,   344,   346,
+     348,   350,   352,   354,   355,   356,   360,   364,   368,   373,
+     378,   383,   387,   392,   397,   404,   406,   410,   418,   423,
+     433,   435,   437,   440,   443,   445,   447,   452,   457,   462,
+     467,   475,   480,   500,   508,   516,   521,   527,   532,   538,
+     542,   552,   554,   556,   561,   563,   565,   567,   569,   571,
+     573,   575,   577,   579,   581,   583,   585,   587,   589,   591,
+     593,   595,   597,   599,   601,   605,   607,   609,   611,   613,
+     615,   620,   624,   624,   627,   628,   633,   634,   639,   644,
+     655,   656
 };
 #endif
 
@@ -772,11 +807,12 @@ static const char *const yytname[] =
   "tMONTH_UNIT", "tHOUR_UNIT", "tMINUTE_UNIT", "tSEC_UNIT", "tDAY_UNIT",
   "tDAY_SHIFT", "tDAY", "tDAYZONE", "tLOCAL_ZONE", "tMERIDIAN", "tMONTH",
   "tORDINAL", "tZONE", "tSNUMBER", "tUNUMBER", "tSDECIMAL_NUMBER",
-  "tUDECIMAL_NUMBER", "'@'", "':'", "','", "'/'", "$accept", "spec",
-  "timespec", "items", "item", "time", "local_zone", "zone", "day", "date",
-  "rel", "relunit", "relunit_snumber", "dayshift", "seconds",
-  "signed_seconds", "unsigned_seconds", "number", "hybrid",
-  "o_colon_minutes", "o_merid", 0
+  "tUDECIMAL_NUMBER", "'@'", "'T'", "':'", "','", "'/'", "$accept", "spec",
+  "timespec", "items", "item", "datetime", "iso_8601_datetime", "time",
+  "iso_8601_time", "o_zone_offset", "zone_offset", "local_zone", "zone",
+  "day", "date", "iso_8601_date", "rel", "relunit", "relunit_snumber",
+  "dayshift", "seconds", "signed_seconds", "unsigned_seconds", "number",
+  "hybrid", "o_colon_minutes", YY_NULL
 };
 #endif
 
@@ -787,135 +823,152 @@ static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,    64,    58,    44,    47
+     275,   276,   277,    64,    84,    58,    44,    47
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    27,    28,    28,    29,    30,    30,    31,    31,    31,
-      31,    31,    31,    31,    31,    32,    32,    32,    32,    32,
-      33,    33,    34,    34,    34,    34,    34,    35,    35,    35,
-      35,    36,    36,    36,    36,    36,    36,    36,    36,    36,
-      37,    37,    37,    38,    38,    38,    38,    38,    38,    38,
-      38,    38,    38,    38,    38,    38,    38,    38,    38,    38,
-      38,    38,    38,    38,    39,    39,    39,    39,    39,    39,
-      40,    41,    41,    42,    42,    43,    43,    44,    45,    46,
-      46,    47,    47
+       0,    28,    29,    29,    30,    31,    31,    32,    32,    32,
+      32,    32,    32,    32,    32,    32,    33,    34,    35,    35,
+      35,    35,    36,    36,    36,    37,    37,    38,    39,    39,
+      40,    40,    40,    40,    40,    40,    40,    41,    41,    41,
+      41,    42,    42,    42,    42,    42,    42,    42,    42,    42,
+      43,    44,    44,    44,    45,    45,    45,    45,    45,    45,
+      45,    45,    45,    45,    45,    45,    45,    45,    45,    45,
+      45,    45,    45,    45,    45,    46,    46,    46,    46,    46,
+      46,    47,    48,    48,    49,    49,    50,    50,    51,    52,
+      53,    53
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
        0,     2,     1,     1,     2,     0,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     4,     5,     6,     7,
-       1,     2,     1,     2,     3,     1,     2,     1,     2,     2,
-       2,     3,     5,     3,     3,     3,     2,     4,     2,     3,
-       2,     1,     1,     2,     2,     1,     2,     2,     1,     2,
-       2,     1,     2,     2,     1,     2,     2,     1,     2,     2,
-       2,     2,     1,     1,     2,     2,     2,     2,     2,     2,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
-       2,     0,     1
+       1,     1,     1,     1,     1,     1,     1,     3,     2,     4,
+       6,     1,     2,     4,     6,     0,     1,     2,     1,     2,
+       1,     1,     2,     2,     3,     1,     2,     1,     2,     2,
+       2,     3,     5,     3,     3,     2,     4,     2,     3,     1,
+       3,     2,     1,     1,     2,     2,     1,     2,     2,     1,
+       2,     2,     1,     2,     2,     1,     2,     2,     1,     2,
+       2,     2,     2,     1,     1,     2,     2,     2,     2,     2,
+       2,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       0,     2
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       5,     0,     0,     2,     3,    74,    76,    73,    75,     4,
-      71,    72,     1,    45,    48,    54,    57,    62,    51,    70,
-      27,    25,    20,     0,     0,    22,     0,    77,     0,     0,
-       6,     7,     8,     9,    11,    10,    12,    41,    63,    42,
-      13,    14,    28,    21,     0,    36,    43,    46,    52,    55,
-      58,    49,    29,    26,    79,    23,    64,    65,    67,    68,
-      69,    66,    44,    47,    53,    56,    59,    50,    30,    15,
-      38,     0,     0,     0,    78,    60,    61,    40,    35,     0,
-       0,    24,    34,    39,    33,    81,    31,    37,    80,    82,
-      79,     0,    16,     0,    17,    81,    32,    79,    18,    19
+       5,     0,     0,     2,     3,    85,    87,    84,    86,     4,
+      82,    83,     1,    56,    59,    65,    68,    73,    62,    81,
+      37,    35,    28,     0,     0,    30,     0,    88,     0,     0,
+      31,     6,     7,    16,     8,    21,     9,    10,    12,    11,
+      49,    13,    52,    74,    53,    14,    15,    38,    29,     0,
+      45,    54,    57,    63,    66,    69,    60,    39,    36,    90,
+      32,    75,    76,    78,    79,    80,    77,    55,    58,    64,
+      67,    70,    61,    40,    18,    47,    90,     0,     0,    22,
+      89,    71,    72,    33,     0,    51,    44,     0,     0,    34,
+      43,    48,    50,    27,    25,    41,     0,    17,    46,    91,
+      19,    90,     0,    23,    26,     0,     0,    25,    42,    25,
+      20,    24,     0,    25
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
-      -1,     2,     3,     4,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,     9,    10,    11,    40,    41,    81,
-      92
+      -1,     2,     3,     4,    31,    32,    33,    34,    35,   103,
+     104,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+       9,    10,    11,    45,    46,    93
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -82
+#define YYPACT_NINF -93
 static const yytype_int8 yypact[] =
 {
-     -17,    56,    15,   -82,    26,   -82,   -82,   -82,   -82,   -82,
-     -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,
-      36,   -82,    68,    10,    50,     9,    59,    -5,    72,    73,
-     -82,   -82,   -82,   -82,   -82,   -82,   -82,    80,   -82,   -82,
-     -82,   -82,   -82,   -82,    65,    61,   -82,   -82,   -82,   -82,
-     -82,   -82,   -82,   -82,    17,   -82,   -82,   -82,   -82,   -82,
-     -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,
-      60,    44,    67,    69,   -82,   -82,   -82,   -82,   -82,    70,
-      71,   -82,   -82,   -82,   -82,    -7,    62,   -82,   -82,   -82,
-      74,    -2,   -82,    75,   -82,    55,   -82,    74,   -82,   -82
+      38,    27,    77,   -93,    46,   -93,   -93,   -93,   -93,   -93,
+     -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,
+      62,   -93,    82,    -3,    66,     3,    74,    -4,    83,    84,
+      75,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,
+      71,   -93,    93,   -93,   -93,   -93,   -93,   -93,   -93,    78,
+      72,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,    25,
+     -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,
+     -93,   -93,   -93,   -93,   -93,    21,    19,    79,    80,   -93,
+     -93,   -93,   -93,   -93,    81,   -93,   -93,    85,    86,   -93,
+     -93,   -93,   -93,   -93,    -6,    76,    17,   -93,   -93,   -93,
+     -93,    87,    69,   -93,   -93,    88,    89,    -1,   -93,    18,
+     -93,   -93,    69,    91
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,
-     -82,   -82,    46,   -82,   -82,   -82,    -6,   -82,   -82,   -81,
-      -3
+     -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,    20,   -68,
+     -27,   -93,   -93,   -93,   -93,   -93,   -93,   -93,    60,   -93,
+     -93,   -93,   -92,   -93,   -93,    43
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -1
 static const yytype_uint8 yytable[] =
 {
-      62,    63,    64,    65,    66,    67,     1,    68,    89,    94,
-      69,    70,    90,    53,    71,    12,    99,    91,     6,    72,
-       8,    73,    56,    57,    58,    59,    60,    61,    54,    44,
-      45,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    80,    23,    24,    25,    26,    27,    28,    29,    56,
-      57,    58,    59,    60,    61,    46,    47,    48,    49,    50,
-      51,    42,    52,    84,    56,    57,    58,    59,    60,    61,
-      89,    55,    43,    74,    97,     5,     6,     7,     8,    82,
-      83,    75,    76,    77,    78,    95,    79,    85,    93,    86,
-      87,    88,    98,     0,     0,    96,     0,     0,    80
+      79,    67,    68,    69,    70,    71,    72,    58,    73,   100,
+     107,    74,    75,   101,   110,    76,    49,    50,   101,   102,
+     113,    77,    59,    78,    61,    62,    63,    64,    65,    66,
+      61,    62,    63,    64,    65,    66,   101,   101,    92,   111,
+      90,    91,   106,   112,    88,   111,     5,     6,     7,     8,
+      88,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,     1,    23,    24,    25,    26,    27,    28,    29,    79,
+      30,    51,    52,    53,    54,    55,    56,    12,    57,    61,
+      62,    63,    64,    65,    66,    60,    48,    80,    47,     6,
+      83,     8,    81,    82,    26,    84,    85,    86,    87,    94,
+      95,    96,    89,   105,    97,    98,    99,     0,   108,   109,
+     101,     0,    88
 };
 
+#define yypact_value_is_default(yystate) \
+  ((yystate) == (-93))
+
+#define yytable_value_is_error(yytable_value) \
+  YYID (0)
+
 static const yytype_int8 yycheck[] =
 {
-       5,     6,     7,     8,     9,    10,    23,    12,    15,    90,
-      15,    16,    19,     4,    19,     0,    97,    24,    20,    24,
-      22,    26,     5,     6,     7,     8,     9,    10,    19,    19,
-      20,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    24,    16,    17,    18,    19,    20,    21,    22,     5,
-       6,     7,     8,     9,    10,     5,     6,     7,     8,     9,
-      10,    25,    12,    19,     5,     6,     7,     8,     9,    10,
-      15,    25,     4,    27,    19,    19,    20,    21,    22,    19,
-      20,     9,     9,     3,    19,    91,    25,    20,    26,    20,
-      20,    20,    95,    -1,    -1,    20,    -1,    -1,    24
+      27,     5,     6,     7,     8,     9,    10,     4,    12,    15,
+     102,    15,    16,    19,    15,    19,    19,    20,    19,    25,
+     112,    25,    19,    27,     5,     6,     7,     8,     9,    10,
+       5,     6,     7,     8,     9,    10,    19,    19,    19,   107,
+      19,    20,    25,    25,    25,   113,    19,    20,    21,    22,
+      25,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    23,    16,    17,    18,    19,    20,    21,    22,    96,
+      24,     5,     6,     7,     8,     9,    10,     0,    12,     5,
+       6,     7,     8,     9,    10,    25,     4,    27,    26,    20,
+      30,    22,     9,     9,    19,    24,     3,    19,    26,    20,
+      20,    20,    59,    27,    84,    20,    20,    -1,    20,    20,
+      19,    -1,    25
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,    23,    28,    29,    30,    19,    20,    21,    22,    41,
-      42,    43,     0,     5,     6,     7,     8,     9,    10,    11,
+       0,    23,    29,    30,    31,    19,    20,    21,    22,    48,
+      49,    50,     0,     5,     6,     7,     8,     9,    10,    11,
       12,    13,    14,    16,    17,    18,    19,    20,    21,    22,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      44,    45,    25,     4,    19,    20,     5,     6,     7,     8,
-       9,    10,    12,     4,    19,    39,     5,     6,     7,     8,
-       9,    10,     5,     6,     7,     8,     9,    10,    12,    15,
-      16,    19,    24,    26,    39,     9,     9,     3,    19,    25,
-      24,    46,    19,    20,    19,    20,    20,    20,    20,    15,
-      19,    24,    47,    26,    46,    43,    20,    19,    47,    46
+      24,    32,    33,    34,    35,    36,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    51,    52,    26,     4,    19,
+      20,     5,     6,     7,     8,     9,    10,    12,     4,    19,
+      46,     5,     6,     7,     8,     9,    10,     5,     6,     7,
+       8,     9,    10,    12,    15,    16,    19,    25,    27,    38,
+      46,     9,     9,    46,    24,     3,    19,    26,    25,    53,
+      19,    20,    19,    53,    20,    20,    20,    36,    20,    20,
+      15,    19,    25,    37,    38,    27,    25,    50,    20,    20,
+      15,    37,    25,    50
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -930,24 +983,33 @@ static const yytype_uint8 yystos[] =
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
 
 #define YYFAIL         goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                 \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    {                                                          \
-      yychar = (Token);                                                \
-      yylval = (Value);                                                \
-      yytoken = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK (1);                                          \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    {                                                          \
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
       yyerror (pc, YY_("syntax error: cannot back up")); \
       YYERROR;                                                 \
     }                                                          \
@@ -984,19 +1046,10 @@ while (YYID (0))
 #endif
 
 
-/* YY_LOCATION_PRINT -- Print the location on the stream.
-   This macro was not mandated originally: define only if we know
-   we won't break user code: when these are the locations we know.  */
+/* This macro is provided for backward compatibility. */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-#  define YY_LOCATION_PRINT(File, Loc)                 \
-     fprintf (File, "%d.%d-%d.%d",                     \
-             (Loc).first_line, (Loc).first_column,     \
-             (Loc).last_line,  (Loc).last_column)
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 #endif
 
 
@@ -1052,6 +1105,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc)
     parser_control *pc;
 #endif
 {
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
   if (!yyvaluep)
     return;
   YYUSE (pc);
@@ -1103,17 +1158,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, pc)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
@@ -1148,11 +1206,11 @@ yy_reduce_print (yyvsp, yyrule, pc)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
                                       , pc);
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
@@ -1189,7 +1247,6 @@ int yydebug;
 # define YYMAXDEPTH 10000
 #endif
 
-\f
 
 #if YYERROR_VERBOSE
 
@@ -1292,115 +1349,142 @@ yytnamerr (char *yyres, const char *yystr)
 }
 # endif
 
-/* Copy into YYRESULT an error message about the unexpected token
-   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
-   including the terminating null byte.  If YYRESULT is null, do not
-   copy anything; just return the number of bytes that would be
-   copied.  As a special case, return 0 if an ordinary "syntax error"
-   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
-   size calculation.  */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
-  int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+   about the unexpected token YYTOKEN for the state stack whose top is
+   YYSSP.
 
-  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-    return 0;
-  else
+   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
+   not large enough to hold the message.  In that case, also set
+   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
+   required number of bytes is too large to store.  */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                yytype_int16 *yyssp, int yytoken)
+{
+  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize = yysize0;
+  YYSIZE_T yysize1;
+  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+  /* Internationalized format string. */
+  const char *yyformat = YY_NULL;
+  /* Arguments of yyformat. */
+  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+  /* Number of reported tokens (one for the "unexpected", one per
+     "expected"). */
+  int yycount = 0;
+
+  /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
+     - If this state is a consistent state with a default action, then
+       the only way this function was invoked is if the default action
+       is an error action.  In that case, don't check for expected
+       tokens because there are none.
+     - The only way there can be no lookahead present (in yychar) is if
+       this state is a consistent state with a default action.  Thus,
+       detecting the absence of a lookahead is sufficient to determine
+       that there is no unexpected or expected token to report.  In that
+       case, just report a simple "syntax error".
+     - Don't assume there isn't a lookahead just because this state is a
+       consistent state with a default action.  There might have been a
+       previous inconsistent state, consistent state with a non-default
+       action, or user semantic action that manipulated yychar.
+     - Of course, the expected token list depends on states to have
+       correct lookahead information, and it depends on the parser not
+       to perform extra reductions after fetching a lookahead from the
+       scanner and before detecting a syntax error.  Thus, state merging
+       (from LALR or IELR) and default reductions corrupt the expected
+       token list.  However, the list is correct for canonical LR with
+       one exception: it will still contain any token that will not be
+       accepted due to an error action in a later state.
+  */
+  if (yytoken != YYEMPTY)
     {
-      int yytype = YYTRANSLATE (yychar);
-      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-      YYSIZE_T yysize = yysize0;
-      YYSIZE_T yysize1;
-      int yysize_overflow = 0;
-      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-      int yyx;
-
-# if 0
-      /* This is so xgettext sees the translatable formats that are
-        constructed on the fly.  */
-      YY_("syntax error, unexpected %s");
-      YY_("syntax error, unexpected %s, expecting %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
-      char *yyfmt;
-      char const *yyf;
-      static char const yyunexpected[] = "syntax error, unexpected %s";
-      static char const yyexpecting[] = ", expecting %s";
-      static char const yyor[] = " or %s";
-      char yyformat[sizeof yyunexpected
-                   + sizeof yyexpecting - 1
-                   + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-                      * (sizeof yyor - 1))];
-      char const *yyprefix = yyexpecting;
-
-      /* Start YYX at -YYN if negative to avoid negative indexes in
-        YYCHECK.  */
-      int yyxbegin = yyn < 0 ? -yyn : 0;
-
-      /* Stay within bounds of both yycheck and yytname.  */
-      int yychecklim = YYLAST - yyn + 1;
-      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-      int yycount = 1;
-
-      yyarg[0] = yytname[yytype];
-      yyfmt = yystpcpy (yyformat, yyunexpected);
-
-      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-       if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-         {
-           if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-             {
-               yycount = 1;
-               yysize = yysize0;
-               yyformat[sizeof yyunexpected - 1] = '\0';
-               break;
-             }
-           yyarg[yycount++] = yytname[yyx];
-           yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-           yysize_overflow |= (yysize1 < yysize);
-           yysize = yysize1;
-           yyfmt = yystpcpy (yyfmt, yyprefix);
-           yyprefix = yyor;
-         }
+      int yyn = yypact[*yyssp];
+      yyarg[yycount++] = yytname[yytoken];
+      if (!yypact_value_is_default (yyn))
+        {
+          /* Start YYX at -YYN if negative to avoid negative indexes in
+             YYCHECK.  In other words, skip the first -YYN actions for
+             this state because they are default actions.  */
+          int yyxbegin = yyn < 0 ? -yyn : 0;
+          /* Stay within bounds of both yycheck and yytname.  */
+          int yychecklim = YYLAST - yyn + 1;
+          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+          int yyx;
+
+          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+                && !yytable_value_is_error (yytable[yyx + yyn]))
+              {
+                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+                  {
+                    yycount = 1;
+                    yysize = yysize0;
+                    break;
+                  }
+                yyarg[yycount++] = yytname[yyx];
+                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+                if (! (yysize <= yysize1
+                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  return 2;
+                yysize = yysize1;
+              }
+        }
+    }
 
-      yyf = YY_(yyformat);
-      yysize1 = yysize + yystrlen (yyf);
-      yysize_overflow |= (yysize1 < yysize);
-      yysize = yysize1;
+  switch (yycount)
+    {
+# define YYCASE_(N, S)                      \
+      case N:                               \
+        yyformat = S;                       \
+      break
+      YYCASE_(0, YY_("syntax error"));
+      YYCASE_(1, YY_("syntax error, unexpected %s"));
+      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+    }
 
-      if (yysize_overflow)
-       return YYSIZE_MAXIMUM;
+  yysize1 = yysize + yystrlen (yyformat);
+  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    return 2;
+  yysize = yysize1;
 
-      if (yyresult)
-       {
-         /* Avoid sprintf, as that infringes on the user's name space.
-            Don't have undefined behavior even if the translation
-            produced a string with the wrong number of "%s"s.  */
-         char *yyp = yyresult;
-         int yyi = 0;
-         while ((*yyp = *yyf) != '\0')
-           {
-             if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-               {
-                 yyp += yytnamerr (yyp, yyarg[yyi++]);
-                 yyf += 2;
-               }
-             else
-               {
-                 yyp++;
-                 yyf++;
-               }
-           }
-       }
-      return yysize;
+  if (*yymsg_alloc < yysize)
+    {
+      *yymsg_alloc = 2 * yysize;
+      if (! (yysize <= *yymsg_alloc
+             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+      return 1;
     }
+
+  /* Avoid sprintf, as that infringes on the user's name space.
+     Don't have undefined behavior even if the translation
+     produced a string with the wrong number of "%s"s.  */
+  {
+    char *yyp = *yymsg;
+    int yyi = 0;
+    while ((*yyp = *yyformat) != '\0')
+      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+        {
+          yyp += yytnamerr (yyp, yyarg[yyi++]);
+          yyformat += 2;
+        }
+      else
+        {
+          yyp++;
+          yyformat++;
+        }
+  }
+  return 0;
 }
 #endif /* YYERROR_VERBOSE */
-\f
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
@@ -1434,10 +1518,9 @@ yydestruct (yymsg, yytype, yyvaluep, pc)
        break;
     }
 }
-\f
 
-/* Prevent warnings from -Wmissing-prototypes.  */
 
+/* Prevent warnings from -Wmissing-prototypes.  */
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -1453,10 +1536,6 @@ int yyparse ();
 #endif /* ! YYPARSE_PARAM */
 
 
-
-
-
-
 /*----------.
 | yyparse.  |
 `----------*/
@@ -1483,74 +1562,75 @@ yyparse (pc)
 #endif
 #endif
 {
-  /* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
-/* Number of syntax errors so far.  */
-int yynerrs;
+    /* Number of syntax errors so far.  */
+    int yynerrs;
 
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+       Refer to the stacks through separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+    YYSIZE_T yystacksize;
 
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -1580,7 +1660,6 @@ int yynerrs;
        YYSTYPE *yyvs1 = yyvs;
        yytype_int16 *yyss1 = yyss;
 
-
        /* Each stack pointer address is followed by the size of the
           data in use in that stack, in bytes.  This used to be a
           conditional around just the two extra args, but that might
@@ -1588,7 +1667,6 @@ int yynerrs;
        yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
-
                    &yystacksize);
 
        yyss = yyss1;
@@ -1611,9 +1689,8 @@ int yynerrs;
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
          goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss);
-       YYSTACK_RELOCATE (yyvs);
-
+       YYSTACK_RELOCATE (yyss_alloc, yyss);
+       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
@@ -1624,7 +1701,6 @@ int yynerrs;
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
@@ -1634,6 +1710,9 @@ int yynerrs;
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
@@ -1642,16 +1721,16 @@ int yynerrs;
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
+  if (yypact_value_is_default (yyn))
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -1677,26 +1756,22 @@ yybackup:
   yyn = yytable[yyn];
   if (yyn <= 0)
     {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-       goto yyerrlab;
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -1736,7 +1811,9 @@ yyreduce:
   switch (yyn)
     {
         case 4:
-#line 324 "parse-datetime.y"
+
+/* Line 1810 of yacc.c  */
+#line 330 "./parse-datetime.y"
     {
         pc->seconds = (yyvsp[(2) - (2)].timespec);
         pc->timespec_seen = true;
@@ -1744,158 +1821,242 @@ yyreduce:
     break;
 
   case 7:
-#line 337 "parse-datetime.y"
-    { pc->times_seen++; }
+
+/* Line 1810 of yacc.c  */
+#line 343 "./parse-datetime.y"
+    { pc->times_seen++; pc->dates_seen++; }
     break;
 
   case 8:
-#line 339 "parse-datetime.y"
-    { pc->local_zones_seen++; }
+
+/* Line 1810 of yacc.c  */
+#line 345 "./parse-datetime.y"
+    { pc->times_seen++; }
     break;
 
   case 9:
-#line 341 "parse-datetime.y"
-    { pc->zones_seen++; }
+
+/* Line 1810 of yacc.c  */
+#line 347 "./parse-datetime.y"
+    { pc->local_zones_seen++; }
     break;
 
   case 10:
-#line 343 "parse-datetime.y"
-    { pc->dates_seen++; }
+
+/* Line 1810 of yacc.c  */
+#line 349 "./parse-datetime.y"
+    { pc->zones_seen++; }
     break;
 
   case 11:
-#line 345 "parse-datetime.y"
+
+/* Line 1810 of yacc.c  */
+#line 351 "./parse-datetime.y"
+    { pc->dates_seen++; }
+    break;
+
+  case 12:
+
+/* Line 1810 of yacc.c  */
+#line 353 "./parse-datetime.y"
     { pc->days_seen++; }
     break;
 
-  case 15:
-#line 353 "parse-datetime.y"
+  case 18:
+
+/* Line 1810 of yacc.c  */
+#line 369 "./parse-datetime.y"
     {
         set_hhmmss (pc, (yyvsp[(1) - (2)].textintval).value, 0, 0, 0);
         pc->meridian = (yyvsp[(2) - (2)].intval);
       }
     break;
 
-  case 16:
-#line 358 "parse-datetime.y"
+  case 19:
+
+/* Line 1810 of yacc.c  */
+#line 374 "./parse-datetime.y"
     {
         set_hhmmss (pc, (yyvsp[(1) - (4)].textintval).value, (yyvsp[(3) - (4)].textintval).value, 0, 0);
         pc->meridian = (yyvsp[(4) - (4)].intval);
       }
     break;
 
-  case 17:
-#line 363 "parse-datetime.y"
+  case 20:
+
+/* Line 1810 of yacc.c  */
+#line 379 "./parse-datetime.y"
     {
-        set_hhmmss (pc, (yyvsp[(1) - (5)].textintval).value, (yyvsp[(3) - (5)].textintval).value, 0, 0);
+        set_hhmmss (pc, (yyvsp[(1) - (6)].textintval).value, (yyvsp[(3) - (6)].textintval).value, (yyvsp[(5) - (6)].timespec).tv_sec, (yyvsp[(5) - (6)].timespec).tv_nsec);
+        pc->meridian = (yyvsp[(6) - (6)].intval);
+      }
+    break;
+
+  case 22:
+
+/* Line 1810 of yacc.c  */
+#line 388 "./parse-datetime.y"
+    {
+        set_hhmmss (pc, (yyvsp[(1) - (2)].textintval).value, 0, 0, 0);
         pc->meridian = MER24;
-        pc->zones_seen++;
-        pc->time_zone = time_zone_hhmm (pc, (yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval));
       }
     break;
 
-  case 18:
-#line 370 "parse-datetime.y"
+  case 23:
+
+/* Line 1810 of yacc.c  */
+#line 393 "./parse-datetime.y"
     {
-        set_hhmmss (pc, (yyvsp[(1) - (6)].textintval).value, (yyvsp[(3) - (6)].textintval).value, (yyvsp[(5) - (6)].timespec).tv_sec, (yyvsp[(5) - (6)].timespec).tv_nsec);
-        pc->meridian = (yyvsp[(6) - (6)].intval);
+        set_hhmmss (pc, (yyvsp[(1) - (4)].textintval).value, (yyvsp[(3) - (4)].textintval).value, 0, 0);
+        pc->meridian = MER24;
       }
     break;
 
-  case 19:
-#line 375 "parse-datetime.y"
+  case 24:
+
+/* Line 1810 of yacc.c  */
+#line 398 "./parse-datetime.y"
     {
-        set_hhmmss (pc, (yyvsp[(1) - (7)].textintval).value, (yyvsp[(3) - (7)].textintval).value, (yyvsp[(5) - (7)].timespec).tv_sec, (yyvsp[(5) - (7)].timespec).tv_nsec);
+        set_hhmmss (pc, (yyvsp[(1) - (6)].textintval).value, (yyvsp[(3) - (6)].textintval).value, (yyvsp[(5) - (6)].timespec).tv_sec, (yyvsp[(5) - (6)].timespec).tv_nsec);
         pc->meridian = MER24;
+      }
+    break;
+
+  case 27:
+
+/* Line 1810 of yacc.c  */
+#line 411 "./parse-datetime.y"
+    {
         pc->zones_seen++;
-        pc->time_zone = time_zone_hhmm (pc, (yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval));
+        pc->time_zone = time_zone_hhmm (pc, (yyvsp[(1) - (2)].textintval), (yyvsp[(2) - (2)].intval));
       }
     break;
 
-  case 20:
-#line 385 "parse-datetime.y"
+  case 28:
+
+/* Line 1810 of yacc.c  */
+#line 419 "./parse-datetime.y"
     {
         pc->local_isdst = (yyvsp[(1) - (1)].intval);
         pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval));
       }
     break;
 
-  case 21:
-#line 390 "parse-datetime.y"
+  case 29:
+
+/* Line 1810 of yacc.c  */
+#line 424 "./parse-datetime.y"
     {
         pc->local_isdst = 1;
         pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1;
       }
     break;
 
-  case 22:
-#line 398 "parse-datetime.y"
+  case 30:
+
+/* Line 1810 of yacc.c  */
+#line 434 "./parse-datetime.y"
     { pc->time_zone = (yyvsp[(1) - (1)].intval); }
     break;
 
-  case 23:
-#line 400 "parse-datetime.y"
+  case 31:
+
+/* Line 1810 of yacc.c  */
+#line 436 "./parse-datetime.y"
+    { pc->time_zone = HOUR(7); }
+    break;
+
+  case 32:
+
+/* Line 1810 of yacc.c  */
+#line 438 "./parse-datetime.y"
     { pc->time_zone = (yyvsp[(1) - (2)].intval);
         apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); }
     break;
 
-  case 24:
-#line 403 "parse-datetime.y"
+  case 33:
+
+/* Line 1810 of yacc.c  */
+#line 441 "./parse-datetime.y"
+    { pc->time_zone = HOUR(7);
+        apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); }
+    break;
+
+  case 34:
+
+/* Line 1810 of yacc.c  */
+#line 444 "./parse-datetime.y"
     { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm (pc, (yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); }
     break;
 
-  case 25:
-#line 405 "parse-datetime.y"
+  case 35:
+
+/* Line 1810 of yacc.c  */
+#line 446 "./parse-datetime.y"
     { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; }
     break;
 
-  case 26:
-#line 407 "parse-datetime.y"
+  case 36:
+
+/* Line 1810 of yacc.c  */
+#line 448 "./parse-datetime.y"
     { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; }
     break;
 
-  case 27:
-#line 412 "parse-datetime.y"
+  case 37:
+
+/* Line 1810 of yacc.c  */
+#line 453 "./parse-datetime.y"
     {
         pc->day_ordinal = 0;
         pc->day_number = (yyvsp[(1) - (1)].intval);
       }
     break;
 
-  case 28:
-#line 417 "parse-datetime.y"
+  case 38:
+
+/* Line 1810 of yacc.c  */
+#line 458 "./parse-datetime.y"
     {
         pc->day_ordinal = 0;
         pc->day_number = (yyvsp[(1) - (2)].intval);
       }
     break;
 
-  case 29:
-#line 422 "parse-datetime.y"
+  case 39:
+
+/* Line 1810 of yacc.c  */
+#line 463 "./parse-datetime.y"
     {
         pc->day_ordinal = (yyvsp[(1) - (2)].intval);
         pc->day_number = (yyvsp[(2) - (2)].intval);
       }
     break;
 
-  case 30:
-#line 427 "parse-datetime.y"
+  case 40:
+
+/* Line 1810 of yacc.c  */
+#line 468 "./parse-datetime.y"
     {
         pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value;
         pc->day_number = (yyvsp[(2) - (2)].intval);
       }
     break;
 
-  case 31:
-#line 435 "parse-datetime.y"
+  case 41:
+
+/* Line 1810 of yacc.c  */
+#line 476 "./parse-datetime.y"
     {
         pc->month = (yyvsp[(1) - (3)].textintval).value;
         pc->day = (yyvsp[(3) - (3)].textintval).value;
       }
     break;
 
-  case 32:
-#line 440 "parse-datetime.y"
+  case 42:
+
+/* Line 1810 of yacc.c  */
+#line 481 "./parse-datetime.y"
     {
         /* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
            otherwise as MM/DD/YY.
@@ -1917,18 +2078,10 @@ yyreduce:
       }
     break;
 
-  case 33:
-#line 460 "parse-datetime.y"
-    {
-        /* ISO 8601 format.  YYYY-MM-DD.  */
-        pc->year = (yyvsp[(1) - (3)].textintval);
-        pc->month = -(yyvsp[(2) - (3)].textintval).value;
-        pc->day = -(yyvsp[(3) - (3)].textintval).value;
-      }
-    break;
+  case 43:
 
-  case 34:
-#line 467 "parse-datetime.y"
+/* Line 1810 of yacc.c  */
+#line 501 "./parse-datetime.y"
     {
         /* e.g. 17-JUN-1992.  */
         pc->day = (yyvsp[(1) - (3)].textintval).value;
@@ -1938,8 +2091,10 @@ yyreduce:
       }
     break;
 
-  case 35:
-#line 475 "parse-datetime.y"
+  case 44:
+
+/* Line 1810 of yacc.c  */
+#line 509 "./parse-datetime.y"
     {
         /* e.g. JUN-17-1992.  */
         pc->month = (yyvsp[(1) - (3)].intval);
@@ -1949,16 +2104,20 @@ yyreduce:
       }
     break;
 
-  case 36:
-#line 483 "parse-datetime.y"
+  case 45:
+
+/* Line 1810 of yacc.c  */
+#line 517 "./parse-datetime.y"
     {
         pc->month = (yyvsp[(1) - (2)].intval);
         pc->day = (yyvsp[(2) - (2)].textintval).value;
       }
     break;
 
-  case 37:
-#line 488 "parse-datetime.y"
+  case 46:
+
+/* Line 1810 of yacc.c  */
+#line 522 "./parse-datetime.y"
     {
         pc->month = (yyvsp[(1) - (4)].intval);
         pc->day = (yyvsp[(2) - (4)].textintval).value;
@@ -1966,16 +2125,20 @@ yyreduce:
       }
     break;
 
-  case 38:
-#line 494 "parse-datetime.y"
+  case 47:
+
+/* Line 1810 of yacc.c  */
+#line 528 "./parse-datetime.y"
     {
         pc->day = (yyvsp[(1) - (2)].textintval).value;
         pc->month = (yyvsp[(2) - (2)].intval);
       }
     break;
 
-  case 39:
-#line 499 "parse-datetime.y"
+  case 48:
+
+/* Line 1810 of yacc.c  */
+#line 533 "./parse-datetime.y"
     {
         pc->day = (yyvsp[(1) - (3)].textintval).value;
         pc->month = (yyvsp[(2) - (3)].intval);
@@ -1983,173 +2146,253 @@ yyreduce:
       }
     break;
 
-  case 40:
-#line 508 "parse-datetime.y"
-    { apply_relative_time (pc, (yyvsp[(1) - (2)].rel), -1); }
+  case 50:
+
+/* Line 1810 of yacc.c  */
+#line 543 "./parse-datetime.y"
+    {
+        /* ISO 8601 format.  YYYY-MM-DD.  */
+        pc->year = (yyvsp[(1) - (3)].textintval);
+        pc->month = -(yyvsp[(2) - (3)].textintval).value;
+        pc->day = -(yyvsp[(3) - (3)].textintval).value;
+      }
     break;
 
-  case 41:
-#line 510 "parse-datetime.y"
+  case 51:
+
+/* Line 1810 of yacc.c  */
+#line 553 "./parse-datetime.y"
+    { apply_relative_time (pc, (yyvsp[(1) - (2)].rel), (yyvsp[(2) - (2)].intval)); }
+    break;
+
+  case 52:
+
+/* Line 1810 of yacc.c  */
+#line 555 "./parse-datetime.y"
     { apply_relative_time (pc, (yyvsp[(1) - (1)].rel), 1); }
     break;
 
-  case 42:
-#line 512 "parse-datetime.y"
+  case 53:
+
+/* Line 1810 of yacc.c  */
+#line 557 "./parse-datetime.y"
     { apply_relative_time (pc, (yyvsp[(1) - (1)].rel), 1); }
     break;
 
-  case 43:
-#line 517 "parse-datetime.y"
+  case 54:
+
+/* Line 1810 of yacc.c  */
+#line 562 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].intval); }
     break;
 
-  case 44:
-#line 519 "parse-datetime.y"
+  case 55:
+
+/* Line 1810 of yacc.c  */
+#line 564 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 45:
-#line 521 "parse-datetime.y"
+  case 56:
+
+/* Line 1810 of yacc.c  */
+#line 566 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = 1; }
     break;
 
-  case 46:
-#line 523 "parse-datetime.y"
+  case 57:
+
+/* Line 1810 of yacc.c  */
+#line 568 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].intval); }
     break;
 
-  case 47:
-#line 525 "parse-datetime.y"
+  case 58:
+
+/* Line 1810 of yacc.c  */
+#line 570 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 48:
-#line 527 "parse-datetime.y"
+  case 59:
+
+/* Line 1810 of yacc.c  */
+#line 572 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = 1; }
     break;
 
-  case 49:
-#line 529 "parse-datetime.y"
+  case 60:
+
+/* Line 1810 of yacc.c  */
+#line 574 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); }
     break;
 
-  case 50:
-#line 531 "parse-datetime.y"
+  case 61:
+
+/* Line 1810 of yacc.c  */
+#line 576 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); }
     break;
 
-  case 51:
-#line 533 "parse-datetime.y"
+  case 62:
+
+/* Line 1810 of yacc.c  */
+#line 578 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); }
     break;
 
-  case 52:
-#line 535 "parse-datetime.y"
+  case 63:
+
+/* Line 1810 of yacc.c  */
+#line 580 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].intval); }
     break;
 
-  case 53:
-#line 537 "parse-datetime.y"
+  case 64:
+
+/* Line 1810 of yacc.c  */
+#line 582 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 54:
-#line 539 "parse-datetime.y"
+  case 65:
+
+/* Line 1810 of yacc.c  */
+#line 584 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = 1; }
     break;
 
-  case 55:
-#line 541 "parse-datetime.y"
+  case 66:
+
+/* Line 1810 of yacc.c  */
+#line 586 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].intval); }
     break;
 
-  case 56:
-#line 543 "parse-datetime.y"
+  case 67:
+
+/* Line 1810 of yacc.c  */
+#line 588 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 57:
-#line 545 "parse-datetime.y"
+  case 68:
+
+/* Line 1810 of yacc.c  */
+#line 590 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = 1; }
     break;
 
-  case 58:
-#line 547 "parse-datetime.y"
+  case 69:
+
+/* Line 1810 of yacc.c  */
+#line 592 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].intval); }
     break;
 
-  case 59:
-#line 549 "parse-datetime.y"
+  case 70:
+
+/* Line 1810 of yacc.c  */
+#line 594 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 60:
-#line 551 "parse-datetime.y"
+  case 71:
+
+/* Line 1810 of yacc.c  */
+#line 596 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; }
     break;
 
-  case 61:
-#line 553 "parse-datetime.y"
+  case 72:
+
+/* Line 1810 of yacc.c  */
+#line 598 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; }
     break;
 
-  case 62:
-#line 555 "parse-datetime.y"
+  case 73:
+
+/* Line 1810 of yacc.c  */
+#line 600 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = 1; }
     break;
 
-  case 64:
-#line 561 "parse-datetime.y"
+  case 75:
+
+/* Line 1810 of yacc.c  */
+#line 606 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 65:
-#line 563 "parse-datetime.y"
+  case 76:
+
+/* Line 1810 of yacc.c  */
+#line 608 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 66:
-#line 565 "parse-datetime.y"
+  case 77:
+
+/* Line 1810 of yacc.c  */
+#line 610 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); }
     break;
 
-  case 67:
-#line 567 "parse-datetime.y"
+  case 78:
+
+/* Line 1810 of yacc.c  */
+#line 612 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 68:
-#line 569 "parse-datetime.y"
+  case 79:
+
+/* Line 1810 of yacc.c  */
+#line 614 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 69:
-#line 571 "parse-datetime.y"
+  case 80:
+
+/* Line 1810 of yacc.c  */
+#line 616 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; }
     break;
 
-  case 70:
-#line 576 "parse-datetime.y"
+  case 81:
+
+/* Line 1810 of yacc.c  */
+#line 621 "./parse-datetime.y"
     { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); }
     break;
 
-  case 74:
-#line 584 "parse-datetime.y"
+  case 85:
+
+/* Line 1810 of yacc.c  */
+#line 629 "./parse-datetime.y"
     { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; }
     break;
 
-  case 76:
-#line 590 "parse-datetime.y"
+  case 87:
+
+/* Line 1810 of yacc.c  */
+#line 635 "./parse-datetime.y"
     { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; }
     break;
 
-  case 77:
-#line 595 "parse-datetime.y"
+  case 88:
+
+/* Line 1810 of yacc.c  */
+#line 640 "./parse-datetime.y"
     { digits_to_date_time (pc, (yyvsp[(1) - (1)].textintval)); }
     break;
 
-  case 78:
-#line 600 "parse-datetime.y"
+  case 89:
+
+/* Line 1810 of yacc.c  */
+#line 645 "./parse-datetime.y"
     {
         /* Hybrid all-digit and relative offset, so that we accept e.g.,
            "YYYYMMDD +N days" as well as "YYYYMMDD N days".  */
@@ -2158,31 +2401,37 @@ yyreduce:
       }
     break;
 
-  case 79:
-#line 610 "parse-datetime.y"
+  case 90:
+
+/* Line 1810 of yacc.c  */
+#line 655 "./parse-datetime.y"
     { (yyval.intval) = -1; }
     break;
 
-  case 80:
-#line 612 "parse-datetime.y"
-    { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; }
-    break;
+  case 91:
 
-  case 81:
-#line 617 "parse-datetime.y"
-    { (yyval.intval) = MER24; }
+/* Line 1810 of yacc.c  */
+#line 657 "./parse-datetime.y"
+    { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; }
     break;
 
-  case 82:
-#line 619 "parse-datetime.y"
-    { (yyval.intval) = (yyvsp[(1) - (1)].intval); }
-    break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 2184 "parse-datetime.c"
+/* Line 1810 of yacc.c  */
+#line 2422 "parse-datetime.c"
       default: break;
     }
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
@@ -2191,7 +2440,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -2211,6 +2459,10 @@ yyreduce:
 | yyerrlab -- here on detecting error |
 `------------------------------------*/
 yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
@@ -2218,37 +2470,36 @@ yyerrlab:
 #if ! YYERROR_VERBOSE
       yyerror (pc, YY_("syntax error"));
 #else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+                                        yyssp, yytoken)
       {
-       YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-       if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-         {
-           YYSIZE_T yyalloc = 2 * yysize;
-           if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-             yyalloc = YYSTACK_ALLOC_MAXIMUM;
-           if (yymsg != yymsgbuf)
-             YYSTACK_FREE (yymsg);
-           yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-           if (yymsg)
-             yymsg_alloc = yyalloc;
-           else
-             {
-               yymsg = yymsgbuf;
-               yymsg_alloc = sizeof yymsgbuf;
-             }
-         }
-
-       if (0 < yysize && yysize <= yymsg_alloc)
-         {
-           (void) yysyntax_error (yymsg, yystate, yychar);
-           yyerror (pc, yymsg);
-         }
-       else
-         {
-           yyerror (pc, YY_("syntax error"));
-           if (yysize != 0)
-             goto yyexhaustedlab;
-         }
+        char const *yymsgp = YY_("syntax error");
+        int yysyntax_error_status;
+        yysyntax_error_status = YYSYNTAX_ERROR;
+        if (yysyntax_error_status == 0)
+          yymsgp = yymsg;
+        else if (yysyntax_error_status == 1)
+          {
+            if (yymsg != yymsgbuf)
+              YYSTACK_FREE (yymsg);
+            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+            if (!yymsg)
+              {
+                yymsg = yymsgbuf;
+                yymsg_alloc = sizeof yymsgbuf;
+                yysyntax_error_status = 2;
+              }
+            else
+              {
+                yysyntax_error_status = YYSYNTAX_ERROR;
+                yymsgp = yymsg;
+              }
+          }
+        yyerror (pc, yymsgp);
+        if (yysyntax_error_status == 2)
+          goto yyexhaustedlab;
       }
+# undef YYSYNTAX_ERROR
 #endif
     }
 
@@ -2256,7 +2507,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -2273,7 +2524,7 @@ yyerrlab:
        }
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -2307,7 +2558,7 @@ yyerrlab1:
   for (;;)
     {
       yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
+      if (!yypact_value_is_default (yyn))
        {
          yyn += YYTERROR;
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2330,9 +2581,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
@@ -2357,7 +2605,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -2368,9 +2616,14 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
-     yydestruct ("Cleanup: discarding lookahead",
-                yytoken, &yylval, pc);
+  if (yychar != YYEMPTY)
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval, pc);
+    }
   /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
@@ -2394,7 +2647,9 @@ yyreturn:
 }
 
 
-#line 622 "parse-datetime.y"
+
+/* Line 2071 of yacc.c  */
+#line 660 "./parse-datetime.y"
 
 
 static table const meridian_table[] =
@@ -2477,7 +2732,8 @@ static table const relative_time_table[] =
   { "TENTH",    tORDINAL,       10 },
   { "ELEVENTH", tORDINAL,       11 },
   { "TWELFTH",  tORDINAL,       12 },
-  { "AGO",      tAGO,            1 },
+  { "AGO",      tAGO,           -1 },
+  { "HENCE",    tAGO,            1 },
   { NULL, 0, 0 }
 };
 
@@ -2496,7 +2752,7 @@ static table const universal_time_zone_table[] =
    zone abbreviations are ambiguous; e.g. Australians interpret "EST"
    as Eastern time in Australia, not as US Eastern Standard Time.
    You cannot rely on parse_datetime to handle arbitrary time zone
-   abbreviations; use numeric abbreviations like `-0500' instead.  */
+   abbreviations; use numeric abbreviations like "-0500" instead.  */
 static table const time_zone_table[] =
 {
   { "WET",      tZONE,     HOUR ( 0) }, /* Western European */
@@ -2549,7 +2805,10 @@ static table const time_zone_table[] =
   { NULL, 0, 0 }
 };
 
-/* Military time zone table. */
+/* Military time zone table.
+
+   Note 'T' is a special case, as it is used as the separator in ISO
+   8601 date and time of day representation. */
 static table const military_table[] =
 {
   { "A", tZONE, -HOUR ( 1) },
@@ -2570,7 +2829,7 @@ static table const military_table[] =
   { "Q", tZONE,  HOUR ( 4) },
   { "R", tZONE,  HOUR ( 5) },
   { "S", tZONE,  HOUR ( 6) },
-  { "T", tZONE,  HOUR ( 7) },
+  { "T", 'T',    0 },
   { "U", tZONE,  HOUR ( 8) },
   { "V", tZONE,  HOUR ( 9) },
   { "W", tZONE,  HOUR (10) },
@@ -2644,7 +2903,7 @@ to_year (textint textyear)
   return year;
 }
 
-static table const *
+static table const * _GL_ATTRIBUTE_PURE
 lookup_zone (parser_control const *pc, char const *name)
 {
   table const *tp;
@@ -2895,7 +3154,7 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
 
           do
             {
-              if (p < buff + sizeof buff - 1)
+              if (p - buff < sizeof buff - 1)
                 *p++ = c;
               c = *++pc->input;
             }
@@ -2910,7 +3169,8 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
         }
 
       if (c != '(')
-        return *pc->input++;
+        return to_uchar (*pc->input++);
+
       count = 0;
       do
         {
@@ -3133,7 +3393,7 @@ parse_datetime (struct timespec *result, char const *p,
       && ! strcmp (pc.local_time_zone_table[0].name,
                    pc.local_time_zone_table[1].name))
     {
-      /* This locale uses the same abbrevation for standard and
+      /* This locale uses the same abbreviation for standard and
          daylight times.  So if we see that abbreviation, we don't
          know whether it's daylight time.  */
       pc.local_time_zone_table[0].value = -1;
@@ -3205,7 +3465,7 @@ parse_datetime (struct timespec *result, char const *p,
                           + sizeof pc.time_zone * CHAR_BIT / 3];
               if (!tz_was_altered)
                 tz0 = get_tz (tz0buf);
-              sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
+              sprintf (tz1buf, "XXX%s%ld:%02d", &"-"[time_zone < 0],
                        abs_time_zone_hour, abs_time_zone_min);
               if (setenv ("TZ", tz1buf, 1) != 0)
                 goto fail;
index 39371429e7efe27c32d868f56b0f2755e2b6354e..47fe4deede2a4d302b483773c64e1f6d30eef9b0 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Parse a string into an internal time stamp.
 
-   Copyright (C) 1995, 1997-1998, 2003-2004, 2007, 2009-2011 Free Software
+   Copyright (C) 1995, 1997-1998, 2003-2004, 2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index d77955f40d5dec92b7c8e04d829c06529156f6b3..4dce7fa644c6513f8f48619a852776260a0f4b70 100644 (file)
@@ -1,7 +1,7 @@
 %{
 /* Parse a string into an internal time stamp.
 
-   Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-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
@@ -82,7 +82,7 @@
    - It's typically faster.
    POSIX says that only '0' through '9' are digits.  Prefer ISDIGIT to
    isdigit unless it's important to use the locale's definition
-   of `digit' even when the host does not conform to POSIX.  */
+   of "digit" even when the host does not conform to POSIX.  */
 #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
 
 /* Shift A right by B bits portably, by dividing A by 2**B and
@@ -113,6 +113,11 @@ typedef long int long_time_t;
 typedef time_t long_time_t;
 #endif
 
+/* Convert a possibly-signed character to an unsigned character.  This is
+   a bit safer than casting to unsigned char, since it catches some type
+   errors that the cast doesn't.  */
+static unsigned char to_uchar (char ch) { return ch; }
+
 /* Lots of this code assumes time_t and time_t-like values fit into
    long_time_t.  */
 verify (TYPE_MINIMUM (long_time_t) <= TYPE_MINIMUM (time_t)
@@ -204,7 +209,7 @@ typedef struct
   size_t times_seen;
   size_t zones_seen;
 
-  /* Table of local time zone abbrevations, terminated by a null entry.  */
+  /* Table of local time zone abbreviations, terminated by a null entry.  */
   table local_time_zone_table[3];
 } parser_control;
 
@@ -285,8 +290,8 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 %parse-param { parser_control *pc }
 %lex-param { parser_control *pc }
 
-/* This grammar has 20 shift/reduce conflicts. */
-%expect 20
+/* This grammar has 31 shift/reduce conflicts. */
+%expect 31
 
 %union
 {
@@ -296,7 +301,8 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
   relative_time rel;
 }
 
-%token tAGO tDST
+%token <intval> tAGO
+%token tDST
 
 %token tYEAR_UNIT tMONTH_UNIT tHOUR_UNIT tMINUTE_UNIT tSEC_UNIT
 %token <intval> tDAY_UNIT tDAY_SHIFT
@@ -307,7 +313,7 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 %token <textintval> tSNUMBER tUNUMBER
 %token <timespec> tSDECIMAL_NUMBER tUDECIMAL_NUMBER
 
-%type <intval> o_colon_minutes o_merid
+%type <intval> o_colon_minutes
 %type <timespec> seconds signed_seconds unsigned_seconds
 
 %type <rel> relunit relunit_snumber dayshift
@@ -333,7 +339,9 @@ items:
   ;
 
 item:
-    time
+    datetime
+      { pc->times_seen++; pc->dates_seen++; }
+  | time
       { pc->times_seen++; }
   | local_zone
       { pc->local_zones_seen++; }
@@ -348,35 +356,61 @@ item:
   | hybrid
   ;
 
+datetime:
+    iso_8601_datetime
+  ;
+
+iso_8601_datetime:
+    iso_8601_date 'T' iso_8601_time
+  ;
+
 time:
     tUNUMBER tMERIDIAN
       {
         set_hhmmss (pc, $1.value, 0, 0, 0);
         pc->meridian = $2;
       }
-  | tUNUMBER ':' tUNUMBER o_merid
+  | tUNUMBER ':' tUNUMBER tMERIDIAN
       {
         set_hhmmss (pc, $1.value, $3.value, 0, 0);
         pc->meridian = $4;
       }
-  | tUNUMBER ':' tUNUMBER tSNUMBER o_colon_minutes
+  | tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN
       {
-        set_hhmmss (pc, $1.value, $3.value, 0, 0);
+        set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec);
+        pc->meridian = $6;
+      }
+  | iso_8601_time
+  ;
+
+iso_8601_time:
+    tUNUMBER zone_offset
+      {
+        set_hhmmss (pc, $1.value, 0, 0, 0);
         pc->meridian = MER24;
-        pc->zones_seen++;
-        pc->time_zone = time_zone_hhmm (pc, $4, $5);
       }
-  | tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_merid
+  | tUNUMBER ':' tUNUMBER o_zone_offset
       {
-        set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec);
-        pc->meridian = $6;
+        set_hhmmss (pc, $1.value, $3.value, 0, 0);
+        pc->meridian = MER24;
       }
-  | tUNUMBER ':' tUNUMBER ':' unsigned_seconds tSNUMBER o_colon_minutes
+  | tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset
       {
         set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec);
         pc->meridian = MER24;
+      }
+  ;
+
+o_zone_offset:
+  /* empty */
+  | zone_offset
+  ;
+
+zone_offset:
+    tSNUMBER o_colon_minutes
+      {
         pc->zones_seen++;
-        pc->time_zone = time_zone_hhmm (pc, $6, $7);
+        pc->time_zone = time_zone_hhmm (pc, $1, $2);
       }
   ;
 
@@ -393,12 +427,19 @@ local_zone:
       }
   ;
 
+/* Note 'T' is a special case, as it is used as the separator in ISO
+   8601 date and time of day representation. */
 zone:
     tZONE
       { pc->time_zone = $1; }
+  | 'T'
+      { pc->time_zone = HOUR(7); }
   | tZONE relunit_snumber
       { pc->time_zone = $1;
         apply_relative_time (pc, $2, 1); }
+  | 'T' relunit_snumber
+      { pc->time_zone = HOUR(7);
+        apply_relative_time (pc, $2, 1); }
   | tZONE tSNUMBER o_colon_minutes
       { pc->time_zone = $1 + time_zone_hhmm (pc, $2, $3); }
   | tDAYZONE
@@ -456,13 +497,6 @@ date:
             pc->year = $5;
           }
       }
-  | tUNUMBER tSNUMBER tSNUMBER
-      {
-        /* ISO 8601 format.  YYYY-MM-DD.  */
-        pc->year = $1;
-        pc->month = -$2.value;
-        pc->day = -$3.value;
-      }
   | tUNUMBER tMONTH tSNUMBER
       {
         /* e.g. 17-JUN-1992.  */
@@ -501,11 +535,22 @@ date:
         pc->month = $2;
         pc->year = $3;
       }
+  | iso_8601_date
+  ;
+
+iso_8601_date:
+    tUNUMBER tSNUMBER tSNUMBER
+      {
+        /* ISO 8601 format.  YYYY-MM-DD.  */
+        pc->year = $1;
+        pc->month = -$2.value;
+        pc->day = -$3.value;
+      }
   ;
 
 rel:
     relunit tAGO
-      { apply_relative_time (pc, $1, -1); }
+      { apply_relative_time (pc, $1, $2); }
   | relunit
       { apply_relative_time (pc, $1, 1); }
   | dayshift
@@ -612,13 +657,6 @@ o_colon_minutes:
       { $$ = $2.value; }
   ;
 
-o_merid:
-    /* empty */
-      { $$ = MER24; }
-  | tMERIDIAN
-      { $$ = $1; }
-  ;
-
 %%
 
 static table const meridian_table[] =
@@ -701,7 +739,8 @@ static table const relative_time_table[] =
   { "TENTH",    tORDINAL,       10 },
   { "ELEVENTH", tORDINAL,       11 },
   { "TWELFTH",  tORDINAL,       12 },
-  { "AGO",      tAGO,            1 },
+  { "AGO",      tAGO,           -1 },
+  { "HENCE",    tAGO,            1 },
   { NULL, 0, 0 }
 };
 
@@ -720,7 +759,7 @@ static table const universal_time_zone_table[] =
    zone abbreviations are ambiguous; e.g. Australians interpret "EST"
    as Eastern time in Australia, not as US Eastern Standard Time.
    You cannot rely on parse_datetime to handle arbitrary time zone
-   abbreviations; use numeric abbreviations like `-0500' instead.  */
+   abbreviations; use numeric abbreviations like "-0500" instead.  */
 static table const time_zone_table[] =
 {
   { "WET",      tZONE,     HOUR ( 0) }, /* Western European */
@@ -773,7 +812,10 @@ static table const time_zone_table[] =
   { NULL, 0, 0 }
 };
 
-/* Military time zone table. */
+/* Military time zone table.
+
+   Note 'T' is a special case, as it is used as the separator in ISO
+   8601 date and time of day representation. */
 static table const military_table[] =
 {
   { "A", tZONE, -HOUR ( 1) },
@@ -794,7 +836,7 @@ static table const military_table[] =
   { "Q", tZONE,  HOUR ( 4) },
   { "R", tZONE,  HOUR ( 5) },
   { "S", tZONE,  HOUR ( 6) },
-  { "T", tZONE,  HOUR ( 7) },
+  { "T", 'T',    0 },
   { "U", tZONE,  HOUR ( 8) },
   { "V", tZONE,  HOUR ( 9) },
   { "W", tZONE,  HOUR (10) },
@@ -868,7 +910,7 @@ to_year (textint textyear)
   return year;
 }
 
-static table const *
+static table const * _GL_ATTRIBUTE_PURE
 lookup_zone (parser_control const *pc, char const *name)
 {
   table const *tp;
@@ -1119,7 +1161,7 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
 
           do
             {
-              if (p < buff + sizeof buff - 1)
+              if (p - buff < sizeof buff - 1)
                 *p++ = c;
               c = *++pc->input;
             }
@@ -1134,7 +1176,8 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
         }
 
       if (c != '(')
-        return *pc->input++;
+        return to_uchar (*pc->input++);
+
       count = 0;
       do
         {
@@ -1357,7 +1400,7 @@ parse_datetime (struct timespec *result, char const *p,
       && ! strcmp (pc.local_time_zone_table[0].name,
                    pc.local_time_zone_table[1].name))
     {
-      /* This locale uses the same abbrevation for standard and
+      /* This locale uses the same abbreviation for standard and
          daylight times.  So if we see that abbreviation, we don't
          know whether it's daylight time.  */
       pc.local_time_zone_table[0].value = -1;
@@ -1429,7 +1472,7 @@ parse_datetime (struct timespec *result, char const *p,
                           + sizeof pc.time_zone * CHAR_BIT / 3];
               if (!tz_was_altered)
                 tz0 = get_tz (tz0buf);
-              sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
+              sprintf (tz1buf, "XXX%s%ld:%02d", &"-"[time_zone < 0],
                        abs_time_zone_hour, abs_time_zone_min);
               if (setenv ("TZ", tz1buf, 1) != 0)
                 goto fail;
index 0445cd92a4b2771572a05806254309636c2eddba..1ca0efda7469b37f69933d94c37f39732e9163ee 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2011 Free Software
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _PATHMAX_H
 # define _PATHMAX_H
 
+/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename,
+   including the terminating NUL byte.
+   <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html>
+   PATH_MAX is not defined on systems which have no limit on filename length,
+   such as GNU/Hurd.
+
+   This file does *not* define PATH_MAX always.  Programs that use this file
+   can handle the GNU/Hurd case in several ways:
+     - Either with a package-wide handling, or with a per-file handling,
+     - Either through a
+         #ifdef PATH_MAX
+       or through a fallback like
+         #ifndef PATH_MAX
+         # define PATH_MAX 8192
+         #endif
+       or through a fallback like
+         #ifndef PATH_MAX
+         # define PATH_MAX pathconf ("/", _PC_PATH_MAX)
+         #endif
+ */
+
 # include <unistd.h>
 
 # include <limits.h>
 #  define _POSIX_PATH_MAX 256
 # endif
 
-# if !defined PATH_MAX && defined _PC_PATH_MAX && defined HAVE_PATHCONF
-#  define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \
-                    : pathconf ("/", _PC_PATH_MAX))
-# endif
-
 /* Don't include sys/param.h if it already has been.  */
 # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
 #  include <sys/param.h>
 #  define PATH_MAX MAXPATHLEN
 # endif
 
-# ifndef PATH_MAX
-#  define PATH_MAX _POSIX_PATH_MAX
+# ifdef __hpux
+/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename,
+   *not* including the terminating NUL byte, and is set to 1023.
+   Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is
+   not defined at all any more.  */
+#  undef PATH_MAX
+#  define PATH_MAX 1024
+# endif
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com,
+   section "Maximum Path Length Limitation",
+   <http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath>
+   explains that the maximum size of a filename, including the terminating
+   NUL byte, is 260 = 3 + 256 + 1.
+   This is the same value as
+     - FILENAME_MAX in <stdio.h>,
+     - _MAX_PATH in <stdlib.h>,
+     - MAX_PATH in <windef.h>.
+   Undefine the original value, because mingw's <limits.h> gets it wrong.  */
+#  undef PATH_MAX
+#  define PATH_MAX 260
 # endif
 
 #endif /* _PATHMAX_H */
index 03a98ba0a4ba53928c1ad8ba3b9f3cd01e7ec408..68c01cd42863224b263f13b9494e3d806b22ed27 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Invoke pipe, but avoid some glitches.
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
index 2e5a39dea7f42e35143af76a7c3cc0f951de631c..cb6a93ddff2564563a8651a2dc0c4c7b7261e120 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2011 Free Software
+   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
index 90c88f8354d79db9b21c60cce98e5e87030f27ca..1ed8ebd26548324e3eae14f46c423145244ffe9a 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006-2007, 2011 Free Software
+   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _PRINTF_ARGS_H
 #define _PRINTF_ARGS_H
index 326a0ef4daa751024f19907839af10bb9cb66b9a..1320fcd1d525f51b8ce43caab9267ed2ca9ff94f 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      CHAR_T             The element type of the format string.
@@ -404,7 +403,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                       cp++;
                     }
 #if defined __APPLE__ && defined __MACH__
-                  /* On MacOS X 10.3, PRIdMAX is defined as "qd".
+                  /* On Mac OS X 10.3, PRIdMAX is defined as "qd".
                      We cannot change it to "lld" because PRIdMAX must also
                      be understood by the system's printf routines.  */
                   else if (*cp == 'q')
@@ -423,7 +422,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                     }
 #endif
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-                  /* On native Win32, PRIdMAX is defined as "I64d".
+                  /* On native Windows, PRIdMAX is defined as "I64d".
                      We cannot change it to "lld" because PRIdMAX must also
                      be understood by the system's printf routines.  */
                   else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
index 6cbe68e7e08159a7b05e500eed8d6af3ed3c23fa..ab41213251d0c7618a8f52bce776a7e103b0f9ae 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2011 Free Software
+   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _PRINTF_PARSE_H
 #define _PRINTF_PARSE_H
index 064d95c8f5daf4287fa98f8a495dbc18837e11ba..c09fb0eb916a8856f097feab94d55843ec43fb25 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Query, remove, or restore a Solaris privilege.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -20,6 +20,9 @@
    Written by David Bartley.  */
 
 #include <config.h>
+
+#define PRIV_SET_INLINE _GL_EXTERN_INLINE
+
 #include "priv-set.h"
 
 #if HAVE_GETPPRIV && HAVE_PRIV_H
index 574d9a0a01f1ce8faf556ffda0fbd6eb242f3ae1..44afc8d7d34b219f0eba1c92ad78eb0f97f19ab1 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Query, remove, or restore a Solaris privilege.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 
    Written by David Bartley.  */
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef PRIV_SET_INLINE
+# define PRIV_SET_INLINE _GL_INLINE
+#endif
+
 #if HAVE_GETPPRIV && HAVE_PRIV_H
 
 # include <priv.h>
@@ -27,26 +32,32 @@ int priv_set_ismember (const char *priv);
 int priv_set_remove (const char *priv);
 int priv_set_restore (const char *priv);
 
-static inline int priv_set_remove_linkdir (void)
+PRIV_SET_INLINE int
+priv_set_remove_linkdir (void)
 {
   return priv_set_remove (PRIV_SYS_LINKDIR);
 }
 
-static inline int priv_set_restore_linkdir (void)
+PRIV_SET_INLINE int
+priv_set_restore_linkdir (void)
 {
   return priv_set_restore (PRIV_SYS_LINKDIR);
 }
 
 #else
 
-static inline int priv_set_remove_linkdir (void)
+PRIV_SET_INLINE int
+priv_set_remove_linkdir (void)
 {
   return -1;
 }
 
-static inline int priv_set_restore_linkdir (void)
+PRIV_SET_INLINE int
+priv_set_restore_linkdir (void)
 {
   return -1;
 }
 
 #endif
+
+_GL_INLINE_HEADER_END
index fc40d27698fd31a4b2092cd1939ff69ee7e09028..1401a8419751bb881fee28b86ee4b4c0caa88ff5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Program name management.
-   Copyright (C) 2001-2003, 2005-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2013 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 83066cbcddd9e99d974c6fa5b3e17c6b09a397f9..ecf83fd4c47b6b47a264ade886eda7c041886315 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Program name management.
-   Copyright (C) 2001-2004, 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/qcopy-acl.c b/gnu/qcopy-acl.c
new file mode 100644 (file)
index 0000000..7ef0938
--- /dev/null
@@ -0,0 +1,585 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* copy-acl.c - copy access control list from one file to another file
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible.  */
+
+#include <config.h>
+
+#include "acl.h"
+
+#include "acl-internal.h"
+
+
+/* Copy access control lists from one file to another. If SOURCE_DESC is
+   a valid file descriptor, use file descriptor operations, else use
+   filename based operations on SRC_NAME. Likewise for DEST_DESC and
+   DST_NAME.
+   If access control lists are not available, fchmod the target file to
+   MODE.  Also sets the non-permission bits of the destination file
+   (S_ISUID, S_ISGID, S_ISVTX) to those from MODE if any are set.
+   Return 0 if successful.
+   Return -2 and set errno for an error relating to the source file.
+   Return -1 and set errno for an error relating to the destination file.  */
+
+int
+qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
+           int dest_desc, mode_t mode)
+{
+#if USE_ACL && HAVE_ACL_GET_FILE
+  /* POSIX 1003.1e (draft 17 -- abandoned) specific version.  */
+  /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */
+# if !HAVE_ACL_TYPE_EXTENDED
+  /* Linux, FreeBSD, IRIX, Tru64 */
+
+  acl_t acl;
+  int ret;
+
+  if (HAVE_ACL_GET_FD && source_desc != -1)
+    acl = acl_get_fd (source_desc);
+  else
+    acl = acl_get_file (src_name, ACL_TYPE_ACCESS);
+  if (acl == NULL)
+    {
+      if (! acl_errno_valid (errno))
+        return qset_acl (dst_name, dest_desc, mode);
+      else
+        return -2;
+    }
+
+  if (HAVE_ACL_SET_FD && dest_desc != -1)
+    ret = acl_set_fd (dest_desc, acl);
+  else
+    ret = acl_set_file (dst_name, ACL_TYPE_ACCESS, acl);
+  if (ret != 0)
+    {
+      int saved_errno = errno;
+
+      if (! acl_errno_valid (errno) && !acl_access_nontrivial (acl))
+        {
+          acl_free (acl);
+          return chmod_or_fchmod (dst_name, dest_desc, mode);
+        }
+      else
+        {
+          acl_free (acl);
+          chmod_or_fchmod (dst_name, dest_desc, mode);
+          errno = saved_errno;
+          return -1;
+        }
+    }
+  else
+    acl_free (acl);
+
+  if (!MODE_INSIDE_ACL || (mode & (S_ISUID | S_ISGID | S_ISVTX)))
+    {
+      /* We did not call chmod so far, and either the mode and the ACL are
+         separate or special bits are to be set which don't fit into ACLs.  */
+
+      if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
+        return -1;
+    }
+
+  if (S_ISDIR (mode))
+    {
+      acl = acl_get_file (src_name, ACL_TYPE_DEFAULT);
+      if (acl == NULL)
+        return -2;
+
+      if (acl_set_file (dst_name, ACL_TYPE_DEFAULT, acl))
+        {
+          int saved_errno = errno;
+
+          acl_free (acl);
+          errno = saved_errno;
+          return -1;
+        }
+      else
+        acl_free (acl);
+    }
+  return 0;
+
+# else /* HAVE_ACL_TYPE_EXTENDED */
+  /* Mac OS X */
+
+  /* On Mac OS X,  acl_get_file (name, ACL_TYPE_ACCESS)
+     and           acl_get_file (name, ACL_TYPE_DEFAULT)
+     always return NULL / EINVAL.  You have to use
+                   acl_get_file (name, ACL_TYPE_EXTENDED)
+     or            acl_get_fd (open (name, ...))
+     to retrieve an ACL.
+     On the other hand,
+                   acl_set_file (name, ACL_TYPE_ACCESS, acl)
+     and           acl_set_file (name, ACL_TYPE_DEFAULT, acl)
+     have the same effect as
+                   acl_set_file (name, ACL_TYPE_EXTENDED, acl):
+     Each of these calls sets the file's ACL.  */
+
+  acl_t acl;
+  int ret;
+
+  if (HAVE_ACL_GET_FD && source_desc != -1)
+    acl = acl_get_fd (source_desc);
+  else
+    acl = acl_get_file (src_name, ACL_TYPE_EXTENDED);
+  if (acl == NULL)
+    {
+      if (!acl_errno_valid (errno))
+        return qset_acl (dst_name, dest_desc, mode);
+      else
+        return -2;
+    }
+
+  if (HAVE_ACL_SET_FD && dest_desc != -1)
+    ret = acl_set_fd (dest_desc, acl);
+  else
+    ret = acl_set_file (dst_name, ACL_TYPE_EXTENDED, acl);
+  if (ret != 0)
+    {
+      int saved_errno = errno;
+
+      if (!acl_errno_valid (saved_errno) && !acl_extended_nontrivial (acl))
+        {
+          acl_free (acl);
+          return chmod_or_fchmod (dst_name, dest_desc, mode);
+        }
+      else
+        {
+          acl_free (acl);
+          chmod_or_fchmod (dst_name, dest_desc, mode);
+          errno = saved_errno;
+          return -1;
+        }
+    }
+  else
+    acl_free (acl);
+
+  /* Since !MODE_INSIDE_ACL, we have to call chmod explicitly.  */
+  return chmod_or_fchmod (dst_name, dest_desc, mode);
+
+# endif
+
+#elif USE_ACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
+
+  /* Solaris 2.5 through Solaris 10, Cygwin, and contemporaneous versions
+     of Unixware.  The acl() call returns the access and default ACL both
+     at once.  */
+# ifdef ACE_GETACL
+  int ace_count;
+  ace_t *ace_entries;
+# endif
+  int count;
+  aclent_t *entries;
+  int did_chmod;
+  int saved_errno;
+  int ret;
+
+# ifdef ACE_GETACL
+  /* Solaris also has a different variant of ACLs, used in ZFS and NFSv4
+     file systems (whereas the other ones are used in UFS file systems).
+     There is an API
+       pathconf (name, _PC_ACL_ENABLED)
+       fpathconf (desc, _PC_ACL_ENABLED)
+     that allows to determine which of the two kinds of ACLs is supported
+     for the given file.  But some file systems may implement this call
+     incorrectly, so better not use it.
+     When fetching the source ACL, we simply fetch both ACL types.
+     When setting the destination ACL, we try either ACL types, assuming
+     that the kernel will translate the ACL from one form to the other.
+     (See in <http://docs.sun.com/app/docs/doc/819-2241/6n4huc7ia?l=en&a=view>
+     the description of ENOTSUP.)  */
+  for (;;)
+    {
+      ace_count = (source_desc != -1
+                   ? facl (source_desc, ACE_GETACLCNT, 0, NULL)
+                   : acl (src_name, ACE_GETACLCNT, 0, NULL));
+
+      if (ace_count < 0)
+        {
+          if (errno == ENOSYS || errno == EINVAL)
+            {
+              ace_count = 0;
+              ace_entries = NULL;
+              break;
+            }
+          else
+            return -2;
+        }
+
+      if (ace_count == 0)
+        {
+          ace_entries = NULL;
+          break;
+        }
+
+      ace_entries = (ace_t *) malloc (ace_count * sizeof (ace_t));
+      if (ace_entries == NULL)
+        {
+          errno = ENOMEM;
+          return -2;
+        }
+
+      ret = (source_desc != -1
+             ? facl (source_desc, ACE_GETACL, ace_count, ace_entries)
+             : acl (src_name, ACE_GETACL, ace_count, ace_entries));
+      if (ret < 0)
+        {
+          free (ace_entries);
+          if (errno == ENOSYS || errno == EINVAL)
+            {
+              ace_count = 0;
+              ace_entries = NULL;
+              break;
+            }
+          else
+            return -2;
+        }
+      if (ret == ace_count)
+        break;
+      /* Huh? The number of ACL entries changed since the last call.
+         Repeat.  */
+    }
+# endif
+
+  for (;;)
+    {
+      count = (source_desc != -1
+               ? facl (source_desc, GETACLCNT, 0, NULL)
+               : acl (src_name, GETACLCNT, 0, NULL));
+
+      if (count < 0)
+        {
+          if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
+            {
+              count = 0;
+              entries = NULL;
+              break;
+            }
+          else
+            return -2;
+        }
+
+      if (count == 0)
+        {
+          entries = NULL;
+          break;
+        }
+
+      entries = (aclent_t *) malloc (count * sizeof (aclent_t));
+      if (entries == NULL)
+        {
+          errno = ENOMEM;
+          return -2;
+        }
+
+      if ((source_desc != -1
+           ? facl (source_desc, GETACL, count, entries)
+           : acl (src_name, GETACL, count, entries))
+          == count)
+        break;
+      /* Huh? The number of ACL entries changed since the last call.
+         Repeat.  */
+    }
+
+  /* Is there an ACL of either kind?  */
+# ifdef ACE_GETACL
+  if (ace_count == 0)
+# endif
+    if (count == 0)
+      return qset_acl (dst_name, dest_desc, mode);
+
+  did_chmod = 0; /* set to 1 once the mode bits in 0777 have been set */
+  saved_errno = 0; /* the first non-ignorable error code */
+
+  if (!MODE_INSIDE_ACL)
+    {
+      /* On Cygwin, it is necessary to call chmod before acl, because
+         chmod can change the contents of the ACL (in ways that don't
+         change the allowed accesses, but still visible).  */
+      if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
+        saved_errno = errno;
+      did_chmod = 1;
+    }
+
+  /* If both ace_entries and entries are available, try SETACL before
+     ACE_SETACL, because SETACL cannot fail with ENOTSUP whereas ACE_SETACL
+     can.  */
+
+  if (count > 0)
+    {
+      ret = (dest_desc != -1
+             ? facl (dest_desc, SETACL, count, entries)
+             : acl (dst_name, SETACL, count, entries));
+      if (ret < 0 && saved_errno == 0)
+        {
+          saved_errno = errno;
+          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+              && !acl_nontrivial (count, entries))
+            saved_errno = 0;
+        }
+      else
+        did_chmod = 1;
+    }
+  free (entries);
+
+# ifdef ACE_GETACL
+  if (ace_count > 0)
+    {
+      ret = (dest_desc != -1
+             ? facl (dest_desc, ACE_SETACL, ace_count, ace_entries)
+             : acl (dst_name, ACE_SETACL, ace_count, ace_entries));
+      if (ret < 0 && saved_errno == 0)
+        {
+          saved_errno = errno;
+          if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
+              && !acl_ace_nontrivial (ace_count, ace_entries))
+            saved_errno = 0;
+        }
+    }
+  free (ace_entries);
+# endif
+
+  if (MODE_INSIDE_ACL
+      && did_chmod <= ((mode & (S_ISUID | S_ISGID | S_ISVTX)) ? 1 : 0))
+    {
+      /* We did not call chmod so far, and either the mode and the ACL are
+         separate or special bits are to be set which don't fit into ACLs.  */
+
+      if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
+        {
+          if (saved_errno == 0)
+            saved_errno = errno;
+        }
+    }
+
+  if (saved_errno)
+    {
+      errno = saved_errno;
+      return -1;
+    }
+  return 0;
+
+#elif USE_ACL && HAVE_GETACL /* HP-UX */
+
+  struct acl_entry entries[NACLENTRIES];
+  int count;
+# if HAVE_ACLV_H
+  struct acl aclv_entries[NACLVENTRIES];
+  int aclv_count;
+# endif
+  int did_chmod;
+  int saved_errno;
+  int ret;
+
+  count = (source_desc != -1
+           ? fgetacl (source_desc, NACLENTRIES, entries)
+           : getacl (src_name, NACLENTRIES, entries));
+
+  if (count < 0)
+    {
+      if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+        count = 0;
+      else
+        return -2;
+    }
+  else if (count > 0)
+    {
+      if (count > NACLENTRIES)
+        /* If NACLENTRIES cannot be trusted, use dynamic memory allocation.  */
+        abort ();
+    }
+
+# if HAVE_ACLV_H
+  aclv_count = acl ((char *) src_name, ACL_GET, NACLVENTRIES, aclv_entries);
+
+  if (aclv_count < 0)
+    {
+      if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+        count = 0;
+      else
+        return -2;
+    }
+  else if (aclv_count > 0)
+    {
+      if (aclv_count > NACLVENTRIES)
+        /* If NACLVENTRIES cannot be trusted, use dynamic memory allocation.  */
+        abort ();
+    }
+# endif
+
+  if (count == 0)
+# if HAVE_ACLV_H
+    if (aclv_count == 0)
+# endif
+      return qset_acl (dst_name, dest_desc, mode);
+
+  did_chmod = 0; /* set to 1 once the mode bits in 0777 have been set */
+  saved_errno = 0; /* the first non-ignorable error code */
+
+  if (count > 0)
+    {
+      ret = (dest_desc != -1
+             ? fsetacl (dest_desc, count, entries)
+             : setacl (dst_name, count, entries));
+      if (ret < 0 && saved_errno == 0)
+        {
+          saved_errno = errno;
+          if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+            {
+              struct stat source_statbuf;
+
+              if ((source_desc != -1
+                   ? fstat (source_desc, &source_statbuf)
+                   : stat (src_name, &source_statbuf)) == 0)
+                {
+                  if (!acl_nontrivial (count, entries, &source_statbuf))
+                    saved_errno = 0;
+                }
+              else
+                saved_errno = errno;
+            }
+        }
+      else
+        did_chmod = 1;
+    }
+
+# if HAVE_ACLV_H
+  if (aclv_count > 0)
+    {
+      ret = acl ((char *) dst_name, ACL_SET, aclv_count, aclv_entries);
+      if (ret < 0 && saved_errno == 0)
+        {
+          saved_errno = errno;
+          if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+            {
+              if (!aclv_nontrivial (aclv_count, aclv_entries))
+                saved_errno = 0;
+            }
+        }
+      else
+        did_chmod = 1;
+    }
+# endif
+
+  if (did_chmod <= ((mode & (S_ISUID | S_ISGID | S_ISVTX)) ? 1 : 0))
+    {
+      /* We did not call chmod so far, and special bits are to be set which
+         don't fit into ACLs.  */
+
+      if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
+        {
+          if (saved_errno == 0)
+            saved_errno = errno;
+        }
+    }
+
+  if (saved_errno)
+    {
+      errno = saved_errno;
+      return -1;
+    }
+  return 0;
+
+#elif USE_ACL && HAVE_ACLX_GET && 0 /* AIX */
+
+  /* TODO */
+
+#elif USE_ACL && HAVE_STATACL /* older AIX */
+
+  union { struct acl a; char room[4096]; } u;
+  int ret;
+
+  if ((source_desc != -1
+       ? fstatacl (source_desc, STX_NORMAL, &u.a, sizeof (u))
+       : statacl (src_name, STX_NORMAL, &u.a, sizeof (u)))
+      < 0)
+    return -2;
+
+  ret = (dest_desc != -1
+         ? fchacl (dest_desc, &u.a, u.a.acl_len)
+         : chacl (dst_name, &u.a, u.a.acl_len));
+  if (ret < 0)
+    {
+      int saved_errno = errno;
+
+      chmod_or_fchmod (dst_name, dest_desc, mode);
+      errno = saved_errno;
+      return -1;
+    }
+
+  /* No need to call chmod_or_fchmod at this point, since the mode bits
+     S_ISUID, S_ISGID, S_ISVTX are also stored in the ACL.  */
+
+  return 0;
+
+#elif USE_ACL && HAVE_ACLSORT /* NonStop Kernel */
+
+  struct acl entries[NACLENTRIES];
+  int count;
+  int ret;
+
+  count = acl ((char *) src_name, ACL_GET, NACLENTRIES, entries);
+
+  if (count < 0)
+    {
+      if (0)
+        count = 0;
+      else
+        return -2;
+    }
+  else if (count > 0)
+    {
+      if (count > NACLENTRIES)
+        /* If NACLENTRIES cannot be trusted, use dynamic memory allocation.  */
+        abort ();
+    }
+
+  if (count == 0)
+    return qset_acl (dst_name, dest_desc, mode);
+
+  ret = acl ((char *) dst_name, ACL_SET, count, entries);
+  if (ret < 0)
+    {
+      int saved_errno = errno;
+
+      if (0)
+        {
+          if (!acl_nontrivial (count, entries))
+            return chmod_or_fchmod (dst_name, dest_desc, mode);
+        }
+
+      chmod_or_fchmod (dst_name, dest_desc, mode);
+      errno = saved_errno;
+      return -1;
+    }
+
+  if (mode & (S_ISUID | S_ISGID | S_ISVTX))
+    {
+      /* We did not call chmod so far, and either the mode and the ACL are
+         separate or special bits are to be set which don't fit into ACLs.  */
+
+      return chmod_or_fchmod (dst_name, dest_desc, mode);
+    }
+  return 0;
+
+#else
+
+  return qset_acl (dst_name, dest_desc, mode);
+
+#endif
+}
diff --git a/gnu/qset-acl.c b/gnu/qset-acl.c
new file mode 100644 (file)
index 0000000..2bef393
--- /dev/null
@@ -0,0 +1,678 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* qset-acl.c - set access control list equivalent to a mode
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert and Andreas Gruenbacher, and Bruno Haible.  */
+
+#include <config.h>
+
+#define ACL_INTERNAL_INLINE _GL_EXTERN_INLINE
+
+#include "acl.h"
+
+#include "acl-internal.h"
+
+
+/* If DESC is a valid file descriptor use fchmod to change the
+   file's mode to MODE on systems that have fchmod. On systems
+   that don't have fchmod and if DESC is invalid, use chmod on
+   NAME instead.
+   Return 0 if successful.  Return -1 and set errno upon failure.  */
+
+int
+chmod_or_fchmod (const char *name, int desc, mode_t mode)
+{
+  if (HAVE_FCHMOD && desc != -1)
+    return fchmod (desc, mode);
+  else
+    return chmod (name, mode);
+}
+
+/* Set the access control lists of a file. If DESC is a valid file
+   descriptor, use file descriptor operations where available, else use
+   filename based operations on NAME.  If access control lists are not
+   available, fchmod the target file to MODE.  Also sets the
+   non-permission bits of the destination file (S_ISUID, S_ISGID, S_ISVTX)
+   to those from MODE if any are set.
+   Return 0 if successful.  Return -1 and set errno upon failure.  */
+
+int
+qset_acl (char const *name, int desc, mode_t mode)
+{
+#if USE_ACL
+# if HAVE_ACL_GET_FILE
+  /* POSIX 1003.1e draft 17 (abandoned) specific version.  */
+  /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */
+#  if !HAVE_ACL_TYPE_EXTENDED
+  /* Linux, FreeBSD, IRIX, Tru64 */
+
+  /* We must also have acl_from_text and acl_delete_def_file.
+     (acl_delete_def_file could be emulated with acl_init followed
+      by acl_set_file, but acl_set_file with an empty acl is
+      unspecified.)  */
+
+#   ifndef HAVE_ACL_FROM_TEXT
+#    error Must have acl_from_text (see POSIX 1003.1e draft 17).
+#   endif
+#   ifndef HAVE_ACL_DELETE_DEF_FILE
+#    error Must have acl_delete_def_file (see POSIX 1003.1e draft 17).
+#   endif
+
+  acl_t acl;
+  int ret;
+
+  if (HAVE_ACL_FROM_MODE) /* Linux */
+    {
+      acl = acl_from_mode (mode);
+      if (!acl)
+        return -1;
+    }
+  else /* FreeBSD, IRIX, Tru64 */
+    {
+      /* If we were to create the ACL using the functions acl_init(),
+         acl_create_entry(), acl_set_tag_type(), acl_set_qualifier(),
+         acl_get_permset(), acl_clear_perm[s](), acl_add_perm(), we
+         would need to create a qualifier.  I don't know how to do this.
+         So create it using acl_from_text().  */
+
+#   if HAVE_ACL_FREE_TEXT /* Tru64 */
+      char acl_text[] = "u::---,g::---,o::---,";
+#   else /* FreeBSD, IRIX */
+      char acl_text[] = "u::---,g::---,o::---";
+#   endif
+
+      if (mode & S_IRUSR) acl_text[ 3] = 'r';
+      if (mode & S_IWUSR) acl_text[ 4] = 'w';
+      if (mode & S_IXUSR) acl_text[ 5] = 'x';
+      if (mode & S_IRGRP) acl_text[10] = 'r';
+      if (mode & S_IWGRP) acl_text[11] = 'w';
+      if (mode & S_IXGRP) acl_text[12] = 'x';
+      if (mode & S_IROTH) acl_text[17] = 'r';
+      if (mode & S_IWOTH) acl_text[18] = 'w';
+      if (mode & S_IXOTH) acl_text[19] = 'x';
+
+      acl = acl_from_text (acl_text);
+      if (!acl)
+        return -1;
+    }
+  if (HAVE_ACL_SET_FD && desc != -1)
+    ret = acl_set_fd (desc, acl);
+  else
+    ret = acl_set_file (name, ACL_TYPE_ACCESS, acl);
+  if (ret != 0)
+    {
+      int saved_errno = errno;
+      acl_free (acl);
+      if (! acl_errno_valid (errno))
+        return chmod_or_fchmod (name, desc, mode);
+      errno = saved_errno;
+      return -1;
+    }
+  else
+    acl_free (acl);
+
+  if (S_ISDIR (mode) && acl_delete_def_file (name))
+    return -1;
+
+  if (!MODE_INSIDE_ACL || (mode & (S_ISUID | S_ISGID | S_ISVTX)))
+    {
+      /* We did not call chmod so far, and either the mode and the ACL are
+         separate or special bits are to be set which don't fit into ACLs.  */
+      return chmod_or_fchmod (name, desc, mode);
+    }
+  return 0;
+
+#  else /* HAVE_ACL_TYPE_EXTENDED */
+  /* Mac OS X */
+
+  /* On Mac OS X,  acl_get_file (name, ACL_TYPE_ACCESS)
+     and           acl_get_file (name, ACL_TYPE_DEFAULT)
+     always return NULL / EINVAL.  You have to use
+                   acl_get_file (name, ACL_TYPE_EXTENDED)
+     or            acl_get_fd (open (name, ...))
+     to retrieve an ACL.
+     On the other hand,
+                   acl_set_file (name, ACL_TYPE_ACCESS, acl)
+     and           acl_set_file (name, ACL_TYPE_DEFAULT, acl)
+     have the same effect as
+                   acl_set_file (name, ACL_TYPE_EXTENDED, acl):
+     Each of these calls sets the file's ACL.  */
+
+  acl_t acl;
+  int ret;
+
+  /* Remove the ACL if the file has ACLs.  */
+  if (HAVE_ACL_GET_FD && desc != -1)
+    acl = acl_get_fd (desc);
+  else
+    acl = acl_get_file (name, ACL_TYPE_EXTENDED);
+  if (acl)
+    {
+      acl_free (acl);
+
+      acl = acl_init (0);
+      if (acl)
+        {
+          if (HAVE_ACL_SET_FD && desc != -1)
+            ret = acl_set_fd (desc, acl);
+          else
+            ret = acl_set_file (name, ACL_TYPE_EXTENDED, acl);
+          if (ret != 0)
+            {
+              int saved_errno = errno;
+              acl_free (acl);
+              if (! acl_errno_valid (saved_errno))
+                return chmod_or_fchmod (name, desc, mode);
+              errno = saved_errno;
+              return -1;
+            }
+          acl_free (acl);
+        }
+    }
+
+  /* Since !MODE_INSIDE_ACL, we have to call chmod explicitly.  */
+  return chmod_or_fchmod (name, desc, mode);
+#  endif
+
+# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
+
+  int done_setacl = 0;
+
+#  ifdef ACE_GETACL
+  /* Solaris also has a different variant of ACLs, used in ZFS and NFSv4
+     file systems (whereas the other ones are used in UFS file systems).  */
+
+  /* The flags in the ace_t structure changed in a binary incompatible way
+     when ACL_NO_TRIVIAL etc. were introduced in <sys/acl.h> version 1.15.
+     How to distinguish the two conventions at runtime?
+     We fetch the existing ACL.  In the old convention, usually three ACEs have
+     a_flags = ACE_OWNER / ACE_GROUP / ACE_OTHER, in the range 0x0100..0x0400.
+     In the new convention, these values are not used.  */
+  int convention;
+
+  {
+    /* Initially, try to read the entries into a stack-allocated buffer.
+       Use malloc if it does not fit.  */
+    enum
+      {
+        alloc_init = 4000 / sizeof (ace_t), /* >= 3 */
+        alloc_max = MIN (INT_MAX, SIZE_MAX / sizeof (ace_t))
+      };
+    ace_t buf[alloc_init];
+    size_t alloc = alloc_init;
+    ace_t *entries = buf;
+    ace_t *malloced = NULL;
+    int count;
+
+    for (;;)
+      {
+        count = (desc != -1
+                 ? facl (desc, ACE_GETACL, alloc, entries)
+                 : acl (name, ACE_GETACL, alloc, entries));
+        if (count < 0 && errno == ENOSPC)
+          {
+            /* Increase the size of the buffer.  */
+            free (malloced);
+            if (alloc > alloc_max / 2)
+              {
+                errno = ENOMEM;
+                return -1;
+              }
+            alloc = 2 * alloc; /* <= alloc_max */
+            entries = malloced = (ace_t *) malloc (alloc * sizeof (ace_t));
+            if (entries == NULL)
+              {
+                errno = ENOMEM;
+                return -1;
+              }
+            continue;
+          }
+        break;
+      }
+
+    if (count <= 0)
+      convention = -1;
+    else
+      {
+        int i;
+
+        convention = 0;
+        for (i = 0; i < count; i++)
+          if (entries[i].a_flags & (OLD_ACE_OWNER | OLD_ACE_GROUP | OLD_ACE_OTHER))
+            {
+              convention = 1;
+              break;
+            }
+      }
+    free (malloced);
+  }
+
+  if (convention >= 0)
+    {
+      ace_t entries[6];
+      int count;
+      int ret;
+
+      if (convention)
+        {
+          /* Running on Solaris 10.  */
+          entries[0].a_type = OLD_ALLOW;
+          entries[0].a_flags = OLD_ACE_OWNER;
+          entries[0].a_who = 0; /* irrelevant */
+          entries[0].a_access_mask = (mode >> 6) & 7;
+          entries[1].a_type = OLD_ALLOW;
+          entries[1].a_flags = OLD_ACE_GROUP;
+          entries[1].a_who = 0; /* irrelevant */
+          entries[1].a_access_mask = (mode >> 3) & 7;
+          entries[2].a_type = OLD_ALLOW;
+          entries[2].a_flags = OLD_ACE_OTHER;
+          entries[2].a_who = 0;
+          entries[2].a_access_mask = mode & 7;
+          count = 3;
+        }
+      else
+        {
+          /* Running on Solaris 10 (newer version) or Solaris 11.
+             The details here were found through "/bin/ls -lvd somefiles".  */
+          entries[0].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
+          entries[0].a_flags = NEW_ACE_OWNER;
+          entries[0].a_who = 0; /* irrelevant */
+          entries[0].a_access_mask = 0;
+          entries[1].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
+          entries[1].a_flags = NEW_ACE_OWNER;
+          entries[1].a_who = 0; /* irrelevant */
+          entries[1].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS
+                                     | NEW_ACE_WRITE_ATTRIBUTES
+                                     | NEW_ACE_WRITE_ACL
+                                     | NEW_ACE_WRITE_OWNER;
+          if (mode & 0400)
+            entries[1].a_access_mask |= NEW_ACE_READ_DATA;
+          else
+            entries[0].a_access_mask |= NEW_ACE_READ_DATA;
+          if (mode & 0200)
+            entries[1].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          else
+            entries[0].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          if (mode & 0100)
+            entries[1].a_access_mask |= NEW_ACE_EXECUTE;
+          else
+            entries[0].a_access_mask |= NEW_ACE_EXECUTE;
+          entries[2].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
+          entries[2].a_flags = NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP;
+          entries[2].a_who = 0; /* irrelevant */
+          entries[2].a_access_mask = 0;
+          entries[3].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
+          entries[3].a_flags = NEW_ACE_GROUP | NEW_ACE_IDENTIFIER_GROUP;
+          entries[3].a_who = 0; /* irrelevant */
+          entries[3].a_access_mask = 0;
+          if (mode & 0040)
+            entries[3].a_access_mask |= NEW_ACE_READ_DATA;
+          else
+            entries[2].a_access_mask |= NEW_ACE_READ_DATA;
+          if (mode & 0020)
+            entries[3].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          else
+            entries[2].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          if (mode & 0010)
+            entries[3].a_access_mask |= NEW_ACE_EXECUTE;
+          else
+            entries[2].a_access_mask |= NEW_ACE_EXECUTE;
+          entries[4].a_type = NEW_ACE_ACCESS_DENIED_ACE_TYPE;
+          entries[4].a_flags = NEW_ACE_EVERYONE;
+          entries[4].a_who = 0;
+          entries[4].a_access_mask = NEW_ACE_WRITE_NAMED_ATTRS
+                                     | NEW_ACE_WRITE_ATTRIBUTES
+                                     | NEW_ACE_WRITE_ACL
+                                     | NEW_ACE_WRITE_OWNER;
+          entries[5].a_type = NEW_ACE_ACCESS_ALLOWED_ACE_TYPE;
+          entries[5].a_flags = NEW_ACE_EVERYONE;
+          entries[5].a_who = 0;
+          entries[5].a_access_mask = NEW_ACE_READ_NAMED_ATTRS
+                                     | NEW_ACE_READ_ATTRIBUTES
+                                     | NEW_ACE_READ_ACL
+                                     | NEW_ACE_SYNCHRONIZE;
+          if (mode & 0004)
+            entries[5].a_access_mask |= NEW_ACE_READ_DATA;
+          else
+            entries[4].a_access_mask |= NEW_ACE_READ_DATA;
+          if (mode & 0002)
+            entries[5].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          else
+            entries[4].a_access_mask |= NEW_ACE_WRITE_DATA | NEW_ACE_APPEND_DATA;
+          if (mode & 0001)
+            entries[5].a_access_mask |= NEW_ACE_EXECUTE;
+          else
+            entries[4].a_access_mask |= NEW_ACE_EXECUTE;
+          count = 6;
+        }
+      if (desc != -1)
+        ret = facl (desc, ACE_SETACL, count, entries);
+      else
+        ret = acl (name, ACE_SETACL, count, entries);
+      if (ret < 0 && errno != EINVAL && errno != ENOTSUP)
+        {
+          if (errno == ENOSYS)
+            return chmod_or_fchmod (name, desc, mode);
+          return -1;
+        }
+      if (ret == 0)
+        done_setacl = 1;
+    }
+#  endif
+
+  if (!done_setacl)
+    {
+      aclent_t entries[3];
+      int ret;
+
+      entries[0].a_type = USER_OBJ;
+      entries[0].a_id = 0; /* irrelevant */
+      entries[0].a_perm = (mode >> 6) & 7;
+      entries[1].a_type = GROUP_OBJ;
+      entries[1].a_id = 0; /* irrelevant */
+      entries[1].a_perm = (mode >> 3) & 7;
+      entries[2].a_type = OTHER_OBJ;
+      entries[2].a_id = 0;
+      entries[2].a_perm = mode & 7;
+
+      if (desc != -1)
+        ret = facl (desc, SETACL,
+                    sizeof (entries) / sizeof (aclent_t), entries);
+      else
+        ret = acl (name, SETACL,
+                   sizeof (entries) / sizeof (aclent_t), entries);
+      if (ret < 0)
+        {
+          if (errno == ENOSYS || errno == EOPNOTSUPP)
+            return chmod_or_fchmod (name, desc, mode);
+          return -1;
+        }
+    }
+
+  if (!MODE_INSIDE_ACL || (mode & (S_ISUID | S_ISGID | S_ISVTX)))
+    {
+      /* We did not call chmod so far, so the special bits have not yet
+         been set.  */
+      return chmod_or_fchmod (name, desc, mode);
+    }
+  return 0;
+
+# elif HAVE_GETACL /* HP-UX */
+
+  struct stat statbuf;
+  int ret;
+
+  if (desc != -1)
+    ret = fstat (desc, &statbuf);
+  else
+    ret = stat (name, &statbuf);
+  if (ret < 0)
+    return -1;
+
+  {
+    struct acl_entry entries[3];
+
+    entries[0].uid = statbuf.st_uid;
+    entries[0].gid = ACL_NSGROUP;
+    entries[0].mode = (mode >> 6) & 7;
+    entries[1].uid = ACL_NSUSER;
+    entries[1].gid = statbuf.st_gid;
+    entries[1].mode = (mode >> 3) & 7;
+    entries[2].uid = ACL_NSUSER;
+    entries[2].gid = ACL_NSGROUP;
+    entries[2].mode = mode & 7;
+
+    if (desc != -1)
+      ret = fsetacl (desc, sizeof (entries) / sizeof (struct acl_entry), entries);
+    else
+      ret = setacl (name, sizeof (entries) / sizeof (struct acl_entry), entries);
+  }
+  if (ret < 0)
+    {
+      if (!(errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
+        return -1;
+
+#  if HAVE_ACLV_H /* HP-UX >= 11.11 */
+      {
+        struct acl entries[4];
+
+        entries[0].a_type = USER_OBJ;
+        entries[0].a_id = 0; /* irrelevant */
+        entries[0].a_perm = (mode >> 6) & 7;
+        entries[1].a_type = GROUP_OBJ;
+        entries[1].a_id = 0; /* irrelevant */
+        entries[1].a_perm = (mode >> 3) & 7;
+        entries[2].a_type = CLASS_OBJ;
+        entries[2].a_id = 0;
+        entries[2].a_perm = (mode >> 3) & 7;
+        entries[3].a_type = OTHER_OBJ;
+        entries[3].a_id = 0;
+        entries[3].a_perm = mode & 7;
+
+        ret = aclsort (sizeof (entries) / sizeof (struct acl), 1, entries);
+        if (ret > 0)
+          abort ();
+        if (ret < 0)
+          {
+            if (0)
+              return chmod_or_fchmod (name, desc, mode);
+            return -1;
+          }
+
+        ret = acl ((char *) name, ACL_SET,
+                   sizeof (entries) / sizeof (struct acl), entries);
+        if (ret < 0)
+          {
+            if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+              return chmod_or_fchmod (name, desc, mode);
+            return -1;
+          }
+      }
+#  else
+      return chmod_or_fchmod (name, desc, mode);
+#  endif
+    }
+
+  if (mode & (S_ISUID | S_ISGID | S_ISVTX))
+    {
+      /* We did not call chmod so far, so the special bits have not yet
+         been set.  */
+      return chmod_or_fchmod (name, desc, mode);
+    }
+  return 0;
+
+# elif HAVE_ACLX_GET && defined ACL_AIX_WIP /* AIX */
+
+  acl_type_list_t types;
+  size_t types_size = sizeof (types);
+  acl_type_t type;
+
+  if (aclx_gettypes (name, &types, &types_size) < 0
+      || types.num_entries == 0)
+    return chmod_or_fchmod (name, desc, mode);
+
+  /* XXX Do we need to clear all types of ACLs for the given file, or is it
+     sufficient to clear the first one?  */
+  type = types.entries[0];
+  if (type.u64 == ACL_AIXC)
+    {
+      union { struct acl a; char room[128]; } u;
+      int ret;
+
+      u.a.acl_len = (char *) &u.a.acl_ext[0] - (char *) &u.a; /* no entries */
+      u.a.acl_mode = mode & ~(S_IXACL | 0777);
+      u.a.u_access = (mode >> 6) & 7;
+      u.a.g_access = (mode >> 3) & 7;
+      u.a.o_access = mode & 7;
+
+      if (desc != -1)
+        ret = aclx_fput (desc, SET_ACL | SET_MODE_S_BITS,
+                         type, &u.a, u.a.acl_len, mode);
+      else
+        ret = aclx_put (name, SET_ACL | SET_MODE_S_BITS,
+                        type, &u.a, u.a.acl_len, mode);
+      if (!(ret < 0 && errno == ENOSYS))
+        return ret;
+    }
+  else if (type.u64 == ACL_NFS4)
+    {
+      union { nfs4_acl_int_t a; char room[128]; } u;
+      nfs4_ace_int_t *ace;
+      int ret;
+
+      u.a.aclVersion = NFS4_ACL_INT_STRUCT_VERSION;
+      u.a.aclEntryN = 0;
+      ace = &u.a.aclEntry[0];
+      {
+        ace->flags = ACE4_ID_SPECIAL;
+        ace->aceWho.special_whoid = ACE4_WHO_OWNER;
+        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
+        ace->aceFlags = 0;
+        ace->aceMask =
+          (mode & 0400 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
+          | (mode & 0200
+             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
+               | ACE4_ADD_SUBDIRECTORY
+             : 0)
+          | (mode & 0100 ? ACE4_EXECUTE : 0);
+        ace->aceWhoString[0] = '\0';
+        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
+        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
+        u.a.aclEntryN++;
+      }
+      {
+        ace->flags = ACE4_ID_SPECIAL;
+        ace->aceWho.special_whoid = ACE4_WHO_GROUP;
+        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
+        ace->aceFlags = 0;
+        ace->aceMask =
+          (mode & 0040 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
+          | (mode & 0020
+             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
+               | ACE4_ADD_SUBDIRECTORY
+             : 0)
+          | (mode & 0010 ? ACE4_EXECUTE : 0);
+        ace->aceWhoString[0] = '\0';
+        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
+        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
+        u.a.aclEntryN++;
+      }
+      {
+        ace->flags = ACE4_ID_SPECIAL;
+        ace->aceWho.special_whoid = ACE4_WHO_EVERYONE;
+        ace->aceType = ACE4_ACCESS_ALLOWED_ACE_TYPE;
+        ace->aceFlags = 0;
+        ace->aceMask =
+          (mode & 0004 ? ACE4_READ_DATA | ACE4_LIST_DIRECTORY : 0)
+          | (mode & 0002
+             ? ACE4_WRITE_DATA | ACE4_ADD_FILE | ACE4_APPEND_DATA
+               | ACE4_ADD_SUBDIRECTORY
+             : 0)
+          | (mode & 0001 ? ACE4_EXECUTE : 0);
+        ace->aceWhoString[0] = '\0';
+        ace->entryLen = (char *) &ace->aceWhoString[4] - (char *) ace;
+        ace = (nfs4_ace_int_t *) (char *) &ace->aceWhoString[4];
+        u.a.aclEntryN++;
+      }
+      u.a.aclLength = (char *) ace - (char *) &u.a;
+
+      if (desc != -1)
+        ret = aclx_fput (desc, SET_ACL | SET_MODE_S_BITS,
+                         type, &u.a, u.a.aclLength, mode);
+      else
+        ret = aclx_put (name, SET_ACL | SET_MODE_S_BITS,
+                        type, &u.a, u.a.aclLength, mode);
+      if (!(ret < 0 && errno == ENOSYS))
+        return ret;
+    }
+
+  return chmod_or_fchmod (name, desc, mode);
+
+# elif HAVE_STATACL /* older AIX */
+
+  union { struct acl a; char room[128]; } u;
+  int ret;
+
+  u.a.acl_len = (char *) &u.a.acl_ext[0] - (char *) &u.a; /* no entries */
+  u.a.acl_mode = mode & ~(S_IXACL | 0777);
+  u.a.u_access = (mode >> 6) & 7;
+  u.a.g_access = (mode >> 3) & 7;
+  u.a.o_access = mode & 7;
+
+  if (desc != -1)
+    ret = fchacl (desc, &u.a, u.a.acl_len);
+  else
+    ret = chacl (name, &u.a, u.a.acl_len);
+
+  if (ret < 0 && errno == ENOSYS)
+    return chmod_or_fchmod (name, desc, mode);
+
+  return ret;
+
+# elif HAVE_ACLSORT /* NonStop Kernel */
+
+  struct acl entries[4];
+  int ret;
+
+  entries[0].a_type = USER_OBJ;
+  entries[0].a_id = 0; /* irrelevant */
+  entries[0].a_perm = (mode >> 6) & 7;
+  entries[1].a_type = GROUP_OBJ;
+  entries[1].a_id = 0; /* irrelevant */
+  entries[1].a_perm = (mode >> 3) & 7;
+  entries[2].a_type = CLASS_OBJ;
+  entries[2].a_id = 0;
+  entries[2].a_perm = (mode >> 3) & 7;
+  entries[3].a_type = OTHER_OBJ;
+  entries[3].a_id = 0;
+  entries[3].a_perm = mode & 7;
+
+  ret = aclsort (sizeof (entries) / sizeof (struct acl), 1, entries);
+  if (ret > 0)
+    abort ();
+  if (ret < 0)
+    {
+      if (0)
+        return chmod_or_fchmod (name, desc, mode);
+      return -1;
+    }
+
+  ret = acl ((char *) name, ACL_SET,
+             sizeof (entries) / sizeof (struct acl), entries);
+  if (ret < 0)
+    {
+      if (0)
+        return chmod_or_fchmod (name, desc, mode);
+      return -1;
+    }
+
+  if (mode & (S_ISUID | S_ISGID | S_ISVTX))
+    {
+      /* We did not call chmod so far, so the special bits have not yet
+         been set.  */
+      return chmod_or_fchmod (name, desc, mode);
+    }
+  return 0;
+
+# else /* Unknown flavor of ACLs */
+  return chmod_or_fchmod (name, desc, mode);
+# endif
+#else /* !USE_ACL */
+  return chmod_or_fchmod (name, desc, mode);
+#endif
+}
index 794fc8b05c65ede27ee9def853ac7bedf00cb4bd..c25a1aba49e677d86048bb4e098df9d3e7427b81 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* quote.h - prototypes for quote.c
 
-   Copyright (C) 1998-2001, 2003, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-2001, 2003, 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
    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 QUOTE_H_
+# define QUOTE_H_ 1
 
-char const *quote_n (int n, char const *name);
-char const *quote (char const *name);
+# include <stddef.h>
+
+/* The quoting options used by quote_n and quote.  Its type is incomplete,
+   so it's useful only in expressions like '&quote_quoting_options'.  */
+extern struct quoting_options quote_quoting_options;
+
+/* Return an unambiguous printable representation of ARG (of size
+   ARGSIZE), allocated in slot N, suitable for diagnostics.  If
+   ARGSIZE is SIZE_MAX, use the string length of the argument for
+   ARGSIZE.  */
+char const *quote_n_mem (int n, char const *arg, size_t argsize);
+
+/* Return an unambiguous printable representation of ARG (of size
+   ARGSIZE), suitable for diagnostics.  If ARGSIZE is SIZE_MAX, use
+   the string length of the argument for ARGSIZE.  */
+char const *quote_mem (char const *arg, size_t argsize);
+
+/* Return an unambiguous printable representation of ARG, allocated in
+   slot N, suitable for diagnostics.  */
+char const *quote_n (int n, char const *arg);
+
+/* Return an unambiguous printable representation of ARG, suitable for
+   diagnostics.  */
+char const *quote (char const *arg);
+
+#endif /* !QUOTE_H_ */
index a0aa14f85c1d59d43dc5248cd248d9d2ba06f646..9c0648f6bd657f66ab020198d3bab42303acf758 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* quotearg.c - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004-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
 
 /* Written by Paul Eggert <eggert@twinsun.com> */
 
+/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that
+   the quoting_options_from_style function might be candidate for
+   attribute 'pure'  */
+#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+#endif
+
 #include <config.h>
 
 #include "quotearg.h"
+#include "quote.h"
 
 #include "xalloc.h"
+#include "c-strcaseeq.h"
+#include "localcharset.h"
 
 #include <ctype.h>
 #include <errno.h>
@@ -167,25 +177,54 @@ set_custom_quoting (struct quoting_options *o,
 }
 
 /* Return quoting options for STYLE, with no extra quoting.  */
-static struct quoting_options
+static struct quoting_options /* NOT PURE!! */
 quoting_options_from_style (enum quoting_style style)
 {
-  struct quoting_options o;
+  struct quoting_options o = { 0, 0, { 0 }, NULL, NULL };
+  if (style == custom_quoting_style)
+    abort ();
   o.style = style;
-  o.flags = 0;
-  memset (o.quote_these_too, 0, sizeof o.quote_these_too);
   return o;
 }
 
 /* MSGID approximates a quotation mark.  Return its translation if it
-   has one; otherwise, return either it or "\"", depending on S.  */
+   has one; otherwise, return either it or "\"", depending on S.
+
+   S is either clocale_quoting_style or locale_quoting_style.  */
 static char const *
 gettext_quote (char const *msgid, enum quoting_style s)
 {
   char const *translation = _(msgid);
-  if (translation == msgid && s == clocale_quoting_style)
-    translation = "\"";
-  return translation;
+  char const *locale_code;
+
+  if (translation != msgid)
+    return translation;
+
+  /* For UTF-8 and GB-18030, use single quotes U+2018 and U+2019.
+     Here is a list of other locales that include U+2018 and U+2019:
+
+        ISO-8859-7   0xA1                 KOI8-T       0x91
+        CP869        0x8B                 CP874        0x91
+        CP932        0x81 0x65            CP936        0xA1 0xAE
+        CP949        0xA1 0xAE            CP950        0xA1 0xA5
+        CP1250       0x91                 CP1251       0x91
+        CP1252       0x91                 CP1253       0x91
+        CP1254       0x91                 CP1255       0x91
+        CP1256       0x91                 CP1257       0x91
+        EUC-JP       0xA1 0xC6            EUC-KR       0xA1 0xAE
+        EUC-TW       0xA1 0xE4            BIG5         0xA1 0xA5
+        BIG5-HKSCS   0xA1 0xA5            EUC-CN       0xA1 0xAE
+        GBK          0xA1 0xAE            Georgian-PS  0x91
+        PT154        0x91
+
+     None of these is still in wide use; using iconv is overkill.  */
+  locale_code = locale_charset ();
+  if (STRCASEEQ (locale_code, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+    return msgid[0] == '`' ? "\xe2\x80\x98": "\xe2\x80\x99";
+  if (STRCASEEQ (locale_code, "GB18030", 'G','B','1','8','0','3','0',0,0))
+    return msgid[0] == '`' ? "\xa1\ae": "\xa1\xaf";
+
+  return (s == clocale_quoting_style ? "\"" : "'");
 }
 
 /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
@@ -253,22 +292,24 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
           {
             /* 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
-               "'".  If the catalog has no translation,
-               locale_quoting_style quotes `like this', and
-               clocale_quoting_style quotes "like this".
-
-               For example, an American English Unicode locale should
-               translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-               should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-               MARK).  A British English Unicode locale should instead
-               translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-               and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+               "'".  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_mark#Glyphs>
+               <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
                and use glyphs suitable for your language.  */
             left_quote = gettext_quote (N_("`"), quoting_style);
             right_quote = gettext_quote (N_("'"), quoting_style);
@@ -309,7 +350,12 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
 
       if (backslash_escapes
           && 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)
@@ -732,7 +778,7 @@ quotearg_n_options (int n, char const *arg, size_t argsize,
 
   if (nslots <= n0)
     {
-      /* FIXME: technically, the type of n1 should be `unsigned int',
+      /* FIXME: technically, the type of n1 should be 'unsigned int',
          but that evokes an unsuppressible warning from gcc-4.0.1 and
          older.  If gcc ever provides an option to suppress that warning,
          revert to the original type, so that the test in xalloc_oversized
@@ -888,3 +934,37 @@ quotearg_custom_mem (char const *left_quote, char const *right_quote,
   return quotearg_n_custom_mem (0, left_quote, right_quote, arg,
                                 argsize);
 }
+
+
+/* The quoting option used by the functions of quote.h.  */
+struct quoting_options quote_quoting_options =
+  {
+    locale_quoting_style,
+    0,
+    { 0 },
+    NULL, NULL
+  };
+
+char const *
+quote_n_mem (int n, char const *arg, size_t argsize)
+{
+  return quotearg_n_options (n, arg, argsize, &quote_quoting_options);
+}
+
+char const *
+quote_mem (char const *arg, size_t argsize)
+{
+  return quote_n_mem (0, arg, argsize);
+}
+
+char const *
+quote_n (int n, char const *arg)
+{
+  return quote_n_mem (n, arg, SIZE_MAX);
+}
+
+char const *
+quote (char const *arg)
+{
+  return quote_n (0, arg);
+}
index e901914edcee9834b97fb624fb9612ff5c391765..44dff4e944b932cbf0a33d9b06b99121ee91980d 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* quotearg.h - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004, 2006, 2008-2011 Free Software Foundation,
+   Copyright (C) 1998-2002, 2004, 2006, 2008-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -114,8 +114,10 @@ enum quoting_style
     */
     escape_quoting_style,
 
-    /* Like clocale_quoting_style, but quote `like this' instead of
-       "like this" in the default C locale (ls --quoting-style=locale).
+    /* Like clocale_quoting_style, but use single quotes in the
+       default C locale or if the program does not use gettext
+       (ls --quoting-style=locale).  For UTF-8 locales, quote
+       characters will use Unicode.
 
        LC_MESSAGES=C
        quotearg_buffer:
diff --git a/gnu/raise.c b/gnu/raise.c
new file mode 100644 (file)
index 0000000..97295dd
--- /dev/null
@@ -0,0 +1,81 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a non-threads replacement for the POSIX raise function.
+
+   Copyright (C) 2002-2003, 2005-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/>.  */
+
+/* written by Jim Meyering and Bruno Haible */
+
+#include <config.h>
+
+/* Specification.  */
+#include <signal.h>
+
+#if HAVE_RAISE
+/* Native Windows platform.  */
+
+# include <errno.h>
+
+# include "msvc-inval.h"
+
+# undef raise
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+raise_nothrow (int sig)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = raise (sig);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EINVAL;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+# else
+#  define raise_nothrow raise
+# endif
+
+#else
+/* An old Unix platform.  */
+
+# include <unistd.h>
+
+# define rpl_raise raise
+
+#endif
+
+int
+rpl_raise (int sig)
+{
+#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE
+  if (sig == SIGPIPE)
+    return _gl_raise_SIGPIPE ();
+#endif
+
+#if HAVE_RAISE
+  return raise_nothrow (sig);
+#else
+  return kill (getpid (), sig);
+#endif
+}
index f36cac6dde6f8b40ac0ff6d10dd8743010f59c65..cddc6e6904ee3d7e62cd655abd541dcd64423cf3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Searching in a string.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
diff --git a/gnu/read.c b/gnu/read.c
new file mode 100644 (file)
index 0000000..13e4d44
--- /dev/null
@@ -0,0 +1,87 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* POSIX compatible read() function.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it 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 <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# include <errno.h>
+# include <io.h>
+
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
+# include <windows.h>
+
+# include "msvc-inval.h"
+# include "msvc-nothrow.h"
+
+# undef read
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static ssize_t
+read_nothrow (int fd, void *buf, size_t count)
+{
+  ssize_t result;
+
+  TRY_MSVC_INVAL
+    {
+      result = read (fd, buf, count);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+# else
+#  define read_nothrow read
+# endif
+
+ssize_t
+rpl_read (int fd, void *buf, size_t count)
+{
+  ssize_t ret = read_nothrow (fd, buf, count);
+
+# if GNULIB_NONBLOCKING
+  if (ret < 0
+      && GetLastError () == ERROR_NO_DATA)
+    {
+      HANDLE h = (HANDLE) _get_osfhandle (fd);
+      if (GetFileType (h) == FILE_TYPE_PIPE)
+        {
+          /* h is a pipe or socket.  */
+          DWORD state;
+          if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0)
+              && (state & PIPE_NOWAIT) != 0)
+            /* h is a pipe in non-blocking mode.
+               Change errno from EINVAL to EAGAIN.  */
+            errno = EAGAIN;
+        }
+    }
+# endif
+
+  return ret;
+}
+
+#endif
diff --git a/gnu/readdir.c b/gnu/readdir.c
new file mode 100644 (file)
index 0000000..ab14942
--- /dev/null
@@ -0,0 +1,100 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read the next entry of a directory.
+   Copyright (C) 2011-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.  */
+#include <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#include "dirent-private.h"
+
+struct dirent *
+readdir (DIR *dirp)
+{
+  char type;
+  struct dirent *result;
+
+  /* There is no need to add code to produce entries for "." and "..".
+     According to the POSIX:2008 section "4.12 Pathname Resolution"
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html>
+     "." and ".." are syntactic entities.
+     POSIX also says:
+       "If entries for dot or dot-dot exist, one entry shall be returned
+        for dot and one entry shall be returned for dot-dot; otherwise,
+        they shall not be returned."  */
+
+  switch (dirp->status)
+    {
+    case -2:
+      /* End of directory already reached.  */
+      return NULL;
+    case -1:
+      break;
+    case 0:
+      if (!FindNextFile (dirp->current, &dirp->entry))
+        {
+          switch (GetLastError ())
+            {
+            case ERROR_NO_MORE_FILES:
+              dirp->status = -2;
+              return NULL;
+            default:
+              errno = EIO;
+              return NULL;
+            }
+        }
+      break;
+    default:
+      errno = dirp->status;
+      return NULL;
+    }
+
+  dirp->status = 0;
+
+  if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+    type = DT_DIR;
+  else if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+    type = DT_LNK;
+  else if ((dirp->entry.dwFileAttributes
+            & ~(FILE_ATTRIBUTE_READONLY
+                | FILE_ATTRIBUTE_HIDDEN
+                | FILE_ATTRIBUTE_SYSTEM
+                | FILE_ATTRIBUTE_ARCHIVE
+                | FILE_ATTRIBUTE_NORMAL
+                | FILE_ATTRIBUTE_TEMPORARY
+                | FILE_ATTRIBUTE_SPARSE_FILE
+                | FILE_ATTRIBUTE_COMPRESSED
+                | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+                | FILE_ATTRIBUTE_ENCRYPTED)) == 0)
+    /* Devices like COM1, LPT1, NUL would also have the attributes 0x20 but
+       they cannot occur here.  */
+    type = DT_REG;
+  else
+    type = DT_UNKNOWN;
+
+  /* Reuse the memory of dirp->entry for the result.  */
+  result =
+    (struct dirent *)
+    ((char *) dirp->entry.cFileName - offsetof (struct dirent, d_name[0]));
+  result->d_type = type;
+
+  return result;
+}
index 479db3d533170e68233d238d065893c3f8c580ca..dd8c1241b81f1cd9ff4879dbcfd71665ff6281cb 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Stub for readlink().
-   Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 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
index 151c76d6742ed932375a4f9052adacabada971cb..6cdf778deebd8d5bb6d94bfd57dc25f3ee82b91f 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Read a symlink relative to an open directory.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index a035721db4b79b2cb2d304bc37faba67c745a5a7..3a4fe28583ece1bc89827f2723c0302cc1dd8334 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* realloc() function that is glibc compatible.
 
-   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2011 Free Software
+   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -20,6 +20,7 @@
 
 /* written by Jim Meyering and Bruno Haible */
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 
 /* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h.  */
 # define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1
 #endif
 
-/* Below we want to call the system's malloc and realloc.
-   Undefine the symbols here so that including <stdlib.h> provides a
-   declaration of malloc(), not of rpl_malloc(), and likewise for realloc.  */
-#undef malloc
-#undef realloc
-
-/* Specification.  */
 #include <stdlib.h>
 
 #include <errno.h>
 
-/* Below we want to call the system's malloc and realloc.
-   Undefine the symbols, if they were defined by gnulib's <stdlib.h>
-   replacement.  */
-#undef malloc
-#undef realloc
-
 /* Change the size of an allocated block of memory P to N bytes,
    with error checking.  If N is zero, change it to 1.  If P is NULL,
    use malloc.  */
index a57eaef607e2a4aa83b464eae27e0a954f3f21ca..112bcdc64f8f3d05e5867b4b2a45246c61826a92 100644 (file)
@@ -1,6 +1,6 @@
 # Add this package to a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009-2011 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 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
@@ -13,8 +13,7 @@
 #   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, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # Written by Bruno Haible <haible@clisp.cons.org>.
 #
index e23097db33e87d1d399f81ac143de57a6be35a9d..6f73868476300659829ccc91e2f2d729940489bf 100644 (file)
@@ -1,6 +1,6 @@
 # Remove this package from a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009-2011 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 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
@@ -13,8 +13,7 @@
 #   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, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # Written by Bruno Haible <haible@clisp.cons.org>.
 #
index f39d3298a1d2815fa5e1a6929784f6d4a128c72a..447262f230c9a2a4de070b5fde7dc607f7f7e62f 100644 (file)
@@ -1,23 +1,23 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
                                          size_t length, reg_syntax_t syntax);
@@ -96,20 +96,20 @@ static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
                                      bitset_t sbcset,
                                      re_charset_t *mbcset,
                                      Idx *char_class_alloc,
-                                     const unsigned char *class_name,
+                                     const char *class_name,
                                      reg_syntax_t syntax);
 #else  /* not RE_ENABLE_I18N */
 static reg_errcode_t build_equiv_class (bitset_t sbcset,
                                        const unsigned char *name);
 static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
                                      bitset_t sbcset,
-                                     const unsigned char *class_name,
+                                     const char *class_name,
                                      reg_syntax_t syntax);
 #endif /* not RE_ENABLE_I18N */
 static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
                                       RE_TRANSLATE_TYPE trans,
-                                      const unsigned char *class_name,
-                                      const unsigned char *extra,
+                                      const char *class_name,
+                                      const char *extra,
                                       bool non_match, reg_errcode_t *err);
 static bin_tree_t *create_tree (re_dfa_t *dfa,
                                bin_tree_t *left, bin_tree_t *right,
@@ -208,7 +208,7 @@ static const size_t __re_error_msgid_idx[] =
    compiles PATTERN (of length LENGTH) and puts the result in BUFP.
    Returns 0 if the pattern was valid, otherwise an error string.
 
-   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
+   Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields
    are set in BUFP on entry.  */
 
 #ifdef _LIBC
@@ -243,7 +243,7 @@ re_compile_pattern (const char *pattern, size_t length,
 weak_alias (__re_compile_pattern, re_compile_pattern)
 #endif
 
-/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
+/* Set by 're_set_syntax' to the current regexp syntax to recognize.  Can
    also be assigned to arbitrarily: each pattern buffer stores its own
    syntax, so it can be changed between regex compilations.  */
 /* This has no initializer because initialized variables in Emacs
@@ -275,7 +275,7 @@ int
 re_compile_fastmap (bufp)
     struct re_pattern_buffer *bufp;
 {
-  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  re_dfa_t *dfa = bufp->buffer;
   char *fastmap = bufp->fastmap;
 
   memset (fastmap, '\0', sizeof (char) * SBC_MAX);
@@ -294,7 +294,7 @@ weak_alias (__re_compile_fastmap, re_compile_fastmap)
 #endif
 
 static inline void
-__attribute ((always_inline))
+__attribute__ ((always_inline))
 re_set_fastmap (char *fastmap, bool icase, int ch)
 {
   fastmap[ch] = 1;
@@ -309,7 +309,7 @@ static void
 re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                         char *fastmap)
 {
-  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  re_dfa_t *dfa = bufp->buffer;
   Idx node_cnt;
   bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
   for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
@@ -441,15 +441,15 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
    PREG is a regex_t *.  We do not expect any fields to be initialized,
    since POSIX says we shouldn't.  Thus, we set
 
-     `buffer' to the compiled pattern;
-     `used' to the length of the compiled pattern;
-     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+     'buffer' to the compiled pattern;
+     'used' to the length of the compiled pattern;
+     'syntax' to RE_SYNTAX_POSIX_EXTENDED if the
        REG_EXTENDED bit in CFLAGS is set; otherwise, to
        RE_SYNTAX_POSIX_BASIC;
-     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
-     `fastmap' to an allocated space for the fastmap;
-     `fastmap_accurate' to zero;
-     `re_nsub' to the number of subexpressions in PATTERN.
+     'newline_anchor' to REG_NEWLINE being set in CFLAGS;
+     'fastmap' to an allocated space for the fastmap;
+     'fastmap_accurate' to zero;
+     're_nsub' to the number of subexpressions in PATTERN.
 
    PATTERN is the address of the pattern string.
 
@@ -588,19 +588,23 @@ weak_alias (__regerror, regerror)
 static const bitset_t utf8_sb_map =
 {
   /* Set the first 128 bits.  */
-# if 4 * BITSET_WORD_BITS < ASCII_CHARS
-#  error "bitset_word_t is narrower than 32 bits"
-# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
+# if defined __GNUC__ && !defined __STRICT_ANSI__
+  [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
+# else
+#  if 4 * BITSET_WORD_BITS < ASCII_CHARS
+#   error "bitset_word_t is narrower than 32 bits"
+#  elif 3 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX,
-# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
+#  elif 2 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX, BITSET_WORD_MAX,
-# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
+#  elif 1 * BITSET_WORD_BITS < ASCII_CHARS
   BITSET_WORD_MAX,
-# endif
+#  endif
   (BITSET_WORD_MAX
    >> (SBC_MAX % BITSET_WORD_BITS == 0
        ? 0
        : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
+# endif
 };
 #endif
 
@@ -659,9 +663,12 @@ void
 regfree (preg)
     regex_t *preg;
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  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;
 
@@ -720,7 +727,7 @@ re_comp (s)
                                 + __re_error_msgid_idx[(int) REG_ESPACE]);
     }
 
-  /* Since `re_exec' always passes NULL for the `regs' argument, we
+  /* Since 're_exec' always passes NULL for the 'regs' argument, we
      don't need to initialize the pattern buffer fields which affect it.  */
 
   /* Match anchors at newlines.  */
@@ -731,7 +738,7 @@ re_comp (s)
   if (!ret)
     return NULL;
 
-  /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+  /* Yes, we're discarding 'const' here if !HAVE_LIBINTL.  */
   return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
 }
 
@@ -766,7 +773,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
   preg->regs_allocated = REGS_UNALLOCATED;
 
   /* Initialize the dfa.  */
-  dfa = (re_dfa_t *) preg->buffer;
+  dfa = preg->buffer;
   if (BE (preg->allocated < sizeof (re_dfa_t), 0))
     {
       /* If zero allocated, but buffer is non-null, try to realloc
@@ -777,11 +784,13 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
       if (dfa == NULL)
        return REG_ESPACE;
       preg->allocated = sizeof (re_dfa_t);
-      preg->buffer = (unsigned char *) dfa;
+      preg->buffer = dfa;
     }
   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);
@@ -795,8 +804,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))
@@ -804,6 +811,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;
@@ -836,6 +844,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;
@@ -852,7 +861,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
 {
   __re_size_t table_size;
 #ifndef _LIBC
-  char *codeset_name;
+  const char *codeset_name;
 #endif
 #ifdef RE_ENABLE_I18N
   size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t));
@@ -875,7 +884,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
      calculation below, and for similar doubling calculations
      elsewhere.  And it's <= rather than <, because some of the
      doubling calculations add 1 afterwards.  */
-  if (BE (SIZE_MAX / max_object_size / 2 <= pat_len, 0))
+  if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0))
     return REG_ESPACE;
 
   dfa->nodes_alloc = pat_len + 1;
@@ -898,8 +907,10 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
                       != 0);
 #else
   codeset_name = nl_langinfo (CODESET);
-  if (strcasecmp (codeset_name, "UTF-8") == 0
-      || strcasecmp (codeset_name, "UTF8") == 0)
+  if ((codeset_name[0] == 'U' || codeset_name[0] == 'u')
+      && (codeset_name[1] == 'T' || codeset_name[1] == 't')
+      && (codeset_name[2] == 'F' || codeset_name[2] == 'f')
+      && strcmp (codeset_name + 3 + (codeset_name[3] == '-'), "8") == 0)
     dfa->is_utf8 = 1;
 
   /* We check exhaustively in the loop below if this charset is a
@@ -949,9 +960,43 @@ static void
 internal_function
 init_word_char (re_dfa_t *dfa)
 {
-  int i, j, ch;
+  int i = 0;
+  int j;
+  int ch = 0;
   dfa->word_ops_used = 1;
-  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+  if (BE (dfa->map_notascii == 0, 1))
+    {
+      bitset_word_t bits0 = 0x00000000;
+      bitset_word_t bits1 = 0x03ff0000;
+      bitset_word_t bits2 = 0x87fffffe;
+      bitset_word_t bits3 = 0x07fffffe;
+      if (BITSET_WORD_BITS == 64)
+       {
+         dfa->word_char[0] = bits1 << 31 << 1 | bits0;
+         dfa->word_char[1] = bits3 << 31 << 1 | bits2;
+         i = 2;
+       }
+      else if (BITSET_WORD_BITS == 32)
+       {
+         dfa->word_char[0] = bits0;
+         dfa->word_char[1] = bits1;
+         dfa->word_char[2] = bits2;
+         dfa->word_char[3] = bits3;
+         i = 4;
+       }
+      else
+        goto general_case;
+      ch = 128;
+
+      if (BE (dfa->is_utf8, 1))
+       {
+         memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8);
+         return;
+       }
+    }
+
+ general_case:
+  for (; i < BITSET_WORDS; ++i)
     for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
       if (isalnum (ch) || ch == '_')
        dfa->word_char[i] |= (bitset_word_t) 1 << j;
@@ -962,7 +1007,7 @@ init_word_char (re_dfa_t *dfa)
 static void
 free_workarea_compile (regex_t *preg)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_storage_t *storage, *next;
   for (storage = dfa->str_tree_storage; storage; storage = next)
     {
@@ -1146,7 +1191,7 @@ optimize_utf8 (re_dfa_t *dfa)
 static reg_errcode_t
 analyze (regex_t *preg)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   reg_errcode_t ret;
 
   /* Allocate arrays.  */
@@ -1327,7 +1372,7 @@ lower_subexps (void *extra, bin_tree_t *node)
 static bin_tree_t *
 lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_t *body = node->left;
   bin_tree_t *op, *cls, *tree1, *tree;
 
@@ -1661,7 +1706,7 @@ calc_eclosure (re_dfa_t *dfa)
       /* If we have already calculated, skip it.  */
       if (dfa->eclosures[node_idx].nelem != 0)
        continue;
-      /* Calculate epsilon closure of `node_idx'.  */
+      /* Calculate epsilon closure of 'node_idx'.  */
       err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
       if (BE (err != REG_NOERROR, 0))
        return err;
@@ -1711,14 +1756,14 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
       {
        re_node_set eclosure_elem;
        Idx edest = dfa->edests[node].elems[i];
-       /* If calculating the epsilon closure of `edest' is in progress,
+       /* If calculating the epsilon closure of 'edest' is in progress,
           return intermediate result.  */
        if (dfa->eclosures[edest].nelem == REG_MISSING)
          {
            incomplete = true;
            continue;
          }
-       /* If we haven't calculated the epsilon closure of `edest' yet,
+       /* If we haven't calculated the epsilon closure of 'edest' yet,
           calculate now. Otherwise use calculated epsilon closure.  */
        if (dfa->eclosures[edest].nelem == 0)
          {
@@ -1728,11 +1773,11 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
          }
        else
          eclosure_elem = dfa->eclosures[edest];
-       /* Merge the epsilon closure of `edest'.  */
+       /* Merge the epsilon closure of 'edest'.  */
        err = re_node_set_merge (&eclosure, &eclosure_elem);
        if (BE (err != REG_NOERROR, 0))
          return err;
-       /* If the epsilon closure of `edest' is incomplete,
+       /* If the epsilon closure of 'edest' is incomplete,
           the epsilon closure of this node is also incomplete.  */
        if (dfa->eclosures[edest].nelem == 0)
          {
@@ -2094,7 +2139,7 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
 
 /* Entry point of the parser.
    Parse the regular expression REGEXP and return the structure tree.
-   If an error is occured, ERR is set by error code, and return NULL.
+   If an error occurs, ERR is set by error code, and return NULL.
    This function build the following tree, from regular expression <reg_exp>:
           CAT
           / \
@@ -2108,7 +2153,7 @@ static bin_tree_t *
 parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
        reg_errcode_t *err)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_t *tree, *eor, *root;
   re_token_t current_token;
   dfa->syntax = syntax;
@@ -2136,13 +2181,13 @@ parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
          /   \
    <branch1> <branch2>
 
-   ALT means alternative, which represents the operator `|'.  */
+   ALT means alternative, which represents the operator '|'.  */
 
 static bin_tree_t *
 parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
               reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_t *tree, *branch = NULL;
   tree = parse_branch (regexp, preg, token, syntax, nest, err);
   if (BE (*err != REG_NOERROR && tree == NULL, 0))
@@ -2184,7 +2229,7 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
              reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
 {
   bin_tree_t *tree, *expr;
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   tree = parse_expression (regexp, preg, token, syntax, nest, err);
   if (BE (*err != REG_NOERROR && tree == NULL, 0))
     return NULL;
@@ -2195,16 +2240,21 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
       expr = parse_expression (regexp, preg, token, syntax, nest, err);
       if (BE (*err != REG_NOERROR && expr == NULL, 0))
        {
+         if (tree != NULL)
+           postorder (tree, free_tree, NULL);
          return NULL;
        }
       if (tree != NULL && expr != NULL)
        {
-         tree = create_tree (dfa, tree, expr, CONCAT);
-         if (tree == NULL)
+         bin_tree_t *newtree = create_tree (dfa, tree, expr, CONCAT);
+         if (newtree == NULL)
            {
+             postorder (expr, free_tree, NULL);
+             postorder (tree, free_tree, NULL);
              *err = REG_ESPACE;
              return NULL;
            }
+         tree = newtree;
        }
       else if (tree == NULL)
        tree = expr;
@@ -2223,7 +2273,7 @@ static bin_tree_t *
 parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
                  reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_t *tree;
   switch (token->type)
     {
@@ -2379,8 +2429,8 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
     case OP_WORD:
     case OP_NOTWORD:
       tree = build_charclass_op (dfa, regexp->trans,
-                                (const unsigned char *) "alnum",
-                                (const unsigned char *) "_",
+                                "alnum",
+                                "_",
                                 token->type == OP_NOTWORD, err);
       if (BE (*err != REG_NOERROR && tree == NULL, 0))
        return NULL;
@@ -2388,8 +2438,8 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
     case OP_SPACE:
     case OP_NOTSPACE:
       tree = build_charclass_op (dfa, regexp->trans,
-                                (const unsigned char *) "space",
-                                (const unsigned char *) "",
+                                "space",
+                                "",
                                 token->type == OP_NOTSPACE, err);
       if (BE (*err != REG_NOERROR && tree == NULL, 0))
        return NULL;
@@ -2439,7 +2489,7 @@ static bin_tree_t *
 parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
               reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
 {
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  re_dfa_t *dfa = preg->buffer;
   bin_tree_t *tree;
   size_t cur_nsub;
   cur_nsub = preg->re_nsub++;
@@ -2453,7 +2503,11 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
     {
       tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
       if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
-       *err = REG_EPAREN;
+       {
+         if (tree != NULL)
+           postorder (tree, free_tree, NULL);
+         *err = REG_EPAREN;
+       }
       if (BE (*err != REG_NOERROR, 0))
        return NULL;
     }
@@ -2531,6 +2585,12 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
          *err = REG_BADBR;
          return NULL;
        }
+
+      if (BE (RE_DUP_MAX < (end == REG_MISSING ? start : end), 0))
+       {
+         *err = REG_ESIZE;
+         return NULL;
+       }
     }
   else
     {
@@ -2571,7 +2631,10 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
     old_tree = NULL;
 
   if (elem->token.type == SUBEXP)
-    postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
+    {
+      uintptr_t subidx = elem->token.opr.idx;
+      postorder (elem, mark_opt_subexp, (void *) subidx);
+    }
 
   tree = create_tree (dfa, elem, NULL,
                      (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT));
@@ -2617,7 +2680,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
      Build the range expression which starts from START_ELEM, and ends
      at END_ELEM.  The result are written to MBCSET and SBCSET.
      RANGE_ALLOC is the allocated size of mbcset->range_starts, and
-     mbcset->range_ends, is a pointer argument sinse we may
+     mbcset->range_ends, is a pointer argument since we may
      update it.  */
 
 static reg_errcode_t
@@ -2656,7 +2719,6 @@ build_range_exp (const reg_syntax_t syntax,
     wchar_t wc;
     wint_t start_wc;
     wint_t end_wc;
-    wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
 
     start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
                : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
@@ -2670,11 +2732,7 @@ build_range_exp (const reg_syntax_t syntax,
              ? __btowc (end_ch) : end_elem->opr.wch);
     if (start_wc == WEOF || end_wc == WEOF)
       return REG_ECOLLATE;
-    cmp_buf[0] = start_wc;
-    cmp_buf[4] = end_wc;
-
-    if (BE ((syntax & RE_NO_EMPTY_RANGES)
-            && wcscoll (cmp_buf, cmp_buf + 4) > 0, 0))
+    else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0))
       return REG_ERANGE;
 
     /* Got valid collation sequence values, add them as a new entry.
@@ -2715,9 +2773,7 @@ build_range_exp (const reg_syntax_t syntax,
     /* Build the table for single byte characters.  */
     for (wc = 0; wc < SBC_MAX; ++wc)
       {
-       cmp_buf[2] = wc;
-       if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
-           && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+       if (start_wc <= wc && wc <= end_wc)
          bitset_set (sbcset, wc);
       }
   }
@@ -2751,11 +2807,12 @@ build_range_exp (const reg_syntax_t syntax,
 
 static reg_errcode_t
 internal_function
-build_collating_symbol (bitset_t sbcset,
 # ifdef RE_ENABLE_I18N
-                       re_charset_t *mbcset, Idx *coll_sym_alloc,
-# endif
-                       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 */
 {
   size_t name_len = strlen ((const char *) name);
   if (BE (name_len != 1, 0))
@@ -2783,42 +2840,31 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
   const int32_t *symb_table;
   const unsigned char *extra;
 
-  /* Local function for parse_bracket_exp used in _LIBC environement.
-     Seek the collating symbol entry correspondings to NAME.
-     Return the index of the symbol in the SYMB_TABLE.  */
+  /* Local function for parse_bracket_exp used in _LIBC environment.
+     Seek the collating symbol entry corresponding to NAME.
+     Return the index of the symbol in the SYMB_TABLE,
+     or -1 if not found.  */
 
   auto inline int32_t
-  __attribute ((always_inline))
-  seek_collating_symbol_entry (name, name_len)
-        const unsigned char *name;
-        size_t name_len;
+  __attribute__ ((always_inline))
+  seek_collating_symbol_entry (const unsigned char *name, size_t name_len)
     {
-      int32_t hash = elem_hash ((const char *) name, name_len);
-      int32_t elem = hash % table_size;
-      if (symb_table[2 * elem] != 0)
-       {
-         int32_t second = hash % (table_size - 2) + 1;
+      int32_t elem;
 
-         do
-           {
-             /* First compare the hashing value.  */
-             if (symb_table[2 * elem] == hash
-                 /* Compare the length of the name.  */
-                 && name_len == extra[symb_table[2 * elem + 1]]
-                 /* Compare the name.  */
-                 && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
-                            name_len) == 0)
-               {
-                 /* Yep, this is the entry.  */
-                 break;
-               }
-
-             /* Next entry.  */
-             elem += second;
-           }
-         while (symb_table[2 * elem] != 0);
-       }
-      return elem;
+      for (elem = 0; elem < table_size; elem++)
+       if (symb_table[2 * elem] != 0)
+         {
+           int32_t idx = symb_table[2 * elem + 1];
+           /* Skip the name of collating element name.  */
+           idx += 1 + extra[idx];
+           if (/* Compare the length of the name.  */
+               name_len == extra[idx]
+               /* Compare the name.  */
+               && memcmp (name, &extra[idx + 1], name_len) == 0)
+             /* Yep, this is the entry.  */
+             return elem;
+         }
+      return -1;
     }
 
   /* Local function for parse_bracket_exp used in _LIBC environment.
@@ -2826,9 +2872,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
      Return the value if succeeded, UINT_MAX otherwise.  */
 
   auto inline unsigned int
-  __attribute ((always_inline))
-  lookup_collation_sequence_value (br_elem)
-        bracket_elem_t *br_elem;
+  __attribute__ ((always_inline))
+  lookup_collation_sequence_value (bracket_elem_t *br_elem)
     {
       if (br_elem->type == SB_CHAR)
        {
@@ -2856,7 +2901,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
              int32_t elem, idx;
              elem = seek_collating_symbol_entry (br_elem->opr.name,
                                                  sym_name_len);
-             if (symb_table[2 * elem] != 0)
+             if (elem != -1)
                {
                  /* We found the entry.  */
                  idx = symb_table[2 * elem + 1];
@@ -2874,7 +2919,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
                  /* Return the collation sequence value.  */
                  return *(unsigned int *) (extra + idx);
                }
-             else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
+             else if (sym_name_len == 1)
                {
                  /* No valid character.  Match it as a single byte
                     character.  */
@@ -2887,20 +2932,17 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       return UINT_MAX;
     }
 
-  /* Local function for parse_bracket_exp used in _LIBC environement.
+  /* Local function for parse_bracket_exp used in _LIBC environment.
      Build the range expression which starts from START_ELEM, and ends
      at END_ELEM.  The result are written to MBCSET and SBCSET.
      RANGE_ALLOC is the allocated size of mbcset->range_starts, and
-     mbcset->range_ends, is a pointer argument sinse we may
+     mbcset->range_ends, is a pointer argument since we may
      update it.  */
 
   auto inline reg_errcode_t
-  __attribute ((always_inline))
-  build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
-        re_charset_t *mbcset;
-        Idx *range_alloc;
-        bitset_t sbcset;
-        bracket_elem_t *start_elem, *end_elem;
+  __attribute__ ((always_inline))
+  build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc,
+                  bracket_elem_t *start_elem, bracket_elem_t *end_elem)
     {
       unsigned int ch;
       uint32_t start_collseq;
@@ -2913,6 +2955,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
              0))
        return REG_ERANGE;
 
+      /* FIXME: Implement rational ranges here, too.  */
       start_collseq = lookup_collation_sequence_value (start_elem);
       end_collseq = lookup_collation_sequence_value (end_elem);
       /* Check start/end collation sequence values.  */
@@ -2971,33 +3014,30 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       return REG_NOERROR;
     }
 
-  /* Local function for parse_bracket_exp used in _LIBC environement.
+  /* Local function for parse_bracket_exp used in _LIBC environment.
      Build the collating element which is represented by NAME.
      The result are written to MBCSET and SBCSET.
      COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
-     pointer argument sinse we may update it.  */
+     pointer argument since we may update it.  */
 
   auto inline reg_errcode_t
-  __attribute ((always_inline))
-  build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
-        re_charset_t *mbcset;
-        Idx *coll_sym_alloc;
-        bitset_t sbcset;
-        const unsigned char *name;
+  __attribute__ ((always_inline))
+  build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
+                         Idx *coll_sym_alloc, const unsigned char *name)
     {
       int32_t elem, idx;
       size_t name_len = strlen ((const char *) name);
       if (nrules != 0)
        {
          elem = seek_collating_symbol_entry (name, name_len);
-         if (symb_table[2 * elem] != 0)
+         if (elem != -1)
            {
              /* We found the entry.  */
              idx = symb_table[2 * elem + 1];
              /* Skip the name of collating element name.  */
              idx += 1 + extra[idx];
            }
-         else if (symb_table[2 * elem] == 0 && name_len == 1)
+         else if (name_len == 1)
            {
              /* No valid character, treat it as a normal
                 character.  */
@@ -3077,6 +3117,10 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
   if (BE (sbcset == NULL, 0))
 #endif /* RE_ENABLE_I18N */
     {
+      re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+      re_free (mbcset);
+#endif
       *err = REG_ESPACE;
       return NULL;
     }
@@ -3236,7 +3280,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
 #ifdef RE_ENABLE_I18N
                                      mbcset, &char_class_alloc,
 #endif /* RE_ENABLE_I18N */
-                                     start_elem.opr.name, syntax);
+                                     (const char *) start_elem.opr.name,
+                                     syntax);
              if (BE (*err != REG_NOERROR, 0))
               goto parse_bracket_exp_free_return;
              break;
@@ -3415,7 +3460,7 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
      Build the equivalence class which is represented by NAME.
      The result are written to MBCSET and SBCSET.
      EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes,
-     is a pointer argument sinse we may update it.  */
+     is a pointer argument since we may update it.  */
 
 static reg_errcode_t
 #ifdef RE_ENABLE_I18N
@@ -3446,19 +3491,18 @@ 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);
-      if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
+      idx1 = findidx (&cp, -1);
+      if (BE (idx1 == 0 || *cp != '\0', 0))
        /* This isn't a valid character.  */
        return REG_ECOLLATE;
 
-      /* Build single byte matcing table for this equivalence class.  */
-      char_buf[1] = (unsigned char) '\0';
+      /* Build single byte matching table for this equivalence class.  */
       len = weights[idx1 & 0xffffff];
       for (ch = 0; ch < SBC_MAX; ++ch)
        {
          char_buf[0] = ch;
          cp = char_buf;
-         idx2 = findidx (&cp);
+         idx2 = findidx (&cp, 1);
 /*
          idx2 = table[ch];
 */
@@ -3511,20 +3555,20 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
      Build the character class which is represented by NAME.
      The result are written to MBCSET and SBCSET.
      CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes,
-     is a pointer argument sinse we may update it.  */
+     is a pointer argument since we may update it.  */
 
 static reg_errcode_t
 #ifdef RE_ENABLE_I18N
 build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
                 re_charset_t *mbcset, Idx *char_class_alloc,
-                const unsigned char *class_name, reg_syntax_t syntax)
+                const char *class_name, reg_syntax_t syntax)
 #else /* not RE_ENABLE_I18N */
 build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
-                const unsigned char *class_name, reg_syntax_t syntax)
+                const char *class_name, reg_syntax_t syntax)
 #endif /* not RE_ENABLE_I18N */
 {
   int i;
-  const char *name = (const char *) class_name;
+  const char *name = class_name;
 
   /* In case of REG_ICASE "upper" and "lower" match the both of
      upper and lower cases.  */
@@ -3598,8 +3642,8 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
 
 static bin_tree_t *
 build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
-                   const unsigned char *class_name,
-                   const unsigned char *extra, bool non_match,
+                   const char *class_name,
+                   const char *extra, bool non_match,
                    reg_errcode_t *err)
 {
   re_bitset_ptr_t sbcset;
@@ -3705,8 +3749,9 @@ 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.
+   Fetch a number from 'input', and return the number.
    Return REG_MISSING 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.  */
 
 static Idx
@@ -3725,8 +3770,9 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
       num = ((token->type != CHARACTER || c < '0' || '9' < c
              || num == REG_ERROR)
             ? REG_ERROR
-            : ((num == REG_MISSING) ? c - '0' : num * 10 + c - '0'));
-      num = (num > RE_DUP_MAX) ? REG_ERROR : num;
+            : num == REG_MISSING
+            ? c - '0'
+            : MIN (RE_DUP_MAX + 1, num * 10 + c - '0'));
     }
   return num;
 }
@@ -3800,7 +3846,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
 static reg_errcode_t
 mark_opt_subexp (void *extra, bin_tree_t *node)
 {
-  Idx idx = (Idx) (long) extra;
+  Idx idx = (uintptr_t) extra;
   if (node->token.type == SUBEXP && node->token.opr.idx == idx)
     node->token.opt_subexp = 1;
 
index fc46c0ba2d86811d3c896948e735c0cb92bd60fc..990fe85137f6a4df280673b11b8fcee9ec089840 100644 (file)
@@ -1,27 +1,37 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
+#ifndef _LIBC
+# include <config.h>
 
-/* Make sure noone compiles this code with a C++ compiler.  */
+# if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+#  pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+# endif
+# if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+#  pragma GCC diagnostic ignored "-Wold-style-definition"
+#  pragma GCC diagnostic ignored "-Wtype-limits"
+# endif
+#endif
+
+/* Make sure no one compiles this code with a C++ compiler.  */
 #if defined __cplusplus && defined _LIBC
 # error "This is C code, use a C compiler"
 #endif
index 52b8598c5cae4b19be50fdfca359057ddf1836cc..dbd2b1b56a1492a6019266923c6140105f44d7ef 100644 (file)
@@ -2,23 +2,23 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Definitions for data structures and routines for the regular
    expression library.
-   Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2006, 2009-2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2013 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #ifndef _REGEX_H
 #define _REGEX_H 1
 extern "C" {
 #endif
 
-/* Define __USE_GNU_REGEX to declare GNU extensions that violate the
+/* Define __USE_GNU to declare GNU extensions that violate the
    POSIX name space rules.  */
-#undef __USE_GNU_REGEX
-#if (defined _GNU_SOURCE                                       \
-     || (!defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE    \
-        && !defined _XOPEN_SOURCE))
-# define __USE_GNU_REGEX 1
+#ifdef _GNU_SOURCE
+# define __USE_GNU 1
 #endif
 
 #ifdef _REGEX_LARGE_OFFSETS
@@ -47,16 +44,6 @@ extern "C" {
    supported within glibc itself, and glibc users should not define
    _REGEX_LARGE_OFFSETS.  */
 
-/* The type of the offset of a byte within a string.
-   For historical reasons POSIX 1003.1-2004 requires that regoff_t be
-   at least as wide as off_t.  However, many common POSIX platforms set
-   regoff_t to the more-sensible ssize_t and the Open Group has
-   signalled its intention to change the requirement to be that
-   regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
-   60 (2005-08-25).  We don't know of any hosts where ssize_t or
-   ptrdiff_t is wider than ssize_t, so ssize_t is safe.  */
-typedef ssize_t regoff_t;
-
 /* 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.  */
@@ -71,10 +58,8 @@ typedef size_t __re_long_size_t;
 
 #else
 
-/* Use types that are binary-compatible with the traditional GNU regex
-   implementation, which mishandles strings longer than INT_MAX.  */
-
-typedef int regoff_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;
@@ -95,8 +80,7 @@ typedef unsigned long int active_reg_t;
    add or remove a bit, only one other definition need change.  */
 typedef unsigned long int reg_syntax_t;
 
-#ifdef __USE_GNU_REGEX
-
+#ifdef __USE_GNU
 /* If this bit is not set, then \ inside a bracket expression is literal.
    If set, then such a \ quotes the following character.  */
 # define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
@@ -163,9 +147,9 @@ typedef unsigned long int reg_syntax_t;
    If not set, newline is literal.  */
 # define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
 
-/* If this bit is set, then `{...}' defines an interval, and \{ and \}
+/* If this bit is set, then '{...}' defines an interval, and \{ and \}
      are literals.
-  If not set, then `\{...\}' defines an interval.  */
+  If not set, then '\{...\}' defines an interval.  */
 # define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
 
 /* If this bit is set, (...) defines a group, and \( and \) are literals.
@@ -227,8 +211,7 @@ typedef unsigned long int reg_syntax_t;
 /* If this bit is set, then no_sub will be set to 1 during
    re_compile_pattern.  */
 # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
-
-#endif /* defined __USE_GNU_REGEX */
+#endif
 
 /* This global variable defines the particular regexp syntax to use (for
    some interfaces).  When a regexp is compiled, the syntax used is
@@ -236,7 +219,7 @@ typedef unsigned long int reg_syntax_t;
    already-compiled regexps.  */
 extern reg_syntax_t re_syntax_options;
 \f
-#ifdef __USE_GNU_REGEX
+#ifdef __USE_GNU
 /* Define combinations of the above bits for the standard possibilities.
    (The [[[ comments delimit what gets put into the Texinfo file, so
    don't delete them!)  */
@@ -248,16 +231,19 @@ extern reg_syntax_t re_syntax_options;
    | RE_NO_BK_PARENS              | RE_NO_BK_REFS                      \
    | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES                 \
    | RE_DOT_NEWLINE              | RE_CONTEXT_INDEP_ANCHORS            \
+   | RE_CHAR_CLASSES                                                   \
    | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
 
 # define RE_SYNTAX_GNU_AWK                                             \
-  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)        \
-   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS           \
-       | RE_CONTEXT_INVALID_OPS ))
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS            \
+    | RE_INVALID_INTERVAL_ORD)                                         \
+   & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS                          \
+      | RE_CONTEXT_INVALID_OPS ))
 
 # define RE_SYNTAX_POSIX_AWK                                           \
   (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS             \
-   | RE_INTERVALS          | RE_NO_GNU_OPS)
+   | RE_INTERVALS          | RE_NO_GNU_OPS                             \
+   | RE_INVALID_INTERVAL_ORD)
 
 # define RE_SYNTAX_GREP                                                        \
   (RE_BK_PLUS_QM              | RE_CHAR_CLASSES                                \
@@ -308,13 +294,12 @@ extern reg_syntax_t re_syntax_options;
    | RE_NO_BK_VBAR         | RE_UNMATCHED_RIGHT_PAREN_ORD)
 /* [[[end syntaxes]]] */
 
-#endif /* defined __USE_GNU_REGEX */
-\f
-#ifdef __USE_GNU_REGEX
-
 /* Maximum number of duplicates an interval can allow.  POSIX-conforming
    systems might define this in <limits.h>, but we want our
    value, so remove any previous define.  */
+# ifdef _REGEX_INCLUDE_LIMITS_H
+#  include <limits.h>
+# endif
 # ifdef RE_DUP_MAX
 #  undef RE_DUP_MAX
 # endif
@@ -322,16 +307,15 @@ extern reg_syntax_t re_syntax_options;
 /* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored
    the counter as a 2-byte signed integer.  This is no longer true, so
    RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to
-   ((SIZE_MAX - 2) / 10 - 1) if _REGEX_LARGE_OFFSETS is defined.
+   ((SIZE_MAX - 9) / 10) if _REGEX_LARGE_OFFSETS is defined.
    However, there would be a huge performance problem if someone
    actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains
    its historical value.  */
 # define RE_DUP_MAX (0x7fff)
-
-#endif /* defined __USE_GNU_REGEX */
+#endif
 
 
-/* POSIX `cflags' bits (i.e., information for `regcomp').  */
+/* POSIX 'cflags' bits (i.e., information for 'regcomp').  */
 
 /* If this bit is set, then use extended regular expression syntax.
    If not set, then use basic regular expression syntax.  */
@@ -351,7 +335,7 @@ extern reg_syntax_t re_syntax_options;
 #define REG_NOSUB (1 << 3)
 
 
-/* POSIX `eflags' bits (i.e., information for regexec).  */
+/* POSIX 'eflags' bits (i.e., information for regexec).  */
 
 /* If this bit is set, then the beginning-of-line operator doesn't match
      the beginning of the string (presumably because it's not the
@@ -369,7 +353,7 @@ extern reg_syntax_t re_syntax_options;
 
 
 /* If any error codes are removed, changed, or added, update the
-   `__re_error_msgid' table in regcomp.c.  */
+   '__re_error_msgid' table in regcomp.c.  */
 
 typedef enum
 {
@@ -394,11 +378,11 @@ typedef enum
 
   /* Error codes we've added.  */
   _REG_EEND,           /* Premature end.  */
-  _REG_ESIZE,          /* Compiled pattern bigger than 2^16 bytes.  */
+  _REG_ESIZE,          /* Too large (e.g., repeat count too large).  */
   _REG_ERPAREN         /* Unmatched ) or \); not returned from regcomp.  */
 } reg_errcode_t;
 
-#ifdef _XOPEN_SOURCE
+#if defined _XOPEN_SOURCE || defined __USE_XOPEN2K
 # define REG_ENOSYS    _REG_ENOSYS
 #endif
 #define REG_NOERROR    _REG_NOERROR
@@ -419,126 +403,127 @@ typedef enum
 #define REG_ESIZE      _REG_ESIZE
 #define REG_ERPAREN    _REG_ERPAREN
 \f
-/* struct re_pattern_buffer normally uses member names like `buffer'
-   that POSIX does not allow.  In POSIX mode these members have names
-   with leading `re_' (e.g., `re_buffer').  */
-#ifdef __USE_GNU_REGEX
-# define _REG_RE_NAME(id) id
-# define _REG_RM_NAME(id) id
-#else
-# define _REG_RE_NAME(id) re_##id
-# define _REG_RM_NAME(id) rm_##id
+/* This data structure represents a compiled pattern.  Before calling
+   the pattern compiler, the fields 'buffer', 'allocated', 'fastmap',
+   and 'translate' can be set.  After the pattern has been compiled,
+   the fields 're_nsub', 'not_bol' and 'not_eol' are available.  All
+   other fields are private to the regex routines.  */
+
+#ifndef RE_TRANSLATE_TYPE
+# define __RE_TRANSLATE_TYPE unsigned char *
+# ifdef __USE_GNU
+#  define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
+# endif
 #endif
 
-/* The user can specify the type of the re_translate member by
-   defining the macro RE_TRANSLATE_TYPE, which defaults to unsigned
-   char *.  This pollutes the POSIX name space, so in POSIX mode just
-   use unsigned char *.  */
-#ifdef __USE_GNU_REGEX
-# ifndef RE_TRANSLATE_TYPE
-#  define RE_TRANSLATE_TYPE unsigned char *
-# endif
-# define REG_TRANSLATE_TYPE RE_TRANSLATE_TYPE
+#ifdef __USE_GNU
+# define __REPB_PREFIX(name) name
 #else
-# define REG_TRANSLATE_TYPE unsigned char *
+# define __REPB_PREFIX(name) __##name
 #endif
 
-/* This data structure represents a compiled pattern.  Before calling
-   the pattern compiler, the fields `buffer', `allocated', `fastmap',
-   `translate', and `no_sub' can be set.  After the pattern has been
-   compiled, the `re_nsub' field is available.  All other fields are
-   private to the regex routines.  */
-
 struct re_pattern_buffer
 {
-  /* Space that holds the compiled pattern.  It is declared as
-     `unsigned char *' because its elements are sometimes used as
-     array indexes.  */
-  unsigned char *_REG_RE_NAME (buffer);
+  /* Space that holds the compiled pattern.  The type
+     'struct re_dfa_t' is private and is not declared here.  */
+  struct re_dfa_t *__REPB_PREFIX(buffer);
 
-  /* Number of bytes to which `buffer' points.  */
-  __re_long_size_t _REG_RE_NAME (allocated);
+  /* Number of bytes to which 'buffer' points.  */
+  __re_long_size_t __REPB_PREFIX(allocated);
 
-  /* Number of bytes actually used in `buffer'.  */
-  __re_long_size_t _REG_RE_NAME (used);
+  /* Number of bytes actually used in 'buffer'.  */
+  __re_long_size_t __REPB_PREFIX(used);
 
   /* Syntax setting with which the pattern was compiled.  */
-  reg_syntax_t _REG_RE_NAME (syntax);
+  reg_syntax_t __REPB_PREFIX(syntax);
 
   /* Pointer to a fastmap, if any, otherwise zero.  re_search uses the
      fastmap, if there is one, to skip over impossible starting points
      for matches.  */
-  char *_REG_RE_NAME (fastmap);
+  char *__REPB_PREFIX(fastmap);
 
   /* Either a translate table to apply to all characters before
      comparing them, or zero for no translation.  The translation is
      applied to a pattern when it is compiled and to a string when it
      is matched.  */
-  REG_TRANSLATE_TYPE _REG_RE_NAME (translate);
+  __RE_TRANSLATE_TYPE __REPB_PREFIX(translate);
 
   /* Number of subexpressions found by the compiler.  */
   size_t re_nsub;
 
   /* Zero if this pattern cannot match the empty string, one else.
-     Well, in truth it's used only in `re_search_2', to see whether or
+     Well, in truth it's used only in 're_search_2', to see whether or
      not we should use the fastmap, so we don't set this absolutely
-     perfectly; see `re_compile_fastmap' (the `duplicate' case).  */
-  unsigned int _REG_RE_NAME (can_be_null) : 1;
+     perfectly; see 're_compile_fastmap' (the "duplicate" case).  */
+  unsigned __REPB_PREFIX(can_be_null) : 1;
 
-  /* If REGS_UNALLOCATED, allocate space in the `regs' structure
-     for `max (RE_NREGS, re_nsub + 1)' groups.
+  /* If REGS_UNALLOCATED, allocate space in the 'regs' structure
+     for 'max (RE_NREGS, re_nsub + 1)' groups.
      If REGS_REALLOCATE, reallocate space if necessary.
      If REGS_FIXED, use what's there.  */
-#ifdef __USE_GNU_REGEX
+#ifdef __USE_GNU
 # define REGS_UNALLOCATED 0
 # define REGS_REALLOCATE 1
 # define REGS_FIXED 2
 #endif
-  unsigned int _REG_RE_NAME (regs_allocated) : 2;
+  unsigned __REPB_PREFIX(regs_allocated) : 2;
 
-  /* Set to zero when `re_compile_pattern' compiles a pattern; set to
-     one by `re_compile_fastmap' if it updates the fastmap.  */
-  unsigned int _REG_RE_NAME (fastmap_accurate) : 1;
+  /* Set to zero when 're_compile_pattern' compiles a pattern; set to
+     one by 're_compile_fastmap' if it updates the fastmap.  */
+  unsigned __REPB_PREFIX(fastmap_accurate) : 1;
 
-  /* If set, `re_match_2' does not return information about
+  /* If set, 're_match_2' does not return information about
      subexpressions.  */
-  unsigned int _REG_RE_NAME (no_sub) : 1;
+  unsigned __REPB_PREFIX(no_sub) : 1;
 
   /* If set, a beginning-of-line anchor doesn't match at the beginning
      of the string.  */
-  unsigned int _REG_RE_NAME (not_bol) : 1;
+  unsigned __REPB_PREFIX(not_bol) : 1;
 
   /* Similarly for an end-of-line anchor.  */
-  unsigned int _REG_RE_NAME (not_eol) : 1;
+  unsigned __REPB_PREFIX(not_eol) : 1;
 
   /* If true, an anchor at a newline matches.  */
-  unsigned int _REG_RE_NAME (newline_anchor) : 1;
-
-/* [[[end pattern_buffer]]] */
+  unsigned __REPB_PREFIX(newline_anchor) : 1;
 };
 
 typedef struct re_pattern_buffer regex_t;
 \f
+/* Type for byte offsets within the string.  POSIX mandates this.  */
+#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.  */
+typedef ssize_t regoff_t;
+#else
+/* The traditional GNU regex implementation mishandles strings longer
+   than INT_MAX.  */
+typedef int regoff_t;
+#endif
+
+
+#ifdef __USE_GNU
 /* This is the structure we store register match data in.  See
    regex.texinfo for a full description of what registers match.  */
 struct re_registers
 {
-  __re_size_t _REG_RM_NAME (num_regs);
-  regoff_t *_REG_RM_NAME (start);
-  regoff_t *_REG_RM_NAME (end);
+  __re_size_t num_regs;
+  regoff_t *start;
+  regoff_t *end;
 };
 
 
-/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
-   `re_match_2' returns information about at least this many registers
-   the first time a `regs' structure is passed.  */
-#if !defined RE_NREGS && defined __USE_GNU_REGEX
-# define RE_NREGS 30
+/* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+   're_match_2' returns information about at least this many registers
+   the first time a 'regs' structure is passed.  */
+# ifndef RE_NREGS
+#  define RE_NREGS 30
+# endif
 #endif
 
 
 /* POSIX specification for registers.  Aside from the different names than
-   `re_registers', POSIX uses an array of structures, instead of a
+   're_registers', POSIX uses an array of structures, instead of a
    structure of arrays.  */
 typedef struct
 {
@@ -548,13 +533,19 @@ typedef struct
 \f
 /* Declarations for routines.  */
 
+#ifdef __USE_GNU
 /* Sets the current default syntax to SYNTAX, and return the old syntax.
-   You can also simply assign to the `re_syntax_options' variable.  */
+   You can also simply assign to the 're_syntax_options' variable.  */
 extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
 
 /* Compile the regular expression PATTERN, with length LENGTH
-   and syntax given by the global `re_syntax_options', into the buffer
-   BUFFER.  Return NULL if successful, and an error string if not.  */
+   and syntax given by the global 're_syntax_options', into the buffer
+   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
+   'regcomp', with a malloc'ed value, or set to NULL before calling
+   'regfree'.  */
 extern const char *re_compile_pattern (const char *__pattern, size_t __length,
                                       struct re_pattern_buffer *__buffer);
 
@@ -576,7 +567,7 @@ extern regoff_t re_search (struct re_pattern_buffer *__buffer,
                           struct re_registers *__regs);
 
 
-/* Like `re_search', but search in the concatenation of STRING1 and
+/* 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,
@@ -586,14 +577,14 @@ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
                             __re_idx_t __stop);
 
 
-/* Like `re_search', but return how many characters in STRING the regexp
+/* 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);
 
 
-/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
+/* 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,
@@ -604,21 +595,22 @@ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
 /* Set REGS to hold NUM_REGS registers, storing them in STARTS and
    ENDS.  Subsequent matches using BUFFER and REGS will use this memory
    for recording register information.  STARTS and ENDS must be
-   allocated with malloc, and must each be at least `NUM_REGS * sizeof
+   allocated with malloc, and must each be at least 'NUM_REGS * sizeof
    (regoff_t)' bytes long.
 
    If NUM_REGS == 0, then subsequent matches should allocate their own
    register data.
 
    Unless this function is called, the first search or match using
-   BUFFER will allocate its own register data, without freeing the old
-   data.  */
+   BUFFER will allocate its own register data, without
+   freeing the old data.  */
 extern void re_set_registers (struct re_pattern_buffer *__buffer,
                              struct re_registers *__regs,
                              __re_size_t __num_regs,
                              regoff_t *__starts, regoff_t *__ends);
+#endif /* Use GNU */
 
-#if defined _REGEX_RE_COMP || defined _LIBC
+#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD)
 # ifndef _CRAY
 /* 4.2 bsd compatibility.  */
 extern char *re_comp (const char *);
@@ -646,7 +638,7 @@ extern int re_exec (const char *);
 #ifndef _Restrict_arr_
 # if ((199901L <= __STDC_VERSION__                                     \
        || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__))    \
-          && !__STRICT_ANSI__))                                        \
+          && !defined __STRICT_ANSI__))                                        \
       && !defined __GNUG__)
 #  define _Restrict_arr_ _Restrict_
 # else
index b67ab3d1df2a392bb0b9305c57cafddb57bd553c..4f18e9db9dbb37a865a5de7716e6ffbd5020bdfc 100644 (file)
@@ -1,23 +1,23 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 static void re_string_construct_common (const char *str, Idx len,
                                        re_string_t *pstr,
@@ -136,9 +136,9 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
     {
       wint_t *new_wcs;
 
-      /* Avoid overflow.  */
-      size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
-      if (BE (SIZE_MAX / max_object_size < new_buf_len, 0))
+      /* Avoid overflow in realloc.  */
+      const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
+      if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0))
        return REG_ESPACE;
 
       new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
@@ -238,13 +238,8 @@ build_wcs_buffer (re_string_t *pstr)
       else
        p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
       mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
-      if (BE (mbclen == (size_t) -2, 0))
-       {
-         /* The buffer doesn't have enough space, finish to build.  */
-         pstr->cur_state = prev_st;
-         break;
-       }
-      else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0))
+      if (BE (mbclen == (size_t) -1 || mbclen == 0
+             || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0))
        {
          /* We treat these cases as a singlebyte character.  */
          mbclen = 1;
@@ -253,6 +248,12 @@ build_wcs_buffer (re_string_t *pstr)
            wc = pstr->trans[wc];
          pstr->cur_state = prev_st;
        }
+      else if (BE (mbclen == (size_t) -2, 0))
+       {
+         /* The buffer doesn't have enough space, finish to build.  */
+         pstr->cur_state = prev_st;
+         break;
+       }
 
       /* Write wide character and padding.  */
       pstr->wcs[byte_idx++] = wc;
@@ -335,9 +336,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
              for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
                pstr->wcs[byte_idx++] = WEOF;
            }
-         else if (mbclen == (size_t) -1 || mbclen == 0)
+         else if (mbclen == (size_t) -1 || mbclen == 0
+                  || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len))
            {
-             /* It is an invalid character or '\0'.  Just use the byte.  */
+             /* It is an invalid character, an incomplete character
+                at the end of the string, or '\0'.  Just use the byte.  */
              int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
              pstr->mbs[byte_idx] = ch;
              /* And also cast it to wide char.  */
@@ -450,7 +453,8 @@ build_wcs_upper_buffer (re_string_t *pstr)
            for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
              pstr->wcs[byte_idx++] = WEOF;
          }
-       else if (mbclen == (size_t) -1 || mbclen == 0)
+       else if (mbclen == (size_t) -1 || mbclen == 0
+                || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len))
          {
            /* It is an invalid character or '\0'.  Just use the byte.  */
            int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
@@ -497,8 +501,7 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
        rawbuf_idx < new_raw_idx;)
     {
       wchar_t wc2;
-      Idx remain_len;
-      remain_len = pstr->len - rawbuf_idx;
+      Idx remain_len = pstr->raw_len - rawbuf_idx;
       prev_st = pstr->cur_state;
       mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
                          remain_len, &pstr->cur_state);
@@ -734,21 +737,21 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
                          mbstate_t cur_state;
                          wchar_t wc2;
                          Idx mlen = raw + pstr->len - p;
+                         unsigned char buf[6];
                          size_t mbclen;
 
-#if 0 /* dead code: buf is set but never used */
-                         unsigned char buf[6];
+                         const unsigned char *pp = p;
                          if (BE (pstr->trans != NULL, 0))
                            {
                              int i = mlen < 6 ? mlen : 6;
                              while (--i >= 0)
                                buf[i] = pstr->trans[p[i]];
+                             pp = buf;
                            }
-#endif
                          /* XXX Don't use mbrtowc, we know which conversion
                             to use (UTF-8 -> UCS4).  */
                          memset (&cur_state, 0, sizeof (cur_state));
-                         mbclen = __mbrtowc (&wc2, (const char *) p, mlen,
+                         mbclen = __mbrtowc (&wc2, (const char *) pp, mlen,
                                              &cur_state);
                          if (raw + offset - p <= mbclen
                              && mbclen < (size_t) -2)
@@ -833,7 +836,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
 }
 
 static unsigned char
-internal_function __attribute ((pure))
+internal_function __attribute__ ((pure))
 re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
 {
   int ch;
@@ -870,7 +873,7 @@ re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
 }
 
 static unsigned char
-internal_function __attribute ((pure))
+internal_function
 re_string_fetch_byte_case (re_string_t *pstr)
 {
   if (BE (!pstr->mbs_allocated, 1))
@@ -973,7 +976,7 @@ re_node_set_alloc (re_node_set *set, Idx size)
   set->alloc = size;
   set->nelem = 0;
   set->elems = re_malloc (Idx, size);
-  if (BE (set->elems == NULL, 0))
+  if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0))
     return REG_ESPACE;
   return REG_NOERROR;
 }
@@ -1353,7 +1356,7 @@ re_node_set_insert_last (re_node_set *set, Idx elem)
    Return true if SET1 and SET2 are equivalent.  */
 
 static bool
-internal_function __attribute ((pure))
+internal_function __attribute__ ((pure))
 re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
 {
   Idx i;
@@ -1368,7 +1371,7 @@ re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
 /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise.  */
 
 static Idx
-internal_function __attribute ((pure))
+internal_function __attribute__ ((pure))
 re_node_set_contains (const re_node_set *set, Idx elem)
 {
   __re_size_t idx, right, mid;
@@ -1414,13 +1417,12 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
       Idx *new_nexts, *new_indices;
       re_node_set *new_edests, *new_eclosures;
       re_token_t *new_nodes;
-      size_t max_object_size =
-       MAX (sizeof (re_token_t),
-            MAX (sizeof (re_node_set),
-                 sizeof (Idx)));
 
-      /* Avoid overflows.  */
-      if (BE (SIZE_MAX / 2 / max_object_size < dfa->nodes_alloc, 0))
+      /* Avoid overflows in realloc.  */
+      const size_t max_object_size = MAX (sizeof (re_token_t),
+                                         MAX (sizeof (re_node_set),
+                                              sizeof (Idx)));
+      if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0))
        return REG_MISSING;
 
       new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
@@ -1443,11 +1445,9 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
   dfa->nodes[dfa->nodes_len] = token;
   dfa->nodes[dfa->nodes_len].constraint = 0;
 #ifdef RE_ENABLE_I18N
-  {
-  int type = token.type;
   dfa->nodes[dfa->nodes_len].accept_mb =
-    (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET;
-  }
+    ((token.type == OP_PERIOD && dfa->mb_cur_max > 1)
+     || token.type == COMPLEX_BRACKET);
 #endif
   dfa->nexts[dfa->nodes_len] = REG_MISSING;
   re_node_set_init_empty (dfa->edests + dfa->nodes_len);
@@ -1455,7 +1455,7 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
   return dfa->nodes_len++;
 }
 
-static inline re_hashval_t
+static re_hashval_t
 internal_function
 calc_state_hash (const re_node_set *nodes, unsigned int context)
 {
@@ -1552,7 +1552,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
          && re_node_set_compare (state->entrance_nodes, nodes))
        return state;
     }
-  /* There are no appropriate state in `dfa', create the new one.  */
+  /* There are no appropriate state in 'dfa', create the new one.  */
   new_state = create_cd_newstate (dfa, nodes, context, hash);
   if (BE (new_state == NULL, 0))
     *err = REG_ESPACE;
@@ -1581,7 +1581,7 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
     {
       Idx elem = newstate->nodes.elems[i];
       if (!IS_EPSILON_NODE (dfa->nodes[elem].type))
-       if (BE (! re_node_set_insert_last (&newstate->non_eps_nodes, elem), 0))
+       if (! re_node_set_insert_last (&newstate->non_eps_nodes, elem))
          return REG_ESPACE;
     }
 
@@ -1616,7 +1616,7 @@ free_state (re_dfastate_t *state)
   re_free (state);
 }
 
-/* Create the new state which is independ of contexts.
+/* Create the new state which is independent of contexts.
    Return the new state if succeeded, otherwise return NULL.  */
 
 static re_dfastate_t *
index a15e8acea726d7d92be3a211fd546b03b5c28f1b..f2d8231dc81f6e4d31d8998673e2c9b5c77e8775 100644 (file)
@@ -1,49 +1,82 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #ifndef _REGEX_INTERNAL_H
 #define _REGEX_INTERNAL_H 1
 
 #include <assert.h>
 #include <ctype.h>
-#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include <langinfo.h>
-#ifndef _LIBC
-# include "localcharset.h"
-#endif
 #include <locale.h>
-
 #include <wchar.h>
 #include <wctype.h>
+#include <stdbool.h>
 #include <stdint.h>
-#if defined _LIBC
+
+#ifdef _LIBC
 # include <bits/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
+# 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
+# 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) 0
+# define lock_lock(lock) ((void) 0)
+# define lock_unlock(lock) ((void) 0)
 #endif
 
 /* In case that the system doesn't have isblank().  */
@@ -66,7 +99,7 @@
 # ifdef _LIBC
 #  undef gettext
 #  define gettext(msgid) \
-  INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+  __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
 # endif
 #else
 # define gettext(msgid) (msgid)
 # define gettext_noop(String) String
 #endif
 
-/* For loser systems without the definition.  */
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-
 #if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC
 # define RE_ENABLE_I18N
 #endif
 # define BE(expr, val) __builtin_expect (expr, val)
 #else
 # define BE(expr, val) (expr)
-# ifdef _LIBC
-#  define inline
-# endif
 #endif
 
 /* Number of ASCII characters.  */
 
 /* Rename to standard API for using out of glibc.  */
 #ifndef _LIBC
+# undef __wctype
+# undef __iswctype
 # define __wctype wctype
 # define __iswctype iswctype
 # define __btowc btowc
-# define __wcrtomb wcrtomb
 # define __mbrtowc mbrtowc
+# define __wcrtomb wcrtomb
 # define __regfree regfree
 # define attribute_hidden
 #endif /* not _LIBC */
 
-#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
-# define __attribute(arg) __attribute__ (arg)
-#else
-# define __attribute(arg)
+#if __GNUC__ < 3 + (__GNUC_MINOR__ < 1)
+# 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)
@@ -336,7 +366,7 @@ typedef struct
     Idx idx;                   /* for BACK_REF */
     re_context_type ctx_type;  /* for ANCHOR */
   } opr;
-#if __GNUC__ >= 2 && !__STRICT_ANSI__
+#if __GNUC__ >= 2 && !defined __STRICT_ANSI__
   re_token_type_t type : 8;
 #else
   re_token_type_t type;
@@ -417,26 +447,24 @@ struct re_dfa_t;
 typedef struct re_dfa_t re_dfa_t;
 
 #ifndef _LIBC
-# if defined __i386__ && !defined __EMX__
-#  define internal_function   __attribute ((regparm (3), stdcall))
-# else
-#  define internal_function
-# endif
+# define internal_function
 #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 */
+  internal_function;
+# 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));
+     internal_function __attribute__ ((pure));
+#endif
 #define re_string_peek_byte(pstr, offset) \
   ((pstr)->mbs[(pstr)->cur_idx + offset])
 #define re_string_fetch_byte(pstr) \
@@ -454,7 +482,9 @@ static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
 #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
 #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
 
-#include <alloca.h>
+#if defined _LIBC || HAVE_ALLOCA
+# include <alloca.h>
+#endif
 
 #ifndef _LIBC
 # if HAVE_ALLOCA
@@ -471,9 +501,18 @@ static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
 # endif
 #endif
 
+#ifdef _LIBC
+# define MALLOC_0_IS_NONNULL 1
+#elif !defined MALLOC_0_IS_NONNULL
+# define MALLOC_0_IS_NONNULL 0
+#endif
+
 #ifndef MAX
 # define MAX(a,b) ((a) < (b) ? (b) : (a))
 #endif
+#ifndef MIN
+# define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
 
 #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t)))
 #define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t)))
@@ -489,8 +528,8 @@ struct bin_tree_t
 
   re_token_t token;
 
-  /* `node_idx' is the index in dfa->nodes, if `type' == 0.
-     Otherwise `type' indicate the type of this node.  */
+  /* 'node_idx' is the index in dfa->nodes, if 'type' == 0.
+     Otherwise 'type' indicate the type of this node.  */
   Idx node_idx;
 };
 typedef struct bin_tree_t bin_tree_t;
@@ -543,9 +582,9 @@ struct re_dfastate_t
   struct re_dfastate_t **trtable, **word_trtable;
   unsigned int context : 4;
   unsigned int halt : 1;
-  /* If this state can accept `multi byte'.
+  /* If this state can accept "multi byte".
      Note that we refer to multibyte characters, and multi character
-     collating elements as `multi byte'.  */
+     collating elements as "multi byte".  */
   unsigned int accept_mb : 1;
   /* If this state has backreference node(s).  */
   unsigned int has_backref : 1;
@@ -674,7 +713,7 @@ struct re_dfa_t
   re_bitset_ptr_t sb_char;
   int str_tree_storage_idx;
 
-  /* number of subexpressions `re_nsub' is in regex_t.  */
+  /* number of subexpressions 're_nsub' is in regex_t.  */
   re_hashval_t state_hash_mask;
   Idx init_node;
   Idx nbackref; /* The number of backreference in this dfa.  */
@@ -698,9 +737,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))
@@ -731,33 +768,33 @@ typedef struct
 } bracket_elem_t;
 
 
-/* Inline functions for bitset_t operation.  */
+/* Functions for bitset_t operation.  */
 
-static inline void
+static void
 bitset_set (bitset_t set, Idx i)
 {
   set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
 }
 
-static inline void
+static void
 bitset_clear (bitset_t set, Idx i)
 {
   set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
 }
 
-static inline bool
+static bool
 bitset_contain (const bitset_t set, Idx i)
 {
   return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
 }
 
-static inline void
+static void
 bitset_empty (bitset_t set)
 {
   memset (set, '\0', sizeof (bitset_t));
 }
 
-static inline void
+static void
 bitset_set_all (bitset_t set)
 {
   memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
@@ -766,13 +803,13 @@ bitset_set_all (bitset_t set)
       ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
 }
 
-static inline void
+static void
 bitset_copy (bitset_t dest, const bitset_t src)
 {
   memcpy (dest, src, sizeof (bitset_t));
 }
 
-static inline void
+static void __attribute__ ((unused))
 bitset_not (bitset_t set)
 {
   int bitset_i;
@@ -784,7 +821,7 @@ bitset_not (bitset_t set)
        & ~set[BITSET_WORDS - 1]);
 }
 
-static inline void
+static void __attribute__ ((unused))
 bitset_merge (bitset_t dest, const bitset_t src)
 {
   int bitset_i;
@@ -792,7 +829,7 @@ bitset_merge (bitset_t dest, const bitset_t src)
     dest[bitset_i] |= src[bitset_i];
 }
 
-static inline void
+static void __attribute__ ((unused))
 bitset_mask (bitset_t dest, const bitset_t src)
 {
   int bitset_i;
@@ -801,9 +838,9 @@ bitset_mask (bitset_t dest, const bitset_t src)
 }
 
 #ifdef RE_ENABLE_I18N
-/* Inline functions for re_string.  */
-static inline int
-internal_function __attribute ((pure))
+/* Functions for re_string.  */
+static int
+internal_function __attribute__ ((pure, unused))
 re_string_char_size_at (const re_string_t *pstr, Idx idx)
 {
   int byte_idx;
@@ -815,8 +852,8 @@ re_string_char_size_at (const re_string_t *pstr, Idx idx)
   return byte_idx;
 }
 
-static inline wint_t
-internal_function __attribute ((pure))
+static wint_t
+internal_function __attribute__ ((pure, unused))
 re_string_wchar_at (const re_string_t *pstr, Idx idx)
 {
   if (pstr->mb_cur_max == 1)
@@ -824,15 +861,15 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx)
   return (wint_t) pstr->wcs[idx];
 }
 
+# ifndef NOT_IN_libc
 static int
-internal_function __attribute ((pure))
+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;
-  int32_t tmp;
-#  include <locale/weight.h>
+#   include <locale/weight.h>
   uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
 
   if (nrules != 0)
@@ -843,13 +880,14 @@ 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;
-      tmp = findidx (&p);
+      findidx (&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 0f7b48c430c3437cdea72f4be8cc2ed1a04e97af..4105288fb59cc56849eb01854f2ccd86137a2053 100644 (file)
@@ -1,23 +1,23 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
-   This program is free software; you can redistribute 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.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify 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,
+   The GNU C Library 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.
+   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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+   You should have received a copy of the GNU General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
                                     Idx n) internal_function;
@@ -53,9 +53,8 @@ static regoff_t re_search_stub (struct re_pattern_buffer *bufp,
                                regoff_t range, Idx stop,
                                struct re_registers *regs,
                                bool ret_len) internal_function;
-static unsigned int re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
-                                 Idx nregs, int regs_allocated)
-     internal_function;
+static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
+                              Idx nregs, int regs_allocated) internal_function;
 static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
      internal_function;
 static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match,
@@ -202,7 +201,7 @@ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
 static bool check_node_accept (const re_match_context_t *mctx,
                               const re_token_t *node, Idx idx)
      internal_function;
-static reg_errcode_t extend_buffers (re_match_context_t *mctx)
+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
      internal_function;
 \f
 /* Entry point for POSIX code.  */
@@ -211,11 +210,11 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx)
    string STRING.
 
    If NMATCH is zero or REG_NOSUB was set in the cflags argument to
-   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
+   'regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
    least NMATCH elements, and we set them to the offsets of the
    corresponding matched substrings.
 
-   EFLAGS specifies `execution flags' which affect matching: if
+   EFLAGS specifies "execution flags" which affect matching: if
    REG_NOTBOL is set, then ^ does not match at the beginning of the
    string; if REG_NOTEOL is set, then $ does not match at the end.
 
@@ -231,9 +230,7 @@ regexec (preg, string, nmatch, pmatch, eflags)
 {
   reg_errcode_t err;
   Idx start, length;
-#ifdef _LIBC
-  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
-#endif
+  re_dfa_t *dfa = preg->buffer;
 
   if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
     return REG_BADPAT;
@@ -249,14 +246,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;
 }
 
@@ -367,7 +364,6 @@ weak_alias (__re_search_2, re_search_2)
 #endif
 
 static regoff_t
-internal_function
 re_search_2_stub (struct re_pattern_buffer *bufp,
                  const char *string1, Idx length1,
                  const char *string2, Idx length2,
@@ -415,7 +411,6 @@ re_search_2_stub (struct re_pattern_buffer *bufp,
    otherwise the position of the match is returned.  */
 
 static regoff_t
-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,
@@ -426,9 +421,7 @@ re_search_stub (struct re_pattern_buffer *bufp,
   Idx nregs;
   regoff_t rval;
   int eflags = 0;
-#ifdef _LIBC
-  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
-#endif
+  re_dfa_t *dfa = bufp->buffer;
   Idx last_start = start + range;
 
   /* Check for out-of-range.  */
@@ -439,7 +432,7 @@ re_search_stub (struct re_pattern_buffer *bufp,
   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;
@@ -479,9 +472,9 @@ re_search_stub (struct re_pattern_buffer *bufp,
 
   rval = 0;
 
-  /* I hope we needn't fill ther regs with -1's when no match was found.  */
+  /* I hope we needn't fill their regs with -1's when no match was found.  */
   if (result != REG_NOERROR)
-    rval = -1;
+    rval = result == REG_NOMATCH ? -1 : -2;
   else if (regs != NULL)
     {
       /* If caller wants register contents data back, copy them.  */
@@ -503,19 +496,18 @@ 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 int
-internal_function
+static unsigned
 re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
              int regs_allocated)
 {
   int rval = REGS_REALLOCATE;
   Idx i;
   Idx need_regs = nregs + 1;
-  /* We need one extra element beyond `num_regs' for the `-1' marker GNU code
+  /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code
      uses.  */
 
   /* Have the register data arrays been allocated?  */
@@ -638,7 +630,7 @@ re_exec (s)
    (0 <= LAST_START && LAST_START <= LENGTH)  */
 
 static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
 re_search_internal (const regex_t *preg,
                    const char *string, Idx length,
                    Idx start, Idx last_start, Idx stop,
@@ -646,7 +638,7 @@ re_search_internal (const regex_t *preg,
                    int eflags)
 {
   reg_errcode_t err;
-  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  const re_dfa_t *dfa = preg->buffer;
   Idx left_lim, right_lim;
   int incr;
   bool fl_longest_match;
@@ -721,7 +713,8 @@ re_search_internal (const regex_t *preg,
   if (nmatch > 1 || dfa->has_mb_node)
     {
       /* Avoid overflow.  */
-      if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= mctx.input.bufs_len, 0))
+      if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
+               <= mctx.input.bufs_len), 0))
        {
          err = REG_ESPACE;
          goto free_return;
@@ -741,7 +734,7 @@ re_search_internal (const regex_t *preg,
   mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
                           : CONTEXT_NEWLINE | CONTEXT_BEGBUF;
 
-  /* Check incrementally whether of not the input string match.  */
+  /* Check incrementally whether the input string matches.  */
   incr = (last_start < start) ? -1 : 1;
   left_lim = (last_start < start) ? last_start : start;
   right_lim = (last_start < start) ? start : last_start;
@@ -923,7 +916,7 @@ re_search_internal (const regex_t *preg,
            goto free_return;
        }
 
-      /* At last, add the offset to the each registers, since we slided
+      /* At last, add the offset to each register, since we slid
         the buffers so that we could assume that the matching starts
         from 0.  */
       for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
@@ -973,7 +966,7 @@ re_search_internal (const regex_t *preg,
 }
 
 static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
 prune_impossible_nodes (re_match_context_t *mctx)
 {
   const re_dfa_t *const dfa = mctx->dfa;
@@ -989,7 +982,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
   halt_node = mctx->last_node;
 
   /* Avoid overflow.  */
-  if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= match_last, 0))
+  if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0))
     return REG_ESPACE;
 
   sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
@@ -1069,7 +1062,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
    since initial states may have constraints like "\<", "^", etc..  */
 
 static inline re_dfastate_t *
-__attribute ((always_inline)) internal_function
+__attribute__ ((always_inline)) internal_function
 acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
                            Idx idx)
 {
@@ -1107,7 +1100,7 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
    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.
-   Note that the matcher assume that the maching starts from the current
+   Note that the matcher assumes that the matching starts from the current
    index of the buffer.  */
 
 static Idx
@@ -1176,11 +1169,12 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
       re_dfastate_t *old_state = cur_state;
       Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1;
 
-      if (BE (next_char_idx >= mctx->input.bufs_len, 0)
+      if ((BE (next_char_idx >= mctx->input.bufs_len, 0)
+          && mctx->input.bufs_len < mctx->input.len)
          || (BE (next_char_idx >= mctx->input.valid_len, 0)
              && mctx->input.valid_len < mctx->input.len))
        {
-         err = extend_buffers (mctx);
+         err = extend_buffers (mctx, next_char_idx + 1);
          if (BE (err != REG_NOERROR, 0))
            {
              assert (err == REG_ESPACE);
@@ -1437,7 +1431,7 @@ internal_function __attribute_warn_unused_result__
 set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
          regmatch_t *pmatch, bool fl_backtrack)
 {
-  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  const re_dfa_t *dfa = preg->buffer;
   Idx idx, cur_node;
   re_node_set eps_via_nodes;
   struct re_fail_stack_t *fs;
@@ -1609,21 +1603,21 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
    and sift the nodes in each states according to the following rules.
    Updated state_log will be wrote to STATE_LOG.
 
-   Rules: We throw away the Node `a' in the STATE_LOG[STR_IDX] if...
+   Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if...
      1. When STR_IDX == MATCH_LAST(the last index in the state_log):
-       If `a' isn't the LAST_NODE and `a' can't epsilon transit to
-       the LAST_NODE, we throw away the node `a'.
-     2. When 0 <= STR_IDX < MATCH_LAST and `a' accepts
-       string `s' and transit to `b':
+       If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to
+       the LAST_NODE, we throw away the node 'a'.
+     2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts
+       string 's' and transit to 'b':
        i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw
-          away the node `a'.
+          away the node 'a'.
        ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is
-           thrown away, we throw away the node `a'.
+           thrown away, we throw away the node 'a'.
      3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b':
        i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the
-          node `a'.
+          node 'a'.
        ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away,
-           we throw away the node `a'.  */
+           we throw away the node 'a'.  */
 
 #define STATE_NODE_CONTAINS(state,node) \
   ((state) != NULL && re_node_set_contains (&(state)->nodes, node))
@@ -1696,11 +1690,11 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
   Idx i;
 
   /* Then build the next sifted state.
-     We build the next sifted state on `cur_dest', and update
-     `sifted_states[str_idx]' with `cur_dest'.
+     We build the next sifted state on 'cur_dest', and update
+     'sifted_states[str_idx]' with 'cur_dest'.
      Note:
-     `cur_dest' is the sifted state from `state_log[str_idx + 1]'.
-     `cur_src' points the node_set of the old `state_log[str_idx]'
+     'cur_dest' is the sifted state from 'state_log[str_idx + 1]'.
+     'cur_src' points the node_set of the old 'state_log[str_idx]'
      (with the epsilon nodes pre-filtered out).  */
   for (i = 0; i < cur_src->nelem; i++)
     {
@@ -1713,7 +1707,7 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
       assert (!IS_EPSILON_NODE (type));
 #endif
 #ifdef RE_ENABLE_I18N
-      /* If the node may accept `multi byte'.  */
+      /* If the node may accept "multi byte".  */
       if (dfa->nodes[prev_node].accept_mb)
        naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
                                         str_idx, sctx->last_str_idx);
@@ -1754,12 +1748,13 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
 {
   Idx top = mctx->state_log_top;
 
-  if (next_state_log_idx >= mctx->input.bufs_len
+  if ((next_state_log_idx >= mctx->input.bufs_len
+       && mctx->input.bufs_len < mctx->input.len)
       || (next_state_log_idx >= mctx->input.valid_len
          && mctx->input.valid_len < mctx->input.len))
     {
       reg_errcode_t err;
-      err = extend_buffers (mctx);
+      err = extend_buffers (mctx, next_state_log_idx + 1);
       if (BE (err != REG_NOERROR, 0))
        return err;
     }
@@ -2269,17 +2264,17 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
 {
   const re_dfa_t *const dfa = mctx->dfa;
   int naccepted;
-  /* Check the node can accept `multi byte'.  */
+  /* Check the node can accept "multi byte".  */
   naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
   if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
       !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
                            dfa->nexts[node_idx]))
-    /* The node can't accept the `multi byte', or the
+    /* The node can't accept the "multi byte", or the
        destination was already thrown away, then the node
-       could't accept the current input `multi byte'.   */
+       could't accept the current input "multi byte".   */
     naccepted = 0;
   /* Otherwise, it is sure that the node could accept
-     `naccepted' bytes input.  */
+     'naccepted' bytes input.  */
   return naccepted;
 }
 #endif /* RE_ENABLE_I18N */
@@ -2458,7 +2453,7 @@ find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
 /* From the node set CUR_NODES, pick up the nodes whose types are
    OP_OPEN_SUBEXP and which have corresponding back references in the regular
    expression. And register them to use them later for evaluating the
-   correspoding back references.  */
+   corresponding back references.  */
 
 static reg_errcode_t
 internal_function
@@ -2569,7 +2564,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
       if (naccepted == 0)
        continue;
 
-      /* The node can accepts `naccepted' bytes.  */
+      /* The node can accepts 'naccepted' bytes.  */
       dest_idx = re_string_cur_idx (&mctx->input) + naccepted;
       mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
                               : mctx->max_mb_elem_len);
@@ -2621,7 +2616,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
       const re_token_t *node = dfa->nodes + node_idx;
       re_node_set *new_dest_nodes;
 
-      /* Check whether `node' is a backreference or not.  */
+      /* Check whether 'node' is a backreference or not.  */
       if (node->type != OP_BACK_REF)
        continue;
 
@@ -2633,14 +2628,14 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
            continue;
        }
 
-      /* `node' is a backreference.
+      /* 'node' is a backreference.
         Check the substring which the substring matched.  */
       bkc_idx = mctx->nbkref_ents;
       err = get_subexp (mctx, node_idx, cur_str_idx);
       if (BE (err != REG_NOERROR, 0))
        goto free_return;
 
-      /* And add the epsilon closures (which is `new_dest_nodes') of
+      /* 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);
@@ -2664,7 +2659,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
          dest_state = mctx->state_log[dest_str_idx];
          prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0
                        : mctx->state_log[cur_str_idx]->nodes.nelem);
-         /* Add `new_dest_node' to state_log.  */
+         /* Add 'new_dest_node' to state_log.  */
          if (dest_state == NULL)
            {
              mctx->state_log[dest_str_idx]
@@ -2816,7 +2811,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
                  if (bkref_str_off >= mctx->input.len)
                    break;
 
-                 err = extend_buffers (mctx);
+                 err = extend_buffers (mctx, bkref_str_off + 1);
                  if (BE (err != REG_NOERROR, 0))
                    return err;
 
@@ -2938,9 +2933,12 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
     {
       re_dfastate_t **new_array;
       Idx old_alloc = path->alloc;
-      Idx new_alloc = old_alloc + last_str + mctx->max_mb_elem_len + 1;
-      if (BE (new_alloc < old_alloc, 0)
-         || BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
+      Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1;
+      Idx new_alloc;
+      if (BE (IDX_MAX - old_alloc < incr_alloc, 0))
+       return REG_ESPACE;
+      new_alloc = old_alloc + incr_alloc;
+      if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
        return REG_ESPACE;
       new_array = re_realloc (path->array, re_dfastate_t *, new_alloc);
       if (BE (new_array == NULL, 0))
@@ -3103,7 +3101,7 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
       assert (!IS_EPSILON_NODE (type));
 #endif
 #ifdef RE_ENABLE_I18N
-      /* If the node may accept `multi byte'.  */
+      /* If the node may accept "multi byte".  */
       if (dfa->nodes[cur_node].accept_mb)
        {
          naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input,
@@ -3360,7 +3358,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
   bitset_word_t elem, mask;
   bool dests_node_malloced = false;
   bool dest_states_malloced = false;
-  Idx ndests; /* Number of the destination states from `state'.  */
+  Idx ndests; /* Number of the destination states from 'state'.  */
   re_dfastate_t **trtable;
   re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
   re_node_set follows, *dests_node;
@@ -3374,8 +3372,8 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
   } *dests_alloc;
 
   /* We build DFA states which corresponds to the destination nodes
-     from `state'.  `dests_node[i]' represents the nodes which i-th
-     destination state contains, and `dests_ch[i]' represents the
+     from 'state'.  'dests_node[i]' represents the nodes which i-th
+     destination state contains, and 'dests_ch[i]' represents the
      characters which i-th destination state accepts.  */
   if (__libc_use_alloca (sizeof (struct dests_alloc)))
     dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc));
@@ -3389,16 +3387,17 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
   dests_node = dests_alloc->dests_node;
   dests_ch = dests_alloc->dests_ch;
 
-  /* Initialize transiton table.  */
+  /* Initialize transition table.  */
   state->word_trtable = state->trtable = NULL;
 
-  /* At first, group all nodes belonging to `state' into several
+  /* 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 (dests_node_malloced)
        free (dests_alloc);
+      /* Return false in case of an error, true otherwise.  */
       if (ndests == 0)
        {
          state->trtable = (re_dfastate_t **)
@@ -3594,13 +3593,13 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
   reg_errcode_t err;
   bool ok;
   Idx i, j, k;
-  Idx ndests; /* Number of the destinations from `state'.  */
+  Idx ndests; /* Number of the destinations from 'state'.  */
   bitset_t accepts; /* Characters a node can accept.  */
   const re_node_set *cur_nodes = &state->nodes;
   bitset_empty (accepts);
   ndests = 0;
 
-  /* For all the nodes belonging to `state',  */
+  /* For all the nodes belonging to 'state',  */
   for (i = 0; i < cur_nodes->nelem; ++i)
     {
       re_token_t *node = &dfa->nodes[cur_nodes->elems[i]];
@@ -3643,7 +3642,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
       else
        continue;
 
-      /* Check the `accepts' and sift the characters which are not
+      /* Check the 'accepts' and sift the characters which are not
         match it the context.  */
       if (constraint)
        {
@@ -3702,7 +3701,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
            }
        }
 
-      /* Then divide `accepts' into DFA states, or create a new
+      /* Then divide 'accepts' into DFA states, or create a new
         state.  Above, we make sure that accepts is not empty.  */
       for (j = 0; j < ndests; ++j)
        {
@@ -3715,7 +3714,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
          if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c))
            continue;
 
-         /* Enumerate the intersection set of this state and `accepts'.  */
+         /* Enumerate the intersection set of this state and 'accepts'.  */
          has_intersec = 0;
          for (k = 0; k < BITSET_WORDS; ++k)
            has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k];
@@ -3723,7 +3722,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
          if (!has_intersec)
            continue;
 
-         /* Then check if this state is a subset of `accepts'.  */
+         /* Then check if this state is a subset of 'accepts'.  */
          not_subset = not_consumed = 0;
          for (k = 0; k < BITSET_WORDS; ++k)
            {
@@ -3731,8 +3730,8 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
              not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k];
            }
 
-         /* If this state isn't a subset of `accepts', create a
-            new group state, which has the `remains'. */
+         /* If this state isn't a subset of 'accepts', create a
+            new group state, which has the 'remains'. */
          if (not_subset)
            {
              bitset_copy (dests_ch[ndests], remains);
@@ -3771,7 +3770,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
 }
 
 #ifdef RE_ENABLE_I18N
-/* Check how many bytes the node `dfa->nodes[node_idx]' accepts.
+/* Check how many bytes the node 'dfa->nodes[node_idx]' accepts.
    Return the number of the bytes the node accepts.
    STR_IDX is the current index of the input string.
 
@@ -3898,7 +3897,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;
-         int32_t idx;
          /* This #include defines a local function!  */
 #  include <locale/weight.h>
 
@@ -3936,6 +3934,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
                in_collseq = find_collation_sequence_value (pin, elem_len);
            }
          /* match with range expression?  */
+         /* FIXME: Implement rational ranges here, too.  */
          for (i = 0; i < cset->nranges; ++i)
            if (cset->range_starts[i] <= in_collseq
                && in_collseq <= cset->range_ends[i])
@@ -3956,7 +3955,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);
+             int32_t idx = findidx (&cp, elem_len);
              if (idx > 0)
                for (i = 0; i < cset->nequiv_classes; ++i)
                  {
@@ -3987,18 +3986,9 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
 # endif /* _LIBC */
        {
          /* match with range expression?  */
-#if __GNUC__ >= 2 && ! (__STDC_VERSION__ < 199901L && __STRICT_ANSI__)
-         wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
-#else
-         wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
-         cmp_buf[2] = wc;
-#endif
          for (i = 0; i < cset->nranges; ++i)
            {
-             cmp_buf[0] = cset->range_starts[i];
-             cmp_buf[4] = cset->range_ends[i];
-             if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
-                 && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+             if (cset->range_starts[i] <= wc && wc <= cset->range_ends[i])
                {
                  match_len = char_len;
                  goto check_node_accept_bytes_match;
@@ -4068,7 +4058,7 @@ find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
          /* Skip the collation sequence value.  */
          idx += sizeof (uint32_t);
          /* Skip the wide char sequence of the collating element.  */
-         idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
+         idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1);
          /* If we found the entry, return the sequence value.  */
          if (found)
            return *(uint32_t *) (extra + idx);
@@ -4136,17 +4126,20 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
 
 static reg_errcode_t
 internal_function __attribute_warn_unused_result__
-extend_buffers (re_match_context_t *mctx)
+extend_buffers (re_match_context_t *mctx, int min_len)
 {
   reg_errcode_t ret;
   re_string_t *pstr = &mctx->input;
 
   /* Avoid overflow.  */
-  if (BE (SIZE_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
+  if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2
+          <= pstr->bufs_len, 0))
     return REG_ESPACE;
 
-  /* Double the lengthes of the buffers.  */
-  ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+  /* Double the lengths of the buffers, but allocate at least MIN_LEN.  */
+  ret = re_string_realloc_buffers (pstr,
+                                  MAX (min_len,
+                                       MIN (pstr->len, pstr->bufs_len * 2)));
   if (BE (ret != REG_NOERROR, 0))
     return ret;
 
@@ -4209,7 +4202,7 @@ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
       size_t max_object_size =
        MAX (sizeof (struct re_backref_cache_entry),
             sizeof (re_sub_match_top_t *));
-      if (BE (SIZE_MAX / max_object_size < n, 0))
+      if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0))
        return REG_ESPACE;
 
       mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
index 7eccde543f93c28cab312dc7331ffe80aee70a90..067a5ac65500dc43958735783aa3042d035dbe2a 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around rename bugs in some systems.
 
-   Copyright (C) 2001-2003, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-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
index 3e242b2877946759dbd3188444f1191702d12e17..47e8f75b2f3015f792ca16daf33807de9981f249 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Rename a file relative to open directories.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
diff --git a/gnu/rewinddir.c b/gnu/rewinddir.c
new file mode 100644 (file)
index 0000000..62fa874
--- /dev/null
@@ -0,0 +1,51 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Restart reading the entries of a directory from the beginning.
+   Copyright (C) 2011-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.  */
+#include <dirent.h>
+
+#include <errno.h>
+
+#include "dirent-private.h"
+
+void
+rewinddir (DIR *dirp)
+{
+  /* Like in closedir().  */
+  if (dirp->current != INVALID_HANDLE_VALUE)
+    FindClose (dirp->current);
+
+  /* Like in opendir().  */
+  dirp->status = -1;
+  dirp->current = FindFirstFile (dirp->dir_name_mask, &dirp->entry);
+  if (dirp->current == INVALID_HANDLE_VALUE)
+    {
+      switch (GetLastError ())
+        {
+        case ERROR_FILE_NOT_FOUND:
+          dirp->status = -2;
+          break;
+        default:
+          /* Save the error code for the next readdir() call.  */
+          dirp->status = ENOENT;
+          break;
+        }
+    }
+}
index b4aa63574fe27ef1b1c04d3ad8bcbec52fe17f2a..8a1c71d4fb29f2956c3662a8f2e23e8a8ec50665 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around rmdir bugs.
 
-   Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/root-uid.h b/gnu/root-uid.h
new file mode 100644 (file)
index 0000000..f7fef50
--- /dev/null
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* The user ID that always has appropriate privileges in the POSIX sense.
+
+   Copyright 2012-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/>.
+
+   Written by Paul Eggert.  */
+
+#ifndef ROOT_UID_H_
+#define ROOT_UID_H_
+
+/* The user ID that always has appropriate privileges in the POSIX sense.  */
+#ifdef __TANDEM
+# define ROOT_UID 65535
+#else
+# define ROOT_UID 0
+#endif
+
+#endif
index 80dde7c5985c2c86fe1d1da528fd7e98bfb342f6..0eddb55e7543fda0f91c1629de2a11aa13f6b70a 100644 (file)
@@ -3,7 +3,7 @@
 /* Determine whether string value is affirmation or negative response
    according to current locale's data.
 
-   Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2011 Free Software
+   Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -112,7 +112,10 @@ try (const char *response, const char *pattern, char **lastp, regex_t *re)
         return -1;
       /* Compile the pattern and cache it for future runs.  */
       if (regcomp (re, safe_pattern, REG_EXTENDED) != 0)
-        return -1;
+        {
+          free (safe_pattern);
+          return -1;
+        }
       *lastp = safe_pattern;
     }
 
index b30a3deaead0f0be1b60cd66bb39d737ff6f92d4..4170f7e1d9a22aae85c7c25551fb2bb7443f15e6 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to read and write that retries after interrupts.
 
-   Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2011 Free Software
+   Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 6f3a75a3fb96fe19f96d88c0f62d2d19a5ef91fb..227105fc30c53f8b5d703cbbddbf7ca2beff66ee 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to read() that retries after interrupts.
-   Copyright (C) 2002, 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002, 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
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+   following situations:
+     - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+       types Ctrl-Z) on some platforms: Mac OS X.
+     - The process receives a signal for which a signal handler was installed
+       with sigaction() with an sa_flags field that does not contain
+       SA_RESTART.
+     - The process receives a signal for which a signal handler was installed
+       with signal() and for which no call to siginterrupt(sig,0) was done,
+       on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+   This module provides a wrapper around read() that handles EINTR.  */
+
 #include <stddef.h>
 
 #ifdef __cplusplus
index b1c8b07369c33cbaea38b51e1148392a0c834f1b..0e39b08a62ec62d98f686a6c874086494c2eac8c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to write that retries after interrupts.
-   Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002, 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
index 3d76c1affff97e7b3be973021c9829a5f2bba916..cf7b25046f5c09c8a7234ea305c7188d928047d3 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* An interface to write() that retries after interrupts.
-   Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002, 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
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+   following situations:
+     - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+       types Ctrl-Z) on some platforms: Mac OS X.
+     - The process receives a signal for which a signal handler was installed
+       with sigaction() with an sa_flags field that does not contain
+       SA_RESTART.
+     - The process receives a signal for which a signal handler was installed
+       with signal() and for which no call to siginterrupt(sig,0) was done,
+       on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+   This module provides a wrapper around write() that handles EINTR.  */
+
 #include <stddef.h>
 
 #define SAFE_WRITE_ERROR ((size_t) -1)
index 34645b91c46607feae424080e89f68960bc14da1..743affc643ba3b186f59bda102123094778220e2 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Determine whether two stat buffers refer to the same file.
 
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 #ifndef SAME_INODE_H
 # define SAME_INODE_H 1
 
-# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
-   ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
-    && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+# ifdef __VMS
+#  define SAME_INODE(a, b)             \
+    ((a).st_ino[0] == (b).st_ino[0]    \
+     && (a).st_ino[1] == (b).st_ino[1] \
+     && (a).st_ino[2] == (b).st_ino[2] \
+     && (a).st_dev == (b).st_dev)
+# else
+#  define SAME_INODE(a, b)    \
+    ((a).st_ino == (b).st_ino \
+     && (a).st_dev == (b).st_dev)
+# endif
 
 #endif
index 603426ac8ae9034ae04c3554598016891bc422d3..dccea7e41eb0bf5a8dd69b7e7457d17cc31dad03 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* save-cwd.c -- Save and restore current working directory.
 
-   Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    closed;  return non-zero -- in that case, free_cwd need not be
    called, but doing so is ok.  Otherwise, return zero.
 
-   The `raison d'etre' for this interface is that the working directory
+   The _raison d'etre_ for this interface is that the working directory
    is sometimes inaccessible, and getcwd is not robust or as efficient.
    So, we prefer to use the open/fchdir approach, but fall back on
-   getcwd if necessary.
+   getcwd if necessary.  This module works for most cases with just
+   the getcwd-lgpl module, but to be truly robust, use the getcwd module.
 
    Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin,
    SCO Xenix.  Also, SunOS 4 and Irix 5.3 provide the function, yet it
index 2f2e4bb6849c6d4df72bcd3a73e5a35b2d63353e..65c803cda8d6742d197ccf03b8d2fe45d190ecf1 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Save and restore current working directory.
 
-   Copyright (C) 1995, 1997-1998, 2003, 2009-2011 Free Software Foundation,
+   Copyright (C) 1995, 1997-1998, 2003, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index ada0bdfbf635fe026332410d79ad1fae48d78ef5..25bf80896d33f9693653c47d6026e6dd7c11bd4e 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* savedir.c -- save the list of files in a directory in a string
 
-   Copyright (C) 1990, 1997-2001, 2003-2006, 2009-2011 Free Software
+   Copyright (C) 1990, 1997-2001, 2003-2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -107,7 +107,7 @@ streamsavedir (DIR *dirp)
   return name_space;
 }
 
-/* Like savedirstreamp (DIRP), except also close DIRP.  */
+/* Like streamsavedir (DIRP), except also close DIRP.  */
 
 static char *
 savedirstream (DIR *dirp)
index d0f5707f0b6204b8bab11568d76e727effe2f7e4..e7d233607eb82707330d9efb2b498eab7ea58b7e 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Save the list of files in a directory in a string.
 
-   Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2011 Free Software
+   Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/se-context.c b/gnu/se-context.c
new file mode 100644 (file)
index 0000000..7ef4d97
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define SE_CONTEXT_INLINE _GL_EXTERN_INLINE
+#include <selinux/context.h>
diff --git a/gnu/se-context.in.h b/gnu/se-context.in.h
new file mode 100644 (file)
index 0000000..f2b2cc0
--- /dev/null
@@ -0,0 +1,37 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#ifndef SELINUX_CONTEXT_H
+# define SELINUX_CONTEXT_H
+
+# include <errno.h>
+
+_GL_INLINE_HEADER_BEGIN
+#ifndef SE_CONTEXT_INLINE
+# define SE_CONTEXT_INLINE _GL_INLINE
+#endif
+
+/* The definition of _GL_UNUSED_PARAMETER is copied here.  */
+
+typedef int context_t;
+SE_CONTEXT_INLINE context_t context_new (char const *s _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return 0; }
+SE_CONTEXT_INLINE char *context_str (context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return (void *) 0; }
+SE_CONTEXT_INLINE void context_free (context_t c _GL_UNUSED_PARAMETER) {}
+
+SE_CONTEXT_INLINE int context_user_set (context_t sc _GL_UNUSED_PARAMETER,
+                                        char const *s _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_CONTEXT_INLINE int context_role_set (context_t sc _GL_UNUSED_PARAMETER,
+                                        char const *s _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_CONTEXT_INLINE int context_range_set (context_t sc _GL_UNUSED_PARAMETER,
+                                         char const *s _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_CONTEXT_INLINE int context_type_set (context_t sc _GL_UNUSED_PARAMETER,
+                                        char const *s _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+
+_GL_INLINE_HEADER_END
+
+#endif
diff --git a/gnu/se-selinux.c b/gnu/se-selinux.c
new file mode 100644 (file)
index 0000000..bdf696b
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define SE_SELINUX_INLINE _GL_EXTERN_INLINE
+#include <selinux/selinux.h>
diff --git a/gnu/se-selinux.in.h b/gnu/se-selinux.in.h
new file mode 100644 (file)
index 0000000..7af2c14
--- /dev/null
@@ -0,0 +1,116 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Replacement <selinux/selinux.h> for platforms that lack it.
+   Copyright (C) 2008-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/>.  */
+
+#ifndef _@GUARD_PREFIX@_SELINUX_SELINUX_H
+# define _@GUARD_PREFIX@_SELINUX_SELINUX_H
+
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+@PRAGMA_COLUMNS@
+
+# if HAVE_SELINUX_SELINUX_H
+
+#@INCLUDE_NEXT@ @NEXT_SELINUX_SELINUX_H@
+
+# else
+
+#  include <sys/types.h>
+#  include <errno.h>
+
+_GL_INLINE_HEADER_BEGIN
+#  ifndef SE_SELINUX_INLINE
+#   define SE_SELINUX_INLINE _GL_INLINE
+#  endif
+
+/* The definition of _GL_UNUSED_PARAMETER is copied here.  */
+
+#  if !GNULIB_defined_security_types
+
+typedef unsigned short security_class_t;
+#   define security_context_t char*
+#   define is_selinux_enabled() 0
+
+SE_SELINUX_INLINE int
+getcon (security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE void
+freecon (security_context_t con _GL_UNUSED_PARAMETER) {}
+
+SE_SELINUX_INLINE int
+getfscreatecon (security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+setfscreatecon (security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+matchpathcon (char const *file _GL_UNUSED_PARAMETER,
+              mode_t m _GL_UNUSED_PARAMETER,
+  security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+getfilecon (char const *file _GL_UNUSED_PARAMETER,
+            security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+lgetfilecon (char const *file _GL_UNUSED_PARAMETER,
+             security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+fgetfilecon (int fd, security_context_t *con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+setfilecon (char const *file _GL_UNUSED_PARAMETER,
+            security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+lsetfilecon (char const *file _GL_UNUSED_PARAMETER,
+             security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+fsetfilecon (int fd _GL_UNUSED_PARAMETER,
+             security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+
+SE_SELINUX_INLINE int
+security_check_context (security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+security_check_context_raw (security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+setexeccon (security_context_t con _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+security_compute_create (security_context_t scon _GL_UNUSED_PARAMETER,
+                         security_context_t tcon _GL_UNUSED_PARAMETER,
+                         security_class_t tclass _GL_UNUSED_PARAMETER,
+                         security_context_t *newcon _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+SE_SELINUX_INLINE int
+matchpathcon_init_prefix (char const *path _GL_UNUSED_PARAMETER,
+                          char const *prefix _GL_UNUSED_PARAMETER)
+  { errno = ENOTSUP; return -1; }
+
+#   define GNULIB_defined_security_types 1
+#  endif
+
+_GL_INLINE_HEADER_BEGIN
+
+# endif
+#endif /* _@GUARD_PREFIX@_SELINUX_SELINUX_H */
diff --git a/gnu/secure_getenv.c b/gnu/secure_getenv.c
new file mode 100644 (file)
index 0000000..ce31415
--- /dev/null
@@ -0,0 +1,43 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Look up an environment variable more securely.
+
+   Copyright 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>
+
+#include <stdlib.h>
+
+#if !HAVE___SECURE_GETENV
+# if HAVE_ISSETUGID
+#  include <unistd.h>
+# else
+#  undef issetugid
+#  define issetugid() 1
+# endif
+#endif
+
+char *
+secure_getenv (char const *name)
+{
+#if HAVE___SECURE_GETENV
+  return __secure_getenv (name);
+#else
+  if (issetugid ())
+    return 0;
+  return getenv (name);
+#endif
+}
diff --git a/gnu/selinux-at.c b/gnu/selinux-at.c
new file mode 100644 (file)
index 0000000..34471fa
--- /dev/null
@@ -0,0 +1,74 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* openat-style fd-relative functions for SE Linux
+   Copyright (C) 2007, 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/>.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+#include "selinux-at.h"
+#include "openat.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+
+#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+#include "save-cwd.h"
+
+#include "openat-priv.h"
+
+#define AT_FUNC_NAME getfileconat
+#define AT_FUNC_F1 getfilecon
+#define AT_FUNC_POST_FILE_PARAM_DECLS , security_context_t *con
+#define AT_FUNC_POST_FILE_ARGS        , con
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+#define AT_FUNC_NAME lgetfileconat
+#define AT_FUNC_F1 lgetfilecon
+#define AT_FUNC_POST_FILE_PARAM_DECLS , security_context_t *con
+#define AT_FUNC_POST_FILE_ARGS        , con
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+#define AT_FUNC_NAME setfileconat
+#define AT_FUNC_F1 setfilecon
+#define AT_FUNC_POST_FILE_PARAM_DECLS , security_context_t con
+#define AT_FUNC_POST_FILE_ARGS        , con
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+#define AT_FUNC_NAME lsetfileconat
+#define AT_FUNC_F1 lsetfilecon
+#define AT_FUNC_POST_FILE_PARAM_DECLS , security_context_t con
+#define AT_FUNC_POST_FILE_ARGS        , con
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
diff --git a/gnu/selinux-at.h b/gnu/selinux-at.h
new file mode 100644 (file)
index 0000000..cadd155
--- /dev/null
@@ -0,0 +1,54 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Prototypes for openat-style fd-relative SELinux functions
+   Copyright (C) 2007, 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 <selinux/selinux.h>
+#include <selinux/context.h>
+
+/* These are the dir-fd-relative variants of the functions without the
+   "at" suffix.  For example, getfileconat (AT_FDCWD, file, &c) is usually
+   equivalent to getfilecon (file, &c).  The emulation is accomplished
+   by first attempting getfilecon ("/proc/self/fd/DIR_FD/FILE", &c).
+   Failing that, simulate it via save_cwd/fchdir/getfilecon/restore_cwd.
+   If either the save_cwd or the restore_cwd fails (relatively unlikely),
+   then give a diagnostic and exit nonzero.  */
+
+/* dir-fd-relative getfilecon.  Set *CON to the SELinux security context
+   of the file specified by DIR_FD and FILE and return the length of *CON.
+   DIR_FD and FILE are interpreted as for fstatat[*].  A non-NULL *CON
+   must be freed with freecon.  Upon error, set *CON to NULL, set errno
+   and return -1.
+   [*] with flags=0 here, with flags=AT_SYMLINK_NOFOLLOW for lgetfileconat  */
+int  getfileconat (int dir_fd, char const *file, security_context_t *con);
+
+/* dir-fd-relative lgetfilecon.  This function is just like getfileconat,
+   except when DIR_FD and FILE specify a symlink:  lgetfileconat operates on
+   the symlink, while getfileconat operates on the referent of the symlink.  */
+int lgetfileconat (int dir_fd, char const *file, security_context_t *con);
+
+/* dir-fd-relative setfilecon.  Set the SELinux security context of
+   the file specified by DIR_FD and FILE to CON.  DIR_FD and FILE are
+   interpreted as for fstatat[*].  Upon success, return 0.
+   Otherwise, return -1 and set errno.  */
+int  setfileconat (int dir_fd, char const *file, security_context_t con);
+
+/* dir-fd-relative lsetfilecon.  This function is just like setfileconat,
+   except that rather than dereferencing a symlink, this function affects it. */
+/* dir-fd-relative lsetfilecon.  This function is just like setfileconat,
+   except when DIR_FD and FILE specify a symlink:  lsetfileconat operates on
+   the symlink, while setfileconat operates on the referent of the symlink.  */
+int lsetfileconat (int dir_fd, char const *file, security_context_t con);
diff --git a/gnu/set-acl.c b/gnu/set-acl.c
new file mode 100644 (file)
index 0000000..371e0df
--- /dev/null
@@ -0,0 +1,50 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* set-acl.c - set access control list equivalent to a mode
+
+   Copyright (C) 2002-2003, 2005-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/>.
+
+   Written by Paul Eggert and Andreas Gruenbacher, and Bruno Haible.  */
+
+#include <config.h>
+
+#include "acl.h"
+
+#include <errno.h>
+
+#include "quote.h"
+#include "error.h"
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+
+/* Set the access control lists of a file. If DESC is a valid file
+   descriptor, use file descriptor operations where available, else use
+   filename based operations on NAME.  If access control lists are not
+   available, fchmod the target file to MODE.  Also sets the
+   non-permission bits of the destination file (S_ISUID, S_ISGID, S_ISVTX)
+   to those from MODE if any are set.
+   Return 0 if successful.  On failure, output a diagnostic, set errno and
+   return -1.  */
+
+int
+set_acl (char const *name, int desc, mode_t mode)
+{
+  int ret = qset_acl (name, desc, mode);
+  if (ret != 0)
+    error (0, errno, _("setting permissions for %s"), quote (name));
+  return ret;
+}
index a130b26c7f9f627c1d967e3ff31ac37f9e2187d5..59f00bcc44845650cf637f1bc857ac786c95fe23 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1992, 1995-2003, 2005-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2013 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
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #if !_LIBC
-# include <config.h>
-#endif
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the name == NULL test below.  */
-#define _GL_ARG_NONNULL(params)
+# define _GL_ARG_NONNULL(params)
+
+# define _GL_USE_STDLIB_ALLOC 1
+# include <config.h>
+#endif
 
 #include <alloca.h>
 
@@ -50,7 +51,7 @@
 #endif
 
 #if _LIBC
-/* This lock protects against simultaneous modifications of `environ'.  */
+/* This lock protects against simultaneous modifications of 'environ'.  */
 # include <bits/libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
 # define LOCK   __libc_lock_lock (envlock)
@@ -66,10 +67,6 @@ __libc_lock_define_initialized (static, envlock)
 # define clearenv __clearenv
 # define tfind __tfind
 # define tsearch __tsearch
-#else
-/* Use the system functions, not the gnulib overrides in this file.  */
-# undef malloc
-# undef realloc
 #endif
 
 /* In the GNU C library implementation we try to be more clever and
@@ -108,11 +105,11 @@ static void *known_values;
 static char **last_environ;
 
 
-/* This function is used by `setenv' and `putenv'.  The difference between
+/* This function is used by 'setenv' and 'putenv'.  The difference between
    the two functions is that for the former must create a new string which
-   is then placed in the environment, while the argument of `putenv'
+   is then placed in the environment, while the argument of 'putenv'
    must be used directly.  This is all complicated by the fact that we try
-   to reuse values once generated for a `setenv' call since we can never
+   to reuse values once generated for a 'setenv' call since we can never
    free the strings.  */
 int
 __add_to_environ (const char *name, const char *value, const char *combined,
@@ -304,7 +301,7 @@ setenv (const char *name, const char *value, int replace)
   return __add_to_environ (name, value, NULL, replace);
 }
 
-/* The `clearenv' was planned to be added to POSIX.1 but probably
+/* The 'clearenv' was planned to be added to POSIX.1 but probably
    never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
    for Fortran 77) requires this function.  */
 int
@@ -355,6 +352,9 @@ weak_alias (__clearenv, clearenv)
 #if HAVE_SETENV
 
 # undef setenv
+# if !HAVE_DECL_SETENV
+extern int setenv (const char *, const char *, int);
+# endif
 # define STREQ(a, b) (strcmp (a, b) == 0)
 
 int
diff --git a/gnu/signal.in.h b/gnu/signal.in.h
new file mode 100644 (file)
index 0000000..87f7471
--- /dev/null
@@ -0,0 +1,449 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <signal.h>.
+
+   Copyright (C) 2006-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/>.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T)
+/* Special invocation convention:
+   - Inside glibc header files.
+   - On glibc systems we have a sequence of nested includes
+     <signal.h> -> <ucontext.h> -> <signal.h>.
+     In this situation, the functions are not yet declared, therefore we cannot
+     provide the C++ aliases.
+   - On glibc systems with GCC 4.3 we have a sequence of nested includes
+     <csignal> -> </usr/include/signal.h> -> <sys/ucontext.h> -> <signal.h>.
+     In this situation, some of the functions are not yet declared, therefore
+     we cannot provide the C++ aliases.  */
+
+# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_SIGNAL_H
+
+#define _GL_ALREADY_INCLUDING_SIGNAL_H
+
+/* Define pid_t, uid_t.
+   Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.
+   On Solaris 10, <signal.h> includes <sys/types.h>, which eventually includes
+   us; so include <sys/types.h> now, before the second inclusion guard.  */
+#include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_SIGNAL_H@
+
+#undef _GL_ALREADY_INCLUDING_SIGNAL_H
+
+#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>.
+   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 __GLIBC__
+# include <pthread.h>
+#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.  */
+
+/* On AIX, sig_atomic_t already includes volatile.  C99 requires that
+   'volatile sig_atomic_t' ignore the extra modifier, but C89 did not.
+   Hence, redefine this to a non-volatile type as needed.  */
+#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+# if !GNULIB_defined_sig_atomic_t
+typedef int rpl_sig_atomic_t;
+#  undef sig_atomic_t
+#  define sig_atomic_t rpl_sig_atomic_t
+#  define GNULIB_defined_sig_atomic_t 1
+# endif
+#endif
+
+/* A set or mask of signals.  */
+#if !@HAVE_SIGSET_T@
+# if !GNULIB_defined_sigset_t
+typedef unsigned int sigset_t;
+#  define GNULIB_defined_sigset_t 1
+# endif
+#endif
+
+/* Define sighandler_t, the type of signal handlers.  A GNU extension.  */
+#if !@HAVE_SIGHANDLER_T@
+# ifdef __cplusplus
+extern "C" {
+# endif
+# if !GNULIB_defined_sighandler_t
+typedef void (*sighandler_t) (int);
+#  define GNULIB_defined_sighandler_t 1
+# endif
+# ifdef __cplusplus
+}
+# endif
+#endif
+
+
+#if @GNULIB_SIGNAL_H_SIGPIPE@
+# ifndef SIGPIPE
+/* Define SIGPIPE to a value that does not overlap with other signals.  */
+#  define SIGPIPE 13
+#  define GNULIB_defined_SIGPIPE 1
+/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask',
+   'write', 'stdio'.  */
+# endif
+#endif
+
+
+/* Maximum signal number + 1.  */
+#ifndef NSIG
+# if defined __TANDEM
+#  define NSIG 32
+# endif
+#endif
+
+
+#if @GNULIB_PTHREAD_SIGMASK@
+# if @REPLACE_PTHREAD_SIGMASK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pthread_sigmask
+#   define pthread_sigmask rpl_pthread_sigmask
+#  endif
+_GL_FUNCDECL_RPL (pthread_sigmask, int,
+                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+_GL_CXXALIAS_RPL (pthread_sigmask, int,
+                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# else
+#  if !@HAVE_PTHREAD_SIGMASK@
+_GL_FUNCDECL_SYS (pthread_sigmask, int,
+                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+#  endif
+_GL_CXXALIAS_SYS (pthread_sigmask, int,
+                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# endif
+_GL_CXXALIASWARN (pthread_sigmask);
+#elif defined GNULIB_POSIXCHECK
+# undef pthread_sigmask
+# if HAVE_RAW_DECL_PTHREAD_SIGMASK
+_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - "
+                 "use gnulib module pthread_sigmask for portability");
+# endif
+#endif
+
+
+#if @GNULIB_RAISE@
+# if @REPLACE_RAISE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef raise
+#   define raise rpl_raise
+#  endif
+_GL_FUNCDECL_RPL (raise, int, (int sig));
+_GL_CXXALIAS_RPL (raise, int, (int sig));
+# else
+#  if !@HAVE_RAISE@
+_GL_FUNCDECL_SYS (raise, int, (int sig));
+#  endif
+_GL_CXXALIAS_SYS (raise, int, (int sig));
+# endif
+_GL_CXXALIASWARN (raise);
+#elif defined GNULIB_POSIXCHECK
+# undef raise
+/* Assume raise is always declared.  */
+_GL_WARN_ON_USE (raise, "raise can crash on native Windows - "
+                 "use gnulib module raise for portability");
+#endif
+
+
+#if @GNULIB_SIGPROCMASK@
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+
+#  ifndef GNULIB_defined_signal_blocking
+#   define GNULIB_defined_signal_blocking 1
+#  endif
+
+/* Maximum signal number + 1.  */
+#  ifndef NSIG
+#   define NSIG 32
+#  endif
+
+/* This code supports only 32 signals.  */
+#  if !GNULIB_defined_verify_NSIG_constraint
+typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
+#   define GNULIB_defined_verify_NSIG_constraint 1
+#  endif
+
+# 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.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigismember
+#  endif
+# else
+_GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig)
+                                    _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigismember);
+
+/* Initialize a signal set to the empty set.  */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on Mac OS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigemptyset
+#  endif
+# else
+_GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigemptyset);
+
+/* Add a signal to a signal set.  */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on Mac OS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigaddset
+#  endif
+# else
+_GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig)
+                                  _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigaddset);
+
+/* Remove a signal from a signal set.  */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on Mac OS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigdelset
+#  endif
+# else
+_GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig)
+                                  _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigdelset);
+
+/* Fill a signal set with all possible signals.  */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on Mac OS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigfillset
+#  endif
+# else
+_GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigfillset);
+
+/* Return the set of those blocked signals that are pending.  */
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+_GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigpending);
+
+/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET.
+   Then, if SET is not NULL, affect the current set of blocked signals by
+   combining it with *SET as indicated in OPERATION.
+   In this implementation, you are not allowed to change a signal handler
+   while the signal is blocked.  */
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+#  define SIG_BLOCK   0  /* blocked_set = blocked_set | *set; */
+#  define SIG_SETMASK 1  /* blocked_set = *set; */
+#  define SIG_UNBLOCK 2  /* blocked_set = blocked_set & ~*set; */
+_GL_FUNCDECL_SYS (sigprocmask, int,
+                  (int operation, const sigset_t *set, sigset_t *old_set));
+# endif
+_GL_CXXALIAS_SYS (sigprocmask, int,
+                  (int operation, const sigset_t *set, sigset_t *old_set));
+_GL_CXXALIASWARN (sigprocmask);
+
+/* Install the handler FUNC for signal SIG, and return the previous
+   handler.  */
+# ifdef __cplusplus
+extern "C" {
+# endif
+# if !GNULIB_defined_function_taking_int_returning_void_t
+typedef void (*_gl_function_taking_int_returning_void_t) (int);
+#  define GNULIB_defined_function_taking_int_returning_void_t 1
+# endif
+# ifdef __cplusplus
+}
+# endif
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define signal rpl_signal
+#  endif
+_GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t,
+                  (int sig, _gl_function_taking_int_returning_void_t func));
+_GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t,
+                  (int sig, _gl_function_taking_int_returning_void_t func));
+# else
+_GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t,
+                  (int sig, _gl_function_taking_int_returning_void_t func));
+# endif
+_GL_CXXALIASWARN (signal);
+
+# if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE
+/* Raise signal SIGPIPE.  */
+_GL_EXTERN_C int _gl_raise_SIGPIPE (void);
+# endif
+
+#elif defined GNULIB_POSIXCHECK
+# undef sigaddset
+# if HAVE_RAW_DECL_SIGADDSET
+_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigdelset
+# if HAVE_RAW_DECL_SIGDELSET
+_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigemptyset
+# if HAVE_RAW_DECL_SIGEMPTYSET
+_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigfillset
+# if HAVE_RAW_DECL_SIGFILLSET
+_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigismember
+# if HAVE_RAW_DECL_SIGISMEMBER
+_GL_WARN_ON_USE (sigismember, "sigismember is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigpending
+# if HAVE_RAW_DECL_SIGPENDING
+_GL_WARN_ON_USE (sigpending, "sigpending is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigprocmask
+# if HAVE_RAW_DECL_SIGPROCMASK
+_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
+                 "use the gnulib module sigprocmask for portability");
+# endif
+#endif /* @GNULIB_SIGPROCMASK@ */
+
+
+#if @GNULIB_SIGACTION@
+# if !@HAVE_SIGACTION@
+
+#  if !@HAVE_SIGINFO_T@
+
+#   if !GNULIB_defined_siginfo_types
+
+/* Present to allow compilation, but unsupported by gnulib.  */
+union sigval
+{
+  int sival_int;
+  void *sival_ptr;
+};
+
+/* Present to allow compilation, but unsupported by gnulib.  */
+struct siginfo_t
+{
+  int si_signo;
+  int si_code;
+  int si_errno;
+  pid_t si_pid;
+  uid_t si_uid;
+  void *si_addr;
+  int si_status;
+  long si_band;
+  union sigval si_value;
+};
+typedef struct siginfo_t siginfo_t;
+
+#    define GNULIB_defined_siginfo_types 1
+#   endif
+
+#  endif /* !@HAVE_SIGINFO_T@ */
+
+/* We assume that platforms which lack the sigaction() function also lack
+   the 'struct sigaction' type, and vice versa.  */
+
+#  if !GNULIB_defined_struct_sigaction
+
+struct sigaction
+{
+  union
+  {
+    void (*_sa_handler) (int);
+    /* Present to allow compilation, but unsupported by gnulib.  POSIX
+       says that implementations may, but not must, make sa_sigaction
+       overlap with sa_handler, but we know of no implementation where
+       they do not overlap.  */
+    void (*_sa_sigaction) (int, siginfo_t *, void *);
+  } _sa_func;
+  sigset_t sa_mask;
+  /* Not all POSIX flags are supported.  */
+  int sa_flags;
+};
+#   define sa_handler _sa_func._sa_handler
+#   define sa_sigaction _sa_func._sa_sigaction
+/* Unsupported flags are not present.  */
+#   define SA_RESETHAND 1
+#   define SA_NODEFER 2
+#   define SA_RESTART 4
+
+#   define GNULIB_defined_struct_sigaction 1
+#  endif
+
+_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict,
+                                   struct sigaction *restrict));
+
+# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+
+#  define sa_sigaction sa_handler
+
+# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
+
+_GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict,
+                                   struct sigaction *restrict));
+_GL_CXXALIASWARN (sigaction);
+
+#elif defined GNULIB_POSIXCHECK
+# undef sigaction
+# if HAVE_RAW_DECL_SIGACTION
+_GL_WARN_ON_USE (sigaction, "sigaction is unportable - "
+                 "use the gnulib module sigaction for portability");
+# endif
+#endif
+
+/* Some systems don't have SA_NODEFER.  */
+#ifndef SA_NODEFER
+# define SA_NODEFER 0
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
+#endif
index fdefb82409e80c3365b942805e6f6f4fe38cb38f..ba79e9abb9af95f56b55062564110c2729765519 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* size_max.h -- declare SIZE_MAX through system headers
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef GNULIB_SIZE_MAX_H
 #define GNULIB_SIZE_MAX_H
index 305e02d048753149e7595372372eb5ed35bf65b7..51f2d54de13215f13db3bab3a917655d7e5224f5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Pausing execution of the current thread.
-   Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@ sleep (unsigned int seconds)
   unsigned int remaining;
 
   /* Sleep for 1 second many times, because
-       1. Sleep is not interruptiple by Ctrl-C,
+       1. Sleep is not interruptible by Ctrl-C,
        2. we want to avoid arithmetic overflow while multiplying with 1000.  */
   for (remaining = seconds; remaining > 0; remaining--)
     Sleep (1000);
index 885880f09af654ed8e7d7f002e1af61284a7f23f..db7904a3ab07af2e635ce0314efa7c0cfa919cfd 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson and Paul Eggert.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff --git a/gnu/stat-time.c b/gnu/stat-time.c
new file mode 100644 (file)
index 0000000..45a4079
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE
+#include "stat-time.h"
index 1dc4098f3214b93032860c40ba5a8294ee732f36..5aa662120fac9a7b8b3ce091696a38760dfb3628 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* stat-related time functions.
 
-   Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 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
 #include <sys/stat.h>
 #include <time.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_STAT_TIME_INLINE
+# define _GL_STAT_TIME_INLINE _GL_INLINE
+#endif
+
 /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type
    struct timespec, if available.  If not, then STAT_TIMESPEC_NS (ST,
    ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST,
@@ -48,7 +53,7 @@
 #endif
 
 /* Return the nanosecond component of *ST's access time.  */
-static inline long int
+_GL_STAT_TIME_INLINE long int
 get_stat_atime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -61,7 +66,7 @@ get_stat_atime_ns (struct stat const *st)
 }
 
 /* Return the nanosecond component of *ST's status change time.  */
-static inline long int
+_GL_STAT_TIME_INLINE long int
 get_stat_ctime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -74,7 +79,7 @@ get_stat_ctime_ns (struct stat const *st)
 }
 
 /* Return the nanosecond component of *ST's data modification time.  */
-static inline long int
+_GL_STAT_TIME_INLINE long int
 get_stat_mtime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -87,7 +92,7 @@ get_stat_mtime_ns (struct stat const *st)
 }
 
 /* Return the nanosecond component of *ST's birth time.  */
-static inline long int
+_GL_STAT_TIME_INLINE long int
 get_stat_birthtime_ns (struct stat const *st)
 {
 # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
@@ -102,7 +107,7 @@ get_stat_birthtime_ns (struct stat const *st)
 }
 
 /* Return *ST's access time.  */
-static inline struct timespec
+_GL_STAT_TIME_INLINE struct timespec
 get_stat_atime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -116,7 +121,7 @@ get_stat_atime (struct stat const *st)
 }
 
 /* Return *ST's status change time.  */
-static inline struct timespec
+_GL_STAT_TIME_INLINE struct timespec
 get_stat_ctime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -130,7 +135,7 @@ get_stat_ctime (struct stat const *st)
 }
 
 /* Return *ST's data modification time.  */
-static inline struct timespec
+_GL_STAT_TIME_INLINE struct timespec
 get_stat_mtime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -144,8 +149,8 @@ get_stat_mtime (struct stat const *st)
 }
 
 /* Return *ST's birth time, if available; otherwise return a value
-   with negative tv_nsec.  */
-static inline struct timespec
+   with tv_sec and tv_nsec both equal to -1.  */
+_GL_STAT_TIME_INLINE struct timespec
 get_stat_birthtime (struct stat const *st)
 {
   struct timespec t;
@@ -157,13 +162,13 @@ get_stat_birthtime (struct stat const *st)
   t.tv_sec = st->st_birthtime;
   t.tv_nsec = st->st_birthtimensec;
 #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-  /* Woe32 native platforms (but not Cygwin) put the "file creation
+  /* Native Windows platforms (but not Cygwin) put the "file creation
      time" in st_ctime (!).  See
      <http://msdn2.microsoft.com/de-de/library/14h5k7ff(VS.80).aspx>.  */
   t.tv_sec = st->st_ctime;
   t.tv_nsec = 0;
 #else
-  /* Birth time is not supported.  Set tv_sec to avoid undefined behavior.  */
+  /* Birth time is not supported.  */
   t.tv_sec = -1;
   t.tv_nsec = -1;
   /* Avoid a "parameter unused" warning.  */
@@ -177,13 +182,17 @@ get_stat_birthtime (struct stat const *st)
      using zero.  Attempt to work around this problem.  Alas, this can
      report failure even for valid time stamps.  Also, NetBSD
      sometimes returns junk in the birth time fields; work around this
-     bug if it it is detected.  There's no need to detect negative
-     tv_nsec junk as negative tv_nsec already indicates an error.  */
-  if (t.tv_sec == 0 || 1000000000 <= t.tv_nsec)
-    t.tv_nsec = -1;
+     bug if it is detected.  */
+  if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
+    {
+      t.tv_sec = -1;
+      t.tv_nsec = -1;
+    }
 #endif
 
   return t;
 }
 
+_GL_INLINE_HEADER_END
+
 #endif
index 65835741dfdaa65323846d7e72343851c015af33..128a9bfe3b28410671e9eb5d6f49bb9ac2b03af7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
 
 /* written by Eric Blake */
 
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_stat doesn't recurse to
+   rpl_stat.  */
+#define __need_system_sys_stat_h
 #include <config.h>
 
 /* Get the original definition of stat.  It might be defined as a macro.  */
-#define __need_system_sys_stat_h
 #include <sys/types.h>
 #include <sys/stat.h>
 #undef __need_system_sys_stat_h
 
-static inline int
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if _GL_WINDOWS_64_BIT_ST_SIZE
+#  undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
+#  define stat _stati64
+#  define REPLACE_FUNC_STAT_DIR 1
+#  undef REPLACE_FUNC_STAT_FILE
+# elif REPLACE_FUNC_STAT_FILE
+/* mingw64 has a broken stat() function, based on _stat(), in libmingwex.a.
+   Bypass it.  */
+#  define stat _stat
+#  define REPLACE_FUNC_STAT_DIR 1
+#  undef REPLACE_FUNC_STAT_FILE
+# endif
+#endif
+
+static int
 orig_stat (const char *filename, struct stat *buf)
 {
   return stat (filename, buf);
 }
 
 /* Specification.  */
-#include <sys/stat.h>
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+#include "sys/stat.h"
 
 #include <errno.h>
 #include <limits.h>
 #include <stdbool.h>
 #include <string.h>
 #include "dosname.h"
+#include "verify.h"
+
+#if REPLACE_FUNC_STAT_DIR
+# include "pathmax.h"
+  /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also
+     have a constant PATH_MAX.  */
+# ifndef PATH_MAX
+#  error "Please port this replacement to your platform"
+# endif
+#endif
 
 /* Store information about NAME into ST.  Work around bugs with
    trailing slashes.  Mingw has other bugs (such as st_ino always
@@ -65,6 +96,7 @@ rpl_stat (char const *name, struct stat *st)
     }
 #endif /* REPLACE_FUNC_STAT_FILE */
 #if REPLACE_FUNC_STAT_DIR
+
   if (result == -1 && errno == ENOENT)
     {
       /* Due to mingw's oddities, there are some directories (like
@@ -79,6 +111,7 @@ rpl_stat (char const *name, struct stat *st)
       char fixed_name[PATH_MAX + 1] = {0};
       size_t len = strlen (name);
       bool check_dir = false;
+      verify (PATH_MAX <= 4096);
       if (PATH_MAX <= len)
         errno = ENAMETOOLONG;
       else if (len)
diff --git a/gnu/statat.c b/gnu/statat.c
new file mode 100644 (file)
index 0000000..556a9dc
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define STATAT_INLINE _GL_EXTERN_INLINE
+#include "openat.h"
diff --git a/gnu/stdalign.in.h b/gnu/stdalign.in.h
new file mode 100644 (file)
index 0000000..7256ede
--- /dev/null
@@ -0,0 +1,92 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A substitute for ISO C11 <stdalign.h>.
+
+   Copyright 2011-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, 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>
+#if defined __cplusplus
+   template <class __t> struct __alignof_helper { char __a; __t __b; };
+# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
+#else
+# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
+#endif
+#define alignof _Alignof
+#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 __GNUC__ || __IBMC__ || __IBMCPP__ || 0x5110 <= __SUNPRO_C
+# define _Alignas(a) __attribute__ ((__aligned__ (a)))
+#elif 1300 <= _MSC_VER
+# define _Alignas(a) __declspec (align (a))
+#endif
+#ifdef _Alignas
+# define alignas _Alignas
+# define __alignas_is_defined 1
+#endif
+
+#endif /* _GL_STDALIGN_H */
index 080bb8e998aa3685c4fd26f94825eb47e819b740..e2428398544e9ae27218a46f5bebdc9c1502e60a 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Substitute for and wrapper around <stdarg.h>.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_STDARG_H
+#ifndef _@GUARD_PREFIX@_STDARG_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STDARG_H@
 
-#ifndef _GL_STDARG_H
-#define _GL_STDARG_H
+#ifndef _@GUARD_PREFIX@_STDARG_H
+#define _@GUARD_PREFIX@_STDARG_H
 
 #ifndef va_copy
 # define va_copy(a,b) ((a) = (b))
 #endif
 
-#endif /* _GL_STDARG_H */
-#endif /* _GL_STDARG_H */
+#endif /* _@GUARD_PREFIX@_STDARG_H */
+#endif /* _@GUARD_PREFIX@_STDARG_H */
index 27a1516915a47be1966b1b8a8e4c251ddb9c0ea2..d89580181384787d3076aebadfa816a8db61207b 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 2001-2003, 2006-2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2013 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _GL_STDBOOL_H
 #define _GL_STDBOOL_H
 # undef true
 #endif
 
-/* For the sake of symbolic names in gdb, we define true and false as
-   enum constants, not only as macros.
-   It is tempting to write
-      typedef enum { false = 0, true = 1 } _Bool;
-   so that gdb prints values of type 'bool' symbolically. But if we do
-   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
-   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
-   enum; this ensures that '_Bool' promotes to 'int'.  */
-#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+#ifdef __cplusplus
+# define _Bool bool
+# define bool bool
+#else
+# if defined __BEOS__ && !defined __HAIKU__
   /* A compiler known to have 'bool'.  */
   /* If the compiler already has both 'bool' and '_Bool', we can assume they
      are the same types.  */
-# if !@HAVE__BOOL@
+#  if !@HAVE__BOOL@
 typedef bool _Bool;
-# endif
-#else
-# if !defined __GNUC__
+#  endif
+# else
+#  if !defined __GNUC__
    /* If @HAVE__BOOL@:
         Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
         the built-in _Bool type is used.  See
@@ -106,19 +100,35 @@ typedef bool _Bool;
           "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
         The only benefit of the enum, debuggability, is not important
         with these compilers.  So use 'signed char' and no enum.  */
-#  define _Bool signed char
-# else
+#   define _Bool signed char
+#  else
    /* With this compiler, trust the _Bool type if the compiler has it.  */
-#  if !@HAVE__BOOL@
+#   if !@HAVE__BOOL@
+   /* For the sake of symbolic names in gdb, define true and false as
+      enum constants, not only as macros.
+      It is tempting to write
+         typedef enum { false = 0, true = 1 } _Bool;
+      so that gdb prints values of type 'bool' symbolically.  But then
+      values of type '_Bool' might promote to 'int' or 'unsigned int'
+      (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+      (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
+      enum; this ensures that '_Bool' promotes to 'int'.  */
 typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#   endif
 #  endif
 # endif
+# define bool _Bool
 #endif
-#define bool _Bool
 
 /* The other macros must be usable in preprocessor directives.  */
-#define false 0
-#define true 1
+#ifdef __cplusplus
+# define false false
+# define true true
+#else
+# define false 0
+# define true 1
+#endif
+
 #define __bool_true_false_are_defined 1
 
 #endif /* _GL_STDBOOL_H */
index 2e20422008ca9001c571964e6408d2094003dff2..9706a9c227aef94bbe060f6abcad5049f0a560d6 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake.  */
 
@@ -40,9 +39,9 @@
    remember if special invocation has ever been used to obtain wint_t,
    in which case we need to clean up NULL yet again.  */
 
-# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T)
+# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
 #  ifdef __need_wint_t
-#   undef _GL_STDDEF_H
+#   undef _@GUARD_PREFIX@_STDDEF_H
 #   define _GL_STDDEF_WINT_T
 #  endif
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 #else
 /* Normal invocation convention.  */
 
-# ifndef _GL_STDDEF_H
+# ifndef _@GUARD_PREFIX@_STDDEF_H
 
 /* The include_next requires a split double-inclusion guard.  */
 
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 
-#  ifndef _GL_STDDEF_H
-#   define _GL_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@
@@ -84,6 +83,6 @@
 # define wchar_t int
 #endif
 
-#  endif /* _GL_STDDEF_H */
-# endif /* _GL_STDDEF_H */
+#  endif /* _@GUARD_PREFIX@_STDDEF_H */
+# endif /* _@GUARD_PREFIX@_STDDEF_H */
 #endif /* __need_XXX */
index 4e5af698650e85d11510805d07f9d1539e2a95f3..6604936b117ca5fa90d64d5c56baa0ee91bed0e3 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 2001-2002, 2004-2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /*
  * ISO C 99 <stdint.h> for platforms that lack it.
  * <http://www.opengroup.org/susv3xbd/stdint.h.html>
  */
 
-#ifndef _GL_STDINT_H
+#ifndef _@GUARD_PREFIX@_STDINT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
    <inttypes.h>.  */
 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
+/* On Android (Bionic libc), <sys/types.h> includes this file before
+   having defined 'time_t'.  Therefore in this case avoid including
+   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
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#else
+
 /* Get those types that are already defined in other system include
    files, so that we can "#define int8_t signed char" below without
    worrying about a later system include file containing a "typedef
       diagnostics.  */
 #  define __STDINT_H__
 # endif
+
+  /* Some pre-C++11 <stdint.h> implementations need this.  */
+# ifdef __cplusplus
+#  ifndef __STDC_CONSTANT_MACROS
+#   define __STDC_CONSTANT_MACROS 1
+#  endif
+#  ifndef __STDC_LIMIT_MACROS
+#   define __STDC_LIMIT_MACROS 1
+#  endif
+# endif
+
   /* Other systems may have an incomplete or buggy <stdint.h>.
      Include it before <inttypes.h>, since any "#include <stdint.h>"
      in <inttypes.h> would reinclude us, skipping our contents because
-     _GL_STDINT_H is defined.
+     _@GUARD_PREFIX@_STDINT_H is defined.
      The include_next requires a split double-inclusion guard.  */
 # @INCLUDE_NEXT@ @NEXT_STDINT_H@
 #endif
 
-#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-#define _GL_STDINT_H
+#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _@GUARD_PREFIX@_STDINT_H
 
 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
-   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
    relies on the system <stdint.h> definitions, so include
    <sys/types.h> after @NEXT_STDINT_H@.  */
 #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
 # include <sys/types.h>
 #endif
 
-/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX,
+   LONG_MIN, LONG_MAX, ULONG_MAX.  */
 #include <limits.h>
 
 #if @HAVE_INTTYPES_H@
 
 #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
-/* Minimum and maximum values for a integer type under the usual assumption.
+/* Minimum and maximum values for an integer type under the usual assumption.
    Return an unspecified value if BITS == 0, adding a check to pacify
    picky compilers.  */
 
@@ -228,8 +249,9 @@ typedef unsigned long long int gl_uint64_t;
 
 /* Here we assume a standard architecture where the hardware integer
    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-   are taken from the same list of types.  Assume that 'long int'
-   is fast enough for all narrower integers.  */
+   are taken from the same list of types.  The following code normally
+   uses types consistent with glibc, as that lessens the chance of
+   incompatibility with older GNU hosts.  */
 
 #undef int_fast8_t
 #undef uint_fast8_t
@@ -239,12 +261,21 @@ typedef unsigned long long int gl_uint64_t;
 #undef uint_fast32_t
 #undef int_fast64_t
 #undef uint_fast64_t
-typedef long int gl_int_fast8_t;
-typedef unsigned long int gl_uint_fast8_t;
-typedef long int gl_int_fast16_t;
-typedef unsigned long int gl_uint_fast16_t;
+typedef signed char gl_int_fast8_t;
+typedef unsigned char gl_uint_fast8_t;
+
+#ifdef __sun
+/* Define types compatible with SunOS 5.10, so that code compiled under
+   earlier SunOS versions works with code compiled under SunOS 5.10.  */
+typedef int gl_int_fast32_t;
+typedef unsigned int gl_uint_fast32_t;
+#else
 typedef long int gl_int_fast32_t;
 typedef unsigned long int gl_uint_fast32_t;
+#endif
+typedef gl_int_fast32_t gl_int_fast16_t;
+typedef gl_uint_fast32_t gl_uint_fast16_t;
+
 #define int_fast8_t gl_int_fast8_t
 #define uint_fast8_t gl_uint_fast8_t
 #define int_fast16_t gl_int_fast16_t
@@ -272,26 +303,36 @@ typedef unsigned long int gl_uintptr_t;
 /* Note: These types are compiler dependent. It may be unwise to use them in
    public header files. */
 
-#undef intmax_t
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+/* If the system defines INTMAX_MAX, assume that intmax_t works, and
+   similarly for UINTMAX_MAX and uintmax_t.  This avoids problems with
+   assuming one type where another is used by the system.  */
+
+#ifndef INTMAX_MAX
+# undef INTMAX_C
+# undef intmax_t
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 typedef long long int gl_intmax_t;
-# define intmax_t gl_intmax_t
-#elif defined GL_INT64_T
-# define intmax_t int64_t
-#else
+#  define intmax_t gl_intmax_t
+# elif defined GL_INT64_T
+#  define intmax_t int64_t
+# else
 typedef long int gl_intmax_t;
-# define intmax_t gl_intmax_t
+#  define intmax_t gl_intmax_t
+# endif
 #endif
 
-#undef uintmax_t
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#ifndef UINTMAX_MAX
+# undef UINTMAX_C
+# undef uintmax_t
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 typedef unsigned long long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
-#elif defined GL_UINT64_T
-# define uintmax_t uint64_t
-#else
+#  define uintmax_t gl_uintmax_t
+# elif defined GL_UINT64_T
+#  define uintmax_t uint64_t
+# else
 typedef unsigned long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
+#  define uintmax_t gl_uintmax_t
+# endif
 #endif
 
 /* Verify that intmax_t and uintmax_t have the same size.  Too much code
@@ -305,8 +346,6 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
 
 /* 7.18.2. Limits of specified-width integer types */
 
-#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
-
 /* 7.18.2.1. Limits of exact-width integer types */
 
 /* Here we assume a standard architecture where the hardware integer
@@ -392,23 +431,29 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
 #undef INT_FAST8_MIN
 #undef INT_FAST8_MAX
 #undef UINT_FAST8_MAX
-#define INT_FAST8_MIN  LONG_MIN
-#define INT_FAST8_MAX  LONG_MAX
-#define UINT_FAST8_MAX  ULONG_MAX
+#define INT_FAST8_MIN  SCHAR_MIN
+#define INT_FAST8_MAX  SCHAR_MAX
+#define UINT_FAST8_MAX  UCHAR_MAX
 
 #undef INT_FAST16_MIN
 #undef INT_FAST16_MAX
 #undef UINT_FAST16_MAX
-#define INT_FAST16_MIN  LONG_MIN
-#define INT_FAST16_MAX  LONG_MAX
-#define UINT_FAST16_MAX  ULONG_MAX
+#define INT_FAST16_MIN  INT_FAST32_MIN
+#define INT_FAST16_MAX  INT_FAST32_MAX
+#define UINT_FAST16_MAX  UINT_FAST32_MAX
 
 #undef INT_FAST32_MIN
 #undef INT_FAST32_MAX
 #undef UINT_FAST32_MAX
-#define INT_FAST32_MIN  LONG_MIN
-#define INT_FAST32_MAX  LONG_MAX
-#define UINT_FAST32_MAX  ULONG_MAX
+#ifdef __sun
+# define INT_FAST32_MIN  INT_MIN
+# define INT_FAST32_MAX  INT_MAX
+# define UINT_FAST32_MAX  UINT_MAX
+#else
+# define INT_FAST32_MIN  LONG_MIN
+# define INT_FAST32_MAX  LONG_MAX
+# define UINT_FAST32_MAX  ULONG_MAX
+#endif
 
 #undef INT_FAST64_MIN
 #undef INT_FAST64_MAX
@@ -433,21 +478,23 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
 
 /* 7.18.2.5. Limits of greatest-width integer types */
 
-#undef INTMAX_MIN
-#undef INTMAX_MAX
-#ifdef INT64_MAX
-# define INTMAX_MIN  INT64_MIN
-# define INTMAX_MAX  INT64_MAX
-#else
-# define INTMAX_MIN  INT32_MIN
-# define INTMAX_MAX  INT32_MAX
+#ifndef INTMAX_MAX
+# undef INTMAX_MIN
+# ifdef INT64_MAX
+#  define INTMAX_MIN  INT64_MIN
+#  define INTMAX_MAX  INT64_MAX
+# else
+#  define INTMAX_MIN  INT32_MIN
+#  define INTMAX_MAX  INT32_MAX
+# endif
 #endif
 
-#undef UINTMAX_MAX
-#ifdef UINT64_MAX
-# define UINTMAX_MAX  UINT64_MAX
-#else
-# define UINTMAX_MAX  UINT32_MAX
+#ifndef UINTMAX_MAX
+# ifdef UINT64_MAX
+#  define UINTMAX_MAX  UINT64_MAX
+# else
+#  define UINTMAX_MAX  UINT32_MAX
+# endif
 #endif
 
 /* 7.18.3. Limits of other integer types */
@@ -524,12 +571,8 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
 #define WINT_MAX  \
    _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
-#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
-
 /* 7.18.4. Macros for integer constants */
 
-#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
 /* 7.18.4.1. Macros for minimum-width integer constants */
 /* According to ISO C 99 Technical Corrigendum 1 */
 
@@ -570,25 +613,26 @@ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
 
 /* 7.18.4.2. Macros for greatest-width integer constants */
 
-#undef INTMAX_C
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-# define INTMAX_C(x)   x##LL
-#elif defined GL_INT64_T
-# define INTMAX_C(x)   INT64_C(x)
-#else
-# define INTMAX_C(x)   x##L
+#ifndef INTMAX_C
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define INTMAX_C(x)   x##LL
+# elif defined GL_INT64_T
+#  define INTMAX_C(x)   INT64_C(x)
+# else
+#  define INTMAX_C(x)   x##L
+# endif
 #endif
 
-#undef UINTMAX_C
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-# define UINTMAX_C(x)  x##ULL
-#elif defined GL_UINT64_T
-# define UINTMAX_C(x)  UINT64_C(x)
-#else
-# define UINTMAX_C(x)  x##UL
+#ifndef UINTMAX_C
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define UINTMAX_C(x)  x##ULL
+# elif defined GL_UINT64_T
+#  define UINTMAX_C(x)  UINT64_C(x)
+# else
+#  define UINTMAX_C(x)  x##UL
+# endif
 #endif
 
-#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-
-#endif /* _GL_STDINT_H */
-#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
+#endif /* _@GUARD_PREFIX@_STDINT_H */
+#endif /* !(defined __ANDROID__ && ...) */
+#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
index c64553c7708dcac9d841fc60f8fbf5fbd928cb28..fd916d83795aa4b068abc7cc3e060f8f4052cf51 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Implementation details of FILE streams.
-   Copyright (C) 2007-2008, 2010-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010-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
@@ -28,7 +28,9 @@
 # include <sys/param.h>
 #endif
 
-#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#include <errno.h>                             /* For detecting Plan9.  */
+
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 
 # if defined __DragonFly__          /* DragonFly */
   /* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>.  */
@@ -66,7 +68,7 @@
       /* More fields, not relevant here.  */
     };
 #  define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
-# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, MacOS X, Cygwin */
+# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */
 #  define fp_ub fp_->_ub
 # endif
 
index 465a9c9f3916f078dd138296a83dac02920c0bc9..61790042e1d530e0a4e8c731723f82ac98add09f 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
@@ -37,7 +36,7 @@
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_STDIO_H
+#ifndef _@GUARD_PREFIX@_STDIO_H
 
 #define _GL_ALREADY_INCLUDING_STDIO_H
 
@@ -46,8 +45,8 @@
 
 #undef _GL_ALREADY_INCLUDING_STDIO_H
 
-#ifndef _GL_STDIO_H
-#define _GL_STDIO_H
+#ifndef _@GUARD_PREFIX@_STDIO_H
+#define _@GUARD_PREFIX@_STDIO_H
 
 /* Get va_list.  Needed on many systems, including glibc 2.8.  */
 #include <stdarg.h>
@@ -55,7 +54,8 @@
 #include <stddef.h>
 
 /* Get off_t and ssize_t.  Needed on many systems, including glibc 2.8
-   and eglibc 2.11.2.  */
+   and eglibc 2.11.2.
+   May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>
 
 /* The __attribute__ feature is available in gcc versions 2.5 and later.
 #else
 # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
 #endif
-#define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF
+   indicates to GCC that the function takes a format string and arguments,
+   where the format string directives are the ones standardized by ISO C99
+   and POSIX.  */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF,
+   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) \
   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
 
+/* _GL_ATTRIBUTE_FORMAT_SCANF
+   indicates to GCC that the function takes a format string and arguments,
+   where the format string directives are the ones standardized by ISO C99
+   and POSIX.  */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF,
+   except that it indicates to GCC that the supported format string directives
+   are the ones of the system scanf(), rather than the ones standardized by
+   ISO C99 and POSIX.  */
+#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
+  _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+
 /* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>.  */
 /* But in any case avoid namespace pollution on glibc systems.  */
 #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
@@ -136,6 +172,26 @@ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
                  "use gnulib module fclose for portable POSIX compliance");
 #endif
 
+#if @GNULIB_FDOPEN@
+# if @REPLACE_FDOPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fdopen
+#   define fdopen rpl_fdopen
+#  endif
+_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
+                                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
+# else
+_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
+# endif
+_GL_CXXALIASWARN (fdopen);
+#elif defined GNULIB_POSIXCHECK
+# undef fdopen
+/* Assume fdopen is always declared.  */
+_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
+                 "use gnulib module fdopen for portability");
+#endif
+
 #if @GNULIB_FFLUSH@
 /* Flush all pending data on STREAM according to POSIX rules.  Both
    output and seekable input streams are supported.
@@ -160,11 +216,34 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
                  "use gnulib module fflush for portable POSIX compliance");
 #endif
 
-/* It is very rare that the developer ever has full control of stdin,
-   so any use of gets warrants an unconditional warning.  Assume it is
-   always declared, since it is required by C89.  */
-#undef gets
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#if @GNULIB_FGETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fgetc
+#   define fgetc rpl_fgetc
+#  endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgetc);
+#endif
+
+#if @GNULIB_FGETS@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fgets
+#   define fgets rpl_fgets
+#  endif
+_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
+                                 _GL_ARG_NONNULL ((1, 3)));
+_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgets);
+#endif
 
 #if @GNULIB_FOPEN@
 # if @REPLACE_FOPEN@
@@ -182,20 +261,26 @@ _GL_CXXALIASWARN (fopen);
 #elif defined GNULIB_POSIXCHECK
 # undef fopen
 /* Assume fopen is always declared.  */
-_GL_WARN_ON_USE (fopen, "fopen on Win32 platforms is not POSIX compatible - "
+_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
                  "use gnulib module fopen for portability");
 #endif
 
 #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
 # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \
-     || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@)
+     || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define fprintf rpl_fprintf
 #  endif
 #  define GNULIB_overrides_fprintf 1
+#  if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
 _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
                                 _GL_ARG_NONNULL ((1, 2)));
+#  else
+_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
+                                _GL_ARG_NONNULL ((1, 2)));
+#  endif
 _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...));
 # else
 _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...));
@@ -241,7 +326,7 @@ _GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
 #endif
 
 #if @GNULIB_FPUTC@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef fputc
 #   define fputc rpl_fputc
@@ -255,7 +340,7 @@ _GL_CXXALIASWARN (fputc);
 #endif
 
 #if @GNULIB_FPUTS@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef fputs
 #   define fputs rpl_fputs
@@ -269,6 +354,21 @@ _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream));
 _GL_CXXALIASWARN (fputs);
 #endif
 
+#if @GNULIB_FREAD@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fread
+#   define fread rpl_fread
+#  endif
+_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
+                                 _GL_ARG_NONNULL ((4)));
+_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fread);
+#endif
+
 #if @GNULIB_FREOPEN@
 # if @REPLACE_FREOPEN@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -289,10 +389,26 @@ _GL_CXXALIASWARN (freopen);
 # undef freopen
 /* Assume freopen is always declared.  */
 _GL_WARN_ON_USE (freopen,
-                 "freopen on Win32 platforms is not POSIX compatible - "
+                 "freopen on native Windows platforms is not POSIX compliant - "
                  "use gnulib module freopen for portability");
 #endif
 
+#if @GNULIB_FSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fscanf
+#   define fscanf rpl_fscanf
+#  endif
+_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
+                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
+                               _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
+# else
+_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (fscanf);
+#endif
+
 
 /* Set up the following warnings, based on which modules are in use.
    GNU Coding Standards discourage the use of fseek, since it imposes
@@ -367,25 +483,6 @@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
 _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
 # endif
 _GL_CXXALIASWARN (fseeko);
-# if (@REPLACE_FSEEKO@ || !@HAVE_FSEEKO@) && !@GNULIB_FSEEK@
-   /* Provide an fseek function that is consistent with fseeko.  */
-   /* In order to avoid that fseek gets defined as a macro here, the
-      developer can request the 'fseek' module.  */
-#  if !GNULIB_defined_fseek_function
-#   undef fseek
-#   define fseek rpl_fseek
-static inline int _GL_ARG_NONNULL ((1))
-rpl_fseek (FILE *fp, long offset, int whence)
-{
-#   if @REPLACE_FSEEKO@
-  return rpl_fseeko (fp, offset, whence);
-#   else
-  return fseeko (fp, offset, whence);
-#   endif
-}
-#   define GNULIB_defined_fseek_function 1
-#  endif
-# endif
 #elif defined GNULIB_POSIXCHECK
 # define _GL_FSEEK_WARN /* Category 1, above.  */
 # undef fseek
@@ -445,25 +542,6 @@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
 # endif
 _GL_CXXALIASWARN (ftello);
-# if (@REPLACE_FTELLO@ || !@HAVE_FTELLO@) && !@GNULIB_FTELL@
-   /* Provide an ftell function that is consistent with ftello.  */
-   /* In order to avoid that ftell gets defined as a macro here, the
-      developer can request the 'ftell' module.  */
-#  if !GNULIB_defined_ftell_function
-#   undef ftell
-#   define ftell rpl_ftell
-static inline long _GL_ARG_NONNULL ((1))
-rpl_ftell (FILE *f)
-{
-#   if @REPLACE_FTELLO@
-  return rpl_ftello (f);
-#   else
-  return ftello (f);
-#   endif
-}
-#   define GNULIB_defined_ftell_function 1
-#  endif
-# endif
 #elif defined GNULIB_POSIXCHECK
 # define _GL_FTELL_WARN /* Category 1, above.  */
 # undef ftell
@@ -485,7 +563,7 @@ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB "
 
 
 #if @GNULIB_FWRITE@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef fwrite
 #   define fwrite rpl_fwrite
@@ -498,10 +576,61 @@ _GL_CXXALIAS_RPL (fwrite, size_t,
 # else
 _GL_CXXALIAS_SYS (fwrite, size_t,
                   (const void *ptr, size_t s, size_t n, FILE *stream));
+
+/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
+   <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 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
+#   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);
 #endif
 
+#if @GNULIB_GETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getc
+#   define getc rpl_fgetc
+#  endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (getc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (getc);
+#endif
+
+#if @GNULIB_GETCHAR@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getchar
+#   define getchar rpl_getchar
+#  endif
+_GL_FUNCDECL_RPL (getchar, int, (void));
+_GL_CXXALIAS_RPL (getchar, int, (void));
+# else
+_GL_CXXALIAS_SYS (getchar, int, (void));
+# endif
+_GL_CXXALIASWARN (getchar);
+#endif
+
 #if @GNULIB_GETDELIM@
 /* Read input, up to (and including) the next occurrence of DELIMITER, from
    STREAM, store it in *LINEPTR (and NUL-terminate it).
@@ -578,6 +707,15 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
 # endif
 #endif
 
+/* It is very rare that the developer ever has full control of stdin,
+   so any use of gets warrants an unconditional warning; besides, C11
+   removed it.  */
+#undef gets
+#if HAVE_RAW_DECL_GETS
+_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
@@ -629,6 +767,20 @@ _GL_CXXALIAS_SYS (obstack_vprintf, int,
 _GL_CXXALIASWARN (obstack_vprintf);
 #endif
 
+#if @GNULIB_PCLOSE@
+# if !@HAVE_PCLOSE@
+_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
+_GL_CXXALIASWARN (pclose);
+#elif defined GNULIB_POSIXCHECK
+# undef pclose
+# if HAVE_RAW_DECL_PCLOSE
+_GL_WARN_ON_USE (pclose, "pclose is unportable - "
+                 "use gnulib module pclose for more portability");
+# endif
+#endif
+
 #if @GNULIB_PERROR@
 /* Print a message to standard error, describing the value of ERRNO,
    (if STRING is not NULL and not empty) prefixed with STRING and ": ",
@@ -660,6 +812,10 @@ _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode)
                                  _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
 # else
+#  if !@HAVE_POPEN@
+_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
+                                 _GL_ARG_NONNULL ((1, 2)));
+#  endif
 _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
 # endif
 _GL_CXXALIASWARN (popen);
@@ -673,18 +829,27 @@ _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
 
 #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@
 # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \
-     || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@)
+     || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
 #  if defined __GNUC__
 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 /* Don't break __attribute__((format(printf,M,N))).  */
 #    define printf __printf__
 #   endif
+#   if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
 _GL_FUNCDECL_RPL_1 (__printf__, int,
                     (const char *format, ...)
                     __asm__ (@ASM_SYMBOL_PREFIX@
                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
                     _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
                     _GL_ARG_NONNULL ((1)));
+#   else
+_GL_FUNCDECL_RPL_1 (__printf__, int,
+                    (const char *format, ...)
+                    __asm__ (@ASM_SYMBOL_PREFIX@
+                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
+                    _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
+                    _GL_ARG_NONNULL ((1)));
+#   endif
 _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
 #  else
 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -713,7 +878,7 @@ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
 #endif
 
 #if @GNULIB_PUTC@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef putc
 #   define putc rpl_fputc
@@ -727,7 +892,7 @@ _GL_CXXALIASWARN (putc);
 #endif
 
 #if @GNULIB_PUTCHAR@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef putchar
 #   define putchar rpl_putchar
@@ -741,7 +906,7 @@ _GL_CXXALIASWARN (putchar);
 #endif
 
 #if @GNULIB_PUTS@
-# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef puts
 #   define puts rpl_puts
@@ -825,6 +990,37 @@ _GL_WARN_ON_USE (renameat, "renameat is not portable - "
 # endif
 #endif
 
+#if @GNULIB_SCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if defined __GNUC__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef scanf
+/* Don't break __attribute__((format(scanf,M,N))).  */
+#    define scanf __scanf__
+#   endif
+_GL_FUNCDECL_RPL_1 (__scanf__, int,
+                    (const char *format, ...)
+                    __asm__ (@ASM_SYMBOL_PREFIX@
+                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
+                    _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+                    _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
+#  else
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef scanf
+#    define scanf rpl_scanf
+#   endif
+_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
+                              _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+                              _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
+#  endif
+# else
+_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
+# endif
+_GL_CXXALIASWARN (scanf);
+#endif
+
 #if @GNULIB_SNPRINTF@
 # if @REPLACE_SNPRINTF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -855,9 +1051,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
 # endif
 #endif
 
-/* Some people would argue that sprintf should be handled like gets
-   (for example, OpenBSD issues a link warning for both functions),
-   since both can cause security holes due to buffer overruns.
+/* Some people would argue that all sprintf uses should be warned about
+   (for example, OpenBSD issues a link warning for it),
+   since it can cause security holes due to buffer overruns.
    However, we believe that sprintf can be used safely, and is more
    efficient than snprintf in those safe cases; and as proof of our
    belief, we use sprintf in several gnulib modules.  So this header
@@ -984,14 +1180,20 @@ _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
 
 #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@
 # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \
-     || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@)
+     || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vfprintf rpl_vfprintf
 #  endif
 #  define GNULIB_overrides_vfprintf 1
+#  if @GNULIB_VFPRINTF_POSIX@
 _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
                                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
                                  _GL_ARG_NONNULL ((1, 2)));
+#  else
+_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
+                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
+                                 _GL_ARG_NONNULL ((1, 2)));
+#  endif
 _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
 # else
 /* Need to cast, because on Solaris, the third parameter is
@@ -1012,16 +1214,41 @@ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
                       "POSIX compliance");
 #endif
 
+#if @GNULIB_VFSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef vfscanf
+#   define vfscanf rpl_vfscanf
+#  endif
+_GL_FUNCDECL_RPL (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vfscanf);
+#endif
+
 #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@
 # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \
-     || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@)
+     || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vprintf rpl_vprintf
 #  endif
 #  define GNULIB_overrides_vprintf 1
+#  if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
 _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
                                 _GL_ARG_NONNULL ((1)));
+#  else
+_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
+                                _GL_ARG_NONNULL ((1)));
+#  endif
 _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
 # else
 /* Need to cast, because on Solaris, the second parameter is
@@ -1041,6 +1268,22 @@ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
                  "POSIX compliance");
 #endif
 
+#if @GNULIB_VSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef vscanf
+#   define vscanf rpl_vscanf
+#  endif
+_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
+                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
+                               _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vscanf);
+#endif
+
 #if @GNULIB_VSNPRINTF@
 # if @REPLACE_VSNPRINTF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -1098,7 +1341,6 @@ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
                       "POSIX compliance");
 #endif
 
-
-#endif /* _GL_STDIO_H */
-#endif /* _GL_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
 #endif
index 6594cd90605e0490e6464af7b7f741f26c2160ef..863457f6fcb39ac3b41602a9d70bcec4e1d88d24 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-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
 #endif
 @PRAGMA_COLUMNS@
 
-#if defined __need_malloc_and_calloc
-/* Special invocation convention inside glibc header files.  */
+#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
+/* Special invocation conventions inside some gnulib header files,
+   and inside some glibc header files, respectively.  */
 
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
-#ifndef _GL_STDLIB_H
-#define _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
+#define _@GUARD_PREFIX@_STDLIB_H
 
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 # include <sys/loadavg.h>
 #endif
 
+/* Native Windows platforms declare mktemp() in <io.h>.  */
+#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
 #if @GNULIB_RANDOM_R@
 
 /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
@@ -60,7 +66,7 @@
 #  include <random.h>
 # endif
 
-# if !@HAVE_STRUCT_RANDOM_DATA@ || !@HAVE_RANDOM_R@
+# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
 #  include <stdint.h>
 # endif
 
@@ -83,19 +89,24 @@ struct random_data
 # endif
 #endif
 
-#if (@GNULIB_MKSTEMP@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
-/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
+#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+/* On Mac OS X 10.3, only <unistd.h> declares mkstemp.  */
+/* On Mac OS X 10.5, only <unistd.h> declares mkstemps.  */
 /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
 /* But avoid namespace pollution on glibc systems and native Windows.  */
 # include <unistd.h>
 #endif
 
-#if 3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
 #else
-# define _GL_ATTRIBUTE_NORETURN
+# define _GL_ATTRIBUTE_PURE /* empty */
 #endif
 
+/* The definition of _Noreturn is copied here.  */
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
@@ -121,7 +132,7 @@ struct random_data
 /* Terminate the current process with the given return code, without running
    the 'atexit' handlers.  */
 # if !@HAVE__EXIT@
-_GL_FUNCDECL_SYS (_Exit, void, (int status) _GL_ATTRIBUTE_NORETURN);
+_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
 # endif
 _GL_CXXALIAS_SYS (_Exit, void, (int status));
 _GL_CXXALIASWARN (_Exit);
@@ -138,7 +149,9 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
 /* Parse a signed decimal integer.
    Returns the value of the integer.  Errors are not detected.  */
 # if !@HAVE_ATOLL@
-_GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (atoll, long long, (const char *string)
+                                    _GL_ATTRIBUTE_PURE
+                                    _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
 _GL_CXXALIASWARN (atoll);
@@ -252,14 +265,19 @@ _GL_CXXALIASWARN (grantpt);
 #elif defined GNULIB_POSIXCHECK
 # undef grantpt
 # if HAVE_RAW_DECL_GRANTPT
-_GL_WARN_ON_USE (ptsname, "grantpt is not portable - "
+_GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
                  "use gnulib module grantpt for portability");
 # endif
 #endif
 
+/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
+   rely on GNU or POSIX semantics for malloc and realloc (for example,
+   by never specifying a zero size), so it does not need malloc or
+   realloc to be redefined.  */
 #if @GNULIB_MALLOC_POSIX@
 # if @REPLACE_MALLOC@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+        || _GL_USE_STDLIB_ALLOC)
 #   undef malloc
 #   define malloc rpl_malloc
 #  endif
@@ -269,7 +287,7 @@ _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
 _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
 # endif
 _GL_CXXALIASWARN (malloc);
-#elif defined GNULIB_POSIXCHECK
+#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
 # undef malloc
 /* Assume malloc is always declared.  */
 _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
@@ -423,13 +441,38 @@ _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
 # endif
 #endif
 
+#if @GNULIB_POSIX_OPENPT@
+/* Return an FD open to the master side of a pseudo-terminal.  Flags should
+   include O_RDWR, and may also include O_NOCTTY.  */
+# if !@HAVE_POSIX_OPENPT@
+_GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
+# endif
+_GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
+_GL_CXXALIASWARN (posix_openpt);
+#elif defined GNULIB_POSIXCHECK
+# undef posix_openpt
+# if HAVE_RAW_DECL_POSIX_OPENPT
+_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
+                 "use gnulib module posix_openpt for portability");
+# endif
+#endif
+
 #if @GNULIB_PTSNAME@
 /* Return the pathname of the pseudo-terminal slave associated with
    the master FD is open on, or NULL on errors.  */
-# if !@HAVE_PTSNAME@
+# if @REPLACE_PTSNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ptsname
+#   define ptsname rpl_ptsname
+#  endif
+_GL_FUNCDECL_RPL (ptsname, char *, (int fd));
+_GL_CXXALIAS_RPL (ptsname, char *, (int fd));
+# else
+#  if !@HAVE_PTSNAME@
 _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
+# endif
 _GL_CXXALIASWARN (ptsname);
 #elif defined GNULIB_POSIXCHECK
 # undef ptsname
@@ -439,6 +482,32 @@ _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
 # endif
 #endif
 
+#if @GNULIB_PTSNAME_R@
+/* Set the pathname of the pseudo-terminal slave associated with
+   the master FD is open on and return 0, or set errno and return
+   non-zero on errors.  */
+# if @REPLACE_PTSNAME_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ptsname_r
+#   define ptsname_r rpl_ptsname_r
+#  endif
+_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+# else
+#  if !@HAVE_PTSNAME_R@
+_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+#  endif
+_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+# endif
+_GL_CXXALIASWARN (ptsname_r);
+#elif defined GNULIB_POSIXCHECK
+# undef ptsname_r
+# if HAVE_RAW_DECL_PTSNAME_R
+_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
+                 "use gnulib module ptsname_r for portability");
+# endif
+#endif
+
 #if @GNULIB_PUTENV@
 # if @REPLACE_PUTENV@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -462,12 +531,83 @@ _GL_CXXALIASWARN (putenv);
 # endif
 #endif
 
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (random, long, (void));
+# endif
+_GL_CXXALIAS_SYS (random, long, (void));
+_GL_CXXALIASWARN (random);
+#elif defined GNULIB_POSIXCHECK
+# undef random
+# if HAVE_RAW_DECL_RANDOM
+_GL_WARN_ON_USE (random, "random is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
+# endif
+_GL_CXXALIAS_SYS (srandom, void, (unsigned int seed));
+_GL_CXXALIASWARN (srandom);
+#elif defined GNULIB_POSIXCHECK
+# undef srandom
+# if HAVE_RAW_DECL_SRANDOM
+_GL_WARN_ON_USE (srandom, "srandom is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (initstate, char *,
+                  (unsigned int seed, char *buf, size_t buf_size)
+                  _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (initstate, char *,
+                  (unsigned int seed, char *buf, size_t buf_size));
+_GL_CXXALIASWARN (initstate);
+#elif defined GNULIB_POSIXCHECK
+# undef initstate
+# if HAVE_RAW_DECL_INITSTATE_R
+_GL_WARN_ON_USE (initstate, "initstate is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
+_GL_CXXALIASWARN (setstate);
+#elif defined GNULIB_POSIXCHECK
+# undef setstate
+# if HAVE_RAW_DECL_SETSTATE_R
+_GL_WARN_ON_USE (setstate, "setstate is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef random_r
+#   define random_r rpl_random_r
+#  endif
+_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
+                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
                                  _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
+# endif
 _GL_CXXALIASWARN (random_r);
 #elif defined GNULIB_POSIXCHECK
 # undef random_r
@@ -478,13 +618,25 @@ _GL_WARN_ON_USE (random_r, "random_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef srandom_r
+#   define srandom_r rpl_srandom_r
+#  endif
+_GL_FUNCDECL_RPL (srandom_r, int,
+                  (unsigned int seed, struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (srandom_r, int,
+                  (unsigned int seed, struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (srandom_r, int,
                   (unsigned int seed, struct random_data *rand_state)
                   _GL_ARG_NONNULL ((2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (srandom_r, int,
                   (unsigned int seed, struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (srandom_r);
 #elif defined GNULIB_POSIXCHECK
 # undef srandom_r
@@ -495,15 +647,29 @@ _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef initstate_r
+#   define initstate_r rpl_initstate_r
+#  endif
+_GL_FUNCDECL_RPL (initstate_r, int,
+                  (unsigned int seed, char *buf, size_t buf_size,
+                   struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((2, 4)));
+_GL_CXXALIAS_RPL (initstate_r, int,
+                  (unsigned int seed, char *buf, size_t buf_size,
+                   struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (initstate_r, int,
                   (unsigned int seed, char *buf, size_t buf_size,
                    struct random_data *rand_state)
                   _GL_ARG_NONNULL ((2, 4)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (initstate_r, int,
                   (unsigned int seed, char *buf, size_t buf_size,
                    struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (initstate_r);
 #elif defined GNULIB_POSIXCHECK
 # undef initstate_r
@@ -514,13 +680,25 @@ _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef setstate_r
+#   define setstate_r rpl_setstate_r
+#  endif
+_GL_FUNCDECL_RPL (setstate_r, int,
+                  (char *arg_state, struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (setstate_r, int,
+                  (char *arg_state, struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (setstate_r, int,
                   (char *arg_state, struct random_data *rand_state)
                   _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (setstate_r, int,
                   (char *arg_state, struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (setstate_r);
 #elif defined GNULIB_POSIXCHECK
 # undef setstate_r
@@ -533,7 +711,8 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
 
 #if @GNULIB_REALLOC_POSIX@
 # if @REPLACE_REALLOC@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+        || _GL_USE_STDLIB_ALLOC)
 #   undef realloc
 #   define realloc rpl_realloc
 #  endif
@@ -543,7 +722,7 @@ _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
 _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
 # endif
 _GL_CXXALIASWARN (realloc);
-#elif defined GNULIB_POSIXCHECK
+#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
 # undef realloc
 /* Assume realloc is always declared.  */
 _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
@@ -590,6 +769,22 @@ _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
 # endif
 #endif
 
+#if @GNULIB_SECURE_GETENV@
+/* Look up NAME in the environment, returning 0 in insecure situations.  */
+# if !@HAVE_SECURE_GETENV@
+_GL_FUNCDECL_SYS (secure_getenv, char *,
+                  (char const *name) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
+_GL_CXXALIASWARN (secure_getenv);
+#elif defined GNULIB_POSIXCHECK
+# undef secure_getenv
+# if HAVE_RAW_DECL_SECURE_GETENV
+_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
+                 "use gnulib module secure_getenv for portability");
+# endif
+#endif
+
 #if @GNULIB_SETENV@
 /* Set NAME to VALUE in the environment.
    If REPLACE is nonzero, overwrite an existing value.  */
@@ -756,6 +951,6 @@ _GL_CXXALIASWARN (wctomb);
 #endif
 
 
-#endif /* _GL_STDLIB_H */
-#endif /* _GL_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
 #endif
index b2beb29e3d1761c9f46833e83e5cf543754a6a97..68db6752bb9f9769ac6da8163fb390a0b7084e74 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* stpcpy.c -- copy a string and return pointer to end of new string
-   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2011 Free Software
+   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2013 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
index b030fa8f87e77bfb90a73584daad9344ba94933b..8c480a8abcaabf22c471b54765097cf214876129 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 83ef294abced1f976b482d1d1495fc82ba9ab1ae..f054acd6ffa995b5a0ddd14a2a4d7337354db0db 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Searching in a string.
-   Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2007-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
index 3395e6c1ee7d1c37d08540397f2f5c1bec90d349..8ebc71fbba6ea78fca2680248a9fac569c73dd33 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2011 Free Software
+/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This file is part of the GNU C Library.
@@ -16,8 +16,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBC
 # include <config.h>
index 067732dd69f15f8a1f66f01fb4e9504e107c886c..89533c59b3e77d17b410bbe9ab4adaa5fa35f7ac 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Optimized string comparison.
-   Copyright (C) 2001-2002, 2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 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
@@ -23,8 +23,8 @@
 
 #include <string.h>
 
-/* STREQ allows to optimize string comparison with a small literal string.
-     STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+/* STREQ_OPT allows to optimize string comparison with a small literal string.
+     STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
    is semantically equivalent to
      strcmp (s, "EUC-KR") == 0
    just faster.  */
@@ -165,12 +165,12 @@ streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23,
     return 0;
 }
 
-#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
   streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
 
 #else
 
-#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
   (strcmp (s1, s2) == 0)
 
 #endif
diff --git a/gnu/strerror-override.c b/gnu/strerror-override.c
new file mode 100644 (file)
index 0000000..4e017bc
--- /dev/null
@@ -0,0 +1,304 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strerror-override.c --- POSIX compatible system error routine
+
+   Copyright (C) 2010-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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+#include "strerror-override.h"
+
+#include <errno.h>
+
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+#  include <winsock2.h>
+# endif
+#endif
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+const char *
+strerror_override (int errnum)
+{
+  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
+  switch (errnum)
+    {
+#if REPLACE_STRERROR_0
+    case 0:
+      return "Success";
+#endif
+
+#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+    case EINPROGRESS:
+      return "Operation now in progress";
+    case EALREADY:
+      return "Operation already in progress";
+    case ENOTSOCK:
+      return "Socket operation on non-socket";
+    case EDESTADDRREQ:
+      return "Destination address required";
+    case EMSGSIZE:
+      return "Message too long";
+    case EPROTOTYPE:
+      return "Protocol wrong type for socket";
+    case ENOPROTOOPT:
+      return "Protocol not available";
+    case EPROTONOSUPPORT:
+      return "Protocol not supported";
+    case EOPNOTSUPP:
+      return "Operation not supported";
+    case EAFNOSUPPORT:
+      return "Address family not supported by protocol";
+    case EADDRINUSE:
+      return "Address already in use";
+    case EADDRNOTAVAIL:
+      return "Cannot assign requested address";
+    case ENETDOWN:
+      return "Network is down";
+    case ENETUNREACH:
+      return "Network is unreachable";
+    case ECONNRESET:
+      return "Connection reset by peer";
+    case ENOBUFS:
+      return "No buffer space available";
+    case EISCONN:
+      return "Transport endpoint is already connected";
+    case ENOTCONN:
+      return "Transport endpoint is not connected";
+    case ETIMEDOUT:
+      return "Connection timed out";
+    case ECONNREFUSED:
+      return "Connection refused";
+    case ELOOP:
+      return "Too many levels of symbolic links";
+    case EHOSTUNREACH:
+      return "No route to host";
+    case EWOULDBLOCK:
+      return "Operation would block";
+#endif
+#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+    case ETXTBSY:
+      return "Text file busy";
+    case ENODATA:
+      return "No data available";
+    case ENOSR:
+      return "Out of streams resources";
+    case ENOSTR:
+      return "Device not a stream";
+    case ETIME:
+      return "Timer expired";
+    case EOTHER:
+      return "Other error";
+#endif
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+    case ESOCKTNOSUPPORT:
+      return "Socket type not supported";
+    case EPFNOSUPPORT:
+      return "Protocol family not supported";
+    case ESHUTDOWN:
+      return "Cannot send after transport endpoint shutdown";
+    case ETOOMANYREFS:
+      return "Too many references: cannot splice";
+    case EHOSTDOWN:
+      return "Host is down";
+    case EPROCLIM:
+      return "Too many processes";
+    case EUSERS:
+      return "Too many users";
+    case EDQUOT:
+      return "Disk quota exceeded";
+    case ESTALE:
+      return "Stale NFS file handle";
+    case EREMOTE:
+      return "Object is remote";
+# if HAVE_WINSOCK2_H
+      /* WSA_INVALID_HANDLE maps to EBADF */
+      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+      /* WSA_INVALID_PARAMETER maps to EINVAL */
+    case WSA_OPERATION_ABORTED:
+      return "Overlapped operation aborted";
+    case WSA_IO_INCOMPLETE:
+      return "Overlapped I/O event object not in signaled state";
+    case WSA_IO_PENDING:
+      return "Overlapped operations will complete later";
+      /* WSAEINTR maps to EINTR */
+      /* WSAEBADF maps to EBADF */
+      /* WSAEACCES maps to EACCES */
+      /* WSAEFAULT maps to EFAULT */
+      /* WSAEINVAL maps to EINVAL */
+      /* WSAEMFILE maps to EMFILE */
+      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+      /* WSAEINPROGRESS maps to EINPROGRESS */
+      /* WSAEALREADY maps to EALREADY */
+      /* WSAENOTSOCK maps to ENOTSOCK */
+      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
+      /* WSAEMSGSIZE maps to EMSGSIZE */
+      /* WSAEPROTOTYPE maps to EPROTOTYPE */
+      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
+      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
+      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
+      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
+      /* WSAEADDRINUSE maps to EADDRINUSE */
+      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
+      /* WSAENETDOWN maps to ENETDOWN */
+      /* WSAENETUNREACH maps to ENETUNREACH */
+      /* WSAENETRESET maps to ENETRESET */
+      /* WSAECONNABORTED maps to ECONNABORTED */
+      /* WSAECONNRESET maps to ECONNRESET */
+      /* WSAENOBUFS maps to ENOBUFS */
+      /* WSAEISCONN maps to EISCONN */
+      /* WSAENOTCONN maps to ENOTCONN */
+      /* WSAESHUTDOWN is ESHUTDOWN */
+      /* WSAETOOMANYREFS is ETOOMANYREFS */
+      /* WSAETIMEDOUT maps to ETIMEDOUT */
+      /* WSAECONNREFUSED maps to ECONNREFUSED */
+      /* WSAELOOP maps to ELOOP */
+      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+      /* WSAEHOSTDOWN is EHOSTDOWN */
+      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
+      /* WSAENOTEMPTY maps to ENOTEMPTY */
+      /* WSAEPROCLIM is EPROCLIM */
+      /* WSAEUSERS is EUSERS */
+      /* WSAEDQUOT is EDQUOT */
+      /* WSAESTALE is ESTALE */
+      /* WSAEREMOTE is EREMOTE */
+    case WSASYSNOTREADY:
+      return "Network subsystem is unavailable";
+    case WSAVERNOTSUPPORTED:
+      return "Winsock.dll version out of range";
+    case WSANOTINITIALISED:
+      return "Successful WSAStartup not yet performed";
+    case WSAEDISCON:
+      return "Graceful shutdown in progress";
+    case WSAENOMORE: case WSA_E_NO_MORE:
+      return "No more results";
+    case WSAECANCELLED: case WSA_E_CANCELLED:
+      return "Call was canceled";
+    case WSAEINVALIDPROCTABLE:
+      return "Procedure call table is invalid";
+    case WSAEINVALIDPROVIDER:
+      return "Service provider is invalid";
+    case WSAEPROVIDERFAILEDINIT:
+      return "Service provider failed to initialize";
+    case WSASYSCALLFAILURE:
+      return "System call failure";
+    case WSASERVICE_NOT_FOUND:
+      return "Service not found";
+    case WSATYPE_NOT_FOUND:
+      return "Class type not found";
+    case WSAEREFUSED:
+      return "Database query was refused";
+    case WSAHOST_NOT_FOUND:
+      return "Host not found";
+    case WSATRY_AGAIN:
+      return "Nonauthoritative host not found";
+    case WSANO_RECOVERY:
+      return "Nonrecoverable error";
+    case WSANO_DATA:
+      return "Valid name, no data record of requested type";
+      /* WSA_QOS_* omitted */
+# endif
+#endif
+
+#if GNULIB_defined_ENOMSG
+    case ENOMSG:
+      return "No message of desired type";
+#endif
+
+#if GNULIB_defined_EIDRM
+    case EIDRM:
+      return "Identifier removed";
+#endif
+
+#if GNULIB_defined_ENOLINK
+    case ENOLINK:
+      return "Link has been severed";
+#endif
+
+#if GNULIB_defined_EPROTO
+    case EPROTO:
+      return "Protocol error";
+#endif
+
+#if GNULIB_defined_EMULTIHOP
+    case EMULTIHOP:
+      return "Multihop attempted";
+#endif
+
+#if GNULIB_defined_EBADMSG
+    case EBADMSG:
+      return "Bad message";
+#endif
+
+#if GNULIB_defined_EOVERFLOW
+    case EOVERFLOW:
+      return "Value too large for defined data type";
+#endif
+
+#if GNULIB_defined_ENOTSUP
+    case ENOTSUP:
+      return "Not supported";
+#endif
+
+#if GNULIB_defined_ENETRESET
+    case ENETRESET:
+      return "Network dropped connection on reset";
+#endif
+
+#if GNULIB_defined_ECONNABORTED
+    case ECONNABORTED:
+      return "Software caused connection abort";
+#endif
+
+#if GNULIB_defined_ESTALE
+    case ESTALE:
+      return "Stale NFS file handle";
+#endif
+
+#if GNULIB_defined_EDQUOT
+    case EDQUOT:
+      return "Disk quota exceeded";
+#endif
+
+#if GNULIB_defined_ECANCELED
+    case ECANCELED:
+      return "Operation canceled";
+#endif
+
+#if GNULIB_defined_EOWNERDEAD
+    case EOWNERDEAD:
+      return "Owner died";
+#endif
+
+#if GNULIB_defined_ENOTRECOVERABLE
+    case ENOTRECOVERABLE:
+      return "State not recoverable";
+#endif
+
+#if GNULIB_defined_EILSEQ
+    case EILSEQ:
+      return "Invalid or incomplete multibyte or wide character";
+#endif
+
+    default:
+      return NULL;
+    }
+}
diff --git a/gnu/strerror-override.h b/gnu/strerror-override.h
new file mode 100644 (file)
index 0000000..e610dd6
--- /dev/null
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strerror-override.h --- POSIX compatible system error routine
+
+   Copyright (C) 2010-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/>.  */
+
+#ifndef _GL_STRERROR_OVERRIDE_H
+# define _GL_STRERROR_OVERRIDE_H
+
+# include <errno.h>
+# include <stddef.h>
+
+/* Reasonable buffer size that should never trigger ERANGE; if this
+   proves too small, we intentionally abort(), to remind us to fix
+   this value.  */
+# define STACKBUF_LEN 256
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+# if REPLACE_STRERROR_0 \
+     || GNULIB_defined_ESOCK \
+     || GNULIB_defined_ESTREAMS \
+     || GNULIB_defined_EWINSOCK \
+     || GNULIB_defined_ENOMSG \
+     || GNULIB_defined_EIDRM \
+     || GNULIB_defined_ENOLINK \
+     || GNULIB_defined_EPROTO \
+     || GNULIB_defined_EMULTIHOP \
+     || GNULIB_defined_EBADMSG \
+     || GNULIB_defined_EOVERFLOW \
+     || GNULIB_defined_ENOTSUP \
+     || GNULIB_defined_ENETRESET \
+     || GNULIB_defined_ECONNABORTED \
+     || GNULIB_defined_ESTALE \
+     || GNULIB_defined_EDQUOT \
+     || GNULIB_defined_ECANCELED \
+     || GNULIB_defined_EOWNERDEAD \
+     || GNULIB_defined_ENOTRECOVERABLE \
+     || GNULIB_defined_EILSEQ
+extern const char *strerror_override (int errnum);
+# else
+#  define strerror_override(ignored) NULL
+# endif
+
+#endif /* _GL_STRERROR_OVERRIDE_H */
index 29cdee32561ceece332f84d6a498182a8618a509..42b6f8133b4ad310acea0216435349ae4d9157aa 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* strerror.c --- POSIX compatible system error routine
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
 
 #include <config.h>
 
+/* Specification.  */
 #include <string.h>
 
-#if REPLACE_STRERROR
-
-# include <errno.h>
-# include <stdio.h>
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
-#  if HAVE_WINSOCK2_H
-#   include <winsock2.h>
-#  endif
-# endif
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
-# include "intprops.h"
+#include "intprops.h"
+#include "strerror-override.h"
+#include "verify.h"
 
 /* Use the system functions, not the gnulib overrides in this file.  */
-# undef sprintf
-
-# undef strerror
-# if ! HAVE_DECL_STRERROR
-#  define strerror(n) NULL
-# endif
+#undef sprintf
 
 char *
-rpl_strerror (int n)
+strerror (int n)
+#undef strerror
 {
-  char const *msg = NULL;
-  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
-  switch (n)
-    {
-# if GNULIB_defined_ETXTBSY
-    case ETXTBSY:
-      msg = "Text file busy";
-      break;
-# endif
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
-    /* EWOULDBLOCK is the same as EAGAIN.  */
-    case EINPROGRESS:
-      msg = "Operation now in progress";
-      break;
-    case EALREADY:
-      msg = "Operation already in progress";
-      break;
-    case ENOTSOCK:
-      msg = "Socket operation on non-socket";
-      break;
-    case EDESTADDRREQ:
-      msg = "Destination address required";
-      break;
-    case EMSGSIZE:
-      msg = "Message too long";
-      break;
-    case EPROTOTYPE:
-      msg = "Protocol wrong type for socket";
-      break;
-    case ENOPROTOOPT:
-      msg = "Protocol not available";
-      break;
-    case EPROTONOSUPPORT:
-      msg = "Protocol not supported";
-      break;
-    case ESOCKTNOSUPPORT:
-      msg = "Socket type not supported";
-      break;
-    case EOPNOTSUPP:
-      msg = "Operation not supported";
-      break;
-    case EPFNOSUPPORT:
-      msg = "Protocol family not supported";
-      break;
-    case EAFNOSUPPORT:
-      msg = "Address family not supported by protocol";
-      break;
-    case EADDRINUSE:
-      msg = "Address already in use";
-      break;
-    case EADDRNOTAVAIL:
-      msg = "Cannot assign requested address";
-      break;
-    case ENETDOWN:
-      msg = "Network is down";
-      break;
-    case ENETUNREACH:
-      msg = "Network is unreachable";
-      break;
-    case ENETRESET:
-      msg = "Network dropped connection on reset";
-      break;
-    case ECONNABORTED:
-      msg = "Software caused connection abort";
-      break;
-    case ECONNRESET:
-      msg = "Connection reset by peer";
-      break;
-    case ENOBUFS:
-      msg = "No buffer space available";
-      break;
-    case EISCONN:
-      msg = "Transport endpoint is already connected";
-      break;
-    case ENOTCONN:
-      msg = "Transport endpoint is not connected";
-      break;
-    case ESHUTDOWN:
-      msg = "Cannot send after transport endpoint shutdown";
-      break;
-    case ETOOMANYREFS:
-      msg = "Too many references: cannot splice";
-      break;
-    case ETIMEDOUT:
-      msg = "Connection timed out";
-      break;
-    case ECONNREFUSED:
-      msg = "Connection refused";
-      break;
-    case ELOOP:
-      msg = "Too many levels of symbolic links";
-      break;
-    case EHOSTDOWN:
-      msg = "Host is down";
-      break;
-    case EHOSTUNREACH:
-      msg = "No route to host";
-      break;
-    case EPROCLIM:
-      msg = "Too many processes";
-      break;
-    case EUSERS:
-      msg = "Too many users";
-      break;
-    case EDQUOT:
-      msg = "Disk quota exceeded";
-      break;
-    case ESTALE:
-      msg = "Stale NFS file handle";
-      break;
-    case EREMOTE:
-      msg = "Object is remote";
-      break;
-#  if HAVE_WINSOCK2_H
-    /* WSA_INVALID_HANDLE maps to EBADF */
-    /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
-    /* WSA_INVALID_PARAMETER maps to EINVAL */
-    case WSA_OPERATION_ABORTED:
-      msg = "Overlapped operation aborted";
-      break;
-    case WSA_IO_INCOMPLETE:
-      msg = "Overlapped I/O event object not in signaled state";
-      break;
-    case WSA_IO_PENDING:
-      msg = "Overlapped operations will complete later";
-      break;
-    /* WSAEINTR maps to EINTR */
-    /* WSAEBADF maps to EBADF */
-    /* WSAEACCES maps to EACCES */
-    /* WSAEFAULT maps to EFAULT */
-    /* WSAEINVAL maps to EINVAL */
-    /* WSAEMFILE maps to EMFILE */
-    /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
-    /* WSAEINPROGRESS is EINPROGRESS */
-    /* WSAEALREADY is EALREADY */
-    /* WSAENOTSOCK is ENOTSOCK */
-    /* WSAEDESTADDRREQ is EDESTADDRREQ */
-    /* WSAEMSGSIZE is EMSGSIZE */
-    /* WSAEPROTOTYPE is EPROTOTYPE */
-    /* WSAENOPROTOOPT is ENOPROTOOPT */
-    /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
-    /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
-    /* WSAEOPNOTSUPP is EOPNOTSUPP */
-    /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
-    /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
-    /* WSAEADDRINUSE is EADDRINUSE */
-    /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
-    /* WSAENETDOWN is ENETDOWN */
-    /* WSAENETUNREACH is ENETUNREACH */
-    /* WSAENETRESET is ENETRESET */
-    /* WSAECONNABORTED is ECONNABORTED */
-    /* WSAECONNRESET is ECONNRESET */
-    /* WSAENOBUFS is ENOBUFS */
-    /* WSAEISCONN is EISCONN */
-    /* WSAENOTCONN is ENOTCONN */
-    /* WSAESHUTDOWN is ESHUTDOWN */
-    /* WSAETOOMANYREFS is ETOOMANYREFS */
-    /* WSAETIMEDOUT is ETIMEDOUT */
-    /* WSAECONNREFUSED is ECONNREFUSED */
-    /* WSAELOOP is ELOOP */
-    /* WSAENAMETOOLONG maps to ENAMETOOLONG */
-    /* WSAEHOSTDOWN is EHOSTDOWN */
-    /* WSAEHOSTUNREACH is EHOSTUNREACH */
-    /* WSAENOTEMPTY maps to ENOTEMPTY */
-    /* WSAEPROCLIM is EPROCLIM */
-    /* WSAEUSERS is EUSERS */
-    /* WSAEDQUOT is EDQUOT */
-    /* WSAESTALE is ESTALE */
-    /* WSAEREMOTE is EREMOTE */
-    case WSASYSNOTREADY:
-      msg = "Network subsystem is unavailable";
-      break;
-    case WSAVERNOTSUPPORTED:
-      msg = "Winsock.dll version out of range";
-      break;
-    case WSANOTINITIALISED:
-      msg = "Successful WSAStartup not yet performed";
-      break;
-    case WSAEDISCON:
-      msg = "Graceful shutdown in progress";
-      break;
-    case WSAENOMORE: case WSA_E_NO_MORE:
-      msg = "No more results";
-      break;
-    case WSAECANCELLED: case WSA_E_CANCELLED:
-      msg = "Call was canceled";
-      break;
-    case WSAEINVALIDPROCTABLE:
-      msg = "Procedure call table is invalid";
-      break;
-    case WSAEINVALIDPROVIDER:
-      msg = "Service provider is invalid";
-      break;
-    case WSAEPROVIDERFAILEDINIT:
-      msg = "Service provider failed to initialize";
-      break;
-    case WSASYSCALLFAILURE:
-      msg = "System call failure";
-      break;
-    case WSASERVICE_NOT_FOUND:
-      msg = "Service not found";
-      break;
-    case WSATYPE_NOT_FOUND:
-      msg = "Class type not found";
-      break;
-    case WSAEREFUSED:
-      msg = "Database query was refused";
-      break;
-    case WSAHOST_NOT_FOUND:
-      msg = "Host not found";
-      break;
-    case WSATRY_AGAIN:
-      msg = "Nonauthoritative host not found";
-      break;
-    case WSANO_RECOVERY:
-      msg = "Nonrecoverable error";
-      break;
-    case WSANO_DATA:
-      msg = "Valid name, no data record of requested type";
-      break;
-    /* WSA_QOS_* omitted */
-#  endif
-# endif
-
-# if GNULIB_defined_ENOMSG
-    case ENOMSG:
-      msg = "No message of desired type";
-      break;
-# endif
-
-# if GNULIB_defined_EIDRM
-    case EIDRM:
-      msg = "Identifier removed";
-      break;
-# endif
-
-# if GNULIB_defined_ENOLINK
-    case ENOLINK:
-      msg = "Link has been severed";
-      break;
-# endif
-
-# if GNULIB_defined_EPROTO
-    case EPROTO:
-      msg = "Protocol error";
-      break;
-# endif
-
-# if GNULIB_defined_EMULTIHOP
-    case EMULTIHOP:
-      msg = "Multihop attempted";
-      break;
-# endif
-
-# if GNULIB_defined_EBADMSG
-    case EBADMSG:
-      msg = "Bad message";
-      break;
-# endif
-
-# if GNULIB_defined_EOVERFLOW
-    case EOVERFLOW:
-      msg = "Value too large for defined data type";
-      break;
-# endif
-
-# if GNULIB_defined_ENOTSUP
-    case ENOTSUP:
-      msg = "Not supported";
-      break;
-# endif
-
-# if GNULIB_defined_ESTALE
-    case ESTALE:
-      msg = "Stale NFS file handle";
-      break;
-# endif
-
-# if GNULIB_defined_EDQUOT
-    case EDQUOT:
-      msg = "Disk quota exceeded";
-      break;
-# endif
-
-# if GNULIB_defined_ECANCELED
-    case ECANCELED:
-      msg = "Operation canceled";
-      break;
-# endif
-    }
+  static char buf[STACKBUF_LEN];
+  size_t len;
 
+  /* Cast away const, due to the historical signature of strerror;
+     callers should not be modifying the string.  */
+  const char *msg = strerror_override (n);
   if (msg)
     return (char *) msg;
 
-  {
-    char *result = strerror (n);
+  msg = strerror (n);
 
-    if (result == NULL || result[0] == '\0')
-      {
-        static char const fmt[] = "Unknown error (%d)";
-        static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)];
-        sprintf (msg_buf, fmt, n);
-        return msg_buf;
-      }
+  /* Our strerror_r implementation might use the system's strerror
+     buffer, so all other clients of strerror have to see the error
+     copied into a buffer that we manage.  This is not thread-safe,
+     even if the system strerror is, but portable programs shouldn't
+     be using strerror if they care about thread-safety.  */
+  if (!msg || !*msg)
+    {
+      static char const fmt[] = "Unknown error %d";
+      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+      sprintf (buf, fmt, n);
+      errno = EINVAL;
+      return buf;
+    }
 
-    return result;
-  }
-}
+  /* Fix STACKBUF_LEN if this ever aborts.  */
+  len = strlen (msg);
+  if (sizeof buf <= len)
+    abort ();
 
-#endif
+  return memcpy (buf, msg, len + 1);
+}
index 895c6ba2d6f965eacde7c3dfd202fee1db491f2c..8cac7f8e88d05180e7d1d175884494157d5e014d 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
@@ -28,8 +27,8 @@
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STRING_H@
 
-#ifndef _GL_STRING_H
-#define _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
+#define _@GUARD_PREFIX@_STRING_H
 
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
+/* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFSL@
+# if !@HAVE_FFSL@
+_GL_FUNCDECL_SYS (ffsl, int, (long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsl, int, (long int i));
+_GL_CXXALIASWARN (ffsl);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsl
+# if HAVE_RAW_DECL_FFSL
+_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module");
+# endif
+#endif
+
+
+/* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFSLL@
+# if !@HAVE_FFSLL@
+_GL_FUNCDECL_SYS (ffsll, int, (long long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsll, int, (long long int i));
+_GL_CXXALIASWARN (ffsll);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsll
+# if HAVE_RAW_DECL_FFSLL
+_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module");
+# endif
+#endif
+
+
 /* Return the first instance of C within N bytes of S, or NULL.  */
 #if @GNULIB_MEMCHR@
 # if @REPLACE_MEMCHR@
@@ -279,17 +308,28 @@ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings "
 
 /* Find the first occurrence of C in S or the final NUL byte.  */
 #if @GNULIB_STRCHRNUL@
-# if ! @HAVE_STRCHRNUL@
+# if @REPLACE_STRCHRNUL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define strchrnul rpl_strchrnul
+#  endif
+_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in)
+                                     _GL_ATTRIBUTE_PURE
+                                     _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strchrnul, char *,
+                  (const char *str, int ch));
+# else
+#  if ! @HAVE_STRCHRNUL@
 _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in)
                                      _GL_ATTRIBUTE_PURE
                                      _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
   /* On some systems, this function is defined as an overloaded function:
        extern "C++" { const char * std::strchrnul (const char *, int); }
        extern "C++" { char * std::strchrnul (char *, int); }  */
 _GL_CXXALIAS_SYS_CAST2 (strchrnul,
                         char *, (char const *__s, int __c_in),
                         char const *, (char const *__s, int __c_in));
+# endif
 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in));
@@ -686,10 +726,14 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define mbslen rpl_mbslen
 #  endif
-_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string));
 # else
-_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
 # endif
 _GL_CXXALIASWARN (mbslen);
@@ -699,6 +743,7 @@ _GL_CXXALIASWARN (mbslen);
 /* Return the number of multibyte characters in the character string starting
    at STRING and ending at STRING + LEN.  */
 _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1));
 #endif
 
@@ -712,10 +757,12 @@ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
 #   define mbschr rpl_mbschr /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c));
 # endif
@@ -727,15 +774,17 @@ _GL_CXXALIASWARN (mbschr);
    and return a pointer to it.  Return NULL if C is not found in STRING.
    Unlike strrchr(), this function works correctly in multibyte locales with
    encodings such as GB18030.  */
-# if defined __hpux
+# if defined __hpux || defined __INTERIX
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+#   define mbsrchr rpl_mbsrchr /* avoid collision with system function */
 #  endif
 _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c));
 # endif
@@ -748,6 +797,7 @@ _GL_CXXALIASWARN (mbsrchr);
    Unlike strstr(), this function works correctly in multibyte locales with
    encodings different from UTF-8.  */
 _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -759,6 +809,7 @@ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
    different lengths!
    Unlike strcasecmp(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -773,6 +824,7 @@ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
    Unlike strncasecmp(), this function works correctly in multibyte locales.
    But beware that N is not a byte count but a character count!  */
 _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -786,6 +838,7 @@ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
    Unlike strncasecmp(), this function works correctly in multibyte
    locales.  */
 _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -796,6 +849,7 @@ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
    strlen (haystack) < strlen (needle) !
    Unlike strcasestr(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -806,6 +860,7 @@ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
    if none exists.
    Unlike strcspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -819,10 +874,12 @@ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
 #   define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept));
 # else
 _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept));
 # endif
@@ -836,6 +893,7 @@ _GL_CXXALIASWARN (mbspbrk);
    if none exists.
    Unlike strspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -955,6 +1013,7 @@ _GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
 #if @GNULIB_STRVERSCMP@
 # if !@HAVE_STRVERSCMP@
 _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 # endif
 _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
@@ -968,5 +1027,5 @@ _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
 #endif
 
 
-#endif /* _GL_STRING_H */
-#endif /* _GL_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
index b21e9f7dc81021ff720f71467feb596db00ebe83..1dc3c3a6876139e0f41ece3c46719b401c2ebdaf 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A substitute <strings.h>.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_STRINGS_H
+#ifndef _@GUARD_PREFIX@_STRINGS_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
+/* Minix 3.1.8 has a bug: <sys/types.h> must be included before <strings.h>.
+   But avoid namespace pollution on glibc systems.  */
+#if defined __minix && !defined __GLIBC__
+# include <sys/types.h>
+#endif
+
 /* The include_next requires a split double-inclusion guard.  */
-#@INCLUDE_NEXT@ @NEXT_STRINGS_H@
+#if @HAVE_STRINGS_H@
+# @INCLUDE_NEXT@ @NEXT_STRINGS_H@
+#endif
 
-#ifndef _GL_STRINGS_H
-#define _GL_STRINGS_H
+#ifndef _@GUARD_PREFIX@_STRINGS_H
+#define _@GUARD_PREFIX@_STRINGS_H
+
+#if ! @HAVE_DECL_STRNCASECMP@
+/* Get size_t.  */
+# include <stddef.h>
+#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.  */
@@ -41,6 +55,20 @@ extern "C" {
 #endif
 
 
+  /* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFS@
+# if !@HAVE_FFS@
+_GL_FUNCDECL_SYS (ffs, int, (int i));
+# endif
+_GL_CXXALIAS_SYS (ffs, int, (int i));
+_GL_CXXALIASWARN (ffs);
+#elif defined GNULIB_POSIXCHECK
+# undef ffs
+# if HAVE_RAW_DECL_FFS
+_GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
+# endif
+#endif
+
 /* Compare strings S1 and S2, ignoring case, returning less than, equal to or
    greater than zero if S1 is lexicographically less than, equal to or greater
    than S2.
@@ -92,5 +120,5 @@ _GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character "
 }
 #endif
 
-#endif /* _GL_STRING_H */
-#endif /* _GL_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
index bd5bbc18c4a9e29db40dfbd1236ddec5f52f18dc..f26a8ffe2fea817e3f7e679eacb1ce1fd0602e6b 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* stripslash.c -- remove redundant trailing slashes from a file name
 
-   Copyright (C) 1990, 2001, 2003-2006, 2009-2011 Free Software Foundation,
+   Copyright (C) 1990, 2001, 2003-2006, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@ strip_trailing_slashes (char *file)
   bool had_slash;
 
   /* last_component returns "" for file system roots, but we need to turn
-     `///' into `/'.  */
+     "///" into "/".  */
   if (! *base)
     base = file;
   base_lim = base + base_len (base);
index 8953c3be2cdf133c048b71ee87f2bbdc64045151..44196fd0cabe51b09a8e864444b16e3e7241d4b5 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* strncasecmp.c -- case insensitive string comparator
-   Copyright (C) 1998-1999, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index c5aca3ea42166d1f7427be2fec84827a1794b902..ffb50c52f9002a92ff8b77b9a2784e2433481eb9 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A replacement function, for systems that lack strndup.
 
-   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2011 Free Software
+   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
@@ -16,8 +16,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 241bb592b446dedbc69bcecfd7d35f4adbbb4028..07f8030a5b8b58ca0a04b7eaef215cd6cde995fa 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 876a5c8fd622fa3a0161c9e82b100b7ae928c367..5a378fa3ab87c99f6869bd77586e5ebad9381647 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
index ae831ceaa609d8ac27e04c10641ac7f17e9a7a4b..81ea13337e4cf674cca718ca3d5633367055854e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005, 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
@@ -30,7 +30,8 @@ extern "C" {
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
    If no '\0' terminator is found in that many characters, return MAXLEN.  */
 /* This is the same as strnlen (string, maxlen - 1) + 1.  */
-extern size_t strnlen1 (const char *string, size_t maxlen);
+extern size_t strnlen1 (const char *string, size_t maxlen)
+  _GL_ATTRIBUTE_PURE;
 
 
 #ifdef __cplusplus
index efdfd58c638363d40086198d94984b4cc915854c..740d5052582ffe54ba4d681d93c18d33171e6682 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert string representation of a number into an intmax_t value.
 
-   Copyright (C) 1999, 2001-2004, 2006, 2009-2011 Free Software Foundation,
+   Copyright (C) 1999, 2001-2004, 2006, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 058f9b1fbb00ede1645c8f950f15ad3fd7c4e8bc..33d413ac7a523aba2758743d2b242d275579b3af 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert string representation of a number into an integer value.
 
-   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2011 Free Software
+   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
@@ -42,7 +42,7 @@
 # include "../locale/localeinfo.h"
 #endif
 
-/* Nonzero if we are defining `strtoul' or `strtoull', operating on
+/* Nonzero if we are defining 'strtoul' or 'strtoull', operating on
    unsigned integers.  */
 #ifndef UNSIGNED
 # define UNSIGNED 0
 # endif
 #endif
 
-/* If QUAD is defined, we are defining `strtoll' or `strtoull',
-   operating on `long long int's.  */
+/* If QUAD is defined, we are defining 'strtoll' or 'strtoull',
+   operating on 'long long int's.  */
 #ifdef QUAD
 # define LONG long long
 # define STRTOL_LONG_MIN LLONG_MIN
 # define LOCALE_PARAM_PROTO
 #endif
 
-#include <wchar.h>
-
 #ifdef USE_WIDE_CHAR
+# include <wchar.h>
 # include <wctype.h>
 # define L_(Ch) L##Ch
 # define UCHAR_TYPE wint_t
 
 
 
-/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
+/* Convert NPTR to an 'unsigned long int' or 'long int' in base BASE.
    If BASE is 0 the base is determined by the presence of a leading
    zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
    If BASE is < 2 or > 36, it is reset to 10.
@@ -383,7 +382,7 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
 
 #if !UNSIGNED
   /* Check for a value that is within the range of
-     `unsigned LONG int', but outside the range of `LONG int'.  */
+     'unsigned LONG int', but outside the range of 'LONG int'.  */
   if (overflow == 0
       && i > (negative
               ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
@@ -408,7 +407,7 @@ noconv:
   /* We must handle a special case here: the base is 0 or 16 and the
      first two characters are '0' and 'x', but the rest are no
      hexadecimal digits.  This is no error case.  We return 0 and
-     ENDPTR points to the `x`.  */
+     ENDPTR points to the 'x'.  */
   if (endptr != NULL)
     {
       if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
index eb0b699690e23f817017454d8e7e95fbf46717fd..8ed564c11fff3a319723fb047ff49af5d6746084 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1991, 1997, 2009-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 2009-2013 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 2de550cfa6e15e6d585a3c6b9b5a2f3e9f727b83..d282da08746d609f14e228d2ec397e1d52afe584 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Function to parse an `unsigned long long int' from text.
-   Copyright (C) 1995-1997, 1999, 2009-2011 Free Software Foundation, Inc.
+/* Function to parse an 'unsigned long long int' from text.
+   Copyright (C) 1995-1997, 1999, 2009-2013 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 9339e9a4c6f00758d515fcdee06a549a7d5d9b40..1ad14a7b57dffff93ca5d0decb945b417de64386 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Stub for symlink().
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index a4301de171452a12c0615210e6eb04c9e1e1b76e..e8268c37ec835f1ea3939c600d5bd5787a0ad8f7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a symlink relative to an open directory.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 70f43e2aed44b9959d50dea4d0ac80342c03a350..5cf467ac6c1c382642019ae0347324d18bcda6b4 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Provide a more complete sys/stat header file.
-   Copyright (C) 2005-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */
 
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_SYS_STAT_H
+#ifndef _@GUARD_PREFIX@_SYS_STAT_H
 
-/* Get nlink_t.  */
+/* Get nlink_t.
+   May also define off_t to a 64-bit type on native Windows.  */
 #include <sys/types.h>
 
 /* Get struct timespec.  */
@@ -47,8 +47,8 @@
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
 
-#ifndef _GL_SYS_STAT_H
-#define _GL_SYS_STAT_H
+#ifndef _@GUARD_PREFIX@_SYS_STAT_H
+#define _@GUARD_PREFIX@_SYS_STAT_H
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 /* Before doing "#define mkdir rpl_mkdir" below, we need to include all
-   headers that may declare mkdir().  */
+   headers that may declare mkdir().  Native Windows platforms declare mkdir
+   in <io.h> and/or <direct.h>, not in <unistd.h>.  */
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 # include <io.h>     /* mingw32, mingw64 */
-# include <direct.h> /* mingw64 */
+# include <direct.h> /* mingw64, MSVC 9 */
+#endif
+
+/* Native Windows platforms declare umask() in <io.h>.  */
+#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
+/* Large File Support on native Windows.  */
+#if @WINDOWS_64_BIT_ST_SIZE@
+# define stat _stati64
+#endif
+
+#ifndef S_IFIFO
+# ifdef _S_IFIFO
+#  define S_IFIFO _S_IFIFO
+# endif
 #endif
 
 #ifndef S_IFMT
 # endif
 #endif
 
+#ifndef S_ISMPX /* AIX */
+# define S_ISMPX(m) 0
+#endif
+
 #ifndef S_ISNAM /* Xenix */
 # ifdef S_IFNAM
 #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
@@ -314,16 +335,28 @@ _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - "
 #endif
 
 
-#if @REPLACE_FSTAT@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define fstat rpl_fstat
-# endif
+#if @GNULIB_FSTAT@
+# if @REPLACE_FSTAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fstat
+#   define fstat rpl_fstat
+#  endif
 _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2)));
 _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf));
-#else
+# else
 _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf));
-#endif
+# endif
 _GL_CXXALIASWARN (fstat);
+#elif @WINDOWS_64_BIT_ST_SIZE@
+/* Above, we define stat to _stati64.  */
+# define fstat _fstati64
+#elif defined GNULIB_POSIXCHECK
+# undef fstat
+# if HAVE_RAW_DECL_FSTAT
+_GL_WARN_ON_USE (fstat, "fstat has portability problems - "
+                 "use gnulib module fstat for portability");
+# endif
+#endif
 
 
 #if @GNULIB_FSTATAT@
@@ -357,7 +390,11 @@ _GL_WARN_ON_USE (fstatat, "fstatat is not portable - "
 
 
 #if @GNULIB_FUTIMENS@
-# if @REPLACE_FUTIMENS@
+/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens
+   implementation relies on futimesat, which on Solaris 10 makes an invocation
+   to futimens that is meant to invoke the libc's futimens(), not gnulib's
+   futimens().  */
+# if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef futimens
 #   define futimens rpl_futimens
@@ -370,7 +407,9 @@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]));
 #  endif
 _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
 # endif
+# if @HAVE_FUTIMENS@
 _GL_CXXALIASWARN (futimens);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef futimens
 # if HAVE_RAW_DECL_FUTIMENS
@@ -464,7 +503,7 @@ _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode));
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
 #  if !GNULIB_defined_rpl_mkdir
-static inline int
+static int
 rpl_mkdir (char const *name, mode_t mode)
 {
   return _mkdir (name);
@@ -591,14 +630,55 @@ _GL_WARN_ON_USE (mknodat, "mknodat is not portable - "
 /* We can't use the object-like #define stat rpl_stat, because of
    struct stat.  This means that rpl_stat will not be used if the user
    does (stat)(a,b).  Oh well.  */
-#  undef stat
-#  ifdef _LARGE_FILES
+#  if defined _AIX && defined stat && defined _LARGE_FILES
     /* With _LARGE_FILES defined, AIX (only) defines stat to stat64,
        so we have to replace stat64() instead of stat(). */
-#   define stat stat64
 #   undef stat64
 #   define stat64(name, st) rpl_stat (name, st)
-#  else /* !_LARGE_FILES */
+#  elif @WINDOWS_64_BIT_ST_SIZE@
+    /* Above, we define stat to _stati64.  */
+#   if defined __MINGW32__ && defined _stati64
+#    ifndef _USE_32BIT_TIME_T
+      /* The system headers define _stati64 to _stat64.  */
+#     undef _stat64
+#     define _stat64(name, st) rpl_stat (name, st)
+#    endif
+#   elif defined _MSC_VER && defined _stati64
+#    ifdef _USE_32BIT_TIME_T
+      /* The system headers define _stati64 to _stat32i64.  */
+#     undef _stat32i64
+#     define _stat32i64(name, st) rpl_stat (name, st)
+#    else
+      /* The system headers define _stati64 to _stat64.  */
+#     undef _stat64
+#     define _stat64(name, st) rpl_stat (name, st)
+#    endif
+#   else
+#    undef _stati64
+#    define _stati64(name, st) rpl_stat (name, st)
+#   endif
+#  elif defined __MINGW32__ && defined stat
+#   ifdef _USE_32BIT_TIME_T
+     /* The system headers define stat to _stat32i64.  */
+#    undef _stat32i64
+#    define _stat32i64(name, st) rpl_stat (name, st)
+#   else
+     /* The system headers define stat to _stat64.  */
+#    undef _stat64
+#    define _stat64(name, st) rpl_stat (name, st)
+#   endif
+#  elif defined _MSC_VER && defined stat
+#   ifdef _USE_32BIT_TIME_T
+     /* The system headers define stat to _stat32.  */
+#    undef _stat32
+#    define _stat32(name, st) rpl_stat (name, st)
+#   else
+     /* The system headers define stat to _stat64i32.  */
+#    undef _stat64i32
+#    define _stat64i32(name, st) rpl_stat (name, st)
+#   endif
+#  else /* !(_AIX ||__MINGW32__ ||  _MSC_VER) */
+#   undef stat
 #   define stat(name, st) rpl_stat (name, st)
 #  endif /* !_LARGE_FILES */
 _GL_EXTERN_C int stat (const char *name, struct stat *buf)
@@ -614,7 +694,11 @@ _GL_WARN_ON_USE (stat, "stat is unportable - "
 
 
 #if @GNULIB_UTIMENSAT@
-# if @REPLACE_UTIMENSAT@
+/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat
+   implementation relies on futimesat, which on Solaris 10 makes an invocation
+   to utimensat that is meant to invoke the libc's utimensat(), not gnulib's
+   utimensat().  */
+# if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun)
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef utimensat
 #   define utimensat rpl_utimensat
@@ -633,7 +717,9 @@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name,
 _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name,
                                    struct timespec const times[2], int flag));
 # endif
+# if @HAVE_UTIMENSAT@
 _GL_CXXALIASWARN (utimensat);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef utimensat
 # if HAVE_RAW_DECL_UTIMENSAT
@@ -643,6 +729,6 @@ _GL_WARN_ON_USE (utimensat, "utimensat is not portable - "
 #endif
 
 
-#endif /* _GL_SYS_STAT_H */
-#endif /* _GL_SYS_STAT_H */
+#endif /* _@GUARD_PREFIX@_SYS_STAT_H */
+#endif /* _@GUARD_PREFIX@_SYS_STAT_H */
 #endif
index 3be6faa312e7d5a107b7f155cd6cb93067c0fd50..6b51c02953d4339a775973595ab50ca0e5c3dd64 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
+#ifndef _@GUARD_PREFIX@_SYS_TIME_H
+
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
-#if defined _GL_SYS_TIME_H
+/* On Cygwin, <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>.  */
+#ifdef _CYGWIN_SYS_TIME_H
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+#else
 
-/* Simply delegate to the system's header, without adding anything.  */
-# if @HAVE_SYS_TIME_H@
-#  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-# endif
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_SYS_TIME_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+#endif
 
-#else
+#ifndef _@GUARD_PREFIX@_SYS_TIME_H
+#define _@GUARD_PREFIX@_SYS_TIME_H
 
-# define _GL_SYS_TIME_H
+#if ! @HAVE_SYS_TIME_H@
+# include <time.h>
+#endif
 
-# if @HAVE_SYS_TIME_H@
-#  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
-# else
-#  include <time.h>
-# endif
+/* On native Windows with MSVC, get the 'struct timeval' type.
+   Also, on native Windows with a 64-bit time_t, where we are overriding the
+   'struct timeval' type, get all declarations of system functions whose
+   signature contains 'struct timeval'.  */
+#if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
+# define _GL_INCLUDING_WINSOCK2_H
+# include <winsock2.h>
+# undef _GL_INCLUDING_WINSOCK2_H
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
-# ifdef __cplusplus
+#ifdef __cplusplus
 extern "C" {
-# endif
+#endif
+
+#if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
 
-# if ! @HAVE_STRUCT_TIMEVAL@
+# if @REPLACE_STRUCT_TIMEVAL@
+#  define timeval rpl_timeval
+# endif
 
-#  if !GNULIB_defined_struct_timeval
+# if !GNULIB_defined_struct_timeval
 struct timeval
 {
   time_t tv_sec;
   long int tv_usec;
 };
-#   define GNULIB_defined_struct_timeval 1
-#  endif
-
+#  define GNULIB_defined_struct_timeval 1
 # endif
 
-# ifdef __cplusplus
+#endif
+
+#ifdef __cplusplus
 }
-# endif
+#endif
 
-# if @GNULIB_GETTIMEOFDAY@
-#  if @REPLACE_GETTIMEOFDAY@
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef gettimeofday
-#    define gettimeofday rpl_gettimeofday
-#   endif
+#if @GNULIB_GETTIMEOFDAY@
+# if @REPLACE_GETTIMEOFDAY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef gettimeofday
+#   define gettimeofday rpl_gettimeofday
+#  endif
 _GL_FUNCDECL_RPL (gettimeofday, int,
                   (struct timeval *restrict, void *restrict)
                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (gettimeofday, int,
                   (struct timeval *restrict, void *restrict));
-#  else
-#   if !@HAVE_GETTIMEOFDAY@
+# else
+#  if !@HAVE_GETTIMEOFDAY@
 _GL_FUNCDECL_SYS (gettimeofday, int,
                   (struct timeval *restrict, void *restrict)
                   _GL_ARG_NONNULL ((1)));
-#   endif
+#  endif
 /* Need to cast, because on glibc systems, by default, the second argument is
                                                   struct timezone *.  */
 _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
                        (struct timeval *restrict, void *restrict));
-#  endif
+# endif
 _GL_CXXALIASWARN (gettimeofday);
-# elif defined GNULIB_POSIXCHECK
-#  undef gettimeofday
-#  if HAVE_RAW_DECL_GETTIMEOFDAY
+#elif defined GNULIB_POSIXCHECK
+# undef gettimeofday
+# if HAVE_RAW_DECL_GETTIMEOFDAY
 _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
                  "use gnulib module gettimeofday for portability");
+# endif
+#endif
+
+/* Hide some function declarations from <winsock2.h>.  */
+
+#if defined _MSC_VER && @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
+# 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
 
-#endif /* _GL_SYS_TIME_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
+#endif /* _CYGWIN_SYS_TIME_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
diff --git a/gnu/sys_types.in.h b/gnu/sys_types.in.h
new file mode 100644 (file)
index 0000000..2c2b47d
--- /dev/null
@@ -0,0 +1,53 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a more complete sys/types.h.
+
+   Copyright (C) 2011-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, 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_TYPES_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
+
+#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
+#define _@GUARD_PREFIX@_SYS_TYPES_H
+
+/* Override off_t if Large File Support is requested on native Windows.  */
+#if @WINDOWS_64_BIT_OFF_T@
+/* Same as int64_t in <stdint.h>.  */
+# if defined _MSC_VER
+#  define off_t __int64
+# else
+#  define off_t long long int
+# endif
+/* Indicator, for gnulib internal purposes.  */
+# define _GL_WINDOWS_64_BIT_OFF_T 1
+#endif
+
+/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>.  */
+/* But avoid namespace pollution on glibc systems.  */
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <stddef.h>
+#endif
+
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
index a57b83b71153a888d022d6e158e4681b21749185..c83400d925b094901f17f1af1ba7b214f66c8c59 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* exit() exit codes for some BSD system programs.
-   Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-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
@@ -18,7 +18,7 @@
 
 /* Written by Simon Josefsson based on sysexits(3) man page */
 
-#ifndef _GL_SYSEXITS_H
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
@@ -45,8 +45,8 @@
 
 #endif
 
-#ifndef _GL_SYSEXITS_H
-#define _GL_SYSEXITS_H
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
+#define _@GUARD_PREFIX@_SYSEXITS_H
 
 #if !@HAVE_SYSEXITS_H@
 
@@ -70,5 +70,5 @@
 
 #endif
 
-#endif /* _GL_SYSEXITS_H */
-#endif /* _GL_SYSEXITS_H */
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
index 5be137e3e27f17e9a09de6f39f99507a26980eb5..8fed36399bc86716e1b2f0d750b94894c82b1edd 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* tempname.c - generate the name of a temporary file.
 
-   Copyright (C) 1991-2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1991-2003, 2005-2007, 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
 # define __gettimeofday gettimeofday
 # define __mkdir mkdir
 # define __open open
-# define __open64 open
 # define __lxstat64(version, file, buf) lstat (file, buf)
-# define __xstat64(version, file, buf) stat (file, buf)
-#endif
-
-#if ! (HAVE___SECURE_GETENV || _LIBC)
-# define __secure_getenv getenv
+# define __secure_getenv secure_getenv
 #endif
 
 #ifdef _LIBC
@@ -211,7 +206,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
   /* A lower bound on the number of temporary files to attempt to
      generate.  The maximum total number of temporary file names that
      can exist for a given template is 62**6.  It should never be
-     necessary to try all these combinations.  Instead if a reasonable
+     necessary to try all of these combinations.  Instead if a reasonable
      number of names is tried (we define reasonable as 62**3) fail to
      give the system administrator the chance to remove the problems.  */
 #define ATTEMPTS_MIN (62 * 62 * 62)
index 98be5608e5188fc9a8e8a643daad615b733680ae..e4076ce600aff3fa72845c397937cf6adaf556ff 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Create a temporary file or directory.
 
-   Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 5abbdad4d6a81d9332b24be5b64adbf9e03e64b1..7dcac1d3ced8ccdfa4f81d26508c48ab7b66bed4 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
    without adding our own declarations.  */
 #if (defined __need_time_t || defined __need_clock_t \
      || defined __need_timespec \
-     || defined _GL_TIME_H)
+     || defined _@GUARD_PREFIX@_TIME_H)
 
 # @INCLUDE_NEXT@ @NEXT_TIME_H@
 
 #else
 
-# define _GL_TIME_H
+# define _@GUARD_PREFIX@_TIME_H
 
 # @INCLUDE_NEXT@ @NEXT_TIME_H@
 
index ad0a408553ca0776da9f1cc8b6871a821e4b23e5..19c956e152e4cf1ed006dd71109b35c5b2b3bdeb 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Reentrant time functions like localtime_r.
 
-   Copyright (C) 2003, 2006-2007, 2010-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2010-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
diff --git a/gnu/timespec.c b/gnu/timespec.c
new file mode 100644 (file)
index 0000000..3057287
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define _GL_TIMESPEC_INLINE _GL_EXTERN_INLINE
+#include "timespec.h"
index bd6951d8213584408d094648d0928aea801682ad..18df4f031ff3fa9387c2078bb3924de10f9409f7 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* timespec -- System time interface
 
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2011 Free Software
+   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 # include <time.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_TIMESPEC_INLINE
+# define _GL_TIMESPEC_INLINE _GL_INLINE
+#endif
+
 /* Return negative, zero, positive if A < B, A == B, A > B, respectively.
 
    For each time stamp T, this code assumes that either:
@@ -51,7 +56,7 @@
 
    The (int) cast avoids a gcc -Wconversion warning.  */
 
-static inline int
+_GL_TIMESPEC_INLINE int
 timespec_cmp (struct timespec a, struct timespec b)
 {
   return (a.tv_sec < b.tv_sec ? -1
@@ -59,7 +64,31 @@ timespec_cmp (struct timespec a, struct timespec b)
           : (int) (a.tv_nsec - b.tv_nsec));
 }
 
+/* Return -1, 0, 1, depending on the sign of A.  A.tv_nsec must be
+   nonnegative.  */
+_GL_TIMESPEC_INLINE int
+timespec_sign (struct timespec a)
+{
+  return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
+}
+
+struct timespec timespec_add (struct timespec, struct timespec)
+  _GL_ATTRIBUTE_CONST;
+struct timespec timespec_sub (struct timespec, struct timespec)
+  _GL_ATTRIBUTE_CONST;
+struct timespec dtotimespec (double)
+  _GL_ATTRIBUTE_CONST;
+
+/* Return an approximation to A, of type 'double'.  */
+_GL_TIMESPEC_INLINE double
+timespectod (struct timespec a)
+{
+  return a.tv_sec + a.tv_nsec / 1e9;
+}
+
 void gettime (struct timespec *);
 int settime (struct timespec const *);
 
+_GL_INLINE_HEADER_END
+
 #endif
index 68a23077b3142136eafa217bf9356755af3330e1..4ffc8520cd42799c1b8dcc2c18649bdf1aae5650 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Like unistd.h, but redefine some names to avoid glitches.
 
-   Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005, 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
index 35b2f9d75fa63a676c522991a47f52c8b32a9af9..2754f42e0b5b0904374b57ac01419dda2ea6f992 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Invoke unistd-like functions, but avoid some glitches.
 
-   Copyright (C) 2001, 2003, 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005, 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
diff --git a/gnu/unistd.c b/gnu/unistd.c
new file mode 100644 (file)
index 0000000..329ff9b
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define _GL_UNISTD_INLINE _GL_EXTERN_INLINE
+#include "unistd.h"
index e01ffbcbd2bbe31d973401fc22eb70112d0e3c12..7a8a7e7a097b2271f280eb83b54e9cecdfbd1b42 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003-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
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _@GUARD_PREFIX@_UNISTD_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
-/* Special invocation convention:
-   - On mingw, several headers, including <winsock2.h>, include <unistd.h>,
-     but we need to ensure that both the system <unistd.h> and <winsock2.h>
-     are completely included before we replace gethostname.  */
-#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
-  && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H
-/* <unistd.h> is being indirectly included for the first time from
-   <winsock2.h>; avoid declaring any overrides.  */
-# if @HAVE_UNISTD_H@
-#  @INCLUDE_NEXT@ @NEXT_UNISTD_H@
-# else
-#  error unexpected; report this to bug-gnulib@gnu.org
-# endif
-# define _GL_WINSOCK2_H_WITNESS
-
-/* Normal invocation.  */
-#elif !defined _GL_UNISTD_H
-
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_UNISTD_H@
 # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
@@ -53,8 +36,8 @@
 # undef _GL_INCLUDING_WINSOCK2_H
 #endif
 
-#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
-#define _GL_UNISTD_H
+#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
+#define _@GUARD_PREFIX@_UNISTD_H
 
 /* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
 #include <stddef.h>
 #endif
 
 /* mingw fails to declare _exit in <unistd.h>.  */
-/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+/* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
+   <unistd.h>.  */
 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
+/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
+   included here.  */
 /* But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !defined __GLIBC__ && !defined __osf__
+# define __need_system_stdlib_h
 # include <stdlib.h>
+# undef __need_system_stdlib_h
 #endif
 
-/* mingw declares getcwd in <io.h>, not in <unistd.h>.  */
-#if ((@GNULIB_GETCWD@ || defined GNULIB_POSIXCHECK) \
+/* Native Windows platforms declare chdir, getcwd, rmdir in
+   <io.h> and/or <direct.h>, not in <unistd.h>.
+   They also declare access(), chmod(), close(), dup(), dup2(), isatty(),
+   lseek(), read(), unlink(), write() in <io.h>.  */
+#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
+      || defined GNULIB_POSIXCHECK) \
      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# include <io.h>     /* mingw32, mingw64 */
+# include <direct.h> /* mingw64, MSVC 9 */
+#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
+       || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
+       || defined GNULIB_POSIXCHECK) \
+      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
 # include <io.h>
 #endif
 
 # include <netdb.h>
 #endif
 
-#if (@GNULIB_WRITE@ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
+/* MSVC defines off_t in <sys/types.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
+#if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@
+/* Get off_t.  */
+# include <sys/types.h>
+#endif
+
+#if (@GNULIB_READ@ || @GNULIB_WRITE@ \
+     || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
      || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK)
 /* Get ssize_t.  */
 # include <sys/types.h>
 /* Get getopt(), optarg, optind, opterr, optopt.
    But avoid namespace pollution on glibc systems.  */
 #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
+# define __need_getopt
 # include <getopt.h>
 #endif
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_UNISTD_INLINE
+# define _GL_UNISTD_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 @GNULIB_GETHOSTNAME@
-/* Get all possible declarations of gethostname().  */
-# if @UNISTD_H_HAVE_WINSOCK2_H@
-#  if !defined _GL_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
+/* Hide some function declarations from <winsock2.h>.  */
+
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
+# 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
-#  if !defined _GL_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
+# 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
@@ -225,12 +236,24 @@ _GL_WARN_ON_USE (access, "the access function is a security risk - "
 #endif
 
 
+#if @GNULIB_CHDIR@
+_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIASWARN (chdir);
+#elif defined GNULIB_POSIXCHECK
+# undef chdir
+# if HAVE_RAW_DECL_CHDIR
+_GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
+                 "use gnulib module chdir for portability");
+# endif
+#endif
+
+
 #if @GNULIB_CHOWN@
 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
    to GID (if GID is not -1).  Follow symbolic links.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/chown.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
 # if @REPLACE_CHOWN@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef chown
@@ -281,24 +304,32 @@ _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
 #endif
 
 
-#if @REPLACE_DUP@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define dup rpl_dup
-# endif
+#if @GNULIB_DUP@
+# if @REPLACE_DUP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define dup rpl_dup
+#  endif
 _GL_FUNCDECL_RPL (dup, int, (int oldfd));
 _GL_CXXALIAS_RPL (dup, int, (int oldfd));
-#else
+# else
 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
-#endif
+# endif
 _GL_CXXALIASWARN (dup);
+#elif defined GNULIB_POSIXCHECK
+# undef dup
+# if HAVE_RAW_DECL_DUP
+_GL_WARN_ON_USE (dup, "dup is unportable - "
+                 "use gnulib module dup for portability");
+# endif
+#endif
 
 
 #if @GNULIB_DUP2@
 /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
    Return newfd if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/dup2.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
 # if @REPLACE_DUP2@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define dup2 rpl_dup2
@@ -369,7 +400,7 @@ extern char **environ;
 # endif
 #elif defined GNULIB_POSIXCHECK
 # if HAVE_RAW_DECL_ENVIRON
-static inline char ***
+_GL_UNISTD_INLINE char ***
 rpl_environ (void)
 {
   return &environ;
@@ -427,8 +458,8 @@ _GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
 /* Change the process' current working directory to the directory on which
    the given file descriptor is open.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/fchdir.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
 # if ! @HAVE_FCHDIR@
 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
 
@@ -485,11 +516,30 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
 #endif
 
 
-#if @GNULIB_FSYNC@
+#if @GNULIB_FDATASYNC@
 /* Synchronize changes to a file.
    Return 0 if successful, otherwise -1 and errno set.
-   See POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/fsync.html>.  */
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
+# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
+_GL_FUNCDECL_SYS (fdatasync, int, (int fd));
+# endif
+_GL_CXXALIAS_SYS (fdatasync, int, (int fd));
+_GL_CXXALIASWARN (fdatasync);
+#elif defined GNULIB_POSIXCHECK
+# undef fdatasync
+# if HAVE_RAW_DECL_FDATASYNC
+_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
+                 "use gnulib module fdatasync for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FSYNC@
+/* Synchronize changes, including metadata, to a file.
+   Return 0 if successful, otherwise -1 and errno set.
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
 # if !@HAVE_FSYNC@
 _GL_FUNCDECL_SYS (fsync, int, (int fd));
 # endif
@@ -507,12 +557,21 @@ _GL_WARN_ON_USE (fsync, "fsync is unportable - "
 #if @GNULIB_FTRUNCATE@
 /* Change the size of the file to which FD is opened to become equal to LENGTH.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/ftruncate.html>.  */
-# if !@HAVE_FTRUNCATE@
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
+# if @REPLACE_FTRUNCATE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ftruncate
+#   define ftruncate rpl_ftruncate
+#  endif
+_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
+_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
+# else
+#  if !@HAVE_FTRUNCATE@
 _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
+# endif
 _GL_CXXALIASWARN (ftruncate);
 #elif defined GNULIB_POSIXCHECK
 # undef ftruncate
@@ -528,8 +587,8 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
    of BUF.
    Return BUF if successful, or NULL if the directory couldn't be determined
    or SIZE was too small.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/getcwd.html>.
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
    Additionally, the gnulib module 'getcwd' guarantees the following GNU
    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
@@ -799,7 +858,7 @@ _GL_CXXALIAS_RPL (getpagesize, int, (void));
 #     define getpagesize() _gl_getpagesize ()
 #    else
 #     if !GNULIB_defined_getpagesize_function
-static inline int
+_GL_UNISTD_INLINE int
 getpagesize ()
 {
   return _gl_getpagesize ();
@@ -872,12 +931,49 @@ _GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
 #endif
 
 
+#if @GNULIB_GROUP_MEMBER@
+/* Determine whether group id is in calling user's group list.  */
+# if !@HAVE_GROUP_MEMBER@
+_GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
+# endif
+_GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
+_GL_CXXALIASWARN (group_member);
+#elif defined GNULIB_POSIXCHECK
+# undef group_member
+# if HAVE_RAW_DECL_GROUP_MEMBER
+_GL_WARN_ON_USE (group_member, "group_member is unportable - "
+                 "use gnulib module group-member for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ISATTY@
+# if @REPLACE_ISATTY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef isatty
+#   define isatty rpl_isatty
+#  endif
+_GL_FUNCDECL_RPL (isatty, int, (int fd));
+_GL_CXXALIAS_RPL (isatty, int, (int fd));
+# else
+_GL_CXXALIAS_SYS (isatty, int, (int fd));
+# endif
+_GL_CXXALIASWARN (isatty);
+#elif defined GNULIB_POSIXCHECK
+# undef isatty
+# if HAVE_RAW_DECL_ISATTY
+_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
+                 "use gnulib module isatty for portability");
+# endif
+#endif
+
+
 #if @GNULIB_LCHOWN@
 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
    to GID (if GID is not -1).  Do not follow symbolic links.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/lchown.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
 # if @REPLACE_LCHOWN@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef lchown
@@ -906,8 +1002,8 @@ _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
 #if @GNULIB_LINK@
 /* Create a new hard link for an existing file.
    Return 0 if successful, otherwise -1 and errno set.
-   See POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/link.html>.  */
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
 # if @REPLACE_LINK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define link rpl_link
@@ -972,8 +1068,8 @@ _GL_WARN_ON_USE (linkat, "linkat is unportable - "
 #if @GNULIB_LSEEK@
 /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
    Return the new offset if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/lseek.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
 # if @REPLACE_LSEEK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define lseek rpl_lseek
@@ -1043,10 +1139,12 @@ _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
 #if @GNULIB_PREAD@
 /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
    Return the number of bytes placed into BUF if successful, otherwise
-   set errno and return -1.  0 indicates EOF.  See the POSIX:2001
-   specification <http://www.opengroup.org/susv3xsh/pread.html>.  */
+   set errno and return -1.  0 indicates EOF.
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
 # if @REPLACE_PREAD@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pread
 #   define pread rpl_pread
 #  endif
 _GL_FUNCDECL_RPL (pread, ssize_t,
@@ -1077,10 +1175,11 @@ _GL_WARN_ON_USE (pread, "pread is unportable - "
 /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
    Return the number of bytes written if successful, otherwise
    set errno and return -1.  0 indicates nothing written.  See the
-   POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/pwrite.html>.  */
+   POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
 # if @REPLACE_PWRITE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pwrite
 #   define pwrite rpl_pwrite
 #  endif
 _GL_FUNCDECL_RPL (pwrite, ssize_t,
@@ -1107,12 +1206,34 @@ _GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
 #endif
 
 
+#if @GNULIB_READ@
+/* Read up to COUNT bytes from file descriptor FD into the buffer starting
+   at BUF.  See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
+# if @REPLACE_READ@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef read
+#   define read rpl_read
+#  endif
+_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
+                                 _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
+# else
+/* Need to cast, because on mingw, the third parameter is
+                                                          unsigned int count
+   and the return type is 'int'.  */
+_GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count));
+# endif
+_GL_CXXALIASWARN (read);
+#endif
+
+
 #if @GNULIB_READLINK@
 /* Read the contents of the symbolic link FILE and place the first BUFSIZE
    bytes of it into BUF.  Return the number of bytes placed into BUF if
    successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/readlink.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
 # if @REPLACE_READLINK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define readlink rpl_readlink
@@ -1180,11 +1301,38 @@ _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
 #endif
 
 
+#if @GNULIB_SETHOSTNAME@
+/* Set the host name of the machine.
+   The host name may or may not be fully qualified.
+
+   Put LEN bytes of NAME into the host name.
+   Return 0 if successful, otherwise, set errno and return -1.
+
+   Platforms with no ability to set the hostname return -1 and set
+   errno = ENOSYS.  */
+# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
+_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
+                                    _GL_ARG_NONNULL ((1)));
+# endif
+/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
+   and FreeBSD 6.4 the second parameter is int.  On Solaris 11
+   2011-10, the first parameter is not const.  */
+_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
+_GL_CXXALIASWARN (sethostname);
+#elif defined GNULIB_POSIXCHECK
+# undef sethostname
+# if HAVE_RAW_DECL_SETHOSTNAME
+_GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
+                 "use gnulib module sethostname for portability");
+# endif
+#endif
+
+
 #if @GNULIB_SLEEP@
 /* Pause the execution of the current thread for N seconds.
    Returns the number of seconds left to sleep.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
 # if @REPLACE_SLEEP@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef sleep
@@ -1333,7 +1481,7 @@ _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
 /* Pause the execution of the current thread for N microseconds.
    Returns 0 on completion, or -1 on range error.
    See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+   <http://www.opengroup.org/susv3xsh/usleep.html>.  */
 # if @REPLACE_USLEEP@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef usleep
@@ -1359,9 +1507,9 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - "
 
 #if @GNULIB_WRITE@
 /* Write up to COUNT bytes starting at BUF to file descriptor FD.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/write.html>.  */
-# if @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
+# if @REPLACE_WRITE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef write
 #   define write rpl_write
@@ -1378,6 +1526,7 @@ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
 _GL_CXXALIASWARN (write);
 #endif
 
+_GL_INLINE_HEADER_END
 
-#endif /* _GL_UNISTD_H */
-#endif /* _GL_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
index f1db9d9c12ebd5ccc10b5b68d13db6a632fb7b86..54eed8034cacf875d9e13fdea54e35e46268bacd 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Elementary types for the GNU UniString library.
-   Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+/* Elementary types and macros for the GNU UniString library.
+   Copyright (C) 2002, 2005-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
 /* Type representing a Unicode character.  */
 typedef uint32_t ucs4_t;
 
+/* Attribute of a function whose result depends only on the arguments
+   (not pointers!) and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_CONST
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+#  define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
+# else
+#  define _UC_ATTRIBUTE_CONST
+# endif
+#endif
+
+/* Attribute of a function whose result depends only on the arguments
+   (possibly pointers) and global memory, and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+#  define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _UC_ATTRIBUTE_PURE
+# endif
+#endif
+
 #endif /* _UNITYPES_H */
index 1a01e2cf734bf4cf16b32f65175c44096fa58e06..57e407c85d9e18661121e645e770d075c210b44c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Display width functions.
-   Copyright (C) 2001-2002, 2005, 2007, 2009-2011 Free Software Foundation,
+   Copyright (C) 2001-2002, 2005, 2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -40,24 +40,31 @@ extern "C" {
 
 /* Determine number of column positions required for UC.  */
 extern int
-       uc_width (ucs4_t uc, const char *encoding);
+       uc_width (ucs4_t uc, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 /* Determine number of column positions required for first N units
    (or fewer if S ends before this) in S.  */
 extern int
-       u8_width (const uint8_t *s, size_t n, const char *encoding);
+       u8_width (const uint8_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_width (const uint16_t *s, size_t n, const char *encoding);
+       u16_width (const uint16_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_width (const uint32_t *s, size_t n, const char *encoding);
+       u32_width (const uint32_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 /* Determine number of column positions required for S.  */
 extern int
-       u8_strwidth (const uint8_t *s, const char *encoding);
+       u8_strwidth (const uint8_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_strwidth (const uint16_t *s, const char *encoding);
+       u16_strwidth (const uint16_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_strwidth (const uint32_t *s, const char *encoding);
+       u32_strwidth (const uint32_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 
 #ifdef __cplusplus
index 5f7b3b31251accbeb8b6a36adfc12f398f4dee31..30ad5eeb2468283bbc39fe2a4e6bdaa1db3274b7 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test for CJK encoding.
-   Copyright (C) 2001-2002, 2005-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2007, 2009-2013 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
@@ -24,16 +24,16 @@ is_cjk_encoding (const char *encoding)
 {
   if (0
       /* Legacy Japanese encodings */
-      || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+      || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
       /* Legacy Chinese encodings */
-      || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
-      || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
-      || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
-      || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+      || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+      || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
       /* Legacy Korean encodings */
-      || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
-      || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
-      || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+      || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+      || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
     return 1;
   return 0;
 }
index 3fab5eaa1bf841acce3afe23bad4cf3955b9ba4f..9be4053a1a7543d4318ad9f6455e40dfb56314bc 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Determine display width of Unicode character.
-   Copyright (C) 2001-2002, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2013 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 a861d307fb06bdd7f1ac40374f30dcd7e7de5018..9ec3f312eaa6a6ca5417263073dbc22fb7167677 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Work around unlink bugs.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
index 148f8af34e3d6e86f0d0f2c85b80371ce89a9ced..6340d777466790929bd0fc2278b0896072947276 100644 (file)
@@ -1,8 +1,8 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Work around unlinkat bugs on Solaris 9.
+/* Work around unlinkat bugs on Solaris 9 and Hurd.
 
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -28,6 +28,8 @@
 #include <string.h>
 #include <sys/stat.h>
 
+#include <stdlib.h>
+
 #include "dosname.h"
 #include "openat.h"
 
@@ -36,7 +38,8 @@
 # undef unlinkat
 
 /* unlinkat without AT_REMOVEDIR does not honor trailing / on Solaris
-   9.  Solve it in a similar manner to unlink.  */
+   9.  Solve it in a similar manner to unlink.  Hurd has the same
+   issue. */
 
 int
 rpl_unlinkat (int fd, char const *name, int flag)
index 200a9c5f78baf0e0c2b4fdad48162e91c25388e6..592f01e073c572f81e2d60ebc1afd2cf33f82390 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* unlinkdir.c - determine whether we can unlink directories
 
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
@@ -23,6 +23,7 @@
 
 #include "unlinkdir.h"
 #include "priv-set.h"
+#include "root-uid.h"
 #include <unistd.h>
 
 #if ! UNLINK_CANNOT_UNLINK_DIR
@@ -45,7 +46,7 @@ cannot_unlink_dir (void)
       cannot = (priv_set_ismember (PRIV_SYS_LINKDIR) == 0);
 # else
       /* In traditional Unix, only root can unlink directories.  */
-      cannot = (geteuid () != 0);
+      cannot = (geteuid () != ROOT_UID);
 # endif
       initialized = true;
     }
index ded6461f1f557f3e3c4f7d53c70ec4ab3324eec0..a158ec5336f2f9b60cdd10591960e0e91dffc735 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* unlinkdir.h - determine (and maybe change) whether we can unlink directories
 
-   Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005, 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
index abd457121b04b02e06ac9d118fe80b8533127c76..fb2dc00e19e2087437860af31ef75f0f04df10ae 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Prefer faster, non-thread-safe stdio functions if available.
 
-   Copyright (C) 2001-2004, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 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
index 5e028be7916c2525ba5ca9b29a228eb03518eeb1..c92884e8f15d5a82d8c48d5c3ca8edc91ffa58a0 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
-/* Copyright (C) 1992, 1995-2002, 2005-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2013 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
    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>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the name == NULL test below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 /* Specification.  */
 #include <stdlib.h>
 
@@ -38,7 +38,7 @@
 #endif
 
 #if _LIBC
-/* This lock protects against simultaneous modifications of `environ'.  */
+/* This lock protects against simultaneous modifications of 'environ'.  */
 # include <bits/libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
 # define LOCK   __libc_lock_lock (envlock)
@@ -99,6 +99,13 @@ weak_alias (__unsetenv, unsetenv)
 #else /* HAVE_UNSETENV */
 
 # undef unsetenv
+# if !HAVE_DECL_UNSETENV
+#  if VOID_UNSETENV
+extern void unsetenv (const char *);
+#  else
+extern int unsetenv (const char *);
+#  endif
+# endif
 
 /* Call the underlying unsetenv, in case there is hidden bookkeeping
    that needs updating beyond just modifying environ.  */
index 6582706e9b69cb9b67fde1bfb6b14734f388f22f..ed7a75f39d98dedf66525ad5beb75925397b62d3 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Set file access and modification times.
 
-   Copyright (C) 2003-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003-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
@@ -23,6 +23,7 @@
 
 #include <config.h>
 
+#define _GL_UTIMENS_INLINE _GL_EXTERN_INLINE
 #include "utimens.h"
 
 #include <assert.h>
@@ -182,18 +183,13 @@ fdutimens (int fd, char const *file, struct timespec const timespec[2])
   if (adjustment_needed < 0)
     return -1;
 
-  /* Require that at least one of FD or FILE are valid.  Works around
+  /* Require that at least one of FD or FILE are potentially valid, to avoid
      a Linux bug where futimens (AT_FDCWD, NULL) changes "." rather
      than failing.  */
-  if (!file)
+  if (fd < 0 && !file)
     {
-      if (fd < 0)
-        {
-          errno = EBADF;
-          return -1;
-        }
-      if (dup2 (fd, fd) != fd)
-        return -1;
+      errno = EBADF;
+      return -1;
     }
 
   /* Some Linux-based NFS clients are buggy, and mishandle time stamps
@@ -222,15 +218,19 @@ fdutimens (int fd, char const *file, struct timespec const timespec[2])
   if (0 <= utimensat_works_really)
     {
       int result;
-# if __linux__
+# if __linux__ || __sun
       /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
          systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
          but work if both times are either explicitly specified or
          UTIME_NOW.  Work around it with a preparatory [f]stat prior
          to calling futimens/utimensat; fortunately, there is not much
          timing impact due to the extra syscall even on file systems
-         where UTIME_OMIT would have worked.  FIXME: Simplify this in
-         2012, when file system bugs are no longer common.  */
+         where UTIME_OMIT would have worked.
+
+         The same bug occurs in Solaris 11.1 (Apr 2013).
+
+         FIXME: Simplify this for Linux in 2016 and for Solaris in
+         2024, when file system bugs are no longer common.  */
       if (adjustment_needed == 2)
         {
           if (fd < 0 ? stat (file, &st) : fstat (fd, &st))
@@ -242,7 +242,7 @@ fdutimens (int fd, char const *file, struct timespec const timespec[2])
           /* Note that st is good, in case utimensat gives ENOSYS.  */
           adjustment_needed++;
         }
-# endif /* __linux__ */
+# endif
 # if HAVE_UTIMENSAT
       if (fd < 0)
         {
@@ -451,15 +451,19 @@ lutimens (char const *file, struct timespec const timespec[2])
   if (0 <= lutimensat_works_really)
     {
       int result;
-# if __linux__
+# if __linux__ || __sun
       /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
          systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
          but work if both times are either explicitly specified or
          UTIME_NOW.  Work around it with a preparatory lstat prior to
          calling utimensat; fortunately, there is not much timing
          impact due to the extra syscall even on file systems where
-         UTIME_OMIT would have worked.  FIXME: Simplify this in 2012,
-         when file system bugs are no longer common.  */
+         UTIME_OMIT would have worked.
+
+         The same bug occurs in Solaris 11.1 (Apr 2013).
+
+         FIXME: Simplify this for Linux in 2016 and for Solaris in
+         2024, when file system bugs are no longer common.  */
       if (adjustment_needed == 2)
         {
           if (lstat (file, &st))
@@ -471,7 +475,7 @@ lutimens (char const *file, struct timespec const timespec[2])
           /* Note that st is good, in case utimensat gives ENOSYS.  */
           adjustment_needed++;
         }
-# endif /* __linux__ */
+# endif
       result = utimensat (AT_FDCWD, file, ts, AT_SYMLINK_NOFOLLOW);
 # ifdef __linux__
       /* Work around a kernel bug:
index 7690e74df578b7de30c84e2d179c1209e11dd52b..89b3451062cd61531ab09b57f4d90aba1952b93a 100644 (file)
@@ -1,5 +1,24 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Set file access and modification times.
+
+   Copyright 2012-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 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 <time.h>
 int fdutimens (int, char const *, struct timespec const [2]);
 int utimens (char const *, struct timespec const [2]);
@@ -9,13 +28,21 @@ int lutimens (char const *, struct timespec const [2]);
 # include <fcntl.h>
 # include <sys/stat.h>
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_UTIMENS_INLINE
+# define _GL_UTIMENS_INLINE _GL_INLINE
+#endif
+
 int fdutimensat (int fd, int dir, char const *name, struct timespec const [2],
                  int atflag);
 
 /* Using this function makes application code slightly more readable.  */
-static inline int
+_GL_UTIMENS_INLINE int
 lutimensat (int dir, char const *file, struct timespec const times[2])
 {
   return utimensat (dir, file, times, AT_SYMLINK_NOFOLLOW);
 }
+
+_GL_INLINE_HEADER_END
+
 #endif
index 29889eb294ff41f98c3c6e83b2a5f1551cf40ab9..de7d595e365afe1f0ebdfa9c86388ff70ac92edd 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Set the access and modification time of a file relative to directory fd.
-   Copyright (C) 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 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
@@ -50,22 +50,29 @@ int
 rpl_utimensat (int fd, char const *file, struct timespec const times[2],
                int flag)
 {
+# if defined __linux__ || defined __sun
+  struct timespec ts[2];
+# endif
+
   /* See comments in utimens.c for details.  */
   static int utimensat_works_really; /* 0 = unknown, 1 = yes, -1 = no.  */
   if (0 <= utimensat_works_really)
     {
       int result;
-# ifdef __linux__
+# if defined __linux__ || defined __sun
       struct stat st;
-      struct timespec ts[2];
       /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
          systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
          but work if both times are either explicitly specified or
          UTIME_NOW.  Work around it with a preparatory [l]stat prior
          to calling utimensat; fortunately, there is not much timing
          impact due to the extra syscall even on file systems where
-         UTIME_OMIT would have worked.  FIXME: Simplify this in 2012,
-         when file system bugs are no longer common.  */
+         UTIME_OMIT would have worked.
+
+         The same bug occurs in Solaris 11.1 (Apr 2013).
+
+         FIXME: Simplify this for Linux in 2016 and for Solaris in
+         2024, when file system bugs are no longer common.  */
       if (times && (times[0].tv_nsec == UTIME_OMIT
                     || times[1].tv_nsec == UTIME_OMIT))
         {
@@ -83,7 +90,22 @@ rpl_utimensat (int fd, char const *file, struct timespec const times[2],
             ts[1] = times[1];
           times = ts;
         }
-# endif /* __linux__ */
+#  ifdef __hppa__
+      /* Linux kernel 2.6.22.19 on hppa does not reject invalid tv_nsec
+         values.  */
+      else if (times
+               && ((times[0].tv_nsec != UTIME_NOW
+                    && (times[0].tv_nsec < 0
+                        || times[0].tv_nsec >= 1000000000))
+                   || (times[1].tv_nsec != UTIME_NOW
+                       && (times[1].tv_nsec < 0
+                           || times[1].tv_nsec >= 1000000000))))
+        {
+          errno = EINVAL;
+          return -1;
+        }
+#  endif
+# endif
       result = utimensat (fd, file, times, flag);
       /* Linux kernel 2.6.25 has a bug where it returns EINVAL for
          UTIME_NOW or UTIME_OMIT with non-zero tv_sec, which
index 350e7a90371345dff6f14f38bd64f791ae1d4a08..acc6923490535fdb2728de765db3913bb27f28ce 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      VASNPRINTF         The name of the function being defined.
@@ -278,7 +277,7 @@ decimal_point_char (void)
 {
   const char *point;
   /* Determine it in a multithread-safe way.  We know nl_langinfo is
-     multithread-safe on glibc systems and MacOS X systems, but is not required
+     multithread-safe on glibc systems and Mac OS X systems, but is not required
      to be multithread-safe by POSIX.  sprintf(), however, is multithread-safe.
      localeconv() is rarely multithread-safe.  */
 #  if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__))
@@ -555,32 +554,61 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
       size_t s;
       {
         mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
-        s = 31;
-        if (msd >= 0x10000)
-          {
-            msd = msd >> 16;
-            s -= 16;
-          }
-        if (msd >= 0x100)
-          {
-            msd = msd >> 8;
-            s -= 8;
-          }
-        if (msd >= 0x10)
-          {
-            msd = msd >> 4;
-            s -= 4;
-          }
-        if (msd >= 0x4)
+        /* Determine s = GMP_LIMB_BITS - integer_length (msd).
+           Code copied from gnulib's integer_length.c.  */
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+        s = __builtin_clz (msd);
+# else
+#  if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+        if (GMP_LIMB_BITS <= DBL_MANT_BIT)
           {
-            msd = msd >> 2;
-            s -= 2;
+            /* Use 'double' operations.
+               Assumes an IEEE 754 'double' implementation.  */
+#   define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+#   define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1)
+#   define NWORDS \
+     ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+            union { double value; unsigned int word[NWORDS]; } m;
+
+            /* Use a single integer to floating-point conversion.  */
+            m.value = msd;
+
+            s = GMP_LIMB_BITS
+                - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK)
+                   - DBL_EXP_BIAS);
           }
-        if (msd >= 0x2)
+        else
+#   undef NWORDS
+#  endif
           {
-            msd = msd >> 1;
-            s -= 1;
+            s = 31;
+            if (msd >= 0x10000)
+              {
+                msd = msd >> 16;
+                s -= 16;
+              }
+            if (msd >= 0x100)
+              {
+                msd = msd >> 8;
+                s -= 8;
+              }
+            if (msd >= 0x10)
+              {
+                msd = msd >> 4;
+                s -= 4;
+              }
+            if (msd >= 0x4)
+              {
+                msd = msd >> 2;
+                s -= 2;
+              }
+            if (msd >= 0x2)
+              {
+                msd = msd >> 1;
+                s -= 1;
+              }
           }
+# endif
       }
       /* 0 <= s < GMP_LIMB_BITS.
          Copy b, shifting it left by s bits.  */
@@ -887,9 +915,9 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
   y = frexpl (x, &exp);
   if (!(y >= 0.0L && y < 1.0L))
     abort ();
-  /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
+  /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the
      latter is an integer.  */
-  /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
+  /* Convert the mantissa (y * 2^LDBL_MANT_BIT) to a sequence of limbs.
      I'm not sure whether it's safe to cast a 'long double' value between
      2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
      'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
@@ -975,9 +1003,9 @@ decode_double (double x, int *ep, mpn_t *mp)
   y = frexp (x, &exp);
   if (!(y >= 0.0 && y < 1.0))
     abort ();
-  /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
+  /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the
      latter is an integer.  */
-  /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
+  /* Convert the mantissa (y * 2^DBL_MANT_BIT) to a sequence of limbs.
      I'm not sure whether it's safe to cast a 'double' value between
      2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
      'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
@@ -1504,7 +1532,7 @@ is_borderline (const char *digits, size_t precision)
 
 /* Returns the number of TCHAR_T units needed as temporary space for the result
    of sprintf or SNPRINTF of a single conversion directive.  */
-static inline size_t
+static size_t
 MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
                  arg_type type, int flags, size_t width, int has_precision,
                  size_t precision, int pad_ourselves)
@@ -2787,7 +2815,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   if (has_width)
                     {
 #  if ENABLE_UNISTDIO
-                      /* Outside POSIX, it's preferrable to compare the width
+                      /* Outside POSIX, it's preferable to compare the width
                          against the number of _characters_ of the converted
                          value.  */
                       w = DCHAR_MBSNLEN (result + length, characters);
@@ -4858,7 +4886,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                    in format strings in writable memory may crash the program
                    (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
                    in this situation.  */
-                /* On native Win32 systems (such as mingw), we can avoid using
+                /* On native Windows systems (such as mingw), we can avoid using
                    %n because:
                      - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
                        snprintf does not write more than the specified number
@@ -4867,7 +4895,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                      - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
                        allows us to recognize the case of an insufficient
                        buffer size: it returns -1 in this case.
-                   On native Win32 systems (such as mingw) where the OS is
+                   On native Windows systems (such as mingw) where the OS is
                    Windows Vista, the use of %n in format strings by default
                    crashes the program. See
                      <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
@@ -5127,7 +5155,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,
+                                                   has_width ? width : 0,
+                                                   has_precision,
                                                    precision, pad_ourselves);
 
                                 if (maxlen < tmp_length)
@@ -5390,7 +5419,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       {
                         size_t w;
 # if ENABLE_UNISTDIO
-                        /* Outside POSIX, it's preferrable to compare the width
+                        /* Outside POSIX, it's preferable to compare the width
                            against the number of _characters_ of the converted
                            value.  */
                         w = DCHAR_MBSNLEN (result + length, count);
index d6b0497b70075e0ddcdfe47601975cca375969df..c496cd29ea02c40e39fcb9c70e63335bc38456ec 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2007-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _VASNPRINTF_H
 #define _VASNPRINTF_H
index 2ddc0b7ab6c24225ddd71e3a70897531b285056e..ce8c81522e228d0a04bf6fa9b61a7aed247d572c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-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
@@ -14,8 +14,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 6819abccaa403dc7c46cde9e90a8e5807a5fac61..36bc87848dad14171c46c0cb6aced5890f6bd14d 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2005-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
 
 /* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
 
-#ifndef VERIFY_H
-# define VERIFY_H 1
+#ifndef _GL_VERIFY_H
+# define _GL_VERIFY_H
+
+
+/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
+   This is supported by GCC 4.6.0 and later, in C mode, and its use
+   here generates easier-to-read diagnostics when verify (R) fails.
+
+   Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
+   This will likely be supported by future GCC versions, in C++ mode.
+
+   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__ + (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
 
 /* Each of these macros verifies that its argument R is nonzero.  To
    be portable, R should be an integer constant expression.  Unlike
    assert (R), there is no run-time overhead.
 
-   There are two macros, since no single macro can be used in all
-   contexts in C.  verify_true (R) is for scalar contexts, including
-   integer constant expression contexts.  verify (R) is for declaration
-   contexts, e.g., the top level.
-
-   Symbols ending in "__" are private to this header.
+   If _Static_assert works, verify (R) uses it directly.  Similarly,
+   _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct
+   that is an operand of sizeof.
 
-   The code below uses several ideas.
+   The code below uses several ideas for C++ compilers, and for C
+   compilers that do not support _Static_assert:
 
    * The first step is ((R) ? 1 : -1).  Given an expression R, of
      integral or boolean or floating-point type, this yields an
@@ -41,7 +61,9 @@
      constant and nonnegative.
 
    * Next this expression W is wrapped in a type
-     struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }.
+     struct _gl_verify_type {
+       unsigned int _gl_verify_error_if_negative: W;
+     }.
      If W is negative, this yields a compile-time error.  No compiler can
      deal with a bit-field of negative size.
 
@@ -55,7 +77,7 @@
 
        void function (int n) { verify (n < 0); }
 
-   * For the verify macro, the struct verify_type__ will need to
+   * For the verify macro, the struct _gl_verify_type will need to
      somehow be embedded into a declaration.  To be portable, this
      declaration must declare an object, a constant, a function, or a
      typedef name.  If the declared entity uses the type directly,
      Which of the following alternatives can be used?
 
        extern int dummy [sizeof (struct {...})];
-       extern int dummy [sizeof (struct verify_type__ {...})];
+       extern int dummy [sizeof (struct _gl_verify_type {...})];
        extern void dummy (int [sizeof (struct {...})]);
-       extern void dummy (int [sizeof (struct verify_type__ {...})]);
+       extern void dummy (int [sizeof (struct _gl_verify_type {...})]);
        extern int (*dummy (void)) [sizeof (struct {...})];
-       extern int (*dummy (void)) [sizeof (struct verify_type__ {...})];
+       extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})];
 
      In the second and sixth case, the struct type is exported to the
      outer scope; two such declarations therefore collide.  GCC warns
        extern int (*dummy (void)) [sizeof (struct {...})];
 
    * GCC warns about duplicate declarations of the dummy function if
-     -Wredundant_decls is used.  GCC 4.3 and later have a builtin
+     -Wredundant-decls is used.  GCC 4.3 and later have a builtin
      __COUNTER__ macro that can let us generate unique identifiers for
      each dummy function, to suppress this warning.
 
-   * This implementation exploits the fact that GCC does not warn about
-     the last declaration mentioned above.  If a future version of GCC
-     introduces a warning for this, the problem could be worked around
-     by using code specialized to GCC, just as __COUNTER__ is already
-     being used if available.
+   * This implementation exploits the fact that older versions of GCC,
+     which do not support _Static_assert, also do not warn about the
+     last declaration mentioned above.
 
-       #if 4 <= __GNUC__
-       # define verify(R) [another version to keep GCC happy]
-       #endif
+   * GCC warns if -Wnested-externs is enabled and verify() is used
+     within a function body; but inside a function, you can always
+     arrange to use verify_expr() instead.
 
    * In C++, any struct definition inside sizeof is invalid.
      Use a template type to work around the problem.  */
    possible.  */
 # define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER)
 
-/* Verify requirement R at compile-time, as an integer constant expression.
-   Return 1.  */
+/* 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)))
 
 # ifdef __cplusplus
+#  if !GNULIB_defined_struct__gl_verify_type
 template <int w>
-  struct verify_type__ { unsigned int verify_error_if_negative_size__: w; };
-#  define verify_true(R) \
-     (!!sizeof (verify_type__<(R) ? 1 : -1>))
+  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; }
+# endif
+
+/* Verify requirement R at compile-time, as a declaration without a
+   trailing ';'.  If R is false, fail at compile-time, preferably
+   with a diagnostic that includes the string-literal DIAGNOSTIC.
+
+   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 verify_true(R) \
-     (!!sizeof \
-      (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; }))
+#  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
+# endif
+
+/* @assert.h omit start@  */
+
+/* Each of these macros verifies that its argument R is nonzero.  To
+   be portable, R should be an integer constant expression.  Unlike
+   assert (R), there is no run-time overhead.
+
+   There are two macros, since no single macro can be used in all
+   contexts in C.  verify_true (R) is for scalar contexts, including
+   integer constant expression contexts.  verify (R) is for declaration
+   contexts, e.g., the top level.  */
+
+/* Verify requirement R at compile-time, as an integer constant expression.
+   Return 1.  This is equivalent to verify_expr (R, 1).
+
+   verify_true is obsolescent; please use verify_expr instead.  */
+
+# 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))
+
 /* Verify requirement R at compile-time, as a declaration without a
    trailing ';'.  */
 
-# define verify(R) \
-    extern int (* _GL_GENSYM (verify_function) (void)) [verify_true (R)]
+# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+
+/* @assert.h omit end@  */
 
 #endif
index 6cedf53515b2be3dc5561f5494ccdd64052a5656..4eb3d983e724fa3938159edd24a17f6d01bc1981 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Variable with FSF copyright information, for version-etc.
-   Copyright (C) 1999-2006, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-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
index 7228bf0f67e95b2c8215d905ba4e181b686a282f..420003fec682e6c619f9f309357aebd616848e63 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-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
@@ -40,7 +40,7 @@
 # define PACKAGE PACKAGE_TARNAME
 #endif
 
-enum { COPYRIGHT_YEAR = 2011 };
+enum { COPYRIGHT_YEAR = 2013 };
 
 /* The three functions below display the --version information the
    standard way.
index f243ec7aa4686c72af14afe0756b65f1214881c8..8071ecbec5bb89443f1a9da258e5eb619eabda14 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999, 2003, 2005, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003, 2005, 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
@@ -24,7 +24,7 @@
 # include <stdarg.h>
 # include <stdio.h>
 
-/* The `sentinel' attribute was added in gcc 4.0.  */
+/* The 'sentinel' attribute was added in gcc 4.0.  */
 #ifndef _GL_ATTRIBUTE_SENTINEL
 # if 4 <= __GNUC__
 #  define _GL_ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
@@ -39,7 +39,7 @@ extern const char version_etc_copyright[];
    standard way: command and package names, package version, followed
    by a short GPLv3+ notice and a list of up to 10 author names.
 
-   If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of
+   If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of
    the program.  The formats are therefore:
 
    PACKAGE VERSION
@@ -74,7 +74,7 @@ extern void version_etc (FILE *stream,
                          /* const char *author1, ..., NULL */ ...)
   _GL_ATTRIBUTE_SENTINEL;
 
-/* Display the usual `Report bugs to' stanza */
+/* Display the usual "Report bugs to" stanza.  */
 extern void emit_bug_reporting_address (void);
 
 #endif /* VERSION_ETC_H */
index 7ae00798edf20c6e408c5907954afba348d724a3..262c6a422538bb12da48f9f655f7f051fe1a1ad4 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
    Written by Simon Josefsson and Yoann Vandoorselaere <yoann@prelude-ids.org>.
 
    This program is free software; you can redistribute it and/or modify
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 492ea15ffd69605bc8da8ee4272a8cca35cb7e98..17abaaf6cc4deb360012c532ffda05acdfb0d0f3 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
 
-   Copyright (C) 2007-2011 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake.  */
 
@@ -51,7 +50,7 @@
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
 
 #define _GL_ALREADY_INCLUDING_WCHAR_H
 
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
    included before <wchar.h>.
+   In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined
+   by <stddef.h>.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <stddef.h>
+#endif
+#ifndef __GLIBC__
 # include <stdio.h>
 # include <time.h>
 #endif
 
 #undef _GL_ALREADY_INCLUDING_WCHAR_H
 
-#ifndef _GL_WCHAR_H
-#define _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
+#define _@GUARD_PREFIX@_WCHAR_H
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 #  define WEOF -1
 # endif
 #else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+   This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+   "unchanged by default argument promotions".  Override it.  */
+# if defined _MSC_VER
+#  if !GNULIB_defined_wint_t
+#   include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+#   undef wint_t
+#   define wint_t rpl_wint_t
+#   define GNULIB_defined_wint_t 1
+#  endif
+# endif
 # ifndef WEOF
 #  define WEOF ((wint_t) -1)
 # endif
@@ -122,11 +145,11 @@ typedef int rpl_mbstate_t;
 #   undef btowc
 #   define btowc rpl_btowc
 #  endif
-_GL_FUNCDECL_RPL (btowc, wint_t, (int c));
+_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (btowc, wint_t, (int c));
 # else
 #  if !@HAVE_BTOWC@
-_GL_FUNCDECL_SYS (btowc, wint_t, (int c));
+_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (btowc, wint_t, (int c));
 # endif
@@ -147,12 +170,12 @@ _GL_WARN_ON_USE (btowc, "btowc is unportable - "
 #   undef wctob
 #   define wctob rpl_wctob
 #  endif
-_GL_FUNCDECL_RPL (wctob, int, (wint_t wc));
+_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (wctob, int, (wint_t wc));
 # else
 #  if !defined wctob && !@HAVE_DECL_WCTOB@
 /* wctob is provided by gnulib, or wctob exists but is not declared.  */
-_GL_FUNCDECL_SYS (wctob, int, (wint_t wc));
+_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
 # endif
@@ -413,12 +436,12 @@ _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
 #   undef wcwidth
 #   define wcwidth rpl_wcwidth
 #  endif
-_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t));
+_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
 # else
 #  if !@HAVE_DECL_WCWIDTH@
 /* wcwidth exists but is not declared.  */
-_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t));
+_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
 # endif
@@ -435,10 +458,25 @@ _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
 /* Search N wide characters of S for C.  */
 #if @GNULIB_WMEMCHR@
 # if !@HAVE_WMEMCHR@
-_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n));
-# endif
-_GL_CXXALIAS_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n));
+_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)
+                                      _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t);
+         wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wmemchr,
+                        wchar_t *, (const wchar_t *, wchar_t, size_t),
+                        const wchar_t *, (const wchar_t *, wchar_t, size_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+_GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
+                   (const wchar_t *s, wchar_t c, size_t n));
+# else
 _GL_CXXALIASWARN (wmemchr);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef wmemchr
 # if HAVE_RAW_DECL_WMEMCHR
@@ -452,7 +490,8 @@ _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
 #if @GNULIB_WMEMCMP@
 # if !@HAVE_WMEMCMP@
 _GL_FUNCDECL_SYS (wmemcmp, int,
-                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wmemcmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n));
@@ -522,7 +561,7 @@ _GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
 /* Return the number of wide characters in S.  */
 #if @GNULIB_WCSLEN@
 # if !@HAVE_WCSLEN@
-_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s));
+_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
 _GL_CXXALIASWARN (wcslen);
@@ -538,7 +577,8 @@ _GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
 /* Return the number of wide characters in S, but at most MAXLEN.  */
 #if @GNULIB_WCSNLEN@
 # if !@HAVE_WCSNLEN@
-_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
+_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)
+                                   _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
 _GL_CXXALIASWARN (wcsnlen);
@@ -657,7 +697,8 @@ _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
 /* Compare S1 and S2.  */
 #if @GNULIB_WCSCMP@
 # if !@HAVE_WCSCMP@
-_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
+                               _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
 _GL_CXXALIASWARN (wcscmp);
@@ -674,7 +715,8 @@ _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
 #if @GNULIB_WCSNCMP@
 # if !@HAVE_WCSNCMP@
 _GL_FUNCDECL_SYS (wcsncmp, int,
-                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcsncmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n));
@@ -691,7 +733,8 @@ _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
 /* Compare S1 and S2, ignoring case.  */
 #if @GNULIB_WCSCASECMP@
 # if !@HAVE_WCSCASECMP@
-_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)
+                                   _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
 _GL_CXXALIASWARN (wcscasecmp);
@@ -708,7 +751,8 @@ _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
 #if @GNULIB_WCSNCASECMP@
 # if !@HAVE_WCSNCASECMP@
 _GL_FUNCDECL_SYS (wcsncasecmp, int,
-                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcsncasecmp, int,
                   (const wchar_t *s1, const wchar_t *s2, size_t n));
@@ -776,10 +820,24 @@ _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
 /* Find the first occurrence of WC in WCS.  */
 #if @GNULIB_WCSCHR@
 # if !@HAVE_WCSCHR@
-_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
-# endif
-_GL_CXXALIAS_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
+_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
+                                     _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcschr (const wchar_t *, wchar_t);
+         wchar_t * std::wcschr (wchar_t *, wchar_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcschr,
+                        wchar_t *, (const wchar_t *, wchar_t),
+                        const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
 _GL_CXXALIASWARN (wcschr);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef wcschr
 # if HAVE_RAW_DECL_WCSCHR
@@ -792,10 +850,24 @@ _GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
 /* Find the last occurrence of WC in WCS.  */
 #if @GNULIB_WCSRCHR@
 # if !@HAVE_WCSRCHR@
-_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
-# endif
-_GL_CXXALIAS_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
+_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
+                                      _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcsrchr (const wchar_t *, wchar_t);
+         wchar_t * std::wcsrchr (wchar_t *, wchar_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcsrchr,
+                        wchar_t *, (const wchar_t *, wchar_t),
+                        const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
 _GL_CXXALIASWARN (wcsrchr);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef wcsrchr
 # if HAVE_RAW_DECL_WCSRCHR
@@ -809,7 +881,8 @@ _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
    of wide characters not in REJECT.  */
 #if @GNULIB_WCSCSPN@
 # if !@HAVE_WCSCSPN@
-_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
+_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)
+                                   _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
 _GL_CXXALIASWARN (wcscspn);
@@ -826,7 +899,8 @@ _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
    of wide characters in ACCEPT.  */
 #if @GNULIB_WCSSPN@
 # if !@HAVE_WCSSPN@
-_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
+_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)
+                                  _GL_ATTRIBUTE_PURE);
 # endif
 _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
 _GL_CXXALIASWARN (wcsspn);
@@ -843,11 +917,26 @@ _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
 #if @GNULIB_WCSPBRK@
 # if !@HAVE_WCSPBRK@
 _GL_FUNCDECL_SYS (wcspbrk, wchar_t *,
-                  (const wchar_t *wcs, const wchar_t *accept));
-# endif
-_GL_CXXALIAS_SYS (wcspbrk, wchar_t *,
-                  (const wchar_t *wcs, const wchar_t *accept));
+                  (const wchar_t *wcs, const wchar_t *accept)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *);
+         wchar_t * std::wcspbrk (wchar_t *, const wchar_t *);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcspbrk,
+                        wchar_t *, (const wchar_t *, const wchar_t *),
+                        const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcspbrk, wchar_t *,
+                   (wchar_t *wcs, const wchar_t *accept));
+_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
+                   (const wchar_t *wcs, const wchar_t *accept));
+# else
 _GL_CXXALIASWARN (wcspbrk);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef wcspbrk
 # if HAVE_RAW_DECL_WCSPBRK
@@ -861,11 +950,26 @@ _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
 #if @GNULIB_WCSSTR@
 # if !@HAVE_WCSSTR@
 _GL_FUNCDECL_SYS (wcsstr, wchar_t *,
-                  (const wchar_t *haystack, const wchar_t *needle));
-# endif
-_GL_CXXALIAS_SYS (wcsstr, wchar_t *,
-                  (const wchar_t *haystack, const wchar_t *needle));
+                  (const wchar_t *haystack, const wchar_t *needle)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *);
+         wchar_t * std::wcsstr (wchar_t *, const wchar_t *);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcsstr,
+                        wchar_t *, (const wchar_t *, const wchar_t *),
+                        const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsstr, wchar_t *,
+                   (wchar_t *haystack, const wchar_t *needle));
+_GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
+                   (const wchar_t *haystack, const wchar_t *needle));
+# else
 _GL_CXXALIASWARN (wcsstr);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef wcsstr
 # if HAVE_RAW_DECL_WCSSTR
@@ -901,11 +1005,13 @@ _GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
 #   undef wcswidth
 #   define wcswidth rpl_wcswidth
 #  endif
-_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n));
+_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n)
+                                 _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n));
 # else
 #  if !@HAVE_WCSWIDTH@
-_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n));
+_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n)
+                                 _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
 # endif
@@ -919,6 +1025,6 @@ _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - "
 #endif
 
 
-#endif /* _GL_WCHAR_H */
-#endif /* _GL_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
 #endif
index 002a781c2662dcfd7bfb65811e2967ba52f38747..3dc65f705ac14cfe432b78939c0ab278fff20e82 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Convert wide character to multibyte character.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnu/wctype-h.c b/gnu/wctype-h.c
new file mode 100644 (file)
index 0000000..8375a71
--- /dev/null
@@ -0,0 +1,6 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Normally this would be wctype.c, but that name's already taken.  */
+#include <config.h>
+#define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE
+#include "wctype.h"
index a01403e473a04bc41318eb38f3b7f5821c6e5454..0cb71a14d152d9672bade71908c13ba8aafa504a 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
 
-   Copyright (C) 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible and Paul Eggert.  */
 
@@ -28,7 +27,7 @@
  * wctrans_t, and wctype_t are not yet implemented.
  */
 
-#ifndef _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 # 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.  */
 # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
 #endif
 
-#ifndef _GL_WCTYPE_H
-#define _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
+#define _@GUARD_PREFIX@_WCTYPE_H
+
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_WCTYPE_INLINE
+# define _GL_WCTYPE_INLINE _GL_INLINE
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
+/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
+   #defines a number of identifiers in the application namespace.  Revert
+   these #defines.  */
+#ifdef __sun
+# undef multibyte
+# undef eucw1
+# undef eucw2
+# undef eucw3
+# undef scrw1
+# undef scrw2
+# undef scrw3
+#endif
+
 /* Define wint_t and WEOF.  (Also done in wchar.in.h.)  */
 #if !@HAVE_WINT_T@ && !defined wint_t
 # define wint_t int
 #  define WEOF -1
 # endif
 #else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+   This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+   "unchanged by default argument promotions".  Override it.  */
+# if defined _MSC_VER
+#  if !GNULIB_defined_wint_t
+#   include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+#   undef wint_t
+#   define wint_t rpl_wint_t
+#   define GNULIB_defined_wint_t 1
+#  endif
+# endif
 # ifndef WEOF
 #  define WEOF ((wint_t) -1)
 # endif
 #    define iswspace rpl_iswspace
 #    define iswupper rpl_iswupper
 #    define iswxdigit rpl_iswxdigit
+#   endif
+#  endif
+#  if @REPLACE_TOWLOWER@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #    define towlower rpl_towlower
 #    define towupper rpl_towupper
 #   endif
 #  endif
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswalnum
 #  else
@@ -134,7 +174,7 @@ iswalnum
           || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswalpha
 #  else
@@ -145,7 +185,7 @@ iswalpha
   return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswblank
 #  else
@@ -156,7 +196,7 @@ iswblank
   return wc == ' ' || wc == '\t';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswcntrl
 #  else
@@ -167,7 +207,7 @@ iswcntrl
   return (wc & ~0x1f) == 0 || wc == 0x7f;
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswdigit
 #  else
@@ -178,7 +218,7 @@ iswdigit
   return wc >= '0' && wc <= '9';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswgraph
 #  else
@@ -189,7 +229,7 @@ iswgraph
   return wc >= '!' && wc <= '~';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswlower
 #  else
@@ -200,7 +240,7 @@ iswlower
   return wc >= 'a' && wc <= 'z';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswprint
 #  else
@@ -211,7 +251,7 @@ iswprint
   return wc >= ' ' && wc <= '~';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswpunct
 #  else
@@ -224,7 +264,7 @@ iswpunct
                || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswspace
 #  else
@@ -236,7 +276,7 @@ iswspace
           || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswupper
 #  else
@@ -247,7 +287,7 @@ iswupper
   return wc >= 'A' && wc <= 'Z';
 }
 
-static inline int
+_GL_WCTYPE_INLINE int
 #  if @REPLACE_ISWCNTRL@
 rpl_iswxdigit
 #  else
@@ -259,8 +299,8 @@ iswxdigit
           || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
 }
 
-static inline wint_t
-#  if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE wint_t
+#  if @REPLACE_TOWLOWER@
 rpl_towlower
 #  else
 towlower
@@ -270,8 +310,8 @@ towlower
   return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
 }
 
-static inline wint_t
-#  if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE wint_t
+#  if @REPLACE_TOWLOWER@
 rpl_towupper
 #  else
 towupper
@@ -310,7 +350,7 @@ _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
       result register.  We need to fix this by adding a zero-extend from
       wchar_t to wint_t after the call.  */
 
-static inline wint_t
+_GL_WCTYPE_INLINE wint_t
 rpl_towlower (wint_t wc)
 {
   return (wint_t) (wchar_t) towlower (wc);
@@ -319,7 +359,7 @@ rpl_towlower (wint_t wc)
 #   define towlower rpl_towlower
 #  endif
 
-static inline wint_t
+_GL_WCTYPE_INLINE wint_t
 rpl_towupper (wint_t wc)
 {
   return (wint_t) (wchar_t) towupper (wc);
@@ -418,7 +458,7 @@ _GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
 # endif
 #endif
 
-#if @REPLACE_ISWCNTRL@ || defined __MINGW32__
+#if @REPLACE_TOWLOWER@ || defined __MINGW32__
 _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
 _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
 #else
@@ -467,6 +507,7 @@ _GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
 # endif
 #endif
 
+_GL_INLINE_HEADER_END
 
-#endif /* _GL_WCTYPE_H */
-#endif /* _GL_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
index 336b7888aa5c727ddce63e9cb7f285d838cc2d13..5662637f2e928ac0a35a1b82f39fce0364da594e 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Determine the number of screen columns needed for a character.
-   Copyright (C) 2006-2007, 2010-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2010-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
@@ -34,7 +34,7 @@ wcwidth (wchar_t wc)
 {
   /* In UTF-8 locales, use a Unicode aware width function.  */
   const char *encoding = locale_charset ();
-  if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+  if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
     {
       /* We assume that in a UTF-8 locale, a wide character is the same as a
          Unicode character.  */
index 1eee7bdbb76a9d96eefa16ee7f00617f68711de7..53223c74c612e9bec1d7facbccf505f6f2a57d34 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* POSIX compatible write() function.
-   Copyright (C) 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2008-2013 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 <unistd.h>
 
-/* Replace this function only if module 'sigpipe' is requested.  */
-#if GNULIB_SIGPIPE
-
 /* On native Windows platforms, SIGPIPE does not exist.  When write() is
    called on a pipe with no readers, WriteFile() fails with error
    GetLastError() = ERROR_NO_DATA, and write() in consequence fails with
    error EINVAL.  */
 
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# include <errno.h>
+# include <signal.h>
+# include <io.h>
+
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
+# include <windows.h>
+
+# include "msvc-inval.h"
+# include "msvc-nothrow.h"
+
+# undef write
 
-#  include <errno.h>
-#  include <signal.h>
-#  include <io.h>
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static ssize_t
+write_nothrow (int fd, const void *buf, size_t count)
+{
+  ssize_t result;
+
+  TRY_MSVC_INVAL
+    {
+      result = write (fd, buf, count);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
 
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
+  return result;
+}
+# else
+#  define write_nothrow write
+# endif
 
 ssize_t
 rpl_write (int fd, const void *buf, size_t count)
-#undef write
 {
-  ssize_t ret = write (fd, buf, count);
-
-  if (ret < 0)
+  for (;;)
     {
-      if (GetLastError () == ERROR_NO_DATA
-          && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE)
+      ssize_t ret = write_nothrow (fd, buf, count);
+
+      if (ret < 0)
         {
-          /* Try to raise signal SIGPIPE.  */
-          raise (SIGPIPE);
-          /* If it is currently blocked or ignored, change errno from EINVAL
-             to EPIPE.  */
-          errno = EPIPE;
+# if GNULIB_NONBLOCKING
+          if (errno == ENOSPC)
+            {
+              HANDLE h = (HANDLE) _get_osfhandle (fd);
+              if (GetFileType (h) == FILE_TYPE_PIPE)
+                {
+                  /* h is a pipe or socket.  */
+                  DWORD state;
+                  if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL,
+                                               NULL, 0)
+                      && (state & PIPE_NOWAIT) != 0)
+                    {
+                      /* h is a pipe in non-blocking mode.
+                         We can get here in four situations:
+                           1. When the pipe buffer is full.
+                           2. When count <= pipe_buf_size and the number of
+                              free bytes in the pipe buffer is < count.
+                           3. When count > pipe_buf_size and the number of free
+                              bytes in the pipe buffer is > 0, < pipe_buf_size.
+                           4. When count > pipe_buf_size and the pipe buffer is
+                              entirely empty.
+                         The cases 1 and 2 are POSIX compliant.  In cases 3 and
+                         4 POSIX specifies that write() must split the request
+                         and succeed with a partial write.  We fix case 4.
+                         We don't fix case 3 because it is not essential for
+                         programs.  */
+                      DWORD out_size; /* size of the buffer for outgoing data */
+                      DWORD in_size;  /* size of the buffer for incoming data */
+                      if (GetNamedPipeInfo (h, NULL, &out_size, &in_size, NULL))
+                        {
+                          size_t reduced_count = count;
+                          /* In theory we need only one of out_size, in_size.
+                             But I don't know which of the two.  The description
+                             is ambiguous.  */
+                          if (out_size != 0 && out_size < reduced_count)
+                            reduced_count = out_size;
+                          if (in_size != 0 && in_size < reduced_count)
+                            reduced_count = in_size;
+                          if (reduced_count < count)
+                            {
+                              /* Attempt to write only the first part.  */
+                              count = reduced_count;
+                              continue;
+                            }
+                        }
+                      /* Change errno from ENOSPC to EAGAIN.  */
+                      errno = EAGAIN;
+                    }
+                }
+            }
+          else
+# endif
+            {
+# if GNULIB_SIGPIPE
+              if (GetLastError () == ERROR_NO_DATA
+                  && GetFileType ((HANDLE) _get_osfhandle (fd))
+                     == FILE_TYPE_PIPE)
+                {
+                  /* Try to raise signal SIGPIPE.  */
+                  raise (SIGPIPE);
+                  /* If it is currently blocked or ignored, change errno from
+                     EINVAL to EPIPE.  */
+                  errno = EPIPE;
+                }
+# endif
+            }
         }
+      return ret;
     }
-  return ret;
 }
 
-# endif
 #endif
index 4128ec13b3c9428337d46376f6754f6594e6373c..bb8f1c270e1afaa73c98d53c1d53d3143d3b25ac 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Report a memory allocation failure and exit.
 
-   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2011 Free Software
+   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -35,7 +35,7 @@ xalloc_die (void)
 {
   error (exit_failure, 0, "%s", _("memory exhausted"));
 
-  /* The `noreturn' cannot be given to error, since it may return if
+  /* _Noreturn cannot be given to error, since it may return if
      its first argument is 0.  To help compilers understand the
      xalloc_die does not return, call abort.  Also, the abort is a
      safety feature if exit_failure is 0 (which shouldn't happen).  */
diff --git a/gnu/xalloc-oversized.h b/gnu/xalloc-oversized.h
new file mode 100644 (file)
index 0000000..8a34e95
--- /dev/null
@@ -0,0 +1,40 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* xalloc-oversized.h -- memory allocation size checking
+
+   Copyright (C) 1990-2000, 2003-2004, 2006-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/>.  */
+
+#ifndef XALLOC_OVERSIZED_H_
+# define XALLOC_OVERSIZED_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.
+
+   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.
+   However, malloc (SIZE_MAX) fails on all known hosts where
+   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) \
+    ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+
+#endif /* !XALLOC_OVERSIZED_H_ */
index e1da06274edee5e4fd4ee348a01217055532d49f..a9595b8efc910bb0d8f0bf4965f326165ccc93ca 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* xalloc.h -- malloc with out-of-memory checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-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
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef XALLOC_H_
-# define XALLOC_H_
+#define XALLOC_H_
 
-# include <stddef.h>
+#include <stddef.h>
 
+#include "xalloc-oversized.h"
 
-# ifdef __cplusplus
-extern "C" {
-# endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef XALLOC_INLINE
+# define XALLOC_INLINE _GL_INLINE
+#endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-#  define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-#  define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
 
-# if __GNUC__ >= 3
-#  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-#  define _GL_ATTRIBUTE_MALLOC
-# endif
+#if __GNUC__ >= 3
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC
+#endif
 
-# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
-#  define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
-# else
-#  define _GL_ATTRIBUTE_ALLOC_SIZE(args)
-# endif
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+#else
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+#endif
 
 /* This function is always triggered when memory is exhausted.
    It must be defined by the application, either explicitly
    or by using gnulib's xalloc-die module.  This is the
    function to call when one wants the program to die because of a
    memory allocation failure.  */
-extern void xalloc_die (void) _GL_ATTRIBUTE_NORETURN;
+extern _Noreturn void xalloc_die (void);
 
 void *xmalloc (size_t s)
       _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
@@ -67,22 +67,6 @@ void *xmemdup (void const *p, size_t s)
 char *xstrdup (char const *str)
       _GL_ATTRIBUTE_MALLOC;
 
-/* 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 an inline function, so that it
-   works correctly even when SIZE_MAX < N.
-
-   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.
-   However, malloc (SIZE_MAX) fails on all known hosts where
-   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) \
-    ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
-
-
 /* In the following macros, T must be an elementary or structure/union or
    typedef'ed type, or a pointer to such a type.  To apply one of the
    following macros to a function pointer or array type, you need to typedef
@@ -90,45 +74,31 @@ char *xstrdup (char const *str)
 
 /* Allocate an object of type T dynamically, with error checking.  */
 /* extern t *XMALLOC (typename t); */
-# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+#define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
 
 /* Allocate memory for N elements of type T, with error checking.  */
 /* extern t *XNMALLOC (size_t n, typename t); */
-# define XNMALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+#define XNMALLOC(n, t) \
+   ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
 
 /* Allocate an object of type T dynamically, with error checking,
    and zero it.  */
 /* extern t *XZALLOC (typename t); */
-# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+#define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
 
 /* Allocate memory for N elements of type T, with error checking,
    and zero it.  */
 /* extern t *XCALLOC (size_t n, typename t); */
-# define XCALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
+#define XCALLOC(n, t) \
+   ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
 
 
-# if HAVE_INLINE
-#  define static_inline static inline
-# else
-void *xnmalloc (size_t n, size_t s)
-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
-void *xnrealloc (void *p, size_t n, size_t s)
-      _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
-void *x2nrealloc (void *p, size_t *pn, size_t s);
-char *xcharalloc (size_t n)
-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
-# endif
-
-# ifdef static_inline
-
 /* Allocate an array of N objects, each with S bytes of memory,
    dynamically, with error checking.  S must be nonzero.  */
 
-static_inline void *xnmalloc (size_t n, size_t s)
+XALLOC_INLINE void *xnmalloc (size_t n, size_t s)
                     _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
-static_inline void *
+XALLOC_INLINE void *
 xnmalloc (size_t n, size_t s)
 {
   if (xalloc_oversized (n, s))
@@ -139,9 +109,9 @@ xnmalloc (size_t n, size_t s)
 /* Change the size of an allocated block of memory P to an array of N
    objects each of S bytes, with error checking.  S must be nonzero.  */
 
-static_inline void *xnrealloc (void *p, size_t n, size_t s)
+XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s)
                     _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
-static_inline void *
+XALLOC_INLINE void *
 xnrealloc (void *p, size_t n, size_t s)
 {
   if (xalloc_oversized (n, s))
@@ -204,7 +174,7 @@ xnrealloc (void *p, size_t n, size_t s)
 
    */
 
-static_inline void *
+XALLOC_INLINE void *
 x2nrealloc (void *p, size_t *pn, size_t s)
 {
   size_t n = *pn;
@@ -215,9 +185,9 @@ x2nrealloc (void *p, size_t *pn, size_t s)
         {
           /* The approximate size to use for initial small allocation
              requests, when the invoking code specifies an old size of
-             zero.  64 bytes is the largest "small" request for the
-             GNU C library malloc.  */
-          enum { DEFAULT_MXFAST = 64 };
+             zero.  This is the largest "small" request for the GNU C
+             library malloc.  */
+          enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
 
           n = DEFAULT_MXFAST / s;
           n += !n;
@@ -241,17 +211,15 @@ x2nrealloc (void *p, size_t *pn, size_t s)
 /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
    except it returns char *.  */
 
-static_inline char *xcharalloc (size_t n)
+XALLOC_INLINE char *xcharalloc (size_t n)
                     _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
-static_inline char *
+XALLOC_INLINE char *
 xcharalloc (size_t n)
 {
   return XNMALLOC (n, char);
 }
 
-# endif
-
-# ifdef __cplusplus
+#ifdef __cplusplus
 }
 
 /* C++ does not allow conversions from void * to other pointer types
@@ -288,7 +256,7 @@ xmemdup (T const *p, size_t s)
   return (T *) xmemdup ((void const *) p, s);
 }
 
-# endif
+#endif
 
 
 #endif /* !XALLOC_H_ */
index 29edc27983e3fb0580d0096c330972f142cb7d96..46fb71bd031b53824e9f70b6a8f653bba2b8189c 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006, 2009-2011 Free Software Foundation,
+   Copyright (C) 1999, 2002-2004, 2006, 2009-2013 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 2f1da89467d9135d87ab9261490d6d1e6f970458..5fa5bcda818e43912d3572242f7a9eec2dd3d09f 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* xgetcwd.c -- return current directory with unlimited length
 
-   Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2011 Free Software
+   Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 073917a18ba3374cd02cec6a01625bb39a4f88e1..055449f48ed27b86686873d6888f8048b483bd11 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* prototype for xgetcwd
-   Copyright (C) 1995, 2001, 2003, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001, 2003, 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
index b9451a4c20b3d64b2a6226038a0b036adfd996a5..2d50af62cadba375a083405ee9b2bb4aeb6b6885 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* xmalloc.c -- malloc with out of memory checking
 
-   Copyright (C) 1990-2000, 2002-2006, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2002-2006, 2008-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
 
 #include <config.h>
 
-#if ! HAVE_INLINE
-# define static_inline
-#endif
+#define XALLOC_INLINE _GL_EXTERN_INLINE
+
 #include "xalloc.h"
-#undef static_inline
 
 #include <stdlib.h>
 #include <string.h>
@@ -54,8 +52,16 @@ xmalloc (size_t n)
 void *
 xrealloc (void *p, size_t n)
 {
+  if (!n && p)
+    {
+      /* The GNU and C99 realloc behaviors disagree here.  Act like
+         GNU, even if the underlying realloc is C99.  */
+      free (p);
+      return NULL;
+    }
+
   p = realloc (p, n);
-  if (!p && n != 0)
+  if (!p && n)
     xalloc_die ();
   return p;
 }
diff --git a/gnu/xsize.c b/gnu/xsize.c
new file mode 100644 (file)
index 0000000..00f7bbc
--- /dev/null
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include "xsize.h"
index 5f980ca60dd94c4d1494a16d3e5fc44dcbf261f7..a0bd76650e104dd4df02056db3bcc14ac40ddce4 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* xsize.h -- Checked size_t computations.
 
-   Copyright (C) 2003, 2008-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008-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
@@ -15,8 +15,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _XSIZE_H
 #define _XSIZE_H
 # include <stdint.h>
 #endif
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef XSIZE_INLINE
+# define XSIZE_INLINE _GL_INLINE
+#endif
+
 /* The size of memory objects is often computed through expressions of
    type size_t. Example:
       void* p = malloc (header_size + n * element_size).
@@ -51,7 +55,7 @@
   ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
 
 /* Sum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -62,7 +66,7 @@ xsum (size_t size1, size_t size2)
 }
 
 /* Sum of three sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -72,7 +76,7 @@ xsum3 (size_t size1, size_t size2, size_t size3)
 }
 
 /* Sum of four sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -82,7 +86,7 @@ xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
 }
 
 /* Maximum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -95,7 +99,7 @@ xmax (size_t size1, size_t size2)
 
 /* Multiplication of a count with an element size, with overflow check.
    The count must be >= 0 and the element size must be > 0.
-   This is a macro, not an inline function, so that it works correctly even
+   This is a macro, not a function, so that it works correctly even
    when N is of a wider type and N > SIZE_MAX.  */
 #define xtimes(N, ELSIZE) \
   ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
@@ -107,4 +111,6 @@ xmax (size_t size1, size_t size2)
 #define size_in_bounds_p(SIZE) \
   ((SIZE) != SIZE_MAX)
 
+_GL_INLINE_HEADER_END
+
 #endif /* _XSIZE_H */
index 531bd7fc94ec7173e2f27eb7a522642979e18df9..790a1635e8f0d5f19ebf085c7fa8c11650d7f1f2 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Duplicate a bounded initial segment of a string, with out-of-memory
    checking.
-   Copyright (C) 2003, 2006-2007, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 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
index b255843ff59638661ea5f5b2f7da992a53723e25..0279deed5563f2043f37c73f3b7497b4cf051e1c 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Duplicate a bounded initial segment of a string, with out-of-memory
    checking.
-   Copyright (C) 2003, 2009-2011 Free Software Foundation, Inc.
+   Copyright (C) 2003, 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
index 4f2b64c8a40150643430edd6152f12a665185403..eaf386652c9b84ee56408ed876710ed452dfda82 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2011 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -62,16 +62,16 @@ xstrtol_error (enum strtol_error err,
       abort ();
 
     case LONGINT_INVALID:
-      msgid = N_("invalid %s%s argument `%s'");
+      msgid = N_("invalid %s%s argument '%s'");
       break;
 
     case LONGINT_INVALID_SUFFIX_CHAR:
     case LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW:
-      msgid = N_("invalid suffix in %s%s argument `%s'");
+      msgid = N_("invalid suffix in %s%s argument '%s'");
       break;
 
     case LONGINT_OVERFLOW:
-      msgid = N_("%s%s argument `%s' too large");
+      msgid = N_("%s%s argument '%s' too large");
       break;
     }
 
index 00ed20cd7d5e8b2a51801e5bcf70604a66f9f377..5d1b732708fd21ae1b85388f2e997ff72a385527 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2011 Free Software
+   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 #include "intprops.h"
 
+/* xstrtoll.c and xstrtoull.c, which include this file, require that
+   ULLONG_MAX, LLONG_MAX, LLONG_MIN are defined, but <limits.h> does not
+   define them on all platforms.  */
+#ifndef ULLONG_MAX
+# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
+#endif
+#ifndef LLONG_MAX
+# define LLONG_MAX TYPE_MAXIMUM (long long int)
+#endif
+#ifndef LLONG_MIN
+# define LLONG_MIN TYPE_MINIMUM (long long int)
+#endif
+
 static strtol_error
 bkm_scale (__strtol_t *x, int scale_factor)
 {
@@ -115,9 +128,9 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
       err = LONGINT_OVERFLOW;
     }
 
-  /* Let valid_suffixes == NULL mean `allow any suffix'.  */
+  /* Let valid_suffixes == NULL mean "allow any suffix".  */
   /* FIXME: update all callers except the ones that allow suffixes
-     after the number, changing last parameter NULL to `""'.  */
+     after the number, changing last parameter NULL to "".  */
   if (!valid_suffixes)
     {
       *val = tmp;
@@ -138,7 +151,7 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
 
       if (strchr (valid_suffixes, '0'))
         {
-          /* The ``valid suffix'' '0' is a special flag meaning that
+          /* 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
              of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for
index dbd2d453a8f4e44f406e57df90811e54b84f3894..94118df3a03736dfdf1fb0bc989a61bcfe438ce2 100644 (file)
@@ -2,7 +2,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2011 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2013 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -53,12 +53,6 @@ _DECLARE_XSTRTOL (xstrtoll, long long int)
 _DECLARE_XSTRTOL (xstrtoull, unsigned long long int)
 #endif
 
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-#endif
-
 /* Report an error for an invalid integer in an option argument.
 
    ERR is the error code returned by one of the xstrto* functions.
@@ -74,8 +68,8 @@ _DECLARE_XSTRTOL (xstrtoull, unsigned long long int)
 
    After reporting an error, exit with a failure status.  */
 
-void xstrtol_fatal (enum strtol_error,
-                    int, char, struct option const *,
-                    char const *) _GL_ATTRIBUTE_NORETURN;
+_Noreturn void xstrtol_fatal (enum strtol_error,
+                              int, char, struct option const *,
+                              char const *);
 
 #endif /* not XSTRTOL_H_ */
index f5ef3c5945600c8712873c553c80aaa7b1d50649..6aca8c681908b3ba688f41be0647a654a57b3009 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2004, 2006-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
@@ -31,7 +31,7 @@
 /* Checked size_t computations.  */
 #include "xsize.h"
 
-static inline char *
+static char *
 xstrcat (size_t argcount, va_list args)
 {
   char *result;
index 6f44b8f6c3c9afcf88b896582ab3f5f1675ac7c5..4c333b662973840f2beea3cbcf1732dafc5e083b 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- buffer-read-only: t -*- vi: set ro: */
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2006-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
index efd6826b56a8849191c0204b030056b495f938ec..3cbd0608d496486a8a0455cf01433867c07a9459 100644 (file)
@@ -1,21 +1,22 @@
 # Makefile for GNU tar library.                        -*- Makefile -*-
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004,
-# 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003-2007, 2009-2010, 2013 Free
+# Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
 # 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,
+# GNU tar 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, write to the Free Software Foundation, Inc.,
-# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 noinst_LIBRARIES=libtar.a
 rmt-command.h : Makefile
@@ -26,13 +27,36 @@ rmt-command.h : Makefile
        $(AM_V_at)mv $@-t $@
 BUILT_SOURCES = rmt-command.h
 CLEANFILES = rmt-command.h rmt-command.h-t
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu
+AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
+
+noinst_HEADERS = \
+ paxlib.h\
+ rmt.h\
+ stdopen.h\
+ system.h\
+ system-ioctl.h\
+ wordsplit.h\
+ xattr-at.h
 
-noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h
 libtar_a_SOURCES = \
   paxerror.c paxexit-status.c paxlib.h paxnames.c \
   prepargs.c prepargs.h \
   rtapelib.c \
   rmt.h \
   stdopen.c stdopen.h \
-  system.h system-ioctl.h
+  system.h system-ioctl.h \
+  wordsplit.c\
+  xattr-at.c
+
+if !TAR_COND_XATTR_H
+BUILT_SOURCES += attr/xattr.h
+attr/xattr.h: attr-xattr.in.h $(top_builddir)/config.status
+       $(AM_V_at)$(MKDIR_P) attr
+       $(AM_V_GEN)rm -f $@-t $@ && \
+        cp $(srcdir)/attr-xattr.in.h attr/xattr.h
+endif
+
+MOSTLYCLEANFILES = attr/xattr.h
+
+EXTRA_DIST = attr-xattr.in.h
index f0304c5a9f8868e3bf59f858fb3f0b6f6a856fc3..b3053de2fc72576bbd910247ab1a7889c2ca82a4 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 # Makefile for GNU tar library.                        -*- Makefile -*-
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004,
-# 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003-2007, 2009-2010, 2013 Free
+# Software Foundation, Inc.
+
+# This file is part of GNU tar.
 
-# This program is free software; you can redistribute it and/or modify
+# GNU tar is free software; you can redistribute it and/or modify
 # 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,
+# GNU tar 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, write to the Free Software Foundation, Inc.,
-# 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+# 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; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,33 +70,38 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+@TAR_COND_XATTR_H_FALSE@am__append_1 = attr/xattr.h
 subdir = lib
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
+       $(srcdir)/Makefile.in $(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -87,50 +109,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -138,22 +170,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -169,39 +202,51 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libtar_a_AR = $(AR) $(ARFLAGS)
 libtar_a_LIBADD =
 am_libtar_a_OBJECTS = paxerror.$(OBJEXT) paxexit-status.$(OBJEXT) \
        paxnames.$(OBJEXT) prepargs.$(OBJEXT) rtapelib.$(OBJEXT) \
-       stdopen.$(OBJEXT)
+       stdopen.$(OBJEXT) wordsplit.$(OBJEXT) xattr-at.$(OBJEXT)
 libtar_a_OBJECTS = $(am_libtar_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libtar_a_SOURCES)
 DIST_SOURCES = $(libtar_a_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -213,6 +258,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -264,12 +311,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -278,17 +329,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -296,6 +357,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -310,15 +373,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -359,25 +426,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -385,14 +462,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -419,12 +505,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -436,10 +523,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -484,9 +574,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -505,6 +597,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -520,17 +613,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -546,6 +645,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -578,28 +678,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -607,6 +725,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -614,6 +733,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -626,6 +746,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -665,12 +786,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -693,7 +816,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -715,6 +840,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -725,6 +853,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -736,6 +865,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -746,6 +878,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -756,6 +889,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -777,9 +911,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -792,6 +928,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -801,11 +938,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -835,8 +975,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -845,13 +991,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -861,10 +1010,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -885,10 +1038,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -902,9 +1058,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -968,18 +1129,31 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 noinst_LIBRARIES = libtar.a
-BUILT_SOURCES = rmt-command.h
+BUILT_SOURCES = rmt-command.h $(am__append_1)
 CLEANFILES = rmt-command.h rmt-command.h-t
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu
-noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu
+AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
+noinst_HEADERS = \
+ paxlib.h\
+ rmt.h\
+ stdopen.h\
+ system.h\
+ system-ioctl.h\
+ wordsplit.h\
+ xattr-at.h
+
 libtar_a_SOURCES = \
   paxerror.c paxexit-status.c paxlib.h paxnames.c \
   prepargs.c prepargs.h \
   rtapelib.c \
   rmt.h \
   stdopen.c stdopen.h \
-  system.h system-ioctl.h
+  system.h system-ioctl.h \
+  wordsplit.c\
+  xattr-at.c
 
+MOSTLYCLEANFILES = attr/xattr.h
+EXTRA_DIST = attr-xattr.in.h
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -1018,7 +1192,7 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libtar.a: $(libtar_a_OBJECTS) $(libtar_a_DEPENDENCIES) 
+libtar.a: $(libtar_a_OBJECTS) $(libtar_a_DEPENDENCIES) $(EXTRA_libtar_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libtar.a
        $(AM_V_AR)$(libtar_a_AR) libtar.a $(libtar_a_OBJECTS) $(libtar_a_LIBADD)
        $(AM_V_at)$(RANLIB) libtar.a
@@ -1035,22 +1209,22 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtapelib.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wordsplit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-at.Po@am__quote@
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1101,6 +1275,20 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -1150,11 +1338,17 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
+       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
 clean-generic:
        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -1239,14 +1433,14 @@ uninstall-am:
 .MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-noinstLIBRARIES ctags 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 maintainer-clean \
+       clean-noinstLIBRARIES cscopelist ctags 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 maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
        mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
        uninstall-am
@@ -1257,6 +1451,10 @@ rmt-command.h : Makefile
        $(AM_V_at)echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t
        $(AM_V_at)echo "#endif" >> $@-t
        $(AM_V_at)mv $@-t $@
+@TAR_COND_XATTR_H_FALSE@attr/xattr.h: attr-xattr.in.h $(top_builddir)/config.status
+@TAR_COND_XATTR_H_FALSE@       $(AM_V_at)$(MKDIR_P) attr
+@TAR_COND_XATTR_H_FALSE@       $(AM_V_GEN)rm -f $@-t $@ && \
+@TAR_COND_XATTR_H_FALSE@        cp $(srcdir)/attr-xattr.in.h attr/xattr.h
 
 # 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/lib/attr-xattr.in.h b/lib/attr-xattr.in.h
new file mode 100644 (file)
index 0000000..7ec410b
--- /dev/null
@@ -0,0 +1,60 @@
+/* Replacement <attr/xattr.h> for platforms that lack it.
+   Copyright 2012-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/>.  */
+
+#ifndef TAR_ATTR_XATTR_H
+#define TAR_ATTR_XATTR_H
+#include <errno.h>
+#ifndef ENOATTR
+# define ENOATTR ENODATA        /* No such attribute */
+#endif
+
+/* setting */
+static inline int setxattr (const char *path, const char *name, const void
+                            *value, size_t size, int flags)
+{ errno = ENOTSUP; return -1; }
+
+static inline int lsetxattr (const char *path, const char *name, const void
+                             *value, size_t size, int flags)
+{ errno = ENOTSUP; return -1; }
+
+static inline int fsetxattr (int filedes, const char *name, const void *value,
+                             size_t size, int flags)
+{ errno = ENOTSUP; return -1; }
+
+
+/* getting */
+static inline ssize_t getxattr (const char *path, const char *name, void *value,
+                                size_t size)
+{ errno = ENOTSUP; return -1; }
+static inline ssize_t lgetxattr (const char *path, const char *name, void
+                                 *value, size_t size)
+{ errno = ENOTSUP; return -1; }
+static inline ssize_t fgetxattr (int filedes, const char *name, void *value,
+                                 size_t size)
+{ errno = ENOTSUP; return -1; }
+
+
+/* listing */
+static inline ssize_t listxattr (const char *path, char *list, size_t size)
+{ errno = ENOTSUP; return -1; }
+
+static inline ssize_t llistxattr (const char *path, char *list, size_t size)
+{ errno = ENOTSUP; return -1; }
+
+static inline ssize_t flistxattr (int filedes, char *list, size_t size)
+{ errno = ENOTSUP; return -1; }
+
+#endif
index 1b6b0ce6dde947e3d807aa29c528330610946c8e..9b30d2493bffad74ef5718e50985b916b4e05b92 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse arguments from a string and prepend them to an argv.
-   Copyright 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
+   Copyright 1999-2001, 2007, 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
@@ -12,9 +12,7 @@
    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, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert <eggert@twinsun.com>.  */
 
index 2ce9dc517035223c71096bbd12637c8866e0bc3a..ff10e7cc48834faf50421404de4c79d372a6206a 100644 (file)
--- a/lib/rmt.h
+++ b/lib/rmt.h
@@ -17,8 +17,8 @@
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-extern char *rmt_command;
-extern char *rmt_dev_name__;
+extern char const *rmt_command;
+extern char const *rmt_dev_name__;
 
 int rmt_open__ (const char *, int, int, const char *);
 int rmt_close__ (int);
index 3aee42865398af40ddb4ef6f7fd47d668f517e88..7213031a1c77d88a28cc0df980311d0c10856ba6 100644 (file)
@@ -90,10 +90,10 @@ static int from_remote[MAXUNIT][2] = {{-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}};
 /* The pipes for sending data to remote tape drives.  */
 static int to_remote[MAXUNIT][2] = {{-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}};
 
-char *rmt_command = DEFAULT_RMT_COMMAND;
+char const *rmt_command = DEFAULT_RMT_COMMAND;
 
 /* Temporary variable used by macros in rmt.h.  */
-char *rmt_dev_name__;
+char const *rmt_dev_name__;
 
 /* If true, always consider file names to be local, even if they contain
    colons */
@@ -490,15 +490,16 @@ rmt_open__ (const char *file_name, int open_mode, int bias,
       {
        /* Child.  */
 
-       close (STDIN_FILENO);
-       dup (to_remote[remote_pipe_number][PREAD]);
-       close (to_remote[remote_pipe_number][PREAD]);
-       close (to_remote[remote_pipe_number][PWRITE]);
-
-       close (STDOUT_FILENO);
-       dup (from_remote[remote_pipe_number][PWRITE]);
-       close (from_remote[remote_pipe_number][PREAD]);
-       close (from_remote[remote_pipe_number][PWRITE]);
+       if (dup2 (to_remote[remote_pipe_number][PREAD], STDIN_FILENO) < 0
+           || (to_remote[remote_pipe_number][PREAD] != STDIN_FILENO
+               && close (to_remote[remote_pipe_number][PREAD]) != 0)
+           || (to_remote[remote_pipe_number][PWRITE] != STDIN_FILENO
+               && close (to_remote[remote_pipe_number][PWRITE]) != 0)
+           || dup2 (from_remote[remote_pipe_number][PWRITE], STDOUT_FILENO) < 0
+           || close (from_remote[remote_pipe_number][PREAD]) != 0
+           || close (from_remote[remote_pipe_number][PWRITE]) != 0)
+         error (EXIT_ON_EXEC_ERROR, errno,
+                _("Cannot redirect files for remote shell"));
 
        sys_reset_uid_gid ();
 
index 0b637ad17f23347f568d60251a1408c9727030ef..bdffca36403ff163c6b417857821259dea4aee68 100644 (file)
@@ -1,6 +1,6 @@
 /* stdopen.c - ensure that the three standard file descriptors are in use
 
-   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+   Copyright 2005, 2007, 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
@@ -13,8 +13,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert and Jim Meyering.  */
 
index 2deb585b41baf7b16b27d79cfe8f7a8b5912995e..ef462675c3249d0a1d2480c1b42ab411782dafbc 100644 (file)
@@ -471,8 +471,11 @@ char *getenv ();
 # define SET_BINARY_MODE(arc)
 # define ERRNO_IS_EACCES 0
 # define TTY_NAME "/dev/tty"
-# define sys_reset_uid_gid() \
- do { setuid (getuid ()); setgid (getgid ()); } while (0)
+# define sys_reset_uid_gid()                                   \
+  do {                                                         \
+    if (! (setuid (getuid ()) == 0 && setgid (getgid ()) == 0)) \
+      abort ();                                                        \
+  } while (0)
 #endif
 
 #if XENIX
diff --git a/lib/wordsplit.c b/lib/wordsplit.c
new file mode 100644 (file)
index 0000000..75faf9e
--- /dev/null
@@ -0,0 +1,1628 @@
+/* wordsplit - a word splitter
+   Copyright (C) 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/>.
+
+   Written by Sergey Poznyakoff
+*/
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <errno.h>
+#include <ctype.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#if ENABLE_NLS
+# include <gettext.h>
+#else
+# define gettext(msgid) msgid
+#endif
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+#include <wordsplit.h>
+
+#define ISWS(c) ((c)==' '||(c)=='\t'||(c)=='\n')
+#define ISDELIM(ws,c) \
+  (strchr ((ws)->ws_delim, (c)) != NULL)
+#define ISPUNCT(c) (strchr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",(c))!=NULL)
+#define ISUPPER(c) ('A' <= ((unsigned) (c)) && ((unsigned) (c)) <= 'Z')
+#define ISLOWER(c) ('a' <= ((unsigned) (c)) && ((unsigned) (c)) <= 'z')
+#define ISALPHA(c) (ISUPPER(c) || ISLOWER(c))
+#define ISDIGIT(c) ('0' <= ((unsigned) (c)) && ((unsigned) (c)) <= '9')
+#define ISXDIGIT(c) (strchr("abcdefABCDEF", c)!=NULL)
+#define ISALNUM(c) (ISALPHA(c) || ISDIGIT(c))
+#define ISPRINT(c) (' ' <= ((unsigned) (c)) && ((unsigned) (c)) <= 127)
+
+#define ALLOC_INIT 128
+#define ALLOC_INCR 128
+
+static void
+_wsplt_alloc_die (struct wordsplit *wsp)
+{
+  wsp->ws_error (_("memory exhausted"));
+  abort ();
+}
+
+static void __attribute__ ((__format__ (__printf__, 1, 2)))
+_wsplt_error (const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  vfprintf (stderr, fmt, ap);
+  va_end (ap);
+  fputc ('\n', stderr);
+}
+
+static void wordsplit_free_nodes (struct wordsplit *);
+
+static int
+_wsplt_nomem (struct wordsplit *wsp)
+{
+  errno = ENOMEM;
+  wsp->ws_errno = WRDSE_NOSPACE;
+  if (wsp->ws_flags & WRDSF_ENOMEMABRT)
+    wsp->ws_alloc_die (wsp);
+  if (wsp->ws_flags & WRDSF_SHOWERR)
+    wordsplit_perror (wsp);
+  if (!(wsp->ws_flags & WRDSF_REUSE))
+    wordsplit_free (wsp);
+  wordsplit_free_nodes (wsp);
+  return wsp->ws_errno;
+}
+
+static void
+wordsplit_init0 (struct wordsplit *wsp)
+{
+  if (wsp->ws_flags & WRDSF_REUSE)
+    {
+      if (!(wsp->ws_flags & WRDSF_APPEND))
+       wordsplit_free_words (wsp);
+    }
+  else
+    {
+      wsp->ws_wordv = NULL;
+      wsp->ws_wordc = 0;
+      wsp->ws_wordn = 0;
+    }
+
+  wsp->ws_errno = 0;
+  wsp->ws_head = wsp->ws_tail = NULL;
+}
+
+static int
+wordsplit_init (struct wordsplit *wsp, const char *input, size_t len,
+               int flags)
+{
+  wsp->ws_flags = flags;
+
+  if (!(wsp->ws_flags & WRDSF_ALLOC_DIE))
+    wsp->ws_alloc_die = _wsplt_alloc_die;
+  if (!(wsp->ws_flags & WRDSF_ERROR))
+    wsp->ws_error = _wsplt_error;
+
+  if (!(wsp->ws_flags & WRDSF_NOVAR)
+      && !(wsp->ws_flags & (WRDSF_ENV | WRDSF_GETVAR)))
+    {
+      errno = EINVAL;
+      wsp->ws_errno = WRDSE_USAGE;
+      if (wsp->ws_flags & WRDSF_SHOWERR)
+       wordsplit_perror (wsp);
+      return wsp->ws_errno;
+    }
+
+  if (!(wsp->ws_flags & WRDSF_NOCMD))
+    {
+      errno = EINVAL;
+      wsp->ws_errno = WRDSE_NOSUPP;
+      if (wsp->ws_flags & WRDSF_SHOWERR)
+       wordsplit_perror (wsp);
+      return wsp->ws_errno;
+    }
+
+  if (wsp->ws_flags & WRDSF_SHOWDBG)
+    {
+      if (!(wsp->ws_flags & WRDSF_DEBUG))
+       {
+         if (wsp->ws_flags & WRDSF_ERROR)
+           wsp->ws_debug = wsp->ws_error;
+         else if (wsp->ws_flags & WRDSF_SHOWERR)
+           wsp->ws_debug = _wsplt_error;
+         else
+           wsp->ws_flags &= ~WRDSF_SHOWDBG;
+       }
+    }
+
+  wsp->ws_input = input;
+  wsp->ws_len = len;
+
+  if (!(wsp->ws_flags & WRDSF_DOOFFS))
+    wsp->ws_offs = 0;
+
+  if (!(wsp->ws_flags & WRDSF_DELIM))
+    wsp->ws_delim = " \t\n";
+
+  if (!(wsp->ws_flags & WRDSF_COMMENT))
+    wsp->ws_comment = NULL;
+
+  if (!(wsp->ws_flags & WRDSF_CLOSURE))
+    wsp->ws_closure = NULL;
+
+  wsp->ws_endp = 0;
+
+  wordsplit_init0 (wsp);
+
+  return 0;
+}
+
+static int
+alloc_space (struct wordsplit *wsp, size_t count)
+{
+  size_t offs = (wsp->ws_flags & WRDSF_DOOFFS) ? wsp->ws_offs : 0;
+  char **ptr;
+  size_t newalloc;
+
+  if (wsp->ws_wordv == NULL)
+    {
+      newalloc = offs + count > ALLOC_INIT ? count : ALLOC_INIT;
+      ptr = calloc (newalloc, sizeof (ptr[0]));
+    }
+  else if (wsp->ws_wordn < offs + wsp->ws_wordc + count)
+    {
+      newalloc = offs + wsp->ws_wordc +
+       (count > ALLOC_INCR ? count : ALLOC_INCR);
+      ptr = realloc (wsp->ws_wordv, newalloc * sizeof (ptr[0]));
+    }
+  else
+    return 0;
+
+  if (ptr)
+    {
+      wsp->ws_wordn = newalloc;
+      wsp->ws_wordv = ptr;
+    }
+  else
+    return _wsplt_nomem (wsp);
+  return 0;
+}
+\f
+
+/* Node state flags */
+#define _WSNF_NULL     0x01    /* null node (a noop) */
+#define _WSNF_WORD     0x02    /* node contains word in v.word */
+#define _WSNF_QUOTE    0x04    /* text is quoted */
+#define _WSNF_NOEXPAND 0x08    /* text is not subject to expansion */
+#define _WSNF_JOIN     0x10    /* node must be joined with the next node */
+#define _WSNF_SEXP     0x20    /* is a sed expression */
+
+#define _WSNF_EMPTYOK  0x0100  /* special flag indicating that
+                                  wordsplit_add_segm must add the
+                                  segment even if it is empty */
+
+struct wordsplit_node
+{
+  struct wordsplit_node *prev; /* Previous element */
+  struct wordsplit_node *next; /* Next element */
+  int flags;                   /* Node flags */
+  union
+  {
+    struct
+    {
+      size_t beg;              /* Start of word in ws_input */
+      size_t end;              /* End of word in ws_input */
+    } segm;
+    char *word;
+  } v;
+};
+
+static const char *
+wsnode_flagstr (int flags)
+{
+  static char retbuf[6];
+  char *p = retbuf;
+
+  if (flags & _WSNF_WORD)
+    *p++ = 'w';
+  else if (flags & _WSNF_NULL)
+    *p++ = 'n';
+  else
+    *p++ = '-';
+  if (flags & _WSNF_QUOTE)
+    *p++ = 'q';
+  else
+    *p++ = '-';
+  if (flags & _WSNF_NOEXPAND)
+    *p++ = 'E';
+  else
+    *p++ = '-';
+  if (flags & _WSNF_JOIN)
+    *p++ = 'j';
+  else
+    *p++ = '-';
+  if (flags & _WSNF_SEXP)
+    *p++ = 's';
+  else
+    *p++ = '-';
+  *p = 0;
+  return retbuf;
+}
+
+static const char *
+wsnode_ptr (struct wordsplit *wsp, struct wordsplit_node *p)
+{
+  if (p->flags & _WSNF_NULL)
+    return "";
+  else if (p->flags & _WSNF_WORD)
+    return p->v.word;
+  else
+    return wsp->ws_input + p->v.segm.beg;
+}
+
+static size_t
+wsnode_len (struct wordsplit_node *p)
+{
+  if (p->flags & _WSNF_NULL)
+    return 0;
+  else if (p->flags & _WSNF_WORD)
+    return strlen (p->v.word);
+  else
+    return p->v.segm.end - p->v.segm.beg;
+}
+
+static int
+wsnode_new (struct wordsplit *wsp, struct wordsplit_node **pnode)
+{
+  struct wordsplit_node *node = calloc (1, sizeof (*node));
+  if (!node)
+    return _wsplt_nomem (wsp);
+  *pnode = node;
+  return 0;
+}
+
+static void
+wsnode_free (struct wordsplit_node *p)
+{
+  if (p->flags & _WSNF_WORD)
+    free (p->v.word);
+  free (p);
+}
+
+static void
+wsnode_append (struct wordsplit *wsp, struct wordsplit_node *node)
+{
+  node->next = NULL;
+  node->prev = wsp->ws_tail;
+  if (wsp->ws_tail)
+    wsp->ws_tail->next = node;
+  else
+    wsp->ws_head = node;
+  wsp->ws_tail = node;
+}
+
+static void
+wsnode_remove (struct wordsplit *wsp, struct wordsplit_node *node)
+{
+  struct wordsplit_node *p;
+
+  p = node->prev;
+  if (p)
+    {
+      p->next = node->next;
+      if (!node->next)
+       p->flags &= ~_WSNF_JOIN;
+    }
+  else
+    wsp->ws_head = node->next;
+
+  p = node->next;
+  if (p)
+    p->prev = node->prev;
+  else
+    wsp->ws_tail = node->prev;
+
+  node->next = node->prev = NULL;
+}
+
+static void
+wsnode_insert (struct wordsplit *wsp, struct wordsplit_node *node,
+              struct wordsplit_node *anchor, int before)
+{
+  if (!wsp->ws_head)
+    {
+      node->next = node->prev = NULL;
+      wsp->ws_head = wsp->ws_tail = node;
+    }
+  else if (before)
+    {
+      if (anchor->prev)
+       wsnode_insert (wsp, node, anchor->prev, 0);
+      else
+       {
+         node->prev = NULL;
+         node->next = anchor;
+         anchor->prev = node;
+         wsp->ws_head = node;
+       }
+    }
+  else
+    {
+      struct wordsplit_node *p;
+
+      p = anchor->next;
+      if (p)
+       p->prev = node;
+      else
+       wsp->ws_tail = node;
+      node->next = p;
+      node->prev = anchor;
+      anchor->next = node;
+    }
+}
+
+static int
+wordsplit_add_segm (struct wordsplit *wsp, size_t beg, size_t end, int flg)
+{
+  struct wordsplit_node *node;
+  int rc;
+
+  if (end == beg && !(flg & _WSNF_EMPTYOK))
+    return 0;
+  rc = wsnode_new (wsp, &node);
+  if (rc)
+    return rc;
+  node->flags = flg & ~(_WSNF_WORD | _WSNF_EMPTYOK);
+  node->v.segm.beg = beg;
+  node->v.segm.end = end;
+  wsnode_append (wsp, node);
+  return 0;
+}
+
+static void
+wordsplit_free_nodes (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+
+  for (p = wsp->ws_head; p;)
+    {
+      struct wordsplit_node *next = p->next;
+      wsnode_free (p);
+      p = next;
+    }
+  wsp->ws_head = wsp->ws_tail = NULL;
+}
+
+static void
+wordsplit_dump_nodes (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+  int n = 0;
+
+  for (p = wsp->ws_head, n = 0; p; p = p->next, n++)
+    {
+      if (p->flags & _WSNF_WORD)
+       wsp->ws_debug ("%4d: %p: %#04x (%s):%s;",
+                      n, p, p->flags, wsnode_flagstr (p->flags), p->v.word);
+      else
+       wsp->ws_debug ("%4d: %p: %#04x (%s):%.*s;",
+                      n, p, p->flags, wsnode_flagstr (p->flags),
+                      (int) (p->v.segm.end - p->v.segm.beg),
+                      wsp->ws_input + p->v.segm.beg);
+    }
+}
+
+static int
+coalesce_segment (struct wordsplit *wsp, struct wordsplit_node *node)
+{
+  struct wordsplit_node *p, *end;
+  size_t len = 0;
+  char *buf, *cur;
+  int stop;
+
+  for (p = node; p && (p->flags & _WSNF_JOIN); p = p->next)
+    {
+      len += wsnode_len (p);
+    }
+  len += wsnode_len (p);
+  end = p;
+
+  buf = malloc (len + 1);
+  if (!buf)
+    return _wsplt_nomem (wsp);
+  cur = buf;
+
+  p = node;
+  for (stop = 0; !stop;)
+    {
+      struct wordsplit_node *next = p->next;
+      const char *str = wsnode_ptr (wsp, p);
+      size_t slen = wsnode_len (p);
+
+      memcpy (cur, str, slen);
+      cur += slen;
+      if (p != node)
+       {
+         wsnode_remove (wsp, p);
+         stop = p == end;
+         wsnode_free (p);
+       }
+      p = next;
+    }
+
+  *cur = 0;
+
+  node->flags &= ~_WSNF_JOIN;
+
+  if (node->flags & _WSNF_WORD)
+    free (node->v.word);
+  else
+    node->flags |= _WSNF_WORD;
+  node->v.word = buf;
+  return 0;
+}
+
+static int
+wsnode_quoteremoval (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+  void (*uqfn) (char *, const char *, size_t) =
+    (wsp->ws_flags & WRDSF_CESCAPES) ?
+    wordsplit_c_unquote_copy : wordsplit_sh_unquote_copy;
+
+  for (p = wsp->ws_head; p; p = p->next)
+    {
+      const char *str = wsnode_ptr (wsp, p);
+      size_t slen = wsnode_len (p);
+      int unquote;
+
+      if (wsp->ws_flags & WRDSF_QUOTE)
+       {
+         unquote = !(p->flags & _WSNF_NOEXPAND);
+       }
+      else
+       unquote = 0;
+
+      if (unquote)
+       {
+         if (!(p->flags & _WSNF_WORD))
+           {
+             char *newstr = malloc (slen + 1);
+             if (!newstr)
+               return _wsplt_nomem (wsp);
+             memcpy (newstr, str, slen);
+             newstr[slen] = 0;
+             p->v.word = newstr;
+             p->flags |= _WSNF_WORD;
+           }
+
+         if (wsp->ws_flags & WRDSF_ESCAPE)
+           wordsplit_general_unquote_copy (p->v.word, str, slen,
+                                           wsp->ws_escape);
+         else
+           uqfn (p->v.word, str, slen);
+       }
+    }
+  return 0;
+}
+
+static int
+wsnode_coalesce (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+
+  for (p = wsp->ws_head; p; p = p->next)
+    {
+      if (p->flags & _WSNF_JOIN)
+       if (coalesce_segment (wsp, p))
+         return 1;
+    }
+  return 0;
+}
+
+static int
+wordsplit_finish (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+  size_t n;
+
+  n = 0;
+
+  for (p = wsp->ws_head; p; p = p->next)
+    n++;
+
+  if (alloc_space (wsp, n + 1))
+    return 1;
+
+  for (p = wsp->ws_head; p; p = p->next)
+    {
+      const char *str = wsnode_ptr (wsp, p);
+      size_t slen = wsnode_len (p);
+      char *newstr = malloc (slen + 1);
+
+      /* Assign newstr first, even if it is NULL.  This way
+         wordsplit_free will work even if we return
+         nomem later. */
+      wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc] = newstr;
+      if (!newstr)
+       return _wsplt_nomem (wsp);
+      memcpy (newstr, str, slen);
+      newstr[slen] = 0;
+
+      wsp->ws_wordc++;
+
+    }
+  wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc] = NULL;
+  return 0;
+}
+\f
+
+/* Variable expansion */
+static int
+node_split_prefix (struct wordsplit *wsp,
+                  struct wordsplit_node **ptail,
+                  struct wordsplit_node *node,
+                  size_t beg, size_t len, int flg)
+{
+  struct wordsplit_node *newnode;
+
+  if (len == 0)
+    return 0;
+  if (wsnode_new (wsp, &newnode))
+    return 1;
+  wsnode_insert (wsp, newnode, *ptail, 0);
+  if (node->flags & _WSNF_WORD)
+    {
+      const char *str = wsnode_ptr (wsp, node);
+      char *newstr = malloc (len + 1);
+      if (!newstr)
+       return _wsplt_nomem (wsp);
+      memcpy (newstr, str + beg, len);
+      newstr[len] = 0;
+      newnode->flags = _WSNF_WORD;
+      newnode->v.word = newstr;
+    }
+  else
+    {
+      newnode->v.segm.beg = node->v.segm.beg + beg;
+      newnode->v.segm.end = newnode->v.segm.beg + len;
+    }
+  newnode->flags |= flg;
+  *ptail = newnode;
+  return 0;
+}
+
+static int
+find_closing_cbrace (const char *str, size_t i, size_t len, size_t * poff)
+{
+  enum
+  { st_init, st_squote, st_dquote } state = st_init;
+  size_t level = 1;
+
+  for (; i < len; i++)
+    {
+      switch (state)
+       {
+       case st_init:
+         switch (str[i])
+           {
+           case '{':
+             level++;
+             break;
+
+           case '}':
+             if (--level == 0)
+               {
+                 *poff = i;
+                 return 0;
+               }
+             break;
+
+           case '"':
+             state = st_dquote;
+             break;
+
+           case '\'':
+             state = st_squote;
+             break;
+           }
+         break;
+
+       case st_squote:
+         if (str[i] == '\'')
+           state = st_init;
+         break;
+
+       case st_dquote:
+         if (str[i] == '\\')
+           i++;
+         else if (str[i] == '"')
+           state = st_init;
+         break;
+       }
+    }
+  return 1;
+}
+
+static const char *
+wordsplit_find_env (struct wordsplit *wsp, const char *name, size_t len)
+{
+  size_t i;
+
+  if (!(wsp->ws_flags & WRDSF_ENV))
+    return NULL;
+
+  if (wsp->ws_flags & WRDSF_ENV_KV)
+    {
+      /* A key-value pair environment */
+      for (i = 0; wsp->ws_env[i]; i++)
+       {
+         size_t elen = strlen (wsp->ws_env[i]);
+         if (elen == len && memcmp (wsp->ws_env[i], name, elen) == 0)
+           return wsp->ws_env[i + 1];
+         /* Skip the value.  Break the loop if it is NULL. */
+         i++;
+         if (wsp->ws_env[i] == NULL)
+           break;
+       }
+    }
+  else
+    {
+      /* Usual (A=B) environment. */
+      for (i = 0; wsp->ws_env[i]; i++)
+       {
+         size_t j;
+         const char *var = wsp->ws_env[i];
+
+         for (j = 0; j < len; j++)
+           if (name[j] != var[j])
+             break;
+         if (j == len && var[j] == '=')
+           return var + j + 1;
+       }
+    }
+  return NULL;
+}
+
+static int
+expvar (struct wordsplit *wsp, const char *str, size_t len,
+       struct wordsplit_node **ptail, const char **pend, int flg)
+{
+  size_t i = 0;
+  const char *defstr = NULL;
+  const char *value;
+  const char *vptr;
+  struct wordsplit_node *newnode;
+  const char *start = str - 1;
+
+  if (ISALPHA (str[0]) || str[0] == '_')
+    {
+      for (i = 1; i < len; i++)
+       if (!(ISALNUM (str[i]) || str[i] == '_'))
+         break;
+      *pend = str + i - 1;
+    }
+  else if (str[0] == '{')
+    {
+      str++;
+      len--;
+      for (i = 1; i < len; i++)
+       if (str[i] == '}' || str[i] == ':')
+         break;
+      if (str[i] == ':')
+       {
+         size_t j;
+
+         defstr = str + i + 1;
+         if (find_closing_cbrace (str, i + 1, len, &j))
+           {
+             wsp->ws_errno = WRDSE_CBRACE;
+             return 1;
+           }
+         *pend = str + j;
+       }
+      else if (str[i] == '}')
+       {
+         defstr = NULL;
+         *pend = str + i;
+       }
+      else
+       {
+         wsp->ws_errno = WRDSE_CBRACE;
+         return 1;
+       }
+    }
+  else
+    {
+      if (wsnode_new (wsp, &newnode))
+       return 1;
+      wsnode_insert (wsp, newnode, *ptail, 0);
+      *ptail = newnode;
+      newnode->flags = _WSNF_WORD | flg;
+      newnode->v.word = malloc (3);
+      if (!newnode->v.word)
+       return _wsplt_nomem (wsp);
+      newnode->v.word[0] = '$';
+      newnode->v.word[1] = str[0];
+      newnode->v.word[2] = 0;
+      *pend = str;
+      return 0;
+    }
+
+  /* Actually expand the variable */
+  /* str - start of the variable name
+     i   - its length
+     defstr - default replacement str */
+
+  vptr = wordsplit_find_env (wsp, str, i);
+  if (vptr)
+    {
+      value = strdup (vptr);
+      if (!value)
+       return _wsplt_nomem (wsp);
+    }
+  else if (wsp->ws_flags & WRDSF_GETVAR)
+    value = wsp->ws_getvar (str, i, wsp->ws_closure);
+  else if (wsp->ws_flags & WRDSF_UNDEF)
+    {
+      wsp->ws_errno = WRDSE_UNDEF;
+      if (wsp->ws_flags & WRDSF_SHOWERR)
+       wordsplit_perror (wsp);
+      return 1;
+    }
+  else
+    {
+      if (wsp->ws_flags & WRDSF_WARNUNDEF)
+       wsp->ws_error (_("warning: undefined variable `%.*s'"), (int) i, str);
+      if (wsp->ws_flags & WRDSF_KEEPUNDEF)
+       value = NULL;
+      else
+       value = "";
+    }
+
+  /* FIXME: handle defstr */
+  (void) defstr;
+
+  if (value)
+    {
+      if (flg & _WSNF_QUOTE)
+       {
+         if (wsnode_new (wsp, &newnode))
+           return 1;
+         wsnode_insert (wsp, newnode, *ptail, 0);
+         *ptail = newnode;
+         newnode->flags = _WSNF_WORD | _WSNF_NOEXPAND | flg;
+         newnode->v.word = strdup (value);
+         if (!newnode->v.word)
+           return _wsplt_nomem (wsp);
+       }
+      else if (*value == 0)
+       {
+         /* Empty string is a special case */
+         if (wsnode_new (wsp, &newnode))
+           return 1;
+         wsnode_insert (wsp, newnode, *ptail, 0);
+         *ptail = newnode;
+         newnode->flags = _WSNF_NULL;
+       }
+      else
+       {
+         struct wordsplit ws;
+         int i;
+
+         ws.ws_delim = wsp->ws_delim;
+         if (wordsplit (value, &ws,
+                        WRDSF_NOVAR | WRDSF_NOCMD | WRDSF_DELIM | WRDSF_WS))
+           {
+             wordsplit_free (&ws);
+             return 1;
+           }
+         for (i = 0; i < ws.ws_wordc; i++)
+           {
+             if (wsnode_new (wsp, &newnode))
+               return 1;
+             wsnode_insert (wsp, newnode, *ptail, 0);
+             *ptail = newnode;
+             newnode->flags = _WSNF_WORD |
+               _WSNF_NOEXPAND |
+               (i + 1 < ws.ws_wordc ? (flg & ~_WSNF_JOIN) : flg);
+             newnode->v.word = strdup (ws.ws_wordv[i]);
+             if (!newnode->v.word)
+               return _wsplt_nomem (wsp);
+           }
+         wordsplit_free (&ws);
+       }
+    }
+  else if (wsp->ws_flags & WRDSF_KEEPUNDEF)
+    {
+      size_t size = *pend - start + 1;
+
+      if (wsnode_new (wsp, &newnode))
+       return 1;
+      wsnode_insert (wsp, newnode, *ptail, 0);
+      *ptail = newnode;
+      newnode->flags = _WSNF_WORD | _WSNF_NOEXPAND | flg;
+      newnode->v.word = malloc (size + 1);
+      if (!newnode->v.word)
+       return _wsplt_nomem (wsp);
+      memcpy (newnode->v.word, start, size);
+      newnode->v.word[size] = 0;
+    }
+  else
+    {
+      if (wsnode_new (wsp, &newnode))
+       return 1;
+      wsnode_insert (wsp, newnode, *ptail, 0);
+      *ptail = newnode;
+      newnode->flags = _WSNF_NULL;
+    }
+  return 0;
+}
+
+static int
+node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node)
+{
+  const char *str = wsnode_ptr (wsp, node);
+  size_t slen = wsnode_len (node);
+  const char *end = str + slen;
+  const char *p;
+  size_t off = 0;
+  struct wordsplit_node *tail = node;
+
+  for (p = str; p < end; p++)
+    {
+      if (*p == '\\')
+       {
+         p++;
+         continue;
+       }
+      if (*p == '$')
+       {
+         size_t n = p - str;
+
+         if (tail != node)
+           tail->flags |= _WSNF_JOIN;
+         if (node_split_prefix (wsp, &tail, node, off, n, _WSNF_JOIN))
+           return 1;
+         p++;
+         if (expvar (wsp, p, slen - n, &tail, &p,
+                     node->flags & (_WSNF_JOIN | _WSNF_QUOTE)))
+           return 1;
+         off += p - str + 1;
+         str = p + 1;
+       }
+    }
+  if (p > str)
+    {
+      if (tail != node)
+       tail->flags |= _WSNF_JOIN;
+      if (node_split_prefix (wsp, &tail, node, off, p - str,
+                            node->flags & _WSNF_JOIN))
+       return 1;
+    }
+  if (tail != node)
+    {
+      wsnode_remove (wsp, node);
+      wsnode_free (node);
+    }
+  return 0;
+}
+
+/* Remove NULL lists */
+static void
+wsnode_nullelim (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+
+  for (p = wsp->ws_head; p;)
+    {
+      struct wordsplit_node *next = p->next;
+      if (p->flags & _WSNF_NULL)
+       {
+         wsnode_remove (wsp, p);
+         wsnode_free (p);
+       }
+      p = next;
+    }
+}
+
+static int
+wordsplit_varexp (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+
+  for (p = wsp->ws_head; p;)
+    {
+      struct wordsplit_node *next = p->next;
+      if (!(p->flags & _WSNF_NOEXPAND))
+       if (node_expand_vars (wsp, p))
+         return 1;
+      p = next;
+    }
+
+  wsnode_nullelim (wsp);
+  return 0;
+}
+\f
+/* Strip off any leading and trailing whitespace.  This function is called
+   right after the initial scanning, therefore it assumes that every
+   node in the list is a text reference node. */
+static void
+wordsplit_trimws (struct wordsplit *wsp)
+{
+  struct wordsplit_node *p;
+
+  for (p = wsp->ws_head; p; p = p->next)
+    {
+      size_t n;
+
+      if (p->flags & _WSNF_QUOTE)
+       continue;
+
+      /* Skip leading whitespace: */
+      for (n = p->v.segm.beg; n < p->v.segm.end && ISWS (wsp->ws_input[n]);
+          n++)
+       ;
+      p->v.segm.beg = n;
+      /* Trim trailing whitespace */
+      for (n = p->v.segm.end;
+          n > p->v.segm.beg && ISWS (wsp->ws_input[n - 1]); n--);
+      p->v.segm.end = n;
+      if (p->v.segm.beg == p->v.segm.end)
+       p->flags |= _WSNF_NULL;
+    }
+
+  wsnode_nullelim (wsp);
+}
+\f
+static int
+skip_sed_expr (const char *command, size_t i, size_t len)
+{
+  int state;
+
+  do
+    {
+      int delim;
+
+      if (command[i] == ';')
+       i++;
+      if (!(command[i] == 's' && i + 3 < len && ISPUNCT (command[i + 1])))
+       break;
+
+      delim = command[++i];
+      state = 1;
+      for (i++; i < len; i++)
+       {
+         if (state == 3)
+           {
+             if (command[i] == delim || !ISALNUM (command[i]))
+               break;
+           }
+         else if (command[i] == '\\')
+           i++;
+         else if (command[i] == delim)
+           state++;
+       }
+    }
+  while (state == 3 && i < len && command[i] == ';');
+  return i;
+}
+
+static size_t
+skip_delim (struct wordsplit *wsp)
+{
+  size_t start = wsp->ws_endp;
+  if (wsp->ws_flags & WRDSF_SQUEEZE_DELIMS)
+    {
+      if ((wsp->ws_flags & WRDSF_RETURN_DELIMS) &&
+         ISDELIM (wsp, wsp->ws_input[start]))
+       {
+         int delim = wsp->ws_input[start];
+         do
+           start++;
+         while (start < wsp->ws_len && delim == wsp->ws_input[start]);
+       }
+      else
+       {
+         do
+           start++;
+         while (start < wsp->ws_len && ISDELIM (wsp, wsp->ws_input[start]));
+       }
+      start--;
+    }
+
+  if (!(wsp->ws_flags & WRDSF_RETURN_DELIMS))
+    start++;
+
+  return start;
+}
+
+#define _WRDS_EOF   0
+#define _WRDS_OK    1
+#define _WRDS_ERR   2
+
+static int
+scan_qstring (struct wordsplit *wsp, size_t start, size_t * end)
+{
+  size_t j;
+  const char *command = wsp->ws_input;
+  size_t len = wsp->ws_len;
+  char q = command[start];
+
+  for (j = start + 1; j < len && command[j] != q; j++)
+    if (q == '"' && command[j] == '\\')
+      j++;
+  if (j < len && command[j] == q)
+    {
+      int flags = _WSNF_QUOTE | _WSNF_EMPTYOK;
+      if (q == '\'')
+       flags |= _WSNF_NOEXPAND;
+      if (wordsplit_add_segm (wsp, start + 1, j, flags))
+       return _WRDS_ERR;
+      *end = j;
+    }
+  else
+    {
+      wsp->ws_endp = start;
+      wsp->ws_errno = WRDSE_QUOTE;
+      if (wsp->ws_flags & WRDSF_SHOWERR)
+       wordsplit_perror (wsp);
+      return _WRDS_ERR;
+    }
+  return 0;
+}
+
+static int
+scan_word (struct wordsplit *wsp, size_t start)
+{
+  size_t len = wsp->ws_len;
+  const char *command = wsp->ws_input;
+  const char *comment = wsp->ws_comment;
+  int join = 0;
+  int flags = 0;
+
+  size_t i = start;
+
+  if (i >= len)
+    {
+      wsp->ws_errno = WRDSE_EOF;
+      return _WRDS_EOF;
+    }
+
+  start = i;
+
+  if (wsp->ws_flags & WRDSF_SED_EXPR
+      && command[i] == 's' && i + 3 < len && ISPUNCT (command[i + 1]))
+    {
+      flags = _WSNF_SEXP;
+      i = skip_sed_expr (command, i, len);
+    }
+  else if (!ISDELIM (wsp, command[i]))
+    {
+      while (i < len)
+       {
+         if (comment && strchr (comment, command[i]) != NULL)
+           {
+             size_t j;
+             for (j = i + 1; j < len && command[j] != '\n'; j++)
+               ;
+             if (wordsplit_add_segm (wsp, start, i, 0))
+               return _WRDS_ERR;
+             wsp->ws_endp = j;
+             return _WRDS_OK;
+           }
+
+         if (wsp->ws_flags & WRDSF_QUOTE)
+           {
+             if (command[i] == '\\')
+               {
+                 if (++i == len)
+                   break;
+                 i++;
+                 continue;
+               }
+
+             if (((wsp->ws_flags & WRDSF_SQUOTE) && command[i] == '\'') ||
+                 ((wsp->ws_flags & WRDSF_DQUOTE) && command[i] == '"'))
+               {
+                 if (join && wsp->ws_tail)
+                   wsp->ws_tail->flags |= _WSNF_JOIN;
+                 if (wordsplit_add_segm (wsp, start, i, _WSNF_JOIN))
+                   return _WRDS_ERR;
+                 if (scan_qstring (wsp, i, &i))
+                   return _WRDS_ERR;
+                 start = i + 1;
+                 join = 1;
+               }
+           }
+
+         if (ISDELIM (wsp, command[i]))
+           break;
+         else
+           i++;
+       }
+    }
+  else if (wsp->ws_flags & WRDSF_RETURN_DELIMS)
+    {
+      i++;
+    }
+  else if (!(wsp->ws_flags & WRDSF_SQUEEZE_DELIMS))
+    flags |= _WSNF_EMPTYOK;
+
+  if (join && i > start && wsp->ws_tail)
+    wsp->ws_tail->flags |= _WSNF_JOIN;
+  if (wordsplit_add_segm (wsp, start, i, flags))
+    return _WRDS_ERR;
+  wsp->ws_endp = i;
+  if (wsp->ws_flags & WRDSF_INCREMENTAL)
+    return _WRDS_EOF;
+  return _WRDS_OK;
+}
+
+static char quote_transtab[] = "\\\\\"\"a\ab\bf\fn\nr\rt\tv\v";
+
+int
+wordsplit_c_unquote_char (int c)
+{
+  char *p;
+
+  for (p = quote_transtab; *p; p += 2)
+    {
+      if (*p == c)
+       return p[1];
+    }
+  return c;
+}
+
+int
+wordsplit_c_quote_char (int c)
+{
+  char *p;
+
+  for (p = quote_transtab + sizeof (quote_transtab) - 2;
+       p > quote_transtab; p -= 2)
+    {
+      if (*p == c)
+       return p[-1];
+    }
+  return -1;
+}
+
+#define to_num(c) \
+  (ISDIGIT(c) ? c - '0' : (ISXDIGIT(c) ? toupper(c) - 'A' + 10 : 255 ))
+
+static int
+xtonum (int *pval, const char *src, int base, int cnt)
+{
+  int i, val;
+
+  for (i = 0, val = 0; i < cnt; i++, src++)
+    {
+      int n = *(unsigned char *) src;
+      if (n > 127 || (n = to_num (n)) >= base)
+       break;
+      val = val * base + n;
+    }
+  *pval = val;
+  return i;
+}
+
+size_t
+wordsplit_c_quoted_length (const char *str, int quote_hex, int *quote)
+{
+  size_t len = 0;
+
+  *quote = 0;
+  for (; *str; str++)
+    {
+      if (strchr (" \"", *str))
+       *quote = 1;
+
+      if (*str == ' ')
+       len++;
+      else if (*str == '"')
+       len += 2;
+      else if (*str != '\t' && *str != '\\' && ISPRINT (*str))
+       len++;
+      else if (quote_hex)
+       len += 3;
+      else
+       {
+         if (wordsplit_c_quote_char (*str) != -1)
+           len += 2;
+         else
+           len += 4;
+       }
+    }
+  return len;
+}
+
+void
+wordsplit_general_unquote_copy (char *dst, const char *src, size_t n,
+                                  const char *escapable)
+{
+  int i;
+
+  for (i = 0; i < n;)
+    {
+      if (src[i] == '\\' && i < n && strchr (escapable, src[i + 1]))
+       i++;
+      *dst++ = src[i++];
+    }
+  *dst = 0;
+}
+
+void
+wordsplit_sh_unquote_copy (char *dst, const char *src, size_t n)
+{
+  int i;
+
+  for (i = 0; i < n;)
+    {
+      if (src[i] == '\\')
+       i++;
+      *dst++ = src[i++];
+    }
+  *dst = 0;
+}
+
+void
+wordsplit_c_unquote_copy (char *dst, const char *src, size_t n)
+{
+  int i = 0;
+  int c;
+
+  while (i < n)
+    {
+      if (src[i] == '\\')
+       {
+         ++i;
+         if (src[i] == 'x' || src[i] == 'X')
+           {
+             if (n - i < 2)
+               {
+                 *dst++ = '\\';
+                 *dst++ = src[i++];
+               }
+             else
+               {
+                 int off = xtonum (&c, src + i + 1,
+                                   16, 2);
+                 if (off == 0)
+                   {
+                     *dst++ = '\\';
+                     *dst++ = src[i++];
+                   }
+                 else
+                   {
+                     *dst++ = c;
+                     i += off + 1;
+                   }
+               }
+           }
+         else if ((unsigned char) src[i] < 128 && ISDIGIT (src[i]))
+           {
+             if (n - i < 1)
+               {
+                 *dst++ = '\\';
+                 *dst++ = src[i++];
+               }
+             else
+               {
+                 int off = xtonum (&c, src + i, 8, 3);
+                 if (off == 0)
+                   {
+                     *dst++ = '\\';
+                     *dst++ = src[i++];
+                   }
+                 else
+                   {
+                     *dst++ = c;
+                     i += off;
+                   }
+               }
+           }
+         else
+           *dst++ = wordsplit_c_unquote_char (src[i++]);
+       }
+      else
+       *dst++ = src[i++];
+    }
+  *dst = 0;
+}
+
+void
+wordsplit_c_quote_copy (char *dst, const char *src, int quote_hex)
+{
+  for (; *src; src++)
+    {
+      if (*src == '"')
+       {
+         *dst++ = '\\';
+         *dst++ = *src;
+       }
+      else if (*src != '\t' && *src != '\\' && ISPRINT (*src))
+       *dst++ = *src;
+      else
+       {
+         char tmp[4];
+
+         if (quote_hex)
+           {
+             snprintf (tmp, sizeof tmp, "%%%02X", *(unsigned char *) src);
+             memcpy (dst, tmp, 3);
+             dst += 3;
+           }
+         else
+           {
+             int c = wordsplit_c_quote_char (*src);
+             *dst++ = '\\';
+             if (c != -1)
+               *dst++ = c;
+             else
+               {
+                 snprintf (tmp, sizeof tmp, "%03o", *(unsigned char *) src);
+                 memcpy (dst, tmp, 3);
+                 dst += 3;
+               }
+           }
+       }
+    }
+}
+
+static int
+wordsplit_process_list (struct wordsplit *wsp, size_t start)
+{
+  if (wsp->ws_flags & WRDSF_NOSPLIT)
+    {
+      /* Treat entire input as a quoted argument */
+      if (wordsplit_add_segm (wsp, start, wsp->ws_len, _WSNF_QUOTE))
+       return wsp->ws_errno;
+    }
+  else
+    {
+      int rc;
+
+      while ((rc = scan_word (wsp, start)) == _WRDS_OK)
+       start = skip_delim (wsp);
+      /* Make sure tail element is not joinable */
+      if (wsp->ws_tail)
+       wsp->ws_tail->flags &= ~_WSNF_JOIN;
+      if (rc == _WRDS_ERR)
+       return wsp->ws_errno;
+    }
+
+  if (wsp->ws_flags & WRDSF_SHOWDBG)
+    {
+      wsp->ws_debug ("Initial list:");
+      wordsplit_dump_nodes (wsp);
+    }
+
+  if (wsp->ws_flags & WRDSF_WS)
+    {
+      /* Trim leading and trailing whitespace */
+      wordsplit_trimws (wsp);
+      if (wsp->ws_flags & WRDSF_SHOWDBG)
+       {
+         wsp->ws_debug ("After WS trimming:");
+         wordsplit_dump_nodes (wsp);
+       }
+    }
+
+  /* Expand variables (FIXME: & commands) */
+  if (!(wsp->ws_flags & WRDSF_NOVAR))
+    {
+      if (wordsplit_varexp (wsp))
+       {
+         wordsplit_free_nodes (wsp);
+         return wsp->ws_errno;
+       }
+      if (wsp->ws_flags & WRDSF_SHOWDBG)
+       {
+         wsp->ws_debug ("Expanded list:");
+         wordsplit_dump_nodes (wsp);
+       }
+    }
+
+  do
+    {
+      if (wsnode_quoteremoval (wsp))
+       break;
+      if (wsp->ws_flags & WRDSF_SHOWDBG)
+       {
+         wsp->ws_debug ("After quote removal:");
+         wordsplit_dump_nodes (wsp);
+       }
+
+      if (wsnode_coalesce (wsp))
+       break;
+
+      if (wsp->ws_flags & WRDSF_SHOWDBG)
+       {
+         wsp->ws_debug ("Coalesced list:");
+         wordsplit_dump_nodes (wsp);
+       }
+    }
+  while (0);
+  return wsp->ws_errno;
+}
+
+int
+wordsplit_len (const char *command, size_t length, struct wordsplit *wsp,
+               int flags)
+{
+  int rc;
+  size_t start;
+  const char *cmdptr;
+  size_t cmdlen;
+
+  if (!command)
+    {
+      if (!(flags & WRDSF_INCREMENTAL))
+       return EINVAL;
+
+      start = skip_delim (wsp);
+      if (wsp->ws_endp == wsp->ws_len)
+       {
+         wsp->ws_errno = WRDSE_NOINPUT;
+         if (wsp->ws_flags & WRDSF_SHOWERR)
+           wordsplit_perror (wsp);
+         return wsp->ws_errno;
+       }
+
+      cmdptr = wsp->ws_input + wsp->ws_endp;
+      cmdlen = wsp->ws_len - wsp->ws_endp;
+      wsp->ws_flags |= WRDSF_REUSE;
+      wordsplit_init0 (wsp);
+    }
+  else
+    {
+      cmdptr = command;
+      cmdlen = length;
+      start = 0;
+      rc = wordsplit_init (wsp, cmdptr, cmdlen, flags);
+      if (rc)
+       return rc;
+    }
+
+  if (wsp->ws_flags & WRDSF_SHOWDBG)
+    wsp->ws_debug ("Input:%.*s;", (int) cmdlen, cmdptr);
+
+  rc = wordsplit_process_list (wsp, start);
+  if (rc == 0 && (flags & WRDSF_INCREMENTAL))
+    {
+      while (!wsp->ws_head && wsp->ws_endp < wsp->ws_len)
+       {
+         start = skip_delim (wsp);
+         if (wsp->ws_flags & WRDSF_SHOWDBG)
+           {
+             cmdptr = wsp->ws_input + wsp->ws_endp;
+             cmdlen = wsp->ws_len - wsp->ws_endp;
+             wsp->ws_debug ("Restart:%.*s;", (int) cmdlen, cmdptr);
+           }
+         rc = wordsplit_process_list (wsp, start);
+         if (rc)
+           break;
+       }
+    }
+  if (rc)
+    {
+      wordsplit_free_nodes (wsp);
+      return rc;
+    }
+  wordsplit_finish (wsp);
+  wordsplit_free_nodes (wsp);
+  return wsp->ws_errno;
+}
+
+int
+wordsplit (const char *command, struct wordsplit *ws, int flags)
+{
+  return wordsplit_len (command, command ? strlen (command) : 0, ws,
+                          flags);
+}
+
+void
+wordsplit_free_words (struct wordsplit *ws)
+{
+  size_t i;
+
+  for (i = 0; i < ws->ws_wordc; i++)
+    {
+      char *p = ws->ws_wordv[ws->ws_offs + i];
+      if (p)
+       {
+         free (p);
+         ws->ws_wordv[ws->ws_offs + i] = NULL;
+       }
+    }
+  ws->ws_wordc = 0;
+}
+
+void
+wordsplit_free (struct wordsplit *ws)
+{
+  wordsplit_free_words (ws);
+  free (ws->ws_wordv);
+  ws->ws_wordv = NULL;
+}
+
+void
+wordsplit_perror (struct wordsplit *wsp)
+{
+  switch (wsp->ws_errno)
+    {
+    case WRDSE_EOF:
+      wsp->ws_error (_("no error"));
+      break;
+
+    case WRDSE_QUOTE:
+      wsp->ws_error (_("missing closing %c (start near #%lu)"),
+                    wsp->ws_input[wsp->ws_endp],
+                    (unsigned long) wsp->ws_endp);
+      break;
+
+    case WRDSE_NOSPACE:
+      wsp->ws_error (_("memory exhausted"));
+      break;
+
+    case WRDSE_NOSUPP:
+      wsp->ws_error (_("command substitution is not yet supported"));
+
+    case WRDSE_USAGE:
+      wsp->ws_error (_("invalid wordsplit usage"));
+      break;
+
+    case WRDSE_CBRACE:
+      wsp->ws_error (_("unbalanced curly brace"));
+      break;
+
+    case WRDSE_UNDEF:
+      wsp->ws_error (_("undefined variable"));
+      break;
+
+    case WRDSE_NOINPUT:
+      wsp->ws_error (_("input exhausted"));
+      break;
+
+    default:
+      wsp->ws_error (_("unknown error"));
+    }
+}
+
+const char *_wordsplit_errstr[] = {
+  N_("no error"),
+  N_("missing closing quote"),
+  N_("memory exhausted"),
+  N_("command substitution is not yet supported"),
+  N_("invalid wordsplit usage"),
+  N_("unbalanced curly brace"),
+  N_("undefined variable"),
+  N_("input exhausted")
+};
+int _wordsplit_nerrs =
+  sizeof (_wordsplit_errstr) / sizeof (_wordsplit_errstr[0]);
+
+const char *
+wordsplit_strerror (struct wordsplit *ws)
+{
+  if (ws->ws_errno < _wordsplit_nerrs)
+    return _wordsplit_errstr[ws->ws_errno];
+  return N_("unknown error");
+}
diff --git a/lib/wordsplit.h b/lib/wordsplit.h
new file mode 100644 (file)
index 0000000..b48e3cd
--- /dev/null
@@ -0,0 +1,162 @@
+/* wordsplit - a word splitter
+   Copyright (C) 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/>.
+
+   Written by Sergey Poznyakoff
+*/
+
+#ifndef __WORDSPLIT_H
+#define __WORDSPLIT_H
+
+#include <stddef.h>
+
+struct wordsplit
+{
+  size_t ws_wordc;
+  char **ws_wordv;
+  size_t ws_offs;
+  size_t ws_wordn;
+  int ws_flags;
+  const char *ws_delim;
+  const char *ws_comment;
+  const char *ws_escape;
+  void (*ws_alloc_die) (struct wordsplit * wsp);
+  void (*ws_error) (const char *, ...)
+                   __attribute__ ((__format__ (__printf__, 1, 2)));
+  void (*ws_debug) (const char *, ...)
+                   __attribute__ ((__format__ (__printf__, 1, 2)));
+
+  const char **ws_env;
+  const char *(*ws_getvar) (const char *, size_t, void *);
+  void *ws_closure;
+
+  const char *ws_input;
+  size_t ws_len;
+  size_t ws_endp;
+  int ws_errno;
+  struct wordsplit_node *ws_head, *ws_tail;
+};
+
+/* Wordsplit flags.  Only 2 bits of a 32-bit word remain unused.
+   It is getting crowded... */
+/* Append the words found to the array resulting from a previous
+   call. */
+#define WRDSF_APPEND            0x00000001
+/* Insert we_offs initial NULLs in the array ws_wordv.
+   (These are not counted in the returned ws_wordc.) */
+#define WRDSF_DOOFFS            0x00000002
+/* Don't do command substitution. Reserved for future use. */
+#define WRDSF_NOCMD             0x00000004
+/* The parameter p resulted from a previous call to
+   wordsplit(), and wordsplit_free() was not called. Reuse the
+   allocated storage. */
+#define WRDSF_REUSE             0x00000008
+/* Print errors */
+#define WRDSF_SHOWERR           0x00000010
+/* Consider it an error if an undefined shell variable
+   is expanded. */
+#define WRDSF_UNDEF             0x00000020
+
+/* Don't do variable expansion. */
+#define WRDSF_NOVAR             0x00000040
+/* Abort on ENOMEM error */
+#define WRDSF_ENOMEMABRT        0x00000080
+/* Trim off any leading and trailind whitespace */
+#define WRDSF_WS                0x00000100
+/* Handle single quotes */
+#define WRDSF_SQUOTE            0x00000200
+/* Handle double quotes */
+#define WRDSF_DQUOTE            0x00000400
+/* Handle quotes and escape directives */
+#define WRDSF_QUOTE             (WRDSF_SQUOTE|WRDSF_DQUOTE)
+/* Replace each input sequence of repeated delimiters with a single
+   delimiter */
+#define WRDSF_SQUEEZE_DELIMS    0x00000800
+/* Return delimiters */
+#define WRDSF_RETURN_DELIMS     0x00001000
+/* Treat sed expressions as words */
+#define WRDSF_SED_EXPR          0x00002000
+/* ws_delim field is initialized */
+#define WRDSF_DELIM             0x00004000
+/* ws_comment field is initialized */
+#define WRDSF_COMMENT           0x00008000
+/* ws_alloc_die field is initialized */
+#define WRDSF_ALLOC_DIE         0x00010000
+/* ws_error field is initialized */
+#define WRDSF_ERROR             0x00020000
+/* ws_debug field is initialized */
+#define WRDSF_DEBUG             0x00040000
+/* ws_env field is initialized */
+#define WRDSF_ENV               0x00080000
+/* ws_getvar field is initialized */
+#define WRDSF_GETVAR            0x00100000
+/* enable debugging */
+#define WRDSF_SHOWDBG           0x00200000
+/* Don't split input into words.  Useful for side effects. */
+#define WRDSF_NOSPLIT           0x00400000
+/* Keep undefined variables in place, instead of expanding them to
+   empty string */
+#define WRDSF_KEEPUNDEF         0x00800000
+/* Warn about undefined variables */
+#define WRDSF_WARNUNDEF         0x01000000
+/* Handle C escapes */
+#define WRDSF_CESCAPES          0x02000000
+
+/* ws_closure is set */
+#define WRDSF_CLOSURE           0x04000000
+/* ws_env is a Key/Value environment, i.e. the value of a variable is
+   stored in the element that follows its name. */
+#define WRDSF_ENV_KV            0x08000000
+
+/* ws_escape is set */
+#define WRDSF_ESCAPE            0x10000000
+
+/* Incremental mode */
+#define WRDSF_INCREMENTAL       0x20000000
+
+#define WRDSF_DEFFLAGS        \
+  (WRDSF_NOVAR | WRDSF_NOCMD | \
+   WRDSF_QUOTE | WRDSF_SQUEEZE_DELIMS | WRDSF_CESCAPES)
+
+#define WRDSE_EOF        0
+#define WRDSE_QUOTE      1
+#define WRDSE_NOSPACE    2
+#define WRDSE_NOSUPP     3
+#define WRDSE_USAGE      4
+#define WRDSE_CBRACE     5
+#define WRDSE_UNDEF      6
+#define WRDSE_NOINPUT    7
+
+int wordsplit (const char *s, struct wordsplit *p, int flags);
+int wordsplit_len (const char *s, size_t len,
+                     struct wordsplit *p, int flags);
+void wordsplit_free (struct wordsplit *p);
+void wordsplit_free_words (struct wordsplit *ws);
+
+int wordsplit_c_unquote_char (int c);
+int wordsplit_c_quote_char (int c);
+size_t wordsplit_c_quoted_length (const char *str, int quote_hex,
+                                 int *quote);
+void wordsplit_general_unquote_copy (char *dst, const char *src, size_t n,
+                                    const char *escapable);
+void wordsplit_sh_unquote_copy (char *dst, const char *src, size_t n);
+void wordsplit_c_unquote_copy (char *dst, const char *src, size_t n);
+void wordsplit_c_quote_copy (char *dst, const char *src, int quote_hex);
+
+void wordsplit_perror (struct wordsplit *ws);
+const char *wordsplit_strerror (struct wordsplit *ws);
+
+
+#endif
diff --git a/lib/xattr-at.c b/lib/xattr-at.c
new file mode 100644 (file)
index 0000000..3703e1c
--- /dev/null
@@ -0,0 +1,110 @@
+/* openat-style fd-relative functions for operating with extended file
+   attributes.
+
+   Copyright 2012-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>
+
+#include "xattr-at.h"
+#include "openat.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+
+#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+#include "save-cwd.h"
+
+#include "openat-priv.h"
+
+/* setxattrat */
+#define AT_FUNC_NAME setxattrat
+#define AT_FUNC_F1 setxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , const char *name, const void *value \
+                                        , size_t size, int flags
+#define AT_FUNC_POST_FILE_ARGS          , name, value, size, flags
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* lsetxattrat */
+#define AT_FUNC_NAME lsetxattrat
+#define AT_FUNC_F1 lsetxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , const char *name, const void *value \
+                                        , size_t size, int flags
+#define AT_FUNC_POST_FILE_ARGS          , name, value, size, flags
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* getxattrat */
+#define AT_FUNC_NAME getxattrat
+#define AT_FUNC_RESULT ssize_t
+#define AT_FUNC_F1 getxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , const char *name, void *value \
+                                        , size_t size
+#define AT_FUNC_POST_FILE_ARGS          , name, value, size
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_RESULT
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* lgetxattrat */
+#define AT_FUNC_NAME lgetxattrat
+#define AT_FUNC_RESULT ssize_t
+#define AT_FUNC_F1 lgetxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , const char *name, void *value \
+                                        , size_t size
+#define AT_FUNC_POST_FILE_ARGS          , name, value, size
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_RESULT
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* listxattrat */
+#define AT_FUNC_NAME listxattrat
+#define AT_FUNC_RESULT ssize_t
+#define AT_FUNC_F1 listxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , char *list , size_t size
+#define AT_FUNC_POST_FILE_ARGS          , list , size
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_RESULT
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* llistxattrat */
+#define AT_FUNC_NAME llistxattrat
+#define AT_FUNC_RESULT ssize_t
+#define AT_FUNC_F1 llistxattr
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , char *list , size_t size
+#define AT_FUNC_POST_FILE_ARGS          , list , size
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_RESULT
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
diff --git a/lib/xattr-at.h b/lib/xattr-at.h
new file mode 100644 (file)
index 0000000..2981771
--- /dev/null
@@ -0,0 +1,66 @@
+/* Prototypes for openat-style fd-relative functions for operating with
+   extended file attributes.
+
+   Copyright 2012-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/>.  */
+
+#ifndef XATTRS_AT_H
+#define XATTRS_AT_H
+
+#include <sys/types.h>
+#include <attr/xattr.h>
+
+/* These are the dir-fd-relative variants of the functions without the
+   "at" suffix.  For example, setxattrat (AT_FDCWD, path, name, value, size,
+   flags &c) is usually equivalent to setxattr (file, name, value, size,
+   flags).  For more info use the setxattr(2), getxattr(2) or listxattr(2)
+   manpages. */
+
+/* dir-fd-relative setxattr.  Operation sets the VALUE of the extended
+   attribute identified by NAME and associated with the given PATH in the
+   filesystem relatively to directory identified by DIR_FD.  See the
+   setxattr(2) manpage for the description of all parameters. */
+int setxattrat (int dir_fd, const char *path, const char *name,
+                const void *value, size_t size, int flags);
+
+/* dir-fd-relative lsetxattr.  This function is just like setxattrat,
+   except when DIR_FD and FILE specify a symlink:  lsetxattrat operates on the
+   symlink, while the setxattrat operates on the referent of the symlink.  */
+int lsetxattrat (int dir_fd, const char *path, const char *name,
+                 const void *value, size_t size, int flags);
+
+/* dir-fd-relative getxattr.  Operation gets the VALUE of the extended
+   attribute idenfified by NAME and associated with the given PATH in the
+   filesystem relatively to directory identified by DIR_FD.  For more info
+   about all parameters see the getxattr(2) manpage. */
+ssize_t getxattrat (int dir_fd, const char *path, const char *name,
+                    void *value, size_t size);
+
+/* dir-fd-relative lgetxattr.  This function is just like getxattrat,
+   except when DIR_FD and FILE specify a symlink:  lgetxattrat operates on the
+   symlink, while the getxattrat operates on the referent of the symlink.  */
+ssize_t lgetxattrat (int dir_fd, const char *path, const char *name,
+                     void *value, size_t size);
+
+/* dir-fd-relative listxattr.  Obtain the list of extended attrubtes names.  For
+   more info see the listxattr(2) manpage. */
+ssize_t listxattrat (int dir_fd, const char *path, char *list, size_t size);
+
+/* dir-fd-relative llistxattr.  This function is just like listxattrat,
+   except when DIR_FD and FILE specify a symlink:  llistxattr operates on the
+   symlink, while the listxattrat operates on the referent of the symlink.  */
+ssize_t llistxattrat (int dir_fd, const char *path, char *list, size_t size);
+
+#endif /* XATTRS_AT_H */
index 7feed466940b70550aa3e9a8eb8fa57342b99964..d4ad759fd391ac683f82d7970d1e05eefeb7dc3a 100644 (file)
@@ -1,5 +1,5 @@
 # 00gnulib.m4 serial 2
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
diff --git a/m4/acl.m4 b/m4/acl.m4
new file mode 100644 (file)
index 0000000..5b1fb65
--- /dev/null
+++ b/m4/acl.m4
@@ -0,0 +1,164 @@
+# acl.m4 - check for access control list (ACL) primitives
+# serial 15
+
+# Copyright (C) 2002, 2004-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.
+
+# Written by Paul Eggert and Jim Meyering.
+
+AC_DEFUN([gl_FUNC_ACL],
+[
+  AC_ARG_ENABLE([acl],
+    AS_HELP_STRING([--disable-acl], [do not support ACLs]),
+    , [enable_acl=auto])
+
+  LIB_ACL=
+  use_acl=0
+  if test "x$enable_acl" != "xno"; then
+    dnl On all platforms, the ACL related API is declared in <sys/acl.h>.
+    AC_CHECK_HEADERS([sys/acl.h])
+    if test $ac_cv_header_sys_acl_h = yes; then
+      ac_save_LIBS=$LIBS
+
+      dnl Test for POSIX-draft-like API (Linux, FreeBSD, Mac OS X, IRIX, Tru64).
+      dnl -lacl is needed on Linux, -lpacl is needed on OSF/1.
+      if test $use_acl = 0; then
+        AC_SEARCH_LIBS([acl_get_file], [acl pacl],
+          [if test "$ac_cv_search_acl_get_file" != "none required"; then
+             LIB_ACL=$ac_cv_search_acl_get_file
+           fi
+           AC_CHECK_FUNCS(
+             [acl_get_file acl_get_fd acl_set_file acl_set_fd \
+              acl_free acl_from_mode acl_from_text \
+              acl_delete_def_file acl_extended_file \
+              acl_delete_fd_np acl_delete_file_np \
+              acl_copy_ext_native acl_create_entry_np \
+              acl_to_short_text acl_free_text])
+           # If the acl_get_file bug is detected, don't enable the ACL support.
+           gl_ACL_GET_FILE([use_acl=1], [])
+           if test $use_acl = 1; then
+             dnl On Linux, additional API is declared in <acl/libacl.h>.
+             AC_CHECK_HEADERS([acl/libacl.h])
+             AC_REPLACE_FUNCS([acl_entries])
+             AC_CACHE_CHECK([for ACL_FIRST_ENTRY],
+               [gl_cv_acl_ACL_FIRST_ENTRY],
+               [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[#include <sys/types.h>
+#include <sys/acl.h>
+int type = ACL_FIRST_ENTRY;]])],
+                  [gl_cv_acl_ACL_FIRST_ENTRY=yes],
+                  [gl_cv_acl_ACL_FIRST_ENTRY=no])])
+             if test $gl_cv_acl_ACL_FIRST_ENTRY = yes; then
+               AC_DEFINE([HAVE_ACL_FIRST_ENTRY], [1],
+                 [Define to 1 if the constant ACL_FIRST_ENTRY exists.])
+             fi
+             dnl On Mac OS X, other types of ACLs are supported.
+             AC_CACHE_CHECK([for ACL_TYPE_EXTENDED],
+               [gl_cv_acl_ACL_TYPE_EXTENDED],
+               [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[#include <sys/types.h>
+#include <sys/acl.h>
+int type = ACL_TYPE_EXTENDED;]])],
+                  [gl_cv_acl_ACL_TYPE_EXTENDED=yes],
+                  [gl_cv_acl_ACL_TYPE_EXTENDED=no])])
+             if test $gl_cv_acl_ACL_TYPE_EXTENDED = yes; then
+               AC_DEFINE([HAVE_ACL_TYPE_EXTENDED], [1],
+                 [Define to 1 if the ACL type ACL_TYPE_EXTENDED exists.])
+             fi
+           else
+             LIB_ACL=
+           fi
+          ])
+      fi
+
+      dnl Test for Solaris API (Solaris, Cygwin).
+      if test $use_acl = 0; then
+        AC_CHECK_FUNCS([facl])
+        if test $ac_cv_func_facl = yes; then
+          AC_SEARCH_LIBS([acl_trivial], [sec],
+            [if test "$ac_cv_search_acl_trivial" != "none required"; then
+               LIB_ACL=$ac_cv_search_acl_trivial
+             fi
+            ])
+          AC_CHECK_FUNCS([acl_trivial])
+          use_acl=1
+        fi
+      fi
+
+      dnl Test for HP-UX API.
+      if test $use_acl = 0; then
+        AC_CHECK_FUNCS([getacl])
+        if test $ac_cv_func_getacl = yes; then
+          use_acl=1
+        fi
+        dnl Test for HP-UX 11.11 API.
+        AC_CHECK_HEADERS([aclv.h], [], [], [#include <sys/types.h>])
+      fi
+
+      dnl Test for AIX API (AIX 5.3 or newer).
+      if test $use_acl = 0; then
+        AC_CHECK_FUNCS([aclx_get])
+        if test $ac_cv_func_aclx_get = yes; then
+          use_acl=1
+        fi
+      fi
+
+      dnl Test for older AIX API.
+      if test $use_acl = 0 || test "$ac_cv_func_aclx_get" = yes; then
+        AC_CHECK_FUNCS([statacl])
+        if test $ac_cv_func_statacl = yes; then
+          use_acl=1
+        fi
+      fi
+
+      dnl Test for NonStop Kernel API.
+      if test $use_acl = 0; then
+        AC_CHECK_FUNCS([aclsort])
+        if test $ac_cv_func_aclsort = yes; then
+          use_acl=1
+        fi
+      fi
+
+      LIBS=$ac_save_LIBS
+    fi
+    if test "x$enable_acl$use_acl" = "xyes0"; then
+      AC_MSG_ERROR([ACLs enabled but support not detected])
+    elif test "x$enable_acl$use_acl" = "xauto0"; then
+      AC_MSG_WARN([libacl development library was not found or not usable.])
+      AC_MSG_WARN([AC_PACKAGE_NAME will be built without ACL support.])
+    fi
+  fi
+  AC_SUBST([LIB_ACL])
+  AC_DEFINE_UNQUOTED([USE_ACL], [$use_acl],
+    [Define to nonzero if you want access control list support.])
+  USE_ACL=$use_acl
+  AC_SUBST([USE_ACL])
+])
+
+# gl_ACL_GET_FILE(IF-WORKS, IF-NOT)
+# -------------------------------------
+# If 'acl_get_file' works (does not have a particular bug),
+# run IF-WORKS, otherwise, IF-NOT.
+# This tests for a Darwin 8.7.0 bug, whereby acl_get_file returns NULL,
+# but sets errno = ENOENT for an existing file or directory.
+AC_DEFUN([gl_ACL_GET_FILE],
+[
+  AC_CACHE_CHECK([for working acl_get_file], [gl_cv_func_working_acl_get_file],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <sys/types.h>
+           #include <sys/acl.h>
+           #include <errno.h>
+          ]],
+          [[if (!acl_get_file (".", ACL_TYPE_ACCESS) && errno == ENOENT)
+              return 1;
+            return 0;
+          ]])],
+       [gl_cv_func_working_acl_get_file=yes],
+       [gl_cv_func_working_acl_get_file=no],
+       [gl_cv_func_working_acl_get_file=cross-compiling])])
+
+  AS_IF([test $gl_cv_func_working_acl_get_file = yes], [$1], [$2])
+])
index e2e8a05a6eaa7a7bd06e698d74dd8b7fa76995ef..270abd0cd94af42ea8da413f116f687ac0213f38 100644 (file)
@@ -1,5 +1,5 @@
-# alloca.m4 serial 10
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation,
+# alloca.m4 serial 14
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 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,
@@ -36,8 +36,86 @@ AC_DEFUN([gl_FUNC_ALLOCA],
     ALLOCA_H=alloca.h
   fi
   AC_SUBST([ALLOCA_H])
+  AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
 ])
 
 # Prerequisites of lib/alloca.c.
 # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
 AC_DEFUN([gl_PREREQ_ALLOCA], [:])
+
+# This works around a bug in autoconf <= 2.68.
+# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
+
+m4_version_prereq([2.69], [] ,[
+
+# This is taken from the following Autoconf patch:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
+
+# _AC_LIBOBJ_ALLOCA
+# -----------------
+# Set up the LIBOBJ replacement of 'alloca'.  Well, not exactly
+# AC_LIBOBJ since we actually set the output variable 'ALLOCA'.
+# Nevertheless, for Automake, AC_LIBSOURCES it.
+m4_define([_AC_LIBOBJ_ALLOCA],
+[# The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+AC_LIBSOURCES(alloca.c)
+AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl
+AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.])
+
+AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray,
+[AC_EGREP_CPP(webecray,
+[#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    AC_CHECK_FUNC($ac_func,
+                  [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
+                                      [Define to one of '_getb67', 'GETB67',
+                                       'getb67' for Cray-2 and Cray-YMP
+                                       systems. This function is required for
+                                       'alloca.c' support on those systems.])
+    break])
+  done
+fi
+
+AC_CACHE_CHECK([stack direction for C alloca],
+               [ac_cv_c_stack_direction],
+[AC_RUN_IFELSE([AC_LANG_SOURCE(
+[AC_INCLUDES_DEFAULT
+int
+find_stack_direction (int *addr, int depth)
+{
+  int dir, dummy = 0;
+  if (! addr)
+    addr = &dummy;
+  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+  return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+  return find_stack_direction (0, argc + !argv + 20) < 0;
+}])],
+               [ac_cv_c_stack_direction=1],
+               [ac_cv_c_stack_direction=-1],
+               [ac_cv_c_stack_direction=0])])
+AH_VERBATIM([STACK_DIRECTION],
+[/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at runtime.
+        STACK_DIRECTION > 0 => grows toward higher addresses
+        STACK_DIRECTION < 0 => grows toward lower addresses
+        STACK_DIRECTION = 0 => direction of growth unknown */
+@%:@undef STACK_DIRECTION])dnl
+AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
+])# _AC_LIBOBJ_ALLOCA
+])
index c274dd1095b7eeae7bf394ff2d0bf93707ab07ea..4445d8e6c31196728043f16e857a65ea0656ab9f 100644 (file)
@@ -1,5 +1,5 @@
-# argp.m4 serial 11
-dnl Copyright (C) 2003-2011 Free Software Foundation, Inc.
+# argp.m4 serial 14
+dnl Copyright (C) 2003-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.
@@ -9,23 +9,15 @@ AC_DEFUN([gl_ARGP],
   AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt
-  dnl always.
-  gl_REPLACE_GETOPT
-  dnl Note: gl_REPLACE_GETOPT does AC_LIBOBJ([getopt]), AC_LIBOBJ([getopt1]).
 
-  AC_CHECK_DECL([program_invocation_name],
-                [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_NAME], [1],
-                           [Define if program_invocation_name is declared])],
-                [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1],
-                           [Define to 1 to add extern declaration of program_invocation_name to argp.h])],
-                [#include <errno.h>])
-  AC_CHECK_DECL([program_invocation_short_name],
-                [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME], [1],
-                           [Define if program_invocation_short_name is declared])],
-                [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1],
-                           [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
-                [#include <errno.h>])
+  AC_CHECK_DECLS([program_invocation_name], [],
+                 [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1],
+                            [Define to 1 to add extern declaration of program_invocation_name to argp.h])],
+                 [[#include <errno.h>]])
+  AC_CHECK_DECLS([program_invocation_short_name], [],
+                 [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1],
+                            [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
+                 [[#include <errno.h>]])
 
   # Check if program_invocation_name and program_invocation_short_name
   # are defined elsewhere. It is improbable that only one of them will
@@ -63,3 +55,7 @@ AC_DEFUN([gl_ARGP],
   AC_CHECK_FUNCS_ONCE([flockfile funlockfile])
   AC_CHECK_HEADERS_ONCE([features.h linewrap.h])
 ])
+
+dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt
+dnl always.
+AC_DEFUN([gl_REPLACE_GETOPT_ALWAYS], [])
index ac9559ebc4ac29218e0c796e279f161f7941b92c..019665a6aac09ad54651381ccc65a8e8c55a71c5 100644 (file)
@@ -1,14 +1,12 @@
-# backupfile.m4 serial 13
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+# backupfile.m4 serial 14
+dnl Copyright (C) 2002-2006, 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 Prerequisites of lib/backupfile.c.
 AC_DEFUN([gl_BACKUPFILE],
 [
-  AC_LIBOBJ([backupfile])
-
-  dnl Prerequisites of lib/backupfile.c.
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
   AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
   AC_CHECK_FUNCS_ONCE([pathconf])
index 87c090ed8ab0791da1bcaf43618853edb2b62ffd..3b1297ab62d06b07be757bb030f008e33e200856 100644 (file)
@@ -1,6 +1,6 @@
-# serial 6
+# serial 7
 
-# Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2005, 2009-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.
@@ -13,12 +13,12 @@ dnl
 dnl Declaring YACC & YFLAGS precious will not be necessary after GNULIB
 dnl requires an Autoconf greater than 2.59c, but it will probably still be
 dnl useful to override the description of YACC in the --help output, re
-dnl parse-datetime.y assuming `bison -y'.
+dnl parse-datetime.y assuming 'bison -y'.
   AC_ARG_VAR([YACC],
-[The `Yet Another C Compiler' implementation to use.  Defaults to `bison -y'.
-Values other than `bison -y' will most likely break on most systems.])dnl
+[The "Yet Another C Compiler" implementation to use.  Defaults to 'bison -y'.
+Values other than 'bison -y' will most likely break on most systems.])dnl
   AC_ARG_VAR([YFLAGS],
 [YFLAGS contains the list arguments that will be passed by default to Bison.
 This script will default YFLAGS to the empty string to avoid a default value of
-`-d' given by some make applications.])dnl
+'-d' given by some make applications.])dnl
 ])
index 603298f43f86fb6ce464b0a0d57b6f44cb2490b3..978a06e9a388b5c5327e5295e133b0a860974df3 100644 (file)
@@ -1,5 +1,5 @@
-# btowc.m4 serial 8
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# btowc.m4 serial 10
+dnl Copyright (C) 2008-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.
@@ -108,11 +108,6 @@ int main ()
       *) REPLACE_BTOWC=1 ;;
     esac
   fi
-  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([btowc])
-    gl_PREREQ_BTOWC
-  fi
 ])
 
 # Prerequisites of lib/btowc.c.
index dcc6039ed83b981d36425fbbee091f0b8e8706ab..cef31244140604aa238f20d3488b5e8a1c52b46a 100644 (file)
@@ -1,6 +1,6 @@
-# canonicalize.m4 serial 17
+# canonicalize.m4 serial 26
 
-dnl Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2007, 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,
@@ -10,40 +10,49 @@ dnl with or without modifications, as long as this notice is preserved.
 # not provide or fix realpath.
 AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE],
 [
-  AC_LIBOBJ([canonicalize])
-
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
   AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
   AC_REQUIRE([gl_FUNC_REALPATH_WORKS])
   if test $ac_cv_func_canonicalize_file_name = no; then
     HAVE_CANONICALIZE_FILE_NAME=0
-  elif test "$gl_cv_func_realpath_works" != yes; then
-    REPLACE_CANONICALIZE_FILE_NAME=1
+  else
+    case "$gl_cv_func_realpath_works" in
+      *yes) ;;
+      *)    REPLACE_CANONICALIZE_FILE_NAME=1 ;;
+    esac
   fi
 ])
 
 # Provides canonicalize_file_name and realpath.
 AC_DEFUN([gl_CANONICALIZE_LGPL],
 [
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
   if test $ac_cv_func_canonicalize_file_name = no; then
     HAVE_CANONICALIZE_FILE_NAME=0
-    AC_LIBOBJ([canonicalize-lgpl])
     if test $ac_cv_func_realpath = no; then
       HAVE_REALPATH=0
-    elif test "$gl_cv_func_realpath_works" != yes; then
-      REPLACE_REALPATH=1
+    else
+      case "$gl_cv_func_realpath_works" in
+       *yes) ;;
+       *)    REPLACE_REALPATH=1 ;;
+      esac
     fi
-  elif test "$gl_cv_func_realpath_works" != yes; then
-    AC_LIBOBJ([canonicalize-lgpl])
-    REPLACE_REALPATH=1
-    REPLACE_CANONICALIZE_FILE_NAME=1
+  else
+    case "$gl_cv_func_realpath_works" in
+      *yes)
+        ;;
+      *)
+        REPLACE_CANONICALIZE_FILE_NAME=1
+        REPLACE_REALPATH=1
+        ;;
+    esac
   fi
 ])
 
 # Like gl_CANONICALIZE_LGPL, except prepare for separate compilation
-# (no AC_LIBOBJ).
+# (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ).
 AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE],
 [
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@@ -59,11 +68,15 @@ AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE],
 AC_DEFUN([gl_FUNC_REALPATH_WORKS],
 [
   AC_CHECK_FUNCS_ONCE([realpath])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [
     touch conftest.a
+    mkdir conftest.d
     AC_RUN_IFELSE([
       AC_LANG_PROGRAM([[
+        ]GL_NOCRASH[
         #include <stdlib.h>
+        #include <string.h>
       ]], [[
         int result = 0;
         {
@@ -81,14 +94,31 @@ AC_DEFUN([gl_FUNC_REALPATH_WORKS],
           if (name != NULL)
             result |= 4;
         }
+        {
+          char *name1 = realpath (".", NULL);
+          char *name2 = realpath ("conftest.d//./..", NULL);
+          if (strcmp (name1, name2) != 0)
+            result |= 8;
+        }
         return result;
       ]])
-    ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no],
-       [gl_cv_func_realpath_works="guessing no"])
+     ],
+     [gl_cv_func_realpath_works=yes],
+     [gl_cv_func_realpath_works=no],
+     [case "$host_os" in
+                       # Guess yes on glibc systems.
+        *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;;
+                       # If we don't know, assume the worst.
+        *)             gl_cv_func_realpath_works="guessing no" ;;
+      esac
+     ])
+    rm -rf conftest.a conftest.d
   ])
-  if test "$gl_cv_func_realpath_works" = yes; then
-    AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath()
-      can malloc memory, always gives an absolute path, and handles
-      trailing slash correctly.])
-  fi
+  case "$gl_cv_func_realpath_works" in
+    *yes)
+      AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath()
+        can malloc memory, always gives an absolute path, and handles
+        trailing slash correctly.])
+      ;;
+  esac
 ])
index 27c61d25493eca37a3c17dce292f435151ca8a18..9c498a62160472bae50b019fd548e39da7d68a07 100644 (file)
@@ -1,4 +1,4 @@
-#serial 11
+#serial 15
 
 # Use Gnulib's robust chdir function.
 # It can handle arbitrarily long directory names, which means
@@ -6,7 +6,7 @@
 # never fails with ENAMETOOLONG.
 # Arrange to compile chdir-long.c only on systems that define PATH_MAX.
 
-dnl Copyright (C) 2004-2007, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2007, 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.
@@ -15,25 +15,16 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_CHDIR_LONG],
 [
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
   AC_CACHE_CHECK([whether this system has an arbitrary file name length limit],
     gl_cv_have_arbitrary_file_name_length_limit,
     [AC_EGREP_CPP([have_arbitrary_file_name_length_limit],
-                  [#include <unistd.h>
-#include <limits.h>
-#if defined PATH_MAX || defined MAXPATHLEN
+                  gl_PATHMAX_SNIPPET[
+#ifdef PATH_MAX
 have_arbitrary_file_name_length_limit
 #endif],
     gl_cv_have_arbitrary_file_name_length_limit=yes,
     gl_cv_have_arbitrary_file_name_length_limit=no)])
-
-  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
-    AC_LIBOBJ([chdir-long])
-    gl_PREREQ_CHDIR_LONG
-  fi
 ])
 
-AC_DEFUN([gl_PREREQ_CHDIR_LONG],
-[
-  AC_REQUIRE([AC_C_INLINE])
-  :
-])
+AC_DEFUN([gl_PREREQ_CHDIR_LONG], [:])
index f664e7c57f85cbdde67bbd7a5e02f01aa29bfc49..e5c084db3496e5e148691b5ef0c4b7965f244f6a 100644 (file)
@@ -1,7 +1,7 @@
-# serial 24
+# serial 27
 # Determine whether we need the chown wrapper.
 
-dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2011 Free Software
+dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2013 Free Software
 dnl Foundation, Inc.
 
 dnl This file is free software; the Free Software Foundation
@@ -14,23 +14,72 @@ dnl with or without modifications, as long as this notice is preserved.
 
 # From Jim Meyering.
 
+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
+AC_DEFUN([AC_FUNC_CHOWN],
+[
+  AC_REQUIRE([AC_TYPE_UID_T])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+  AC_CHECK_HEADERS([unistd.h])
+  AC_CACHE_CHECK([for working chown],
+    [ac_cv_func_chown_works],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [AC_INCLUDES_DEFAULT
+           [#include <fcntl.h>
+          ]],
+          [[
+            char *f = "conftest.chown";
+            struct stat before, after;
+
+            if (creat (f, 0600) < 0)
+              return 1;
+            if (stat (f, &before) < 0)
+              return 1;
+            if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+              return 1;
+            if (stat (f, &after) < 0)
+              return 1;
+            return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+          ]])
+       ],
+       [ac_cv_func_chown_works=yes],
+       [ac_cv_func_chown_works=no],
+       [case "$host_os" in # ((
+                  # Guess yes on glibc systems.
+          *-gnu*) ac_cv_func_chown_works=yes ;;
+                  # If we don't know, assume the worst.
+          *)      ac_cv_func_chown_works=no ;;
+        esac
+       ])
+     rm -f conftest.chown
+    ])
+  if test $ac_cv_func_chown_works = yes; then
+    AC_DEFINE([HAVE_CHOWN], [1],
+      [Define to 1 if your system has a working `chown' function.])
+  fi
+])# AC_FUNC_CHOWN
+
+])
+
 AC_DEFUN_ONCE([gl_FUNC_CHOWN],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([AC_TYPE_UID_T])
   AC_REQUIRE([AC_FUNC_CHOWN])
   AC_REQUIRE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([chown fchown])
 
   dnl mingw lacks chown altogether.
   if test $ac_cv_func_chown = no; then
     HAVE_CHOWN=0
-    AC_LIBOBJ([chown])
   else
     dnl Some old systems treated chown like lchown.
     if test $gl_cv_func_chown_follows_symlink = no; then
       REPLACE_CHOWN=1
-      AC_LIBOBJ([chown])
     fi
 
     dnl Some old systems tried to use uid/gid -1 literally.
@@ -38,7 +87,6 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN],
       AC_DEFINE([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE], [1],
         [Define if chown is not POSIX compliant regarding IDs of -1.])
       REPLACE_CHOWN=1
-      AC_LIBOBJ([chown])
     fi
 
     dnl Solaris 9 ignores trailing slash.
@@ -56,14 +104,22 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN],
         ]])],
         [gl_cv_func_chown_slash_works=yes],
         [gl_cv_func_chown_slash_works=no],
-        [gl_cv_func_chown_slash_works="guessing no"])
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_chown_slash_works="guessing no" ;;
+         esac
+        ])
       rm -f conftest.link conftest.file])
-    if test "$gl_cv_func_chown_slash_works" != yes; then
-      AC_DEFINE([CHOWN_TRAILING_SLASH_BUG], [1],
-        [Define to 1 if chown mishandles trailing slash.])
-      REPLACE_CHOWN=1
-      AC_LIBOBJ([chown])
-    fi
+    case "$gl_cv_func_chown_slash_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([CHOWN_TRAILING_SLASH_BUG], [1],
+          [Define to 1 if chown mishandles trailing slash.])
+        REPLACE_CHOWN=1
+        ;;
+    esac
 
     dnl OpenBSD fails to update ctime if ownership does not change.
     AC_CACHE_CHECK([whether chown always updates ctime],
@@ -84,18 +140,22 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN],
         ]])],
         [gl_cv_func_chown_ctime_works=yes],
         [gl_cv_func_chown_ctime_works=no],
-        [gl_cv_func_chown_ctime_works="guessing no"])
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_chown_ctime_works="guessing no" ;;
+         esac
+        ])
       rm -f conftest.file])
-    if test "$gl_cv_func_chown_ctime_works" != yes; then
-      AC_DEFINE([CHOWN_CHANGE_TIME_BUG], [1], [Define to 1 if chown fails
-        to change ctime when at least one argument was not -1.])
-      REPLACE_CHOWN=1
-      AC_LIBOBJ([chown])
-    fi
-
-    if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
-      AC_LIBOBJ([fchown-stub])
-    fi
+    case "$gl_cv_func_chown_ctime_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([CHOWN_CHANGE_TIME_BUG], [1], [Define to 1 if chown fails
+          to change ctime when at least one argument was not -1.])
+        REPLACE_CHOWN=1
+        ;;
+    esac
   fi
 ])
 
index 3c085129c157212c05b03af87d6b1db6bc47c3ca..6597fb63a0c71e5db3e4cfcb0d7490a1f845d3a5 100644 (file)
@@ -1,5 +1,5 @@
 # clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 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.
index 2a7349cf6c16d935647a2e8c43d79dd00f9930f1..0a80c37a6c61f2a6891cabcff516845d71b645e8 100644 (file)
@@ -1,13 +1,11 @@
-#serial 3
-dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
+#serial 4
+dnl Copyright (C) 2006-2007, 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 Prerequisites of lib/close-stream.c.
 AC_DEFUN([gl_CLOSE_STREAM],
 [
-  AC_LIBOBJ([close-stream])
-
-  dnl Prerequisites of lib/close-stream.c.
   :
 ])
index fc131381af97fd7e3f3953eb79432769983b2265..bccd9819ca216cb39eda1a5f7010dcb30a28da53 100644 (file)
@@ -1,26 +1,33 @@
-# close.m4 serial 5
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# close.m4 serial 8
+dnl Copyright (C) 2008-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.
 
 AC_DEFUN([gl_FUNC_CLOSE],
 [
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_CLOSE=1
+  fi
   m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [
     gl_PREREQ_SYS_H_WINSOCK2
     if test $UNISTD_H_HAVE_WINSOCK2_H = 1; 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 close() function. So enable the support for sockets.
-      gl_REPLACE_CLOSE
+      REPLACE_CLOSE=1
+    fi
+  ])
+  dnl Replace close() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    if test $REPLACE_CLOSE = 0; then
+      gl_TEST_FCHDIR
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_CLOSE=1
+      fi
     fi
   ])
-])
-
-AC_DEFUN([gl_REPLACE_CLOSE],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  REPLACE_CLOSE=1
-  AC_LIBOBJ([close])
-  gl_REPLACE_FCLOSE
 ])
diff --git a/m4/closedir.m4 b/m4/closedir.m4
new file mode 100644 (file)
index 0000000..bb8708b
--- /dev/null
@@ -0,0 +1,25 @@
+# closedir.m4 serial 2
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_CLOSEDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([closedir])
+  if test $ac_cv_func_closedir = no; then
+    HAVE_CLOSEDIR=0
+  fi
+  dnl Replace closedir() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_CLOSEDIR = 1; then
+        REPLACE_CLOSEDIR=1
+      fi
+    fi
+  ])
+])
index 0586b32a25dd3cb49479f8aebfffcdfc6916a553..759feaaed6158d8eedde6103da2cc801512907d7 100644 (file)
@@ -1,14 +1,12 @@
-# closeout.m4 serial 5
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# closeout.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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.
 
+dnl Prerequisites of lib/closeout.c.
 AC_DEFUN([gl_CLOSEOUT],
 [
-  AC_LIBOBJ([closeout])
-
-  dnl Prerequisites of lib/closeout.c.
   :
 ])
index da73552231050dc2f3d6fa55c0207cf3259a17ae..c2761be2adda4187deba91dd5bc12d6c2769cdc7 100644 (file)
@@ -1,5 +1,5 @@
 # codeset.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2006, 2008-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.
index a0298235679f8b6e67fd36aaa92b3bff11d3a08c..823ffc0dd6424b6f928245536035188320250254 100644 (file)
@@ -1,5 +1,5 @@
 # configmake.m4 serial 1
-dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-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.
index baf0dcc916b8ba4b05d167e65e33de73569daf0b..aab82c2dfd7061f4ea0b6e84c286b9a27fb3a26b 100644 (file)
@@ -1,11 +1,11 @@
-# serial 12
+# serial 13
 
 dnl From Jim Meyering.
 dnl
 dnl Check whether struct dirent has a member named d_ino.
 dnl
 
-# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2011 Free Software
+# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2013 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
@@ -13,7 +13,8 @@ dnl
 # with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
-  [AC_CACHE_CHECK([for d_ino member in directory struct],
+  [AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+   AC_CACHE_CHECK([for d_ino member in directory struct],
                   gl_cv_struct_dirent_d_ino,
      [AC_RUN_IFELSE(
         [AC_LANG_PROGRAM(
@@ -37,10 +38,18 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
            ]])],
            [gl_cv_struct_dirent_d_ino=yes],
            [gl_cv_struct_dirent_d_ino=no],
-           [gl_cv_struct_dirent_d_ino=no])])
-   if test $gl_cv_struct_dirent_d_ino = yes; then
-     AC_DEFINE([D_INO_IN_DIRENT], [1],
-       [Define if struct dirent has a member d_ino that actually works.])
-   fi
+           [case "$host_os" in
+                           # Guess yes on glibc systems with Linux kernel.
+              linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+                           # If we don't know, assume the worst.
+              *)           gl_cv_struct_dirent_d_ino="guessing no" ;;
+            esac
+           ])])
+   case "$gl_cv_struct_dirent_d_ino" in
+     *yes)
+       AC_DEFINE([D_INO_IN_DIRENT], [1],
+         [Define if struct dirent has a member d_ino that actually works.])
+       ;;
+   esac
   ]
 )
index 0b557ca76551239508bc9fb36c7883a8736cce91..708d7b19af5acbba09e5d3cd89ea381f9abdf2b0 100644 (file)
@@ -1,5 +1,5 @@
-#serial 1
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+#serial 2
+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.
@@ -7,5 +7,4 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_DIRENT_SAFER],
 [
   AC_CHECK_FUNCS_ONCE([fdopendir])
-  AC_LIBOBJ([opendir-safer])
 ])
index 853ac7dad4aae8d1d98a9cf1d5475bfc7c519dfa..54c1663431478f058807ecef422d610ae5dad8d0 100644 (file)
@@ -1,5 +1,5 @@
-# dirent_h.m4 serial 13
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# dirent_h.m4 serial 16
+dnl Copyright (C) 2008-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.
@@ -14,18 +14,17 @@ AC_DEFUN([gl_DIRENT_H],
 
   dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK.
   gl_CHECK_NEXT_HEADERS([dirent.h])
+  if test $ac_cv_header_dirent_h = yes; then
+    HAVE_DIRENT_H=1
+  else
+    HAVE_DIRENT_H=0
+  fi
+  AC_SUBST([HAVE_DIRENT_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 <dirent.h>
-    ]], [alphasort dirfd fdopendir scandir])
-])
-
-dnl Unconditionally enables the replacement of <dirent.h>.
-AC_DEFUN([gl_REPLACE_DIRENT_H],
-[
-  dnl This is a no-op, because <dirent.h> is always overridden.
-  :
+    ]], [alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir])
 ])
 
 AC_DEFUN([gl_DIRENT_MODULE_INDICATOR],
@@ -40,18 +39,26 @@ AC_DEFUN([gl_DIRENT_MODULE_INDICATOR],
 AC_DEFUN([gl_DIRENT_H_DEFAULTS],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+  GNULIB_OPENDIR=0;     AC_SUBST([GNULIB_OPENDIR])
+  GNULIB_READDIR=0;     AC_SUBST([GNULIB_READDIR])
+  GNULIB_REWINDDIR=0;   AC_SUBST([GNULIB_REWINDDIR])
+  GNULIB_CLOSEDIR=0;    AC_SUBST([GNULIB_CLOSEDIR])
   GNULIB_DIRFD=0;       AC_SUBST([GNULIB_DIRFD])
   GNULIB_FDOPENDIR=0;   AC_SUBST([GNULIB_FDOPENDIR])
   GNULIB_SCANDIR=0;     AC_SUBST([GNULIB_SCANDIR])
   GNULIB_ALPHASORT=0;   AC_SUBST([GNULIB_ALPHASORT])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_OPENDIR=1;       AC_SUBST([HAVE_OPENDIR])
+  HAVE_READDIR=1;       AC_SUBST([HAVE_READDIR])
+  HAVE_REWINDDIR=1;     AC_SUBST([HAVE_REWINDDIR])
+  HAVE_CLOSEDIR=1;      AC_SUBST([HAVE_CLOSEDIR])
   HAVE_DECL_DIRFD=1;    AC_SUBST([HAVE_DECL_DIRFD])
   HAVE_DECL_FDOPENDIR=1;AC_SUBST([HAVE_DECL_FDOPENDIR])
   HAVE_FDOPENDIR=1;     AC_SUBST([HAVE_FDOPENDIR])
   HAVE_SCANDIR=1;       AC_SUBST([HAVE_SCANDIR])
   HAVE_ALPHASORT=1;     AC_SUBST([HAVE_ALPHASORT])
+  REPLACE_OPENDIR=0;    AC_SUBST([REPLACE_OPENDIR])
   REPLACE_CLOSEDIR=0;   AC_SUBST([REPLACE_CLOSEDIR])
   REPLACE_DIRFD=0;      AC_SUBST([REPLACE_DIRFD])
   REPLACE_FDOPENDIR=0;  AC_SUBST([REPLACE_FDOPENDIR])
-  REPLACE_OPENDIR=0;    AC_SUBST([REPLACE_OPENDIR])
 ])
index b8789c2e7593604ce87512e98183fc8ee6303d4f..39bc78971e02a61361be770e909109891fe58c85 100644 (file)
@@ -1,8 +1,8 @@
-# serial 19   -*- Autoconf -*-
+# serial 22   -*- Autoconf -*-
 
 dnl Find out how to get the file descriptor associated with an open DIR*.
 
-# Copyright (C) 2001-2006, 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2006, 2008-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.
@@ -12,15 +12,14 @@ dnl From Jim Meyering
 AC_DEFUN([gl_FUNC_DIRFD],
 [
   AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
-  gl_REPLACE_DIRENT_H
 
   dnl Persuade glibc <dirent.h> to declare dirfd().
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
   AC_CHECK_FUNCS([dirfd])
   AC_CHECK_DECLS([dirfd], , ,
-    [#include <sys/types.h>
-     #include <dirent.h>])
+    [[#include <sys/types.h>
+      #include <dirent.h>]])
   if test $ac_cv_have_decl_dirfd = no; then
     HAVE_DECL_DIRFD=0
   fi
@@ -37,45 +36,48 @@ AC_DEFUN([gl_FUNC_DIRFD],
        gl_cv_func_dirfd_macro=no)])
 
   # Use the replacement only if we have no function or macro with that name.
-  if test $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro = no,no; then
+  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
     if test $ac_cv_have_decl_dirfd = yes; then
       # If the system declares dirfd already, let's declare rpl_dirfd instead.
       REPLACE_DIRFD=1
     fi
-    AC_LIBOBJ([dirfd])
-    AC_CACHE_CHECK(
-              [how to get the file descriptor associated with an open DIR*],
-                   gl_cv_sys_dir_fd_member_name,
-      [
-        dirfd_save_CFLAGS=$CFLAGS
-        for ac_expr in d_fd dd_fd; do
+  fi
+])
 
-          CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
-          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-             #include <sys/types.h>
-             #include <dirent.h>]],
-            [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])],
-            [dir_fd_found=yes]
-          )
-          CFLAGS=$dirfd_save_CFLAGS
-          test "$dir_fd_found" = yes && break
-        done
-        test "$dir_fd_found" = yes || ac_expr=no_such_member
+dnl Prerequisites of lib/dirfd.c.
+AC_DEFUN([gl_PREREQ_DIRFD],
+[
+  AC_CACHE_CHECK([how to get the file descriptor associated with an open DIR*],
+                 [gl_cv_sys_dir_fd_member_name],
+    [
+      dirfd_save_CFLAGS=$CFLAGS
+      for ac_expr in d_fd dd_fd; do
 
-        gl_cv_sys_dir_fd_member_name=$ac_expr
-      ]
-    )
-    if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
-      AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME],
-        $gl_cv_sys_dir_fd_member_name,
-        [the name of the file descriptor member of DIR])
-    fi
-    AH_VERBATIM(DIR_TO_FD,
-                [#ifdef DIR_FD_MEMBER_NAME
+        CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+           #include <sys/types.h>
+           #include <dirent.h>]],
+          [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])],
+          [dir_fd_found=yes]
+        )
+        CFLAGS=$dirfd_save_CFLAGS
+        test "$dir_fd_found" = yes && break
+      done
+      test "$dir_fd_found" = yes || ac_expr=no_such_member
+
+      gl_cv_sys_dir_fd_member_name=$ac_expr
+    ]
+  )
+  if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
+    AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME],
+      [$gl_cv_sys_dir_fd_member_name],
+      [the name of the file descriptor member of DIR])
+  fi
+  AH_VERBATIM([DIR_TO_FD],
+              [#ifdef DIR_FD_MEMBER_NAME
 # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
 #else
 # define DIR_TO_FD(Dir_p) -1
 #endif
 ])
-  fi
 ])
index 9d5f40d1c2bb12d60994e2d6366e9dd733982ff5..5897a2a8b3f280ed827c77e81a01b0706af9314e 100644 (file)
@@ -1,5 +1,5 @@
-#serial 9   -*- autoconf -*-
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+#serial 10   -*- autoconf -*-
+dnl Copyright (C) 2002-2006, 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.
@@ -7,16 +7,10 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_DIRNAME],
 [
   AC_REQUIRE([gl_DIRNAME_LGPL])
-  AC_LIBOBJ([basename])
-  AC_LIBOBJ([dirname])
 ])
 
 AC_DEFUN([gl_DIRNAME_LGPL],
 [
-  AC_LIBOBJ([basename-lgpl])
-  AC_LIBOBJ([dirname-lgpl])
-  AC_LIBOBJ([stripslash])
-
   dnl Prerequisites of lib/dirname.h.
   AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
 
index 16a4e3ec9e6c620837a4c990a719ddf18f8cd173..bd6f8671432c16ba88a532fd9214e76ad08c37cb 100644 (file)
@@ -1,5 +1,5 @@
 # double-slash-root.m4 serial 4   -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-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.
diff --git a/m4/dup.m4 b/m4/dup.m4
new file mode 100644 (file)
index 0000000..5105b6e
--- /dev/null
+++ b/m4/dup.m4
@@ -0,0 +1,25 @@
+# dup.m4 serial 3
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_DUP],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_DUP=1
+  fi
+  dnl Replace dup() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      REPLACE_DUP=1
+    fi
+  ])
+])
+
+# Prerequisites of lib/dup.c.
+AC_DEFUN([gl_PREREQ_DUP], [:])
index def263b87a85b7ccd38e0c539f894718817a75c9..269cfdc112380f35982e67535be4b179a1d55e1f 100644 (file)
@@ -1,5 +1,5 @@
-#serial 12
-dnl Copyright (C) 2002, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+#serial 19
+dnl Copyright (C) 2002, 2005, 2007, 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.
@@ -8,24 +8,28 @@ AC_DEFUN([gl_FUNC_DUP2],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_FUNCS_ONCE([dup2 fcntl])
-  if test $ac_cv_func_dup2 = no; then
-    HAVE_DUP2=0
-    AC_LIBOBJ([dup2])
-  else
+  m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [
+    AC_CHECK_FUNCS_ONCE([dup2])
+    if test $ac_cv_func_dup2 = no; then
+      HAVE_DUP2=0
+    fi
+  ], [
+    AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.])
+  ])
+  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;
-#if HAVE_FCNTL
+#ifdef FD_CLOEXEC
             if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
               result |= 1;
-#endif HAVE_FCNTL
+#endif
             if (dup2 (1, 1) == 0)
               result |= 2;
-#if HAVE_FCNTL
+#ifdef FD_CLOEXEC
             if (fcntl (1, F_GETFD) != FD_CLOEXEC)
               result |= 4;
 #endif
@@ -35,36 +39,46 @@ AC_DEFUN([gl_FUNC_DUP2],
             /* 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;
            ])
         ],
         [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no],
         [case "$host_os" in
            mingw*) # on this platform, dup2 always returns 0 for success
-             gl_cv_func_dup2_works=no;;
+             gl_cv_func_dup2_works="guessing no" ;;
            cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
-             gl_cv_func_dup2_works=no;;
+             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=no;;
+             gl_cv_func_dup2_works="guessing no" ;;
            freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
-             gl_cv_func_dup2_works=no;;
+             gl_cv_func_dup2_works="guessing no" ;;
            haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
-             gl_cv_func_dup2_works=no;;
-           *) gl_cv_func_dup2_works=yes;;
+             gl_cv_func_dup2_works="guessing no" ;;
+           *) gl_cv_func_dup2_works="guessing yes" ;;
          esac])
       ])
-    if test "$gl_cv_func_dup2_works" = no; then
-      gl_REPLACE_DUP2
-    fi
+    case "$gl_cv_func_dup2_works" in
+      *yes) ;;
+      *)
+        REPLACE_DUP2=1
+        ;;
+    esac
   fi
+  dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_DUP2 = 1; then
+        REPLACE_DUP2=1
+      fi
+    fi
+  ])
 ])
 
-AC_DEFUN([gl_REPLACE_DUP2],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  if test $ac_cv_func_dup2 = yes; then
-    REPLACE_DUP2=1
-  fi
-  AC_LIBOBJ([dup2])
-])
+# Prerequisites of lib/dup2.c.
+AC_DEFUN([gl_PREREQ_DUP2], [])
index 3006c4848f646e1992f047b86f8f45da8c155398..c640ec1299edc569cedb44c68e76888027724c1f 100644 (file)
@@ -1,5 +1,5 @@
-# eealloc.m4 serial 2
-dnl Copyright (C) 2003, 2009-2011 Free Software Foundation, Inc.
+# eealloc.m4 serial 3
+dnl Copyright (C) 2003, 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.
@@ -8,7 +8,6 @@ AC_DEFUN([gl_EEALLOC],
 [
   AC_REQUIRE([gl_EEMALLOC])
   AC_REQUIRE([gl_EEREALLOC])
-  AC_REQUIRE([AC_C_INLINE])
 ])
 
 AC_DEFUN([gl_EEMALLOC],
index 7457ad1399c3f3e83c5235031508e364815c632a..593a33ed42dc093fd5ea6209387e8685912e5b0e 100644 (file)
@@ -1,5 +1,5 @@
-# environ.m4 serial 5
-dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc.
+# environ.m4 serial 6
+dnl Copyright (C) 2001-2004, 2006-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.
@@ -9,7 +9,16 @@ AC_DEFUN_ONCE([gl_ENVIRON],
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   dnl Persuade glibc <unistd.h> to declare environ.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  gt_CHECK_VAR_DECL([#include <unistd.h>], environ)
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  gt_CHECK_VAR_DECL(
+    [#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+    ],
+    [environ])
   if test $gt_cv_var_environ_declaration != yes; then
     HAVE_DECL_ENVIRON=0
   fi
index 687bafff2d09fbb074c8274a2d1758233c1e1fc7..c813ea5835f5bee7a3361cff7b6f20c5608644ff 100644 (file)
@@ -1,5 +1,5 @@
-# errno_h.m4 serial 8
-dnl Copyright (C) 2004, 2006, 2008-2011 Free Software Foundation, Inc.
+# errno_h.m4 serial 12
+dnl Copyright (C) 2004, 2006, 2008-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.
@@ -10,6 +10,9 @@ AC_DEFUN_ONCE([gl_HEADER_ERRNO_H],
   AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
     AC_EGREP_CPP([booboo],[
 #include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
 #if !defined ENOMSG
 booboo
 #endif
@@ -34,6 +37,12 @@ booboo
 #if !defined ENOTSUP
 booboo
 #endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
 #if !defined ESTALE
 booboo
 #endif
@@ -42,6 +51,15 @@ booboo
 #endif
 #if !defined ECANCELED
 booboo
+#endif
+#if !defined EOWNERDEAD
+booboo
+#endif
+#if !defined ENOTRECOVERABLE
+booboo
+#endif
+#if !defined EILSEQ
+booboo
 #endif
       ],
       [gl_cv_header_errno_h_complete=no],
@@ -54,6 +72,7 @@ booboo
     ERRNO_H='errno.h'
   fi
   AC_SUBST([ERRNO_H])
+  AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
   gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
   gl_REPLACE_ERRNO_VALUE([ENOLINK])
   gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
index 6ea75ac02935f5f817983b072903eb2b6c838f3e..29e6fdc9c209a16eb78e678d3fd2a4156674b5c5 100644 (file)
@@ -1,6 +1,6 @@
-#serial 13
+#serial 14
 
-# Copyright (C) 1996-1998, 2001-2004, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8,16 +8,8 @@
 
 AC_DEFUN([gl_ERROR],
 [
-  AC_FUNC_ERROR_AT_LINE
-  dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
-  gl_PREREQ_ERROR
-])
-
-# Redefine AC_FUNC_ERROR_AT_LINE, because it is no longer maintained in
-# Autoconf.
-AC_DEFUN([AC_FUNC_ERROR_AT_LINE],
-[
-  AC_LIBSOURCES([error.h, error.c])dnl
+  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
   AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
     [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM(
@@ -25,15 +17,11 @@ AC_DEFUN([AC_FUNC_ERROR_AT_LINE],
           [[error_at_line (0, 0, "", 0, "an error occurred");]])],
        [ac_cv_lib_error_at_line=yes],
        [ac_cv_lib_error_at_line=no])])
-  if test $ac_cv_lib_error_at_line = no; then
-    AC_LIBOBJ([error])
-  fi
 ])
 
 # Prerequisites of lib/error.c.
 AC_DEFUN([gl_PREREQ_ERROR],
 [
   AC_REQUIRE([AC_FUNC_STRERROR_R])
-  AC_REQUIRE([AC_C_INLINE])
   :
 ])
diff --git a/m4/exponentd.m4 b/m4/exponentd.m4
new file mode 100644 (file)
index 0000000..09df468
--- /dev/null
@@ -0,0 +1,116 @@
+# exponentd.m4 serial 3
+dnl Copyright (C) 2007-2008, 2010-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.
+AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION],
+[
+  AC_CACHE_CHECK([where to find the exponent in a 'double'],
+    [gl_cv_cc_double_expbit0],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
+        ]])],
+        [gl_cv_cc_double_expbit0=`cat conftest.out`],
+        [gl_cv_cc_double_expbit0="unknown"],
+        [
+          dnl On ARM, there are two 'double' floating-point formats, used by
+          dnl different sets of instructions: The older FPA instructions assume
+          dnl that they are stored in big-endian word order, while the words
+          dnl (like integer types) are stored in little-endian byte order.
+          dnl The newer VFP instructions assume little-endian order
+          dnl consistently.
+          AC_EGREP_CPP([mixed_endianness], [
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
+#endif
+            ],
+            [gl_cv_cc_double_expbit0="unknown"],
+            [
+              pushdef([AC_MSG_CHECKING],[:])dnl
+              pushdef([AC_MSG_RESULT],[:])dnl
+              pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl
+              AC_C_BIGENDIAN(
+                [gl_cv_cc_double_expbit0="word 0 bit 20"],
+                [gl_cv_cc_double_expbit0="word 1 bit 20"],
+                [gl_cv_cc_double_expbit0="unknown"])
+              popdef([AC_MSG_RESULT_UNQUOTED])dnl
+              popdef([AC_MSG_RESULT])dnl
+              popdef([AC_MSG_CHECKING])dnl
+            ])
+        ])
+      rm -f conftest.out
+    ])
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+      AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word],
+        [Define as the word index where to find the exponent of 'double'.])
+      AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit],
+        [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.])
+      ;;
+  esac
+])
index 1330503f0d77cf417f4e1e54062f258246401afb..e30f12206ce6039f99acc4d6a29b61094297b4f9 100644 (file)
@@ -1,14 +1,14 @@
-# serial 9  -*- Autoconf -*-
+# serial 13  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-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.
 
-# 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.62 or later everywhere, but since CVS Autoconf mutates rapidly
+# 2.70 or later everywhere, but since Autoconf mutates rapidly
 # enough in this area it's likely we'll need to redefine
 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
 
@@ -30,6 +30,7 @@
 # ------------------------
 # Enable extensions on systems that normally disable them,
 # typically due to standards-conformance issues.
+#
 # Remember that #undef in AH_VERBATIM gets replaced with #define by
 # AC_DEFINE.  The goal here is to define all known feature-enabling
 # macros, then, if reports of conflicts are made, disable macros that
@@ -38,35 +39,31 @@ AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
 [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
 AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
   AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
   if test "$MINIX" = yes; then
     AC_DEFINE([_POSIX_SOURCE], [1],
-      [Define to 1 if you need to in order for `stat' and other
+      [Define to 1 if you need to in order for 'stat' and other
        things to work.])
     AC_DEFINE([_POSIX_1_SOURCE], [2],
       [Define to 2 if the system does not provide POSIX.1 features
        except with this defined.])
     AC_DEFINE([_MINIX], [1],
       [Define to 1 if on MINIX.])
+    AC_DEFINE([_NETBSD_SOURCE], [1],
+      [Define to 1 to make NetBSD features available.  MINIX 3 needs this.])
   fi
 
-  dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
-  dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
-  dnl provided.
-  case "$host_os" in
-    hpux*)
-      AC_DEFINE([_XOPEN_SOURCE], [500],
-        [Define to 500 only on HP-UX.])
-      ;;
-  esac
-
-  AH_VERBATIM([__EXTENSIONS__],
+dnl Use a different key than __EXTENSIONS__, as that name broke existing
+dnl configure.ac when using autoheader 2.62.
+  AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
 [/* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
 /* Enable GNU extensions on systems that have them.  */
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
@@ -79,6 +76,12 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
 #endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
 /* Enable general extensions on Solaris.  */
 #ifndef __EXTENSIONS__
 # undef __EXTENSIONS__
@@ -95,9 +98,26 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
   test $ac_cv_safe_to_define___extensions__ = yes &&
     AC_DEFINE([__EXTENSIONS__])
   AC_DEFINE([_ALL_SOURCE])
+  AC_DEFINE([_DARWIN_C_SOURCE])
   AC_DEFINE([_GNU_SOURCE])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
   AC_DEFINE([_TANDEM_SOURCE])
+  AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
+    [ac_cv_should_define__xopen_source],
+    [ac_cv_should_define__xopen_source=no
+     AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[
+          #include <wchar.h>
+          mbstate_t x;]])],
+       [],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([[
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;]])],
+          [ac_cv_should_define__xopen_source=yes])])])
+  test $ac_cv_should_define__xopen_source = yes &&
+    AC_DEFINE([_XOPEN_SOURCE], [500])
 ])# AC_USE_SYSTEM_EXTENSIONS
 
 # gl_USE_SYSTEM_EXTENSIONS
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
new file mode 100644 (file)
index 0000000..c4c5e7f
--- /dev/null
@@ -0,0 +1,70 @@
+dnl 'extern inline' a la ISO C99.
+
+dnl Copyright 2012-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.
+
+AC_DEFUN([gl_EXTERN_INLINE],
+[
+  AH_VERBATIM([extern_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 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 the use of extern inline on Apple's platforms, as Libc at least
+   through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined __APPLE__)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined __APPLE__)
+# if __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
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+  /* Suppress GCC's bogus "no previous prototype for 'FOO'"
+     and "no previous declaration for 'FOO'"  diagnostics,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.  */
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif])
+])
index 49d89d1840587ff642ff88764a37358d22d81047..c248fdce58f75af70d65e32086fd8db531ac7ad7 100644 (file)
@@ -1,5 +1,5 @@
-# fchdir.m4 serial 15
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# fchdir.m4 serial 21
+dnl Copyright (C) 2006-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.
@@ -8,16 +8,15 @@ AC_DEFUN([gl_FUNC_FCHDIR],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
 
   AC_CHECK_DECLS_ONCE([fchdir])
   if test $ac_cv_have_decl_fchdir = no; then
     HAVE_DECL_FCHDIR=0
   fi
 
-  AC_CHECK_FUNCS_ONCE([fchdir])
-  if test $ac_cv_func_fchdir = no; then
-    HAVE_FCHDIR=0
+  AC_REQUIRE([gl_TEST_FCHDIR])
+  if test $HAVE_FCHDIR = 0; then
     AC_LIBOBJ([fchdir])
     gl_PREREQ_FCHDIR
     AC_DEFINE([REPLACE_FCHDIR], [1],
@@ -25,27 +24,36 @@ AC_DEFUN([gl_FUNC_FCHDIR],
     dnl We must also replace anything that can manipulate a directory fd,
     dnl to keep our bookkeeping up-to-date.  We don't have to replace
     dnl fstatat, since no platform has fstatat but lacks fchdir.
-    REPLACE_OPENDIR=1
-    REPLACE_CLOSEDIR=1
-    REPLACE_DUP=1
-    gl_REPLACE_OPEN
-    gl_REPLACE_CLOSE
-    gl_REPLACE_DUP2
-    dnl dup3 is already unconditionally replaced
-    gl_REPLACE_FCNTL
-    gl_REPLACE_DIRENT_H
     AC_CACHE_CHECK([whether open can visit directories],
       [gl_cv_func_open_directory_works],
       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <fcntl.h>
 ]], [return open(".", O_RDONLY) < 0;])],
         [gl_cv_func_open_directory_works=yes],
         [gl_cv_func_open_directory_works=no],
-        [gl_cv_func_open_directory_works="guessing no"])])
-    if test "$gl_cv_func_open_directory_works" != yes; then
-      AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_open_directory_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_open_directory_works="guessing no" ;;
+         esac
+        ])])
+    case "$gl_cv_func_open_directory_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should
 work around the inability to open a directory.])
-      REPLACE_FSTAT=1
-    fi
+        ;;
+    esac
+  fi
+])
+
+# Determine whether to use the overrides in lib/fchdir.c.
+AC_DEFUN([gl_TEST_FCHDIR],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([fchdir])
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
   fi
 ])
 
diff --git a/m4/fchmodat.m4 b/m4/fchmodat.m4
new file mode 100644 (file)
index 0000000..dc9c4e7
--- /dev/null
@@ -0,0 +1,17 @@
+# fchmodat.m4 serial 1
+dnl Copyright (C) 2004-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.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_FCHMODAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([fchmodat lchmod])
+  if test $ac_cv_func_fchmodat != yes; then
+    HAVE_FCHMODAT=0
+  fi
+])
diff --git a/m4/fchownat.m4 b/m4/fchownat.m4
new file mode 100644 (file)
index 0000000..9c862d3
--- /dev/null
@@ -0,0 +1,108 @@
+# fchownat.m4 serial 1
+dnl Copyright (C) 2004-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.
+
+# Written by Jim Meyering.
+
+# If we have the fchownat function, and it has the bug (in glibc-2.4)
+# that it dereferences symlinks even with AT_SYMLINK_NOFOLLOW, then
+# use the replacement function.
+# Also if the fchownat function, like chown, has the trailing slash bug,
+# use the replacement function.
+# Also use the replacement function if fchownat is simply not available.
+AC_DEFUN([gl_FUNC_FCHOWNAT],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_FUNC_CHOWN])
+  AC_CHECK_FUNC([fchownat],
+    [gl_FUNC_FCHOWNAT_DEREF_BUG(
+       [REPLACE_FCHOWNAT=1
+        AC_DEFINE([FCHOWNAT_NOFOLLOW_BUG], [1],
+                  [Define to 1 if your platform has fchownat, but it cannot
+                   perform lchown tasks.])
+       ])
+     gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG(
+       [REPLACE_FCHOWNAT=1
+        AC_DEFINE([FCHOWNAT_EMPTY_FILENAME_BUG], [1],
+                  [Define to 1 if your platform has fchownat, but it does
+                   not reject an empty file name.])
+       ])
+     if test $REPLACE_CHOWN = 1; then
+       REPLACE_FCHOWNAT=1
+     fi],
+    [HAVE_FCHOWNAT=0])
+])
+
+# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
+AC_DEFUN([gl_FUNC_FCHOWNAT_DEREF_BUG],
+[
+  dnl Persuade glibc's <unistd.h> to declare fchownat().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_CACHE_CHECK([whether fchownat works with AT_SYMLINK_NOFOLLOW],
+    gl_cv_func_fchownat_nofollow_works,
+    [
+     gl_dangle=conftest.dangle
+     # Remove any remnants of a previous test.
+     rm -f $gl_dangle
+     # Arrange for deletion of the temporary file this test creates.
+     ac_clean_files="$ac_clean_files $gl_dangle"
+     ln -s conftest.no-such $gl_dangle
+     AC_RUN_IFELSE(
+       [AC_LANG_SOURCE(
+          [[
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+int
+main ()
+{
+  return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (),
+                    AT_SYMLINK_NOFOLLOW) != 0
+          && errno == ENOENT);
+}
+          ]])],
+    [gl_cv_func_fchownat_nofollow_works=yes],
+    [gl_cv_func_fchownat_nofollow_works=no],
+    [gl_cv_func_fchownat_nofollow_works=no],
+    )
+  ])
+  AS_IF([test $gl_cv_func_fchownat_nofollow_works = no], [$1], [$2])
+])
+
+# gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
+AC_DEFUN([gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG],
+[
+  dnl Persuade glibc's <unistd.h> to declare fchownat().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_CACHE_CHECK([whether fchownat works with an empty file name],
+    [gl_cv_func_fchownat_empty_filename_works],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <unistd.h>
+            #include <fcntl.h>
+          ]],
+          [[int fd;
+            int ret;
+            if (mkdir ("conftestdir", 0700) < 0)
+              return 2;
+            fd = open ("conftestdir", O_RDONLY);
+            if (fd < 0)
+              return 3;
+            ret = fchownat (fd, "", -1, -1, 0);
+            close (fd);
+            rmdir ("conftestdir");
+            return ret == 0;
+          ]])],
+       [gl_cv_func_fchownat_empty_filename_works=yes],
+       [gl_cv_func_fchownat_empty_filename_works=no],
+       [gl_cv_func_fchownat_empty_filename_works="guessing no"])
+    ])
+  AS_IF([test "$gl_cv_func_fchownat_empty_filename_works" != yes], [$1], [$2])
+])
index 88db07ec73e1b2f702e292b003fbdc9b618a65ae..87cc4bd2ddbd4c37aad828c31b38b95149c8fe11 100644 (file)
@@ -1,5 +1,5 @@
-# fcntl-o.m4 serial 3
-dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+# fcntl-o.m4 serial 4
+dnl Copyright (C) 2006, 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.
@@ -17,12 +17,21 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
   m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
     [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
     [AC_REQUIRE([AC_GNU_SOURCE])])
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CHECK_FUNCS_ONCE([symlink])
   AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
     [AC_RUN_IFELSE(
        [AC_LANG_PROGRAM(
           [[#include <sys/types.h>
            #include <sys/stat.h>
-           #include <unistd.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           # include <stdlib.h>
+           # defined sleep(n) _sleep ((n) * 1000)
+           #endif
            #include <fcntl.h>
            #ifndef O_NOATIME
             #define O_NOATIME 0
@@ -38,9 +47,21 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
           ]],
           [[
             int result = !constants;
+            #if HAVE_SYMLINK
             {
               static char const sym[] = "conftest.sym";
-              if (symlink (".", sym) != 0)
+              if (symlink ("/dev/null", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              if (unlink (sym) != 0 || symlink (".", sym) != 0)
                 result |= 2;
               else
                 {
@@ -53,6 +74,7 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
                 }
               unlink (sym);
             }
+            #endif
             {
               static char const file[] = "confdefs.h";
               int fd = open (file, O_RDONLY | O_NOATIME);
index a93ed85a368839978f33bc67f7fad66eb1418e03..5481cae4d807cd6c89e4428d7273978322af7bf5 100644 (file)
@@ -1,5 +1,5 @@
-# fcntl.m4 serial 4
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# fcntl.m4 serial 5
+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.
@@ -73,6 +73,14 @@ choke me
       dnl No witness macro needed for this bug.
     fi
   fi
+  dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      gl_REPLACE_FCNTL
+    fi
+  ])
 ])
 
 AC_DEFUN([gl_REPLACE_FCNTL],
@@ -84,5 +92,4 @@ AC_DEFUN([gl_REPLACE_FCNTL],
   else
     REPLACE_FCNTL=1
   fi
-  AC_LIBOBJ([fcntl])
 ])
index 1ef4f455b7008dcba05b53aa7763e7f329bf013a..3cff1fd64d25fb64cd68c0ae345ec806d5f8962c 100644 (file)
@@ -1,6 +1,6 @@
-# serial 13
+# serial 15
 # Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 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.
@@ -13,6 +13,12 @@ AC_DEFUN([gl_FCNTL_H],
   AC_REQUIRE([gl_FCNTL_O_FLAGS])
   gl_NEXT_HEADERS([fcntl.h])
 
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Ensure the type mode_t gets defined.
+  AC_REQUIRE([AC_TYPE_MODE_T])
+
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use, if it is not common
   dnl enough to be declared everywhere.
@@ -31,13 +37,14 @@ AC_DEFUN([gl_FCNTL_MODULE_INDICATOR],
 
 AC_DEFUN([gl_FCNTL_H_DEFAULTS],
 [
-  GNULIB_FCNTL=0;   AC_SUBST([GNULIB_FCNTL])
-  GNULIB_OPEN=0;    AC_SUBST([GNULIB_OPEN])
-  GNULIB_OPENAT=0;  AC_SUBST([GNULIB_OPENAT])
+  GNULIB_FCNTL=0;        AC_SUBST([GNULIB_FCNTL])
+  GNULIB_NONBLOCKING=0;  AC_SUBST([GNULIB_NONBLOCKING])
+  GNULIB_OPEN=0;         AC_SUBST([GNULIB_OPEN])
+  GNULIB_OPENAT=0;       AC_SUBST([GNULIB_OPENAT])
   dnl Assume proper GNU behavior unless another module says otherwise.
-  HAVE_FCNTL=1;     AC_SUBST([HAVE_FCNTL])
-  HAVE_OPENAT=1;    AC_SUBST([HAVE_OPENAT])
-  REPLACE_FCNTL=0;  AC_SUBST([REPLACE_FCNTL])
-  REPLACE_OPEN=0;   AC_SUBST([REPLACE_OPEN])
-  REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT])
+  HAVE_FCNTL=1;          AC_SUBST([HAVE_FCNTL])
+  HAVE_OPENAT=1;         AC_SUBST([HAVE_OPENAT])
+  REPLACE_FCNTL=0;       AC_SUBST([REPLACE_FCNTL])
+  REPLACE_OPEN=0;        AC_SUBST([REPLACE_OPEN])
+  REPLACE_OPENAT=0;      AC_SUBST([REPLACE_OPENAT])
 ])
index f192a62830ad71004b805431ee5ce3af56864614..b7be78324dc0c07b04cb9583f4b1b705941d0af3 100644 (file)
@@ -1,7 +1,7 @@
-# serial 5
+# serial 10
 # See if we need to provide fdopendir.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -10,16 +10,17 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_FDOPENDIR],
 [
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl FreeBSD 7.3 has the function, but failed to declare it.
   AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[
 #include <dirent.h>
     ]])
   AC_CHECK_FUNCS_ONCE([fdopendir])
   if test $ac_cv_func_fdopendir = no; then
-    AC_LIBOBJ([openat-proc])
-    AC_LIBOBJ([fdopendir])
-    gl_REPLACE_DIRENT_H
     HAVE_FDOPENDIR=0
   else
     AC_CACHE_CHECK([whether fdopendir works],
@@ -29,7 +30,11 @@ AC_DEFUN([gl_FUNC_FDOPENDIR],
 #include <fcntl.h>
 #include <unistd.h>
 #if !HAVE_DECL_FDOPENDIR
-extern DIR *fdopendir (int);
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
 #endif
 ]], [int result = 0;
      int fd = open ("conftest.c", O_RDONLY);
@@ -39,11 +44,18 @@ extern DIR *fdopendir (int);
      return result;])],
          [gl_cv_func_fdopendir_works=yes],
          [gl_cv_func_fdopendir_works=no],
-         [gl_cv_func_fdopendir_works="guessing no"])])
-    if test "$gl_cv_func_fdopendir_works" != yes; then
-      REPLACE_FDOPENDIR=1
-      gl_REPLACE_DIRENT_H
-      AC_LIBOBJ([fdopendir])
-    fi
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_fdopendir_works="guessing no" ;;
+          esac
+         ])])
+    case "$gl_cv_func_fdopendir_works" in
+      *yes) ;;
+      *)
+        REPLACE_FDOPENDIR=1
+        ;;
+    esac
   fi
 ])
index c8f99621b94dfb02b7aa18e1c4dfa431b73301d7..d1abd30a1b1a7f23970b2bfba8a0d21ee618c696 100644 (file)
@@ -1,16 +1,19 @@
-# fileblocks.m4 serial 5
-dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+# fileblocks.m4 serial 6
+dnl Copyright (C) 2002, 2005-2006, 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.
 
 AC_DEFUN([gl_FILEBLOCKS],
 [
-  AC_STRUCT_ST_BLOCKS
+  m4_pushdef([AC_LIBOBJ], [:])
   dnl Note: AC_STRUCT_ST_BLOCKS does AC_LIBOBJ([fileblocks]).
-  if test $ac_cv_member_struct_stat_st_blocks = no; then
-    gl_PREREQ_FILEBLOCKS
-  fi
+  AC_STRUCT_ST_BLOCKS
+  m4_popdef([AC_LIBOBJ])
+  dnl The stat-size module depends on this one and also assumes that
+  dnl HAVE_STRUCT_STAT_ST_BLOCKS is correctly defined.  So if you
+  dnl remove the call above, please make sure that this does not
+  dnl introduce a bug into lib/stat-size.h.
 ])
 
 # Prerequisites of lib/fileblocks.c.
index b90cf9e8dce2dcd8fc90f7e39c340976542a6c96..40946e82620876c27d42ca3026debad6a44b4a79 100644 (file)
@@ -1,5 +1,5 @@
-# filenamecat.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+# filenamecat.m4 serial 11
+dnl Copyright (C) 2002-2006, 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.
@@ -7,13 +7,10 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FILE_NAME_CONCAT],
 [
   AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
-  AC_LIBOBJ([filenamecat])
 ])
 
 AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
 [
-  AC_LIBOBJ([filenamecat-lgpl])
-
   dnl Prerequisites of lib/filenamecat-lgpl.c.
   AC_CHECK_FUNCS_ONCE([mempcpy])
 ])
index 265a4c1a6e0243bb4e947474b0f74edd4819a7e9..397f2d1faa3949a427df94eda7cdd0d8ad18ebab 100644 (file)
@@ -1,5 +1,5 @@
-# float_h.m4 serial 5
-dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# float_h.m4 serial 9
+dnl Copyright (C) 2007, 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.
@@ -9,11 +9,90 @@ AC_DEFUN([gl_FLOAT_H],
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST])
   FLOAT_H=
+  REPLACE_FLOAT_LDBL=0
   case "$host_os" in
-    beos* | openbsd* | mirbsd*)
+    aix* | beos* | openbsd* | mirbsd* | irix*)
       FLOAT_H=float.h
-      gl_NEXT_HEADERS([float.h])
+      ;;
+    freebsd*)
+      case "$host_cpu" in
+changequote(,)dnl
+        i[34567]86 )
+changequote([,])dnl
+          FLOAT_H=float.h
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          AC_EGREP_CPP([yes],
+            [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+             yes
+             #endif],
+            [],
+            [FLOAT_H=float.h])
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          FLOAT_H=float.h
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | linux*)
+      if test -n "$FLOAT_H"; then
+        REPLACE_FLOAT_LDBL=1
+      fi
       ;;
   esac
+
+  dnl Test against glibc-2.7 Linux/SPARC64 bug.
+  REPLACE_ITOLD=0
+  AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
+    [gl_cv_func_itold_works],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+int i = -1;
+volatile long double ld;
+int main ()
+{
+  ld += i * 1.0L;
+  if (ld > 0)
+    return 1;
+  return 0;
+}]])],
+        [gl_cv_func_itold_works=yes],
+        [gl_cv_func_itold_works=no],
+        [case "$host" in
+           sparc*-*-linux*)
+             AC_EGREP_CPP([yes],
+               [#if defined __LP64__ || defined __arch64__
+                yes
+                #endif],
+               [gl_cv_func_itold_works="guessing no"],
+               [gl_cv_func_itold_works="guessing yes"])
+             ;;
+           *) gl_cv_func_itold_works="guessing yes" ;;
+         esac
+        ])
+    ])
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+      dnl We add the workaround to <float.h> but also to <math.h>,
+      dnl to increase the chances that the fix function gets pulled in.
+      FLOAT_H=float.h
+      ;;
+  esac
+
+  if test -n "$FLOAT_H"; then
+    gl_NEXT_HEADERS([float.h])
+  fi
   AC_SUBST([FLOAT_H])
+  AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+  AC_SUBST([REPLACE_ITOLD])
 ])
index 9b537a7e0ccd851e7c968ae9800e4936c97e6549..fa0ba4d22b2f1a2f38ffaacaa5460eb204875626 100644 (file)
@@ -1,6 +1,6 @@
-# Check for fnmatch - serial 5.
+# Check for fnmatch - serial 9.
 
-# Copyright (C) 2000-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2007, 2009-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.
@@ -21,7 +21,7 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
 
   FNMATCH_H=
   gl_fnmatch_required_lowercase=`
-    echo $gl_fnmatch_required | tr '[[A-Z]]' '[[a-z]]'
+    echo $gl_fnmatch_required | LC_ALL=C tr '[[A-Z]]' '[[a-z]]'
   `
   gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
   AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch],
@@ -65,6 +65,8 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
               return 1;
             if (!y ("a*", "abc", 0))
               return 1;
+            if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+              return 1;
             if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
               return 2;
             if (!y ("a\\\\bc", "abc", 0))
@@ -126,19 +128,9 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX],
     rm -f "$gl_source_base/fnmatch.h"
   else
     FNMATCH_H=fnmatch.h
-    AC_LIBOBJ([fnmatch])
-    dnl We must choose a different name for our function, since on ELF systems
-    dnl a broken fnmatch() in libc.so would override our fnmatch() if it is
-    dnl compiled into a shared library.
-    AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch],
-      [Define to a replacement function name for fnmatch().])
-    dnl Prerequisites of lib/fnmatch.c.
-    AC_REQUIRE([AC_TYPE_MBSTATE_T])
-    AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
-    AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
-    AC_CHECK_HEADERS_ONCE([wctype.h])
   fi
   AC_SUBST([FNMATCH_H])
+  AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
 ])
 
 # Request a POSIX compliant fnmatch function with GNU extensions.
@@ -148,3 +140,17 @@ AC_DEFUN([gl_FUNC_FNMATCH_GNU],
 
   AC_REQUIRE([gl_FUNC_FNMATCH_POSIX])
 ])
+
+AC_DEFUN([gl_PREREQ_FNMATCH],
+[
+  dnl We must choose a different name for our function, since on ELF systems
+  dnl a broken fnmatch() in libc.so would override our fnmatch() if it is
+  dnl compiled into a shared library.
+  AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch],
+    [Define to a replacement function name for fnmatch().])
+  dnl Prerequisites of lib/fnmatch.c.
+  AC_REQUIRE([AC_TYPE_MBSTATE_T])
+  AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
+  AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
+  AC_CHECK_HEADERS_ONCE([wctype.h])
+])
index 314e0031b6ecc73320e9d04630060dc10b3cceb0..8f5856243170c34ce2d6cfbba5144e7228414dd3 100644 (file)
@@ -1,6 +1,6 @@
-# serial 15
+# serial 19
 
-# Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2004-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.
@@ -24,60 +24,67 @@ AC_DEFUN([gl_FUNC_FPENDING],
 #     endif
 '
   AC_CHECK_DECLS([__fpending], , , $fp_headers)
-  if test $ac_cv_func___fpending = no; then
-    AC_CACHE_CHECK(
+])
+
+AC_DEFUN([gl_PREREQ_FPENDING],
+[
+  AC_CACHE_CHECK(
               [how to determine the number of pending output bytes on a stream],
-                   ac_cv_sys_pending_output_n_bytes,
-      [
-        for ac_expr in                                                    \
-                                                                          \
-            '# glibc2'                                                    \
-            'fp->_IO_write_ptr - fp->_IO_write_base'                      \
-                                                                          \
-            '# traditional Unix'                                          \
-            'fp->_ptr - fp->_base'                                        \
-                                                                          \
-            '# BSD'                                                       \
-            'fp->_p - fp->_bf._base'                                      \
-                                                                          \
-            '# SCO, Unixware'                                             \
-            '(fp->__ptr ? fp->__ptr - fp->__base : 0)'                    \
-                                                                          \
-            '# QNX'                                                       \
-            '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
-                                                                          \
-            '# old glibc?'                                                \
-            'fp->__bufp - fp->__buffer'                                   \
-                                                                          \
-            '# old glibc iostream?'                                       \
-            'fp->_pptr - fp->_pbase'                                      \
-                                                                          \
-            '# emx+gcc'                                                   \
-            'fp->_ptr - fp->_buffer'                                      \
-                                                                          \
-            '# VMS'                                                       \
-            '(*fp)->_ptr - (*fp)->_base'                                  \
-                                                                          \
-            '# e.g., DGUX R4.11; the info is not available'               \
-            1                                                             \
-            ; do
+                 ac_cv_sys_pending_output_n_bytes,
+    [
+      for ac_expr in                                                    \
+                                                                        \
+          '# glibc2'                                                    \
+          'fp->_IO_write_ptr - fp->_IO_write_base'                      \
+                                                                        \
+          '# traditional Unix'                                          \
+          'fp->_ptr - fp->_base'                                        \
+                                                                        \
+          '# BSD'                                                       \
+          'fp->_p - fp->_bf._base'                                      \
+                                                                        \
+          '# SCO, Unixware'                                             \
+          '(fp->__ptr ? fp->__ptr - fp->__base : 0)'                    \
+                                                                        \
+          '# QNX'                                                       \
+          '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
+                                                                        \
+          '# old glibc?'                                                \
+          'fp->__bufp - fp->__buffer'                                   \
+                                                                        \
+          '# old glibc iostream?'                                       \
+          'fp->_pptr - fp->_pbase'                                      \
+                                                                        \
+          '# emx+gcc'                                                   \
+          'fp->_ptr - fp->_buffer'                                      \
+                                                                        \
+          '# Minix'                                                     \
+          'fp->_ptr - fp->_buf'                                         \
+                                                                        \
+          '# Plan9'                                                     \
+          'fp->wp - fp->buf'                                            \
+                                                                        \
+          '# VMS'                                                       \
+          '(*fp)->_ptr - (*fp)->_base'                                  \
+                                                                        \
+          '# e.g., DGUX R4.11; the info is not available'               \
+          1                                                             \
+          ; do
 
-          # Skip each embedded comment.
-          case "$ac_expr" in '#'*) continue;; esac
+        # Skip each embedded comment.
+        case "$ac_expr" in '#'*) continue;; esac
 
-          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
-            [[FILE *fp = stdin; (void) ($ac_expr);]])],
-            [fp_done=yes]
-          )
-          test "$fp_done" = yes && break
-        done
+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
+          [[FILE *fp = stdin; (void) ($ac_expr);]])],
+          [fp_done=yes]
+        )
+        test "$fp_done" = yes && break
+      done
 
-        ac_cv_sys_pending_output_n_bytes=$ac_expr
-      ]
-    )
-    AC_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
-      $ac_cv_sys_pending_output_n_bytes,
-      [the number of pending output bytes on stream `fp'])
-    AC_LIBOBJ([fpending])
-  fi
+      ac_cv_sys_pending_output_n_bytes=$ac_expr
+    ]
+  )
+  AC_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
+    $ac_cv_sys_pending_output_n_bytes,
+    [the number of pending output bytes on stream 'fp'])
 ])
diff --git a/m4/fseek.m4 b/m4/fseek.m4
new file mode 100644 (file)
index 0000000..74f6656
--- /dev/null
@@ -0,0 +1,15 @@
+# fseek.m4 serial 4
+dnl Copyright (C) 2007, 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.
+
+AC_DEFUN([gl_FUNC_FSEEK],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_FSEEKO])
+  dnl When fseeko needs fixes, fseek needs them too.
+  if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+    REPLACE_FSEEK=1
+  fi
+])
index 76507d128f0e754ca20a7414e1b6deecf0aa5a75..ca9da2835dc777ad03423156de9991e327e0b0a1 100644 (file)
@@ -1,5 +1,5 @@
-# fseeko.m4 serial 11
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# fseeko.m4 serial 17
+dnl Copyright (C) 2007-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.
@@ -7,28 +7,8 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_FSEEKO],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-  AC_REQUIRE([gl_HAVE_FSEEKO])
   AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
-
-  AC_CHECK_DECLS_ONCE([fseeko])
-  if test $ac_cv_have_decl_fseeko = no; then
-    HAVE_DECL_FSEEKO=0
-  fi
-
-  if test $gl_cv_func_fseeko = no; then
-    HAVE_FSEEKO=0
-    gl_REPLACE_FSEEKO
-  else
-    if test $gl_cv_var_stdin_large_offset = no; then
-      gl_REPLACE_FSEEKO
-    fi
-  fi
-])
-
-dnl Tests whether fseeko is available.
-dnl Result is gl_cv_func_fseeko.
-AC_DEFUN([gl_HAVE_FSEEKO],
-[
+  AC_REQUIRE([gl_SYS_TYPES_H])
   AC_REQUIRE([AC_PROG_CC])
 
   dnl Persuade glibc <stdio.h> to declare fseeko().
@@ -40,18 +20,28 @@ AC_DEFUN([gl_HAVE_FSEEKO],
 ]], [fseeko (stdin, 0, 0);])],
         [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no])
     ])
-])
 
-AC_DEFUN([gl_REPLACE_FSEEKO],
-[
-  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-  AC_REQUIRE([gl_HAVE_FSEEKO])
-  if test $gl_cv_func_fseeko = yes; then
-    REPLACE_FSEEKO=1
+  AC_CHECK_DECLS_ONCE([fseeko])
+  if test $ac_cv_have_decl_fseeko = no; then
+    HAVE_DECL_FSEEKO=0
+  fi
+
+  if test $gl_cv_func_fseeko = no; then
+    HAVE_FSEEKO=0
+  else
+    if test $WINDOWS_64_BIT_OFF_T = 1; then
+      REPLACE_FSEEKO=1
+    fi
+    if test $gl_cv_var_stdin_large_offset = no; then
+      REPLACE_FSEEKO=1
+    fi
+    m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+      gl_FUNC_FFLUSH_STDIN
+      if test $gl_cv_func_fflush_stdin != yes; then
+        REPLACE_FSEEKO=1
+      fi
+    ])
   fi
-  AC_LIBOBJ([fseeko])
-  dnl If we are also using the fseek module, then fseek needs replacing, too.
-  m4_ifdef([gl_REPLACE_FSEEK], [gl_REPLACE_FSEEK])
 ])
 
 dnl Code shared by fseeko and ftello.  Determine if large files are supported,
@@ -73,3 +63,11 @@ AC_DEFUN([gl_STDIN_LARGE_OFFSET],
         [gl_cv_var_stdin_large_offset=yes],
         [gl_cv_var_stdin_large_offset=no])])
 ])
+
+# Prerequisites of lib/fseeko.c.
+AC_DEFUN([gl_PREREQ_FSEEKO],
+[
+  dnl Native Windows has the function _fseeki64. mingw hides it, but mingw64
+  dnl makes it usable again.
+  AC_CHECK_FUNCS([_fseeki64])
+])
diff --git a/m4/fstat.m4 b/m4/fstat.m4
new file mode 100644 (file)
index 0000000..b2cf2ad
--- /dev/null
@@ -0,0 +1,36 @@
+# fstat.m4 serial 4
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_FSTAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FSTAT=1
+  fi
+
+  AC_REQUIRE([gl_HEADER_SYS_STAT_H])
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+    REPLACE_FSTAT=1
+  fi
+
+  dnl Replace fstat() for supporting the gnulib-defined open() on directories.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      case "$gl_cv_func_open_directory_works" in
+        *yes) ;;
+        *)
+          REPLACE_FSTAT=1
+          ;;
+      esac
+    fi
+  ])
+])
+
+# Prerequisites of lib/fstat.c.
+AC_DEFUN([gl_PREREQ_FSTAT], [:])
diff --git a/m4/fstatat.m4 b/m4/fstatat.m4
new file mode 100644 (file)
index 0000000..adbc7e5
--- /dev/null
@@ -0,0 +1,60 @@
+# fstatat.m4 serial 3
+dnl Copyright (C) 2004-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.
+
+# Written by Jim Meyering.
+
+# If we have the fstatat function, and it has the bug (in AIX 7.1)
+# that it does not fill in st_size correctly, use the replacement function.
+AC_DEFUN([gl_FUNC_FSTATAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_FUNCS_ONCE([fstatat])
+
+  if test $ac_cv_func_fstatat = no; then
+    HAVE_FSTATAT=0
+  else
+    dnl Test for an AIX 7.1 bug; see
+    dnl <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
+    AC_CACHE_CHECK([whether fstatat (..., 0) works],
+      [gl_cv_func_fstatat_zero_flag],
+      [AC_RUN_IFELSE(
+         [AC_LANG_SOURCE(
+            [[
+              #include <fcntl.h>
+              #include <sys/stat.h>
+              int
+              main (void)
+              {
+                struct stat a;
+                return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+              }
+            ]])],
+         [gl_cv_func_fstatat_zero_flag=yes],
+         [gl_cv_func_fstatat_zero_flag=no],
+         [case "$host_os" in
+            aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+            *)    gl_cv_func_fstatat_zero_flag="guessing yes";;
+          esac
+         ])
+      ])
+
+    case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+    *yes+*yes) ;;
+    *) REPLACE_FSTATAT=1
+       case $gl_cv_func_fstatat_zero_flag in
+       *yes)
+         AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
+           [Define to 1 if fstatat (..., 0) works.
+            For example, it does not work in AIX 7.1.])
+         ;;
+       esac
+       ;;
+    esac
+  fi
+])
index 72c6f25cbe4653e613070fc5b59622366c2a8a96..a159207a21a0580af88213548991f33cb48c4eae 100644 (file)
@@ -1,7 +1,7 @@
-# serial 5
+# serial 6
 # See if we need to provide futimens replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -15,7 +15,6 @@ AC_DEFUN([gl_FUNC_FUTIMENS],
   AC_CHECK_FUNCS_ONCE([futimens])
   if test $ac_cv_func_futimens = no; then
     HAVE_FUTIMENS=0
-    AC_LIBOBJ([futimens])
   else
     AC_CACHE_CHECK([whether futimens works],
       [gl_cv_func_futimens_works],
@@ -55,7 +54,6 @@ choke me
       rm -f conftest.file])
     if test "$gl_cv_func_futimens_works" != yes; then
       REPLACE_FUTIMENS=1
-      AC_LIBOBJ([futimens])
     fi
   fi
 ])
index 21be828b622f4d63ea1b0b805e1b6947f01e16b1..9b3b5636b9a175ea4aab9dc3ee6b121a53320892 100644 (file)
@@ -1,9 +1,9 @@
-# serial 2
+# serial 7
 # Determine whether getcwd aborts when the length of the working directory
 # name is unusually large.  Any length between 4k and 16k trigger the bug
 # when using glibc-2.4.90-9 or older.
 
-# Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2009-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.
@@ -14,6 +14,8 @@
 AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
 [
   AC_CHECK_DECLS_ONCE([getcwd])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
   AC_CHECK_FUNCS([getpagesize])
   AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k],
     gl_cv_func_getcwd_abort_bug,
@@ -21,15 +23,21 @@ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
      rm -rf confdir-14B---
      # Arrange for deletion of the temporary directory this test creates.
      ac_clean_files="$ac_clean_files confdir-14B---"
+     dnl Please keep this in sync with tests/test-getcwd.c.
      AC_RUN_IFELSE(
        [AC_LANG_SOURCE(
           [[
 #include <stdlib.h>
-#include <unistd.h>
-#include <limits.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
 #include <string.h>
 #include <sys/stat.h>
 
+]gl_PATHMAX_SNIPPET[
+
 /* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
 #undef mkdir
 
@@ -50,56 +58,81 @@ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
 int
 main ()
 {
-  char const *dir_name = "confdir-14B---";
   char *cwd;
   size_t initial_cwd_len;
   int fail = 0;
-  size_t desired_depth;
-  size_t d;
 
   /* The bug is triggered when PATH_MAX < getpagesize (), so skip
-     this relative expensive and invasive test if that's not true.  */
-  if (getpagesize () <= PATH_MAX)
+     this relatively expensive and invasive test if that's not true.  */
+#ifdef PATH_MAX
+  int bug_possible = PATH_MAX < getpagesize ();
+#else
+  int bug_possible = 0;
+#endif
+  if (! bug_possible)
     return 0;
 
   cwd = getcwd (NULL, 0);
   if (cwd == NULL)
-    return 0;
+    return 2;
 
   initial_cwd_len = strlen (cwd);
   free (cwd);
-  desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
-                   / (1 + strlen (dir_name)));
-  for (d = 0; d < desired_depth; d++)
+
+  if (1)
     {
-      if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
+      static char const dir_name[] = "confdir-14B---";
+      size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+                              / sizeof dir_name);
+      size_t d;
+      for (d = 0; d < desired_depth; d++)
         {
-          fail = 3; /* Unable to construct deep hierarchy.  */
-          break;
+          if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
+            {
+              if (! (errno == ERANGE || errno == ENAMETOOLONG
+                     || errno == ENOENT))
+                fail = 3; /* Unable to construct deep hierarchy.  */
+              break;
+            }
         }
-    }
 
-  /* If libc has the bug in question, this invocation of getcwd
-     results in a failed assertion.  */
-  cwd = getcwd (NULL, 0);
-  if (cwd == NULL)
-    fail = 4; /* getcwd failed.  This is ok, and expected.  */
-  free (cwd);
+      /* If libc has the bug in question, this invocation of getcwd
+         results in a failed assertion.  */
+      cwd = getcwd (NULL, 0);
+      if (cwd == NULL)
+        fail = 4; /* getcwd didn't assert, but it failed for a long name
+                     where the answer could have been learned.  */
+      free (cwd);
 
-  /* Call rmdir first, in case the above chdir failed.  */
-  rmdir (dir_name);
-  while (0 < d--)
-    {
-      if (chdir ("..") < 0)
-        break;
+      /* Call rmdir first, in case the above chdir failed.  */
       rmdir (dir_name);
+      while (0 < d--)
+        {
+          if (chdir ("..") < 0)
+            {
+              fail = 5;
+              break;
+            }
+          rmdir (dir_name);
+        }
     }
 
-  return 0;
+  return fail;
 }
           ]])],
     [gl_cv_func_getcwd_abort_bug=no],
-    [gl_cv_func_getcwd_abort_bug=yes],
+    [dnl An abort will provoke an exit code of something like 134 (128 + 6).
+     dnl An exit code of 4 can also occur (in OpenBSD 4.9, NetBSD 5.1 for
+     dnl example): getcwd (NULL, 0) fails rather than returning a string
+     dnl longer than PATH_MAX.  This may be POSIX compliant (in some
+     dnl interpretations of POSIX).  But gnulib's getcwd module wants to
+     dnl provide a non-NULL value in this case.
+     ret=$?
+     if test $ret -ge 128 || test $ret = 4; then
+       gl_cv_func_getcwd_abort_bug=yes
+     else
+       gl_cv_func_getcwd_abort_bug=no
+     fi],
     [gl_cv_func_getcwd_abort_bug=yes])
   ])
   AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2])
index 2ab264501c425c0a85b65df3688433660e13a025..0b03b66aba611a60086742cbb5bc99c4cbf4c574 100644 (file)
@@ -1,12 +1,12 @@
-# serial 15
+# serial 19
 # Check for several getcwd bugs with long file names.
 # If so, arrange to compile the wrapper function.
 
 # This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20.
 # I've heard that this is due to a Linux kernel bug, and that it has
-# been fixed between 2.4.21-pre3 and 2.4.21-pre4.  */
+# been fixed between 2.4.21-pre3 and 2.4.21-pre4.
 
-# Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2003-2007, 2009-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.
 AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX],
 [
   AC_CHECK_DECLS_ONCE([getcwd])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
   AC_CACHE_CHECK([whether getcwd handles long file names properly],
     gl_cv_func_getcwd_path_max,
     [# Arrange for deletion of the temporary directory this test creates.
      ac_clean_files="$ac_clean_files confdir3"
+     dnl Please keep this in sync with tests/test-getcwd.c.
      AC_RUN_IFELSE(
        [AC_LANG_SOURCE(
           [[
 #include <errno.h>
 #include <stdlib.h>
-#include <unistd.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
 #include <string.h>
 #include <limits.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <fcntl.h>
 
+]gl_PATHMAX_SNIPPET[
+
 #ifndef AT_FDCWD
 # define AT_FDCWD 0
 #endif
@@ -42,6 +52,9 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX],
 # define is_ENAMETOOLONG(x) 0
 #endif
 
+/* Use the getcwd function, not any macro.  */
+#undef getcwd
+
 /* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
 #undef mkdir
 
@@ -115,7 +128,12 @@ main ()
               fail = 11;
               break;
             }
-          if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+          if (c)
+            {
+              fail = 31;
+              break;
+            }
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
             {
               fail = 21;
               break;
@@ -175,14 +193,12 @@ main ()
     [gl_cv_func_getcwd_path_max=yes],
     [case $? in
      10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+     31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
      *) gl_cv_func_getcwd_path_max=no;;
      esac],
-    [gl_cv_func_getcwd_path_max=no])
+    [case "$host_os" in
+       aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+       *) gl_cv_func_getcwd_path_max=no;;
+     esac])
   ])
-  case $gl_cv_func_getcwd_path_max in
-  no,*)
-    AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1],
-      [Define to 1 if getcwd works, except it sometimes fails when it shouldn't,
-       setting errno to ERANGE, ENAMETOOLONG, or ENOENT.]);;
-  esac
 ])
index 70980567d756d4ec73504bb03d0d73deb3bad139..6f91bd99e5f45a425697903911512bc144781151 100644 (file)
@@ -1,25 +1,32 @@
 # getcwd.m4 - check for working getcwd that is compatible with glibc
 
-# Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-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.
 
 # Written by Paul Eggert.
-# serial 3
+# serial 12
 
 AC_DEFUN([gl_FUNC_GETCWD_NULL],
   [
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+   AC_CHECK_HEADERS_ONCE([unistd.h])
    AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
      [gl_cv_func_getcwd_null],
      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#        include <unistd.h>
+#        if HAVE_UNISTD_H
+#         include <unistd.h>
+#        else /* on Windows with MSVC */
+#         include <direct.h>
+#        endif
 #        ifndef getcwd
          char *getcwd ();
 #        endif
 ]], [[
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* mingw cwd does not start with '/', but getcwd does allocate.  */
+/* mingw cwd does not start with '/', but getcwd does allocate.
+   However, mingw fails to honor non-zero size.  */
 #else
            if (chdir ("/") != 0)
              return 1;
@@ -38,45 +45,108 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL],
          ]])],
         [gl_cv_func_getcwd_null=yes],
         [gl_cv_func_getcwd_null=no],
-        [[
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_getcwd_null="guessing yes";;
-                               # Guess yes on Cygwin.
-         cygwin*)              gl_cv_func_getcwd_null="guessing yes";;
-                               # Guess yes on mingw.
-         mingw*)               gl_cv_func_getcwd_null="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_getcwd_null="guessing no";;
-       esac
+        [[case "$host_os" in
+                     # Guess yes on glibc systems.
+            *-gnu*)  gl_cv_func_getcwd_null="guessing yes";;
+                     # Guess yes on Cygwin.
+            cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+                     # If we don't know, assume the worst.
+            *)       gl_cv_func_getcwd_null="guessing no";;
+          esac
         ]])])
 ])
 
+AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE],
+[
+  AC_CACHE_CHECK([for getcwd with POSIX signature],
+    [gl_cv_func_getcwd_posix_signature],
+    [AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[#include <unistd.h>]],
+         [[extern
+           #ifdef __cplusplus
+           "C"
+           #endif
+           char *getcwd (char *, size_t);
+         ]])
+      ],
+      [gl_cv_func_getcwd_posix_signature=yes],
+      [gl_cv_func_getcwd_posix_signature=no])
+   ])
+])
+
+dnl Guarantee that getcwd will malloc with a NULL first argument.  Assumes
+dnl that either the system getcwd is robust, or that calling code is okay
+dnl with spurious failures when run from a directory with an absolute name
+dnl larger than 4k bytes.
+dnl
+dnl Assumes that getcwd exists; if you are worried about obsolete
+dnl platforms that lacked getcwd(), then you need to use the GPL module.
+AC_DEFUN([gl_FUNC_GETCWD_LGPL],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+  AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+
+  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+  *yes,yes) ;;
+  *)
+    dnl Minimal replacement lib/getcwd-lgpl.c.
+    REPLACE_GETCWD=1
+    ;;
+  esac
+])
+
+dnl Check for all known getcwd bugs; useful for a program likely to be
+dnl executed from an arbitrary location.
 AC_DEFUN([gl_FUNC_GETCWD],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+  AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
 
   gl_abort_bug=no
-  case $gl_cv_func_getcwd_null,$host_os in
-  *,mingw*)
-    gl_cv_func_getcwd_path_max=yes;;
-  yes,*)
-    gl_FUNC_GETCWD_PATH_MAX
-    gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]);;
+  case "$host_os" in
+    mingw*)
+      gl_cv_func_getcwd_path_max=yes
+      ;;
+    *)
+      gl_FUNC_GETCWD_PATH_MAX
+      case "$gl_cv_func_getcwd_null" in
+        *yes)
+          gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes])
+          ;;
+      esac
+      ;;
+  esac
+  dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD
+  dnl if appropriate.
+  case "$gl_cv_func_getcwd_path_max" in
+    "no"|"no, it has the AIX bug") ;;
+    *)
+      AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1],
+        [Define to 1 if getcwd minimally works, that is, its result can be
+         trusted when it succeeds.])
+      ;;
+  esac
+  case "$gl_cv_func_getcwd_path_max" in
+    "no, but it is partly working")
+      AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1],
+        [Define to 1 if getcwd works, except it sometimes fails when it
+         shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.])
+      ;;
   esac
 
-  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in
-  *yes,yes,no) ;;
-  *)
+  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 \
+     || test $gl_abort_bug = yes; then
     REPLACE_GETCWD=1
-    AC_LIBOBJ([getcwd])
-    gl_PREREQ_GETCWD;;
-  esac
+  fi
 ])
 
-# Prerequisites of lib/getcwd.c.
+# Prerequisites of lib/getcwd.c, when full replacement is in effect.
 AC_DEFUN([gl_PREREQ_GETCWD],
 [
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
index ef1273668b45f24331e91511bccdea6aabf2a63d..36f66a108b9e7ad37795ce135398ab90b5480727 100644 (file)
@@ -1,6 +1,6 @@
-# getdelim.m4 serial 8
+# getdelim.m4 serial 10
 
-dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -19,6 +19,7 @@ AC_DEFUN([gl_FUNC_GETDELIM],
 
   AC_CHECK_FUNCS_ONCE([getdelim])
   if test $ac_cv_func_getdelim = yes; then
+    HAVE_GETDELIM=1
     dnl Found it in some library.  Verify that it works.
     AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim],
     [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
@@ -62,24 +63,21 @@ AC_DEFUN([gl_FUNC_GETDELIM],
  #endif
 #endif
          ],
-         [gl_cv_func_working_getdelim=yes],
-         [gl_cv_func_working_getdelim=no])]
+         [gl_cv_func_working_getdelim="guessing yes"],
+         [gl_cv_func_working_getdelim="guessing no"])]
     )])
+    case "$gl_cv_func_working_getdelim" in
+      *no)
+        REPLACE_GETDELIM=1
+        ;;
+    esac
   else
-    gl_cv_func_working_getdelim=no
+    HAVE_GETDELIM=0
   fi
 
   if test $ac_cv_have_decl_getdelim = no; then
     HAVE_DECL_GETDELIM=0
   fi
-
-  if test $gl_cv_func_working_getdelim = no; then
-    if test $ac_cv_func_getdelim = yes; then
-      REPLACE_GETDELIM=1
-    fi
-    AC_LIBOBJ([getdelim])
-    gl_PREREQ_GETDELIM
-  fi
 ])
 
 # Prerequisites of lib/getdelim.c.
index 55bda5a32e72e5ddef1c1dfb6683135175734f47..8f04b3b8c2ade753a5bfbb2103f7951a2d4a0fa1 100644 (file)
@@ -1,5 +1,5 @@
-# getdtablesize.m4 serial 1
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# getdtablesize.m4 serial 4
+dnl Copyright (C) 2008-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.
@@ -10,6 +10,8 @@ AC_DEFUN([gl_FUNC_GETDTABLESIZE],
   AC_CHECK_FUNCS_ONCE([getdtablesize])
   if test $ac_cv_func_getdtablesize != yes; then
     HAVE_GETDTABLESIZE=0
-    AC_LIBOBJ([getdtablesize])
   fi
 ])
+
+# Prerequisites of lib/getdtablesize.c.
+AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:])
index ec001b91be2dc2d55dfad756f889fa482e719166..342bc99052699e4504d00e0f3296a77a3008211a 100644 (file)
@@ -1,6 +1,6 @@
-# getline.m4 serial 23
+# getline.m4 serial 26
 
-dnl Copyright (C) 1998-2003, 2005-2007, 2009-2011 Free Software Foundation,
+dnl Copyright (C) 1998-2003, 2005-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl
 dnl This file is free software; the Free Software Foundation
@@ -70,8 +70,8 @@ AC_DEFUN([gl_FUNC_GETLINE],
  #endif
 #endif
          ],
-         [am_cv_func_working_getline=yes],
-         [am_cv_func_working_getline=no])]
+         [am_cv_func_working_getline="guessing yes"],
+         [am_cv_func_working_getline="guessing no"])]
     )])
   fi
 
@@ -79,19 +79,18 @@ AC_DEFUN([gl_FUNC_GETLINE],
     HAVE_DECL_GETLINE=0
   fi
 
-  if test $am_cv_func_working_getline = no; then
-    dnl Set REPLACE_GETLINE always: Even if we have not found the broken
-    dnl getline function among $LIBS, it may exist in libinet and the
-    dnl executable may be linked with -linet.
-    REPLACE_GETLINE=1
-    AC_LIBOBJ([getline])
-
-    gl_PREREQ_GETLINE
-  fi
+  case "$am_cv_func_working_getline" in
+    *no)
+      dnl Set REPLACE_GETLINE always: Even if we have not found the broken
+      dnl getline function among $LIBS, it may exist in libinet and the
+      dnl executable may be linked with -linet.
+      REPLACE_GETLINE=1
+      ;;
+  esac
 ])
 
 # Prerequisites of lib/getline.c.
 AC_DEFUN([gl_PREREQ_GETLINE],
 [
-  gl_FUNC_GETDELIM
+  :
 ])
index 035a530df2de2d4e1cca3664113531cf78302560..50f4509193eb4b6e57968988f6a253444c222b40 100644 (file)
@@ -1,5 +1,5 @@
-# getopt.m4 serial 34
-dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
+# getopt.m4 serial 44
+dnl Copyright (C) 2002-2006, 2008-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.
@@ -9,10 +9,22 @@ AC_DEFUN([gl_FUNC_GETOPT_POSIX],
 [
   m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX])
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  gl_GETOPT_IFELSE([
-    gl_REPLACE_GETOPT
-  ],
-  [])
+  AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
+  dnl Other modules can request the gnulib implementation of the getopt
+  dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS.
+  dnl argp.m4 does this.
+  m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [
+    REPLACE_GETOPT=1
+  ], [
+    REPLACE_GETOPT=0
+    if test -n "$gl_replace_getopt"; then
+      REPLACE_GETOPT=1
+    fi
+  ])
+  if test $REPLACE_GETOPT = 1; then
+    dnl Arrange for getopt.h to be created.
+    gl_GETOPT_SUBSTITUTE_HEADER
+  fi
 ])
 
 # Request a POSIX compliant getopt function with GNU extensions (such as
@@ -25,27 +37,6 @@ AC_DEFUN([gl_FUNC_GETOPT_GNU],
   AC_REQUIRE([gl_FUNC_GETOPT_POSIX])
 ])
 
-# Request the gnulib implementation of the getopt functions unconditionally.
-# argp.m4 uses this.
-AC_DEFUN([gl_REPLACE_GETOPT],
-[
-  dnl Arrange for getopt.h to be created.
-  gl_GETOPT_SUBSTITUTE_HEADER
-  dnl Arrange for unistd.h to include getopt.h.
-  GNULIB_UNISTD_H_GETOPT=1
-  dnl Arrange to compile the getopt implementation.
-  AC_LIBOBJ([getopt])
-  AC_LIBOBJ([getopt1])
-  gl_PREREQ_GETOPT
-])
-
-# emacs' configure.in uses this.
-AC_DEFUN([gl_GETOPT_IFELSE],
-[
-  AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
-  AS_IF([test -n "$gl_replace_getopt"], [$1], [$2])
-])
-
 # Determine whether to replace the entire getopt facility.
 AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
 [
@@ -75,11 +66,6 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
     AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes])
   fi
 
-  dnl mingw's getopt (in libmingwex.a) does weird things when the options
-  dnl strings starts with '+' and it's not the first call.  Some internal state
-  dnl is left over from earlier calls, and neither setting optind = 0 nor
-  dnl setting optreset = 1 get rid of this internal state.
-  dnl POSIX is silent on optind vs. optreset, so we allow either behavior.
   dnl POSIX 2008 does not specify leading '+' behavior, but see
   dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on
   dnl the next version of POSIX.  For now, we only guarantee leading '+'
@@ -88,30 +74,16 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
     AC_CACHE_CHECK([whether getopt is POSIX compatible],
       [gl_cv_func_getopt_posix],
       [
-        dnl BSD getopt_long uses an incompatible method to reset
-        dnl option processing.  Existence of the variable, in and of
-        dnl itself, is not a reason to replace getopt, but knowledge
-        dnl of the variable is needed to determine how to reset and
-        dnl whether a reset reparses the environment.  Solaris
-        dnl supports neither optreset nor optind=0, but keeps no state
-        dnl that needs a reset beyond setting optind=1; detect Solaris
-        dnl by getopt_clip.
-        AC_COMPILE_IFELSE(
-          [AC_LANG_PROGRAM(
-             [[#include <unistd.h>]],
-             [[int *p = &optreset; return optreset;]])],
-          [gl_optind_min=1],
-          [AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM(
-                [[#include <getopt.h>]],
-                [[return !getopt_clip;]])],
-             [gl_optind_min=1],
-             [gl_optind_min=0])])
-
-        dnl This test fails on mingw and succeeds on many other platforms.
-        gl_save_CPPFLAGS=$CPPFLAGS
-        CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
-        AC_RUN_IFELSE([AC_LANG_SOURCE([[
+        dnl Merging these three different test programs into a single one
+        dnl would require a reset mechanism. On BSD systems, it can be done
+        dnl through 'optreset'; on some others (glibc), it can be done by
+        dnl setting 'optind' to 0; on others again (HP-UX, IRIX, OSF/1,
+        dnl Solaris 9, musl libc), there is no such mechanism.
+        if test $cross_compiling = no; then
+          dnl Sanity check. Succeeds everywhere (except on MSVC,
+          dnl which lacks <unistd.h> and getopt() entirely).
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
@@ -119,91 +91,107 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
 int
 main ()
 {
-  {
-    int argc = 0;
-    char *argv[10];
-    int c;
-
-    argv[argc++] = "program";
-    argv[argc++] = "-a";
-    argv[argc++] = "foo";
-    argv[argc++] = "bar";
-    argv[argc] = NULL;
-    optind = OPTIND_MIN;
-    opterr = 0;
+  static char program[] = "program";
+  static char a[] = "-a";
+  static char foo[] = "foo";
+  static char bar[] = "bar";
+  char *argv[] = { program, a, foo, bar, NULL };
+  int c;
 
-    c = getopt (argc, argv, "ab");
-    if (!(c == 'a'))
-      return 1;
-    c = getopt (argc, argv, "ab");
-    if (!(c == -1))
-      return 2;
-    if (!(optind == 2))
-      return 3;
-  }
-  /* Some internal state exists at this point.  */
-  {
-    int argc = 0;
-    char *argv[10];
-    int c;
+  c = getopt (4, argv, "ab");
+  if (!(c == 'a'))
+    return 1;
+  c = getopt (4, argv, "ab");
+  if (!(c == -1))
+    return 2;
+  if (!(optind == 2))
+    return 3;
+  return 0;
+}
+]])],
+            [gl_cv_func_getopt_posix=maybe],
+            [gl_cv_func_getopt_posix=no])
+          if test $gl_cv_func_getopt_posix = maybe; then
+            dnl Sanity check with '+'. Succeeds everywhere (except on MSVC,
+            dnl which lacks <unistd.h> and getopt() entirely).
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
-    argv[argc++] = "program";
-    argv[argc++] = "donald";
-    argv[argc++] = "-p";
-    argv[argc++] = "billy";
-    argv[argc++] = "duck";
-    argv[argc++] = "-a";
-    argv[argc++] = "bar";
-    argv[argc] = NULL;
-    optind = OPTIND_MIN;
-    opterr = 0;
+int
+main ()
+{
+  static char program[] = "program";
+  static char donald[] = "donald";
+  static char p[] = "-p";
+  static char billy[] = "billy";
+  static char duck[] = "duck";
+  static char a[] = "-a";
+  static char bar[] = "bar";
+  char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+  int c;
 
-    c = getopt (argc, argv, "+abp:q:");
-    if (!(c == -1))
-      return 4;
-    if (!(strcmp (argv[0], "program") == 0))
-      return 5;
-    if (!(strcmp (argv[1], "donald") == 0))
-      return 6;
-    if (!(strcmp (argv[2], "-p") == 0))
-      return 7;
-    if (!(strcmp (argv[3], "billy") == 0))
-      return 8;
-    if (!(strcmp (argv[4], "duck") == 0))
-      return 9;
-    if (!(strcmp (argv[5], "-a") == 0))
-      return 10;
-    if (!(strcmp (argv[6], "bar") == 0))
-      return 11;
-    if (!(optind == 1))
-      return 12;
-  }
-  /* Detect MacOS 10.5, AIX 7.1 bug.  */
-  {
-    char *argv[3] = { "program", "-ab", NULL };
-    optind = OPTIND_MIN;
-    opterr = 0;
-    if (getopt (2, argv, "ab:") != 'a')
-      return 13;
-    if (getopt (2, argv, "ab:") != '?')
-      return 14;
-    if (optopt != 'b')
-      return 15;
-    if (optind != 2)
-      return 16;
-  }
+  c = getopt (7, argv, "+abp:q:");
+  if (!(c == -1))
+    return 4;
+  if (!(strcmp (argv[0], "program") == 0))
+    return 5;
+  if (!(strcmp (argv[1], "donald") == 0))
+    return 6;
+  if (!(strcmp (argv[2], "-p") == 0))
+    return 7;
+  if (!(strcmp (argv[3], "billy") == 0))
+    return 8;
+  if (!(strcmp (argv[4], "duck") == 0))
+    return 9;
+  if (!(strcmp (argv[5], "-a") == 0))
+    return 10;
+  if (!(strcmp (argv[6], "bar") == 0))
+    return 11;
+  if (!(optind == 1))
+    return 12;
+  return 0;
+}
+]])],
+              [gl_cv_func_getopt_posix=maybe],
+              [gl_cv_func_getopt_posix=no])
+          fi
+          if test $gl_cv_func_getopt_posix = maybe; then
+            dnl Detect Mac OS X 10.5, AIX 7.1, mingw bug.
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
 
+int
+main ()
+{
+  static char program[] = "program";
+  static char ab[] = "-ab";
+  char *argv[3] = { program, ab, NULL };
+  if (getopt (2, argv, "ab:") != 'a')
+    return 13;
+  if (getopt (2, argv, "ab:") != '?')
+    return 14;
+  if (optopt != 'b')
+    return 15;
+  if (optind != 2)
+    return 16;
   return 0;
 }
 ]])],
-          [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no],
-          [case "$host_os" in
-             mingw*)         gl_cv_func_getopt_posix="guessing no";;
-             darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
-             *)              gl_cv_func_getopt_posix="guessing yes";;
-           esac
-          ])
-        CPPFLAGS=$gl_save_CPPFLAGS
+              [gl_cv_func_getopt_posix=yes],
+              [gl_cv_func_getopt_posix=no])
+          fi
+        else
+          case "$host_os" in
+            darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";;
+            *)                       gl_cv_func_getopt_posix="guessing yes";;
+          esac
+        fi
       ])
     case "$gl_cv_func_getopt_posix" in
       *no) gl_replace_getopt=yes ;;
@@ -232,25 +220,32 @@ dnl is ambiguous with environment values that contain newlines.
         [AC_LANG_PROGRAM([[#include <getopt.h>
                            #include <stddef.h>
                            #include <string.h>
+           ]GL_NOCRASH[
            ]], [[
              int result = 0;
+
+             nocrash_init();
+
              /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
-                and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
+                and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
                 OSF/1 5.1, Solaris 10.  */
              {
-               char *myargv[3];
-               myargv[0] = "conftest";
-               myargv[1] = "-+";
-               myargv[2] = 0;
+               static char conftest[] = "conftest";
+               static char plus[] = "-+";
+               char *argv[3] = { conftest, plus, NULL };
                opterr = 0;
-               if (getopt (2, myargv, "+a") != '?')
+               if (getopt (2, argv, "+a") != '?')
                  result |= 1;
              }
              /* This code succeeds on glibc 2.8, mingw,
-                and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+                and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
                 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
              {
-               char *argv[] = { "program", "-p", "foo", "bar", NULL };
+               static char program[] = "program";
+               static char p[] = "-p";
+               static char foo[] = "foo";
+               static char bar[] = "bar";
+               char *argv[] = { program, p, foo, bar, NULL };
 
                optind = 1;
                if (getopt (4, argv, "p::") != 'p')
@@ -264,32 +259,44 @@ dnl is ambiguous with environment values that contain newlines.
              }
              /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0.  */
              {
-               char *argv[] = { "program", "foo", "-p", NULL };
+               static char program[] = "program";
+               static char foo[] = "foo";
+               static char p[] = "-p";
+               char *argv[] = { program, foo, p, NULL };
                optind = 0;
                if (getopt (3, argv, "-p") != 1)
                  result |= 16;
                else if (getopt (3, argv, "-p") != 'p')
-                 result |= 32;
+                 result |= 16;
              }
              /* This code fails on glibc 2.11.  */
              {
-               char *argv[] = { "program", "-b", "-a", NULL };
+               static char program[] = "program";
+               static char b[] = "-b";
+               static char a[] = "-a";
+               char *argv[] = { program, b, a, NULL };
                optind = opterr = 0;
                if (getopt (3, argv, "+:a:b") != 'b')
-                 result |= 64;
+                 result |= 32;
                else if (getopt (3, argv, "+:a:b") != ':')
+                 result |= 32;
+             }
+             /* This code dumps core on glibc 2.14.  */
+             {
+               static char program[] = "program";
+               static char w[] = "-W";
+               static char dummy[] = "dummy";
+               char *argv[] = { program, w, dummy, NULL };
+               optind = opterr = 1;
+               if (getopt (3, argv, "W;") != 'W')
                  result |= 64;
              }
              return result;
            ]])],
         [gl_cv_func_getopt_gnu=yes],
         [gl_cv_func_getopt_gnu=no],
-        [dnl Cross compiling. Guess based on host and declarations.
-         case $host_os:$ac_cv_have_decl_optreset in
-           *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;;
-           *:yes)               gl_cv_func_getopt_gnu=no;;
-           *)                   gl_cv_func_getopt_gnu=yes;;
-         esac
+        [dnl Cross compiling. Assume the worst, even on glibc platforms.
+         gl_cv_func_getopt_gnu="guessing no"
         ])
        case $gl_had_POSIXLY_CORRECT in
          exported) ;;
@@ -297,13 +304,54 @@ dnl is ambiguous with environment values that contain newlines.
          *) AS_UNSET([POSIXLY_CORRECT]) ;;
        esac
       ])
-    if test "$gl_cv_func_getopt_gnu" = "no"; then
+    if test "$gl_cv_func_getopt_gnu" != yes; then
       gl_replace_getopt=yes
+    else
+      AC_CACHE_CHECK([for working GNU getopt_long function],
+        [gl_cv_func_getopt_long_gnu],
+        [AC_RUN_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <getopt.h>
+                #include <stddef.h>
+                #include <string.h>
+              ]],
+              [[static const struct option long_options[] =
+                  {
+                    { "xtremely-",no_argument,       NULL, 1003 },
+                    { "xtra",     no_argument,       NULL, 1001 },
+                    { "xtreme",   no_argument,       NULL, 1002 },
+                    { "xtremely", no_argument,       NULL, 1003 },
+                    { NULL,       0,                 NULL, 0 }
+                  };
+                /* This code fails on OpenBSD 5.0.  */
+                {
+                  static char program[] = "program";
+                  static char xtremel[] = "--xtremel";
+                  char *argv[] = { program, xtremel, NULL };
+                  int option_index;
+                  optind = 1; opterr = 0;
+                  if (getopt_long (2, argv, "", long_options, &option_index) != 1003)
+                    return 1;
+                }
+                return 0;
+              ]])],
+           [gl_cv_func_getopt_long_gnu=yes],
+           [gl_cv_func_getopt_long_gnu=no],
+           [dnl Cross compiling. Guess no on OpenBSD, yes otherwise.
+            case "$host_os" in
+              openbsd*) gl_cv_func_getopt_long_gnu="guessing no";;
+              *)        gl_cv_func_getopt_long_gnu="guessing yes";;
+            esac
+           ])
+        ])
+      case "$gl_cv_func_getopt_long_gnu" in
+        *yes) ;;
+        *) gl_replace_getopt=yes ;;
+      esac
     fi
   fi
 ])
 
-# emacs' configure.in uses this.
 AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
 [
   GETOPT_H=getopt.h
@@ -314,7 +362,6 @@ AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
 ])
 
 # Prerequisites of lib/getopt*.
-# emacs' configure.in uses this.
 AC_DEFUN([gl_PREREQ_GETOPT],
 [
   AC_CHECK_DECLS_ONCE([getenv])
index 79dfbbe493303165d640551fa0f4c79cf0d6f34b..06e893d7cf634a01f3c6832b967d1ebbf75c7c40 100644 (file)
@@ -1,5 +1,5 @@
-# getpagesize.m4 serial 8
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2011 Free Software Foundation,
+# getpagesize.m4 serial 9
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2013 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,
@@ -24,7 +24,6 @@ AC_DEFUN([gl_FUNC_GETPAGESIZE],
   case "$host_os" in
     mingw*)
       REPLACE_GETPAGESIZE=1
-      AC_LIBOBJ([getpagesize])
       ;;
   esac
   dnl Also check whether it's declared.
index 089058e4bb7c3ab06b5d47c44993691d2d69dfea..2aaaf54341c7d33af433cd52a7cbd26019d66098 100644 (file)
@@ -1,5 +1,5 @@
-# gettext.m4 serial 64 (gettext-0.18.2)
-dnl Copyright (C) 1995-2011 Free Software Foundation, Inc.
+# gettext.m4 serial 66 (gettext-0.18.2)
+dnl Copyright (C) 1995-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.
@@ -35,7 +35,7 @@ dnl    will be ignored.  If NEEDSYMBOL is specified and is
 dnl    'need-formatstring-macros', then GNU gettext implementations that don't
 dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
 dnl INTLDIR is used to find the intl libraries.  If empty,
-dnl    the value `$(top_builddir)/intl/' is used.
+dnl    the value '$(top_builddir)/intl/' is used.
 dnl
 dnl The result of the configuration is one of three cases:
 dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
@@ -97,7 +97,7 @@ AC_DEFUN([AM_GNU_GETTEXT],
     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
   ])
 
-  dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+  dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
   gt_INTL_MACOSX
 
   dnl Set USE_NLS.
index 2b148abb5cf12ab68eac652e49f2a59bb100bd82..dc100de5e4b8e0cef838ec6e35ab233b45647e23 100644 (file)
@@ -1,13 +1,11 @@
-# gettime.m4 serial 7
-dnl Copyright (C) 2002, 2004-2006, 2009-2011 Free Software Foundation, Inc.
+# gettime.m4 serial 8
+dnl Copyright (C) 2002, 2004-2006, 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.
 
 AC_DEFUN([gl_GETTIME],
 [
-  AC_LIBOBJ([gettime])
-
   dnl Prerequisites of lib/gettime.c.
   AC_REQUIRE([gl_CLOCK_TIME])
   AC_REQUIRE([gl_TIMESPEC])
index 84acadf216ffb8b179387f5d25bc26956905b754..3c05e59f0636f393c2cf6361b1fd7bf065ffdf5f 100644 (file)
@@ -1,6 +1,6 @@
-# serial 15
+# serial 20
 
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-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.
@@ -17,8 +17,6 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY],
   gl_gettimeofday_timezone=void
   if test $ac_cv_func_gettimeofday != yes; then
     HAVE_GETTIMEOFDAY=0
-    AC_LIBOBJ([gettimeofday])
-    gl_PREREQ_GETTIMEOFDAY
   else
     gl_FUNC_GETTIMEOFDAY_CLOBBER
     AC_CACHE_CHECK([for gettimeofday with POSIX signature],
@@ -51,9 +49,24 @@ int gettimeofday (struct timeval *restrict, struct timezone *restrict);
       gl_gettimeofday_timezone='struct timezone'
     elif test $gl_cv_func_gettimeofday_posix_signature != yes; then
       REPLACE_GETTIMEOFDAY=1
-      AC_LIBOBJ([gettimeofday])
-      gl_PREREQ_GETTIMEOFDAY
     fi
+    dnl If we override 'struct timeval', we also have to override gettimeofday.
+    if test $REPLACE_STRUCT_TIMEVAL = 1; then
+      REPLACE_GETTIMEOFDAY=1
+    fi
+    m4_ifdef([gl_FUNC_TZSET_CLOBBER], [
+      gl_FUNC_TZSET_CLOBBER
+      case "$gl_cv_func_tzset_clobber" in
+        *yes)
+          REPLACE_GETTIMEOFDAY=1
+          gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+          AC_DEFINE([tzset], [rpl_tzset],
+            [Define to rpl_tzset if the wrapper function should be used.])
+          AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1],
+            [Define if tzset clobbers localtime's static buffer.])
+          ;;
+      esac
+    ])
   fi
   AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone],
     [Define this to 'void' or 'struct timezone' to match the system's
@@ -71,6 +84,7 @@ dnl the wrapper functions that work around the problem.
 AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
 [
  AC_REQUIRE([gl_HEADER_SYS_TIME_H])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
 
  AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
   [gl_cv_func_gettimeofday_clobber],
@@ -93,20 +107,26 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
         ]])],
      [gl_cv_func_gettimeofday_clobber=no],
      [gl_cv_func_gettimeofday_clobber=yes],
-     dnl When crosscompiling, assume it is broken.
-     [gl_cv_func_gettimeofday_clobber=yes])])
+     [# When cross-compiling:
+      case "$host_os" in
+                # Guess all is fine on glibc systems.
+        *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+                # If we don't know, assume the worst.
+        *)      gl_cv_func_gettimeofday_clobber="guessing yes" ;;
+      esac
+     ])])
 
- if test $gl_cv_func_gettimeofday_clobber = yes; then
-   REPLACE_GETTIMEOFDAY=1
-   gl_GETTIMEOFDAY_REPLACE_LOCALTIME
-   AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1],
-     [Define if gettimeofday clobbers the localtime buffer.])
- fi
+ case "$gl_cv_func_gettimeofday_clobber" in
+   *yes)
+     REPLACE_GETTIMEOFDAY=1
+     gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+     AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1],
+       [Define if gettimeofday clobbers the localtime buffer.])
+     ;;
+ esac
 ])
 
 AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
-  AC_LIBOBJ([gettimeofday])
-  gl_PREREQ_GETTIMEOFDAY
   AC_DEFINE([gmtime], [rpl_gmtime],
     [Define to rpl_gmtime if the replacement function should be used.])
   AC_DEFINE([localtime], [rpl_localtime],
index bc81c110b8f877adf4610edc6093b3187985cb14..613fb2a41eca08dd5d060ccf31c56fa80b59fcef 100644 (file)
@@ -1,5 +1,5 @@
 # glibc21.m4 serial 5
-dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2011 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 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 ecbf33694e2e5728c1aca40ffacc00c627846675..0ae5a9ec6624a937b3c320d3b804c30d5d20dc1d 100644 (file)
@@ -1,5 +1,5 @@
-# gnulib-common.m4 serial 23
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 33
+dnl Copyright (C) 2007-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.
@@ -12,11 +12,25 @@ AC_DEFUN([gl_COMMON], [
   AC_REQUIRE([gl_COMMON_BODY])
 ])
 AC_DEFUN([gl_COMMON_BODY], [
+  AH_VERBATIM([_Noreturn],
+[/* The _Noreturn keyword of C11.  */
+#if ! (defined _Noreturn \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+])
   AH_VERBATIM([isoc99_inline],
 [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
@@ -34,6 +48,20 @@ AC_DEFUN([gl_COMMON_BODY], [
 /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
+
+/* The __pure__ attribute was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
 ])
   dnl Preparation for running test programs:
   dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
@@ -47,16 +75,49 @@ AC_DEFUN([gl_COMMON_BODY], [
 # expands to a C preprocessor expression that evaluates to 1 or 0, depending
 # whether a gnulib module that has been requested shall be considered present
 # or not.
-AC_DEFUN([gl_MODULE_INDICATOR_CONDITION], [1])
+m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
 
 # gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
 # sets the shell variable that indicates the presence of the given module to
 # a C preprocessor expression that will evaluate to 1.
 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
 [
-  GNULIB_[]m4_translit([[$1]],
-    [abcdefghijklmnopqrstuvwxyz./-],
-    [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=gl_MODULE_INDICATOR_CONDITION
+  gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+    [GNULIB_[]m4_translit([[$1]],
+                          [abcdefghijklmnopqrstuvwxyz./-],
+                          [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+    [gl_MODULE_INDICATOR_CONDITION])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
+# modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
+# The shell variable's value is a C preprocessor expression that evaluates
+# to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
+[
+  m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
+    [
+     dnl Simplify the expression VALUE || 1 to 1.
+     $1=1
+    ],
+    [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
+                                             [gl_MODULE_INDICATOR_CONDITION])])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
+# modifies the shell variable to include the given condition.  The shell
+# variable's value is a C preprocessor expression that evaluates to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
+[
+  dnl Simplify the expression 1 || CONDITION to 1.
+  if test "$[]$1" != 1; then
+    dnl Simplify the expression 0 || CONDITION to CONDITION.
+    if test "$[]$1" = 0; then
+      $1=$2
+    else
+      $1="($[]$1 || $2)"
+    fi
+  fi
 ])
 
 # gl_MODULE_INDICATOR([modulename])
@@ -109,7 +170,8 @@ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS],
 AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
 [
   dnl Override gl_WARN_ON_USE_PREPARE.
-  AC_DEFUN([gl_WARN_ON_USE_PREPARE], [])
+  dnl But hide this definition from 'aclocal'.
+  AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
 ])
 
 # gl_ASSERT_NO_GNULIB_TESTS
@@ -150,11 +212,90 @@ m4_ifndef([AS_VAR_IF],
 [m4_define([AS_VAR_IF],
 [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])])
 
+# gl_PROG_CC_C99
+# Modifies the value of the shell variable CC in an attempt to make $CC
+# understand ISO C99 source code.
+# This is like AC_PROG_CC_C99, except that
+# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60,
+# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00367.html>,
+#   but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00441.html>.
+# Remaining problems:
+# - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options
+#   to CC twice
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00431.html>.
+# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard.
+AC_DEFUN([gl_PROG_CC_C99],
+[
+  dnl Change that version number to the minimum Autoconf version that supports
+  dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls.
+  m4_version_prereq([9.0],
+    [AC_REQUIRE([AC_PROG_CC_C99])],
+    [AC_REQUIRE([AC_PROG_CC_STDC])])
+])
+
+# gl_PROG_AR_RANLIB
+# Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
+# The user can set the variables AR, ARFLAGS, RANLIB if he wants to override
+# the values.
+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 produce libraries that work only with gcc, not with cc.
+  AC_REQUIRE([AC_PROG_CC])
+  AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
+    [
+      AC_EGREP_CPP([Amsterdam],
+        [
+#ifdef __ACK__
+Amsterdam
+#endif
+        ],
+        [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
+      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'
+    fi
+  fi
+  AC_SUBST([AR])
+  AC_SUBST([ARFLAGS])
+  if test -z "$RANLIB"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      RANLIB=':'
+    else
+      dnl Use the ranlib program if it is available.
+      AC_PROG_RANLIB
+    fi
+  fi
+  AC_SUBST([RANLIB])
+])
+
 # AC_PROG_MKDIR_P
 # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
 # for interoperability with automake-1.9.6 from autoconf-2.62.
 # Remove this macro when we can assume autoconf >= 2.62 or
 # autoconf >= 2.60 && automake >= 1.10.
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 m4_ifdef([AC_PROG_MKDIR_P], [
   dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
   m4_define([AC_PROG_MKDIR_P],
@@ -165,13 +306,15 @@ m4_ifdef([AC_PROG_MKDIR_P], [
     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
      MKDIR_P='$(mkdir_p)'
      AC_SUBST([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.
-m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 AC_DEFUN([AC_C_RESTRICT],
 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
   [ac_cv_c_restrict=no
index 837538e414bf376496584a4447a24c6ac266bd20..21c05ad59e3c92df5e5c37b6a51331e45fb83342 100644 (file)
@@ -1,12 +1,24 @@
 # -*- buffer-read-only: t -*- vi: set ro:
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2011 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
@@ -27,29 +39,34 @@ 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
-  AC_REQUIRE([AC_PROG_RANLIB])
+  AC_REQUIRE([gl_PROG_AR_RANLIB])
   AC_REQUIRE([AM_PROG_CC_C_O])
+  # Code from module acl:
   # Code from module alloca:
   # Code from module alloca-opt:
+  # Code from module allocator:
   # Code from module areadlink:
   # Code from module areadlinkat:
-  # Code from module arg-nonnull:
   # Code from module argmatch:
   # Code from module argp:
   # Code from module argp-version-etc:
+  # Code from module at-internal:
   # Code from module backupfile:
   # Code from module bitrotate:
   # Code from module btowc:
-  # Code from module c++defs:
   # Code from module c-ctype:
+  # Code from module c-strcase:
+  # Code from module c-strcaseeq:
   # Code from module canonicalize-lgpl:
+  # Code from module careadlinkat:
+  # Code from module chdir:
   # Code from module chdir-long:
   # Code from module chown:
   # Code from module clock-time:
   # Code from module cloexec:
   # Code from module close:
-  # Code from module close-hook:
   # Code from module close-stream:
+  # Code from module closedir:
   # Code from module closeout:
   # Code from module configmake:
   # Code from module d-ino:
@@ -60,6 +77,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module dirname-lgpl:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dup:
   # Code from module dup2:
   # Code from module environ:
   # Code from module errno:
@@ -68,23 +86,31 @@ AC_DEFUN([gl_EARLY],
   # Code from module exitfail:
   # Code from module extensions:
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  # Code from module extern-inline:
   # Code from module fchdir:
-  # Code from module fclose:
+  # Code from module fchmodat:
+  # Code from module fchownat:
   # Code from module fcntl:
   # Code from module fcntl-h:
+  # Code from module fd-hook:
   # Code from module fdopendir:
   # Code from module fdutimensat:
   # Code from module fileblocks:
+  # Code from module filename:
   # Code from module filenamecat-lgpl:
   # Code from module float:
   # Code from module fnmatch:
   # Code from module fnmatch-gnu:
   # Code from module fpending:
+  # Code from module fseek:
   # Code from module fseeko:
   AC_REQUIRE([AC_FUNC_FSEEKO])
+  # Code from module fstat:
+  # Code from module fstatat:
   # Code from module full-write:
   # Code from module futimens:
   # Code from module getcwd:
+  # Code from module getcwd-lgpl:
   # Code from module getdelim:
   # Code from module getdtablesize:
   # Code from module getline:
@@ -100,22 +126,27 @@ AC_DEFUN([gl_EARLY],
   # Code from module havelib:
   # Code from module human:
   # Code from module include_next:
-  # Code from module inline:
   # Code from module intprops:
   # Code from module inttostr:
   # Code from module inttypes:
+  # Code from module inttypes-incomplete:
   # Code from module iswblank:
   # Code from module langinfo:
+  # Code from module largefile:
+  AC_REQUIRE([AC_SYS_LARGEFILE])
   # Code from module lchown:
   # Code from module link:
   # Code from module link-follow:
   # Code from module linkat:
   # Code from module localcharset:
+  # Code from module locale:
+  # Code from module localeconv:
   # Code from module lseek:
   # Code from module lstat:
   # Code from module malloc-gnu:
   # Code from module malloc-posix:
   # Code from module malloca:
+  # Code from module manywarnings:
   # Code from module mbchar:
   # Code from module mbrtowc:
   # Code from module mbscasecmp:
@@ -127,53 +158,76 @@ AC_DEFUN([gl_EARLY],
   # Code from module mempcpy:
   # Code from module memrchr:
   # Code from module mkdir:
+  # Code from module mkdirat:
   # Code from module mkdtemp:
   # Code from module mkfifo:
   # Code from module mkfifoat:
   # Code from module mknod:
   # Code from module mktime:
   # Code from module modechange:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nl_langinfo:
+  # Code from module nocrash:
   # Code from module obstack:
   # Code from module open:
   # Code from module openat:
   # Code from module openat-die:
+  # Code from module openat-h:
+  # Code from module opendir:
   # Code from module parse-datetime:
   # Code from module pathmax:
   # Code from module priv-set:
   # Code from module progname:
+  # Code from module qacl:
   # Code from module quote:
   # Code from module quotearg:
   # Code from module quotearg-simple:
+  # Code from module raise:
   # Code from module rawmemchr:
+  # Code from module read:
+  # Code from module readdir:
   # Code from module readlink:
   # Code from module readlinkat:
   # Code from module realloc-posix:
   # Code from module regex:
   # Code from module rename:
   # Code from module renameat:
+  # Code from module rewinddir:
   # Code from module rmdir:
+  # Code from module root-uid:
   # Code from module rpmatch:
   # Code from module safe-read:
   # Code from module safe-write:
   # Code from module same-inode:
   # Code from module save-cwd:
   # Code from module savedir:
+  # Code from module secure_getenv:
+  # Code from module selinux-at:
+  # Code from module selinux-h:
   # Code from module setenv:
+  # Code from module signal-h:
   # Code from module size_max:
   # Code from module sleep:
+  # Code from module snippet/_Noreturn:
+  # Code from module snippet/arg-nonnull:
+  # Code from module snippet/c++defs:
+  # Code from module snippet/unused-parameter:
+  # Code from module snippet/warn-on-use:
   # Code from module snprintf:
   # Code from module ssize_t:
   # Code from module stat:
   # Code from module stat-macros:
   # Code from module stat-time:
+  # Code from module statat:
+  # Code from module stdalign:
   # 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,
-  dnl AC_PROG_CC_STDC arranges for this.  With older Autoconf AC_PROG_CC_STDC
+  dnl gl_PROG_CC_C99 arranges for this.  With older Autoconf gl_PROG_CC_C99
   dnl shouldn't hurt, though installers are on their own to set c99 mode.
-  AC_REQUIRE([AC_PROG_CC_STDC])
+  gl_PROG_CC_C99
   # Code from module stdbool:
   # Code from module stddef:
   # Code from module stdint:
@@ -185,14 +239,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module strdup-posix:
   # Code from module streq:
   # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module string:
   # Code from module strings:
   # Code from module strndup:
   # Code from module strnlen:
   # Code from module strnlen1:
-  # Code from module strtoimax:
   # Code from module strtol:
-  # Code from module strtoll:
   # Code from module strtoul:
   # Code from module strtoull:
   # Code from module strtoumax:
@@ -200,6 +253,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module symlinkat:
   # Code from module sys_stat:
   # Code from module sys_time:
+  # Code from module sys_types:
   # Code from module sysexits:
   # Code from module tempname:
   # Code from module time:
@@ -211,6 +265,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module uniwidth/base:
   # Code from module uniwidth/width:
   # Code from module unlink:
+  # Code from module unlinkat:
   # Code from module unlinkdir:
   # Code from module unlocked-io:
   # Code from module unsetenv:
@@ -222,7 +277,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module version-etc:
   # Code from module version-etc-fsf:
   # Code from module vsnprintf:
-  # Code from module warn-on-use:
+  # Code from module warnings:
   # Code from module wchar:
   # Code from module wcrtomb:
   # Code from module wctype-h:
@@ -230,6 +285,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module write:
   # Code from module xalloc:
   # Code from module xalloc-die:
+  # Code from module xalloc-oversized:
   # Code from module xgetcwd:
   # Code from module xsize:
   # Code from module xstrndup:
@@ -254,482 +310,721 @@ AC_DEFUN([gl_INIT],
   m4_pushdef([gl_LIBSOURCES_DIR], [])
   gl_COMMON
   gl_source_base='gnu'
-  # Code from module alloca:
-  # Code from module alloca-opt:
   gl_FUNC_ALLOCA
-  # Code from module areadlink:
-  # Code from module areadlinkat:
   gl_MODULE_INDICATOR([areadlinkat])
-  # Code from module arg-nonnull:
-  # Code from module argmatch:
-  gl_ARGMATCH
-  # Code from module argp:
   gl_ARGP
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format])
      AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])])
-  # Code from module argp-version-etc:
-  # Code from module backupfile:
+  AC_LIBOBJ([openat-proc])
   gl_BACKUPFILE
-  # Code from module bitrotate:
-  AC_REQUIRE([AC_C_INLINE])
-  # Code from module btowc:
   gl_FUNC_BTOWC
+  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+    AC_LIBOBJ([btowc])
+    gl_PREREQ_BTOWC
+  fi
   gl_WCHAR_MODULE_INDICATOR([btowc])
-  # Code from module c++defs:
-  # Code from module c-ctype:
-  # Code from module canonicalize-lgpl:
   gl_CANONICALIZE_LGPL
+  if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+    AC_LIBOBJ([canonicalize-lgpl])
+  fi
   gl_MODULE_INDICATOR([canonicalize-lgpl])
   gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
   gl_STDLIB_MODULE_INDICATOR([realpath])
-  # Code from module chdir-long:
+  AC_CHECK_FUNCS_ONCE([readlinkat])
+  gl_UNISTD_MODULE_INDICATOR([chdir])
   gl_FUNC_CHDIR_LONG
-  # Code from module chown:
+  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+    AC_LIBOBJ([chdir-long])
+    gl_PREREQ_CHDIR_LONG
+  fi
   gl_FUNC_CHOWN
+  if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+    AC_LIBOBJ([chown])
+  fi
+  if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+    AC_LIBOBJ([fchown-stub])
+  fi
   gl_UNISTD_MODULE_INDICATOR([chown])
-  # Code from module clock-time:
   gl_CLOCK_TIME
-  # Code from module cloexec:
-  gl_CLOEXEC
   gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
-  # Code from module close:
   gl_FUNC_CLOSE
+  if test $REPLACE_CLOSE = 1; then
+    AC_LIBOBJ([close])
+  fi
   gl_UNISTD_MODULE_INDICATOR([close])
-  # Code from module close-hook:
-  # Code from module close-stream:
   gl_CLOSE_STREAM
   gl_MODULE_INDICATOR([close-stream])
-  # Code from module closeout:
+  gl_FUNC_CLOSEDIR
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+    AC_LIBOBJ([closedir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([closedir])
   gl_CLOSEOUT
-  # Code from module configmake:
   gl_CONFIGMAKE_PREP
-  # Code from module d-ino:
   gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
-  # Code from module dirent:
   gl_DIRENT_H
-  # Code from module dirent-safer:
   gl_DIRENT_SAFER
   gl_MODULE_INDICATOR([dirent-safer])
-  # Code from module dirfd:
   gl_FUNC_DIRFD
+  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+    AC_LIBOBJ([dirfd])
+    gl_PREREQ_DIRFD
+  fi
   gl_DIRENT_MODULE_INDICATOR([dirfd])
-  # Code from module dirname:
   gl_DIRNAME
   gl_MODULE_INDICATOR([dirname])
-  # Code from module dirname-lgpl:
   gl_DIRNAME_LGPL
-  # Code from module dosname:
-  # Code from module double-slash-root:
   gl_DOUBLE_SLASH_ROOT
-  # Code from module dup2:
+  gl_FUNC_DUP
+  if test $REPLACE_DUP = 1; then
+    AC_LIBOBJ([dup])
+    gl_PREREQ_DUP
+  fi
+  gl_UNISTD_MODULE_INDICATOR([dup])
   gl_FUNC_DUP2
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+    AC_LIBOBJ([dup2])
+    gl_PREREQ_DUP2
+  fi
   gl_UNISTD_MODULE_INDICATOR([dup2])
-  # Code from module environ:
   gl_ENVIRON
   gl_UNISTD_MODULE_INDICATOR([environ])
-  # Code from module errno:
   gl_HEADER_ERRNO_H
-  # Code from module error:
   gl_ERROR
+  if test $ac_cv_lib_error_at_line = no; then
+    AC_LIBOBJ([error])
+    gl_PREREQ_ERROR
+  fi
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
      AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
-  # Code from module exclude:
-  gl_EXCLUDE
-  # Code from module exitfail:
-  # Code from module extensions:
-  # Code from module fchdir:
+  AC_REQUIRE([gl_EXTERN_INLINE])
   gl_FUNC_FCHDIR
   gl_UNISTD_MODULE_INDICATOR([fchdir])
-  # Code from module fclose:
-  gl_FUNC_FCLOSE
-  gl_STDIO_MODULE_INDICATOR([fclose])
-  # Code from module fcntl:
+  gl_FUNC_FCHMODAT
+  if test $HAVE_FCHMODAT = 0; then
+    AC_LIBOBJ([fchmodat])
+  fi
+  gl_MODULE_INDICATOR([fchmodat]) dnl for lib/openat.h
+  gl_SYS_STAT_MODULE_INDICATOR([fchmodat])
+  gl_FUNC_FCHOWNAT
+  if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
+    AC_LIBOBJ([fchownat])
+  fi
+  gl_MODULE_INDICATOR([fchownat]) dnl for lib/openat.h
+  gl_UNISTD_MODULE_INDICATOR([fchownat])
   gl_FUNC_FCNTL
+  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+    AC_LIBOBJ([fcntl])
+  fi
   gl_FCNTL_MODULE_INDICATOR([fcntl])
-  # Code from module fcntl-h:
   gl_FCNTL_H
-  # Code from module fdopendir:
   gl_FUNC_FDOPENDIR
+  if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+    AC_LIBOBJ([fdopendir])
+  fi
   gl_DIRENT_MODULE_INDICATOR([fdopendir])
   gl_MODULE_INDICATOR([fdopendir])
-  # Code from module fdutimensat:
-  AC_REQUIRE([AC_C_INLINE]) dnl because 'inline' is used in lib/utimens.h
   gl_MODULE_INDICATOR([fdutimensat])
-  # Code from module fileblocks:
   gl_FILEBLOCKS
-  # Code from module filenamecat-lgpl:
+  if test $ac_cv_member_struct_stat_st_blocks = no; then
+    AC_LIBOBJ([fileblocks])
+    gl_PREREQ_FILEBLOCKS
+  fi
   gl_FILE_NAME_CONCAT_LGPL
-  # Code from module float:
   gl_FLOAT_H
-  # Code from module fnmatch:
+  if test $REPLACE_FLOAT_LDBL = 1; then
+    AC_LIBOBJ([float])
+  fi
+  if test $REPLACE_ITOLD = 1; then
+    AC_LIBOBJ([itold])
+  fi
   gl_FUNC_FNMATCH_POSIX
-  # Code from module fnmatch-gnu:
+  if test -n "$FNMATCH_H"; then
+    AC_LIBOBJ([fnmatch])
+    gl_PREREQ_FNMATCH
+  fi
   gl_FUNC_FNMATCH_GNU
-  # Code from module fpending:
+  if test -n "$FNMATCH_H"; then
+    AC_LIBOBJ([fnmatch])
+    gl_PREREQ_FNMATCH
+  fi
   gl_FUNC_FPENDING
-  # Code from module fseeko:
+  if test $ac_cv_func___fpending = no; then
+    AC_LIBOBJ([fpending])
+    gl_PREREQ_FPENDING
+  fi
+  gl_FUNC_FSEEK
+  if test $REPLACE_FSEEK = 1; then
+    AC_LIBOBJ([fseek])
+  fi
+  gl_STDIO_MODULE_INDICATOR([fseek])
   gl_FUNC_FSEEKO
+  if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+    AC_LIBOBJ([fseeko])
+    gl_PREREQ_FSEEKO
+  fi
   gl_STDIO_MODULE_INDICATOR([fseeko])
-  # Code from module full-write:
-  # Code from module futimens:
+  gl_FUNC_FSTAT
+  if test $REPLACE_FSTAT = 1; then
+    AC_LIBOBJ([fstat])
+    gl_PREREQ_FSTAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fstat])
+  gl_FUNC_FSTATAT
+  if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+    AC_LIBOBJ([fstatat])
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fstatat])
   gl_FUNC_FUTIMENS
+  if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+    AC_LIBOBJ([futimens])
+  fi
   gl_SYS_STAT_MODULE_INDICATOR([futimens])
-  # Code from module getcwd:
   gl_FUNC_GETCWD
+  if test $REPLACE_GETCWD = 1; then
+    AC_LIBOBJ([getcwd])
+    gl_PREREQ_GETCWD
+  fi
+  gl_MODULE_INDICATOR([getcwd])
+  gl_UNISTD_MODULE_INDICATOR([getcwd])
+  gl_FUNC_GETCWD_LGPL
+  if test $REPLACE_GETCWD = 1; then
+    AC_LIBOBJ([getcwd-lgpl])
+  fi
   gl_UNISTD_MODULE_INDICATOR([getcwd])
-  # Code from module getdelim:
   gl_FUNC_GETDELIM
+  if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+    AC_LIBOBJ([getdelim])
+    gl_PREREQ_GETDELIM
+  fi
   gl_STDIO_MODULE_INDICATOR([getdelim])
-  # Code from module getdtablesize:
   gl_FUNC_GETDTABLESIZE
+  if test $HAVE_GETDTABLESIZE = 0; then
+    AC_LIBOBJ([getdtablesize])
+    gl_PREREQ_GETDTABLESIZE
+  fi
   gl_UNISTD_MODULE_INDICATOR([getdtablesize])
-  # Code from module getline:
   gl_FUNC_GETLINE
+  if test $REPLACE_GETLINE = 1; then
+    AC_LIBOBJ([getline])
+    gl_PREREQ_GETLINE
+  fi
   gl_STDIO_MODULE_INDICATOR([getline])
-  # Code from module getopt-gnu:
   gl_FUNC_GETOPT_GNU
+  if test $REPLACE_GETOPT = 1; then
+    AC_LIBOBJ([getopt])
+    AC_LIBOBJ([getopt1])
+    gl_PREREQ_GETOPT
+    dnl Arrange for unistd.h to include getopt.h.
+    GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
+  AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
   gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
-  # Code from module getopt-posix:
   gl_FUNC_GETOPT_POSIX
-  # Code from module getpagesize:
+  if test $REPLACE_GETOPT = 1; then
+    AC_LIBOBJ([getopt])
+    AC_LIBOBJ([getopt1])
+    gl_PREREQ_GETOPT
+    dnl Arrange for unistd.h to include getopt.h.
+    GNULIB_GL_UNISTD_H_GETOPT=1
+  fi
+  AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
   gl_FUNC_GETPAGESIZE
+  if test $REPLACE_GETPAGESIZE = 1; then
+    AC_LIBOBJ([getpagesize])
+  fi
   gl_UNISTD_MODULE_INDICATOR([getpagesize])
-  # Code from module gettext:
   dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
   AM_GNU_GETTEXT_VERSION([0.18.1])
-  # Code from module gettext-h:
   AC_SUBST([LIBINTL])
   AC_SUBST([LTLIBINTL])
-  # Code from module gettime:
   gl_GETTIME
-  # Code from module gettimeofday:
   gl_FUNC_GETTIMEOFDAY
+  if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+    AC_LIBOBJ([gettimeofday])
+    gl_PREREQ_GETTIMEOFDAY
+  fi
   gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
-  # Code from module gitlog-to-changelog:
-  # Code from module hash:
-  gl_HASH
-  # Code from module havelib:
-  # Code from module human:
   gl_HUMAN
-  # Code from module include_next:
-  # Code from module inline:
-  gl_INLINE
-  # Code from module intprops:
-  # Code from module inttostr:
   gl_INTTOSTR
-  # Code from module inttypes:
   gl_INTTYPES_H
-  # Code from module iswblank:
+  gl_INTTYPES_INCOMPLETE
   gl_FUNC_ISWBLANK
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+    :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+      AC_LIBOBJ([iswblank])
+    fi
+  fi
   gl_WCTYPE_MODULE_INDICATOR([iswblank])
-  # Code from module langinfo:
   gl_LANGINFO_H
-  # Code from module lchown:
+  AC_REQUIRE([gl_LARGEFILE])
   gl_FUNC_LCHOWN
+  if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+    AC_LIBOBJ([lchown])
+  fi
   gl_UNISTD_MODULE_INDICATOR([lchown])
-  # Code from module link:
   gl_FUNC_LINK
+  if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+    AC_LIBOBJ([link])
+  fi
   gl_UNISTD_MODULE_INDICATOR([link])
-  # Code from module link-follow:
   gl_FUNC_LINK_FOLLOWS_SYMLINK
-  # Code from module linkat:
   gl_FUNC_LINKAT
+  if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+    AC_LIBOBJ([linkat])
+  fi
+  if test $HAVE_LINKAT = 0; then
+    AC_LIBOBJ([at-func2])
+  fi
   gl_UNISTD_MODULE_INDICATOR([linkat])
-  # Code from module localcharset:
   gl_LOCALCHARSET
-  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
   AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
-  # Code from module lseek:
+  gl_LOCALE_H
+  gl_FUNC_LOCALECONV
+  if test $REPLACE_LOCALECONV = 1; then
+    AC_LIBOBJ([localeconv])
+    gl_PREREQ_LOCALECONV
+  fi
+  gl_LOCALE_MODULE_INDICATOR([localeconv])
   gl_FUNC_LSEEK
+  if test $REPLACE_LSEEK = 1; then
+    AC_LIBOBJ([lseek])
+  fi
   gl_UNISTD_MODULE_INDICATOR([lseek])
-  # Code from module lstat:
   gl_FUNC_LSTAT
+  if test $REPLACE_LSTAT = 1; then
+    AC_LIBOBJ([lstat])
+    gl_PREREQ_LSTAT
+  fi
   gl_SYS_STAT_MODULE_INDICATOR([lstat])
-  # Code from module malloc-gnu:
   gl_FUNC_MALLOC_GNU
+  if test $REPLACE_MALLOC = 1; then
+    AC_LIBOBJ([malloc])
+  fi
   gl_MODULE_INDICATOR([malloc-gnu])
-  # Code from module malloc-posix:
   gl_FUNC_MALLOC_POSIX
+  if test $REPLACE_MALLOC = 1; then
+    AC_LIBOBJ([malloc])
+  fi
   gl_STDLIB_MODULE_INDICATOR([malloc-posix])
-  # Code from module malloca:
   gl_MALLOCA
-  # Code from module mbchar:
   gl_MBCHAR
-  # Code from module mbrtowc:
   gl_FUNC_MBRTOWC
+  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+    AC_LIBOBJ([mbrtowc])
+    gl_PREREQ_MBRTOWC
+  fi
   gl_WCHAR_MODULE_INDICATOR([mbrtowc])
-  # Code from module mbscasecmp:
   gl_STRING_MODULE_INDICATOR([mbscasecmp])
-  # Code from module mbsinit:
   gl_FUNC_MBSINIT
+  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+    AC_LIBOBJ([mbsinit])
+    gl_PREREQ_MBSINIT
+  fi
   gl_WCHAR_MODULE_INDICATOR([mbsinit])
-  # Code from module mbsrtowcs:
   gl_FUNC_MBSRTOWCS
+  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+    AC_LIBOBJ([mbsrtowcs])
+    AC_LIBOBJ([mbsrtowcs-state])
+    gl_PREREQ_MBSRTOWCS
+  fi
   gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
-  # Code from module mbtowc:
   gl_FUNC_MBTOWC
+  if test $REPLACE_MBTOWC = 1; then
+    AC_LIBOBJ([mbtowc])
+    gl_PREREQ_MBTOWC
+  fi
   gl_STDLIB_MODULE_INDICATOR([mbtowc])
-  # Code from module mbuiter:
   gl_MBITER
-  # Code from module memchr:
   gl_FUNC_MEMCHR
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+    AC_LIBOBJ([memchr])
+    gl_PREREQ_MEMCHR
+  fi
   gl_STRING_MODULE_INDICATOR([memchr])
-  # Code from module mempcpy:
   gl_FUNC_MEMPCPY
+  if test $HAVE_MEMPCPY = 0; then
+    AC_LIBOBJ([mempcpy])
+    gl_PREREQ_MEMPCPY
+  fi
   gl_STRING_MODULE_INDICATOR([mempcpy])
-  # Code from module memrchr:
   gl_FUNC_MEMRCHR
+  if test $ac_cv_func_memrchr = no; then
+    AC_LIBOBJ([memrchr])
+    gl_PREREQ_MEMRCHR
+  fi
   gl_STRING_MODULE_INDICATOR([memrchr])
-  # Code from module mkdir:
   gl_FUNC_MKDIR
-  # Code from module mkdtemp:
-  gt_FUNC_MKDTEMP
+  if test $REPLACE_MKDIR = 1; then
+    AC_LIBOBJ([mkdir])
+  fi
+  gl_FUNC_MKDIRAT
+  if test $HAVE_MKDIRAT = 0; then
+    AC_LIBOBJ([mkdirat])
+    gl_PREREQ_MKDIRAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([mkdirat])
+  gl_FUNC_MKDTEMP
+  if test $HAVE_MKDTEMP = 0; then
+    AC_LIBOBJ([mkdtemp])
+    gl_PREREQ_MKDTEMP
+  fi
   gl_STDLIB_MODULE_INDICATOR([mkdtemp])
-  # Code from module mkfifo:
   gl_FUNC_MKFIFO
+  if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+    AC_LIBOBJ([mkfifo])
+  fi
   gl_UNISTD_MODULE_INDICATOR([mkfifo])
-  # Code from module mkfifoat:
   gl_FUNC_MKFIFOAT
-  gl_UNISTD_MODULE_INDICATOR([mkfifoat])
-  gl_UNISTD_MODULE_INDICATOR([mknodat])
-  # Code from module mknod:
+  if test $HAVE_MKFIFOAT = 0; then
+    AC_LIBOBJ([mkfifoat])
+  fi
+  if test $HAVE_MKNODAT = 0; then
+    AC_LIBOBJ([mknodat])
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([mkfifoat])
+  gl_SYS_STAT_MODULE_INDICATOR([mknodat])
   gl_FUNC_MKNOD
+  if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+    AC_LIBOBJ([mknod])
+  fi
   gl_UNISTD_MODULE_INDICATOR([mknod])
-  # Code from module mktime:
   gl_FUNC_MKTIME
+  if test $REPLACE_MKTIME = 1; then
+    AC_LIBOBJ([mktime])
+    gl_PREREQ_MKTIME
+  fi
   gl_TIME_MODULE_INDICATOR([mktime])
-  # Code from module modechange:
   gl_MODECHANGE
-  # Code from module multiarch:
+  gl_MSVC_INVAL
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-inval])
+  fi
+  gl_MSVC_NOTHROW
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-nothrow])
+  fi
   gl_MULTIARCH
-  # Code from module nl_langinfo:
   gl_FUNC_NL_LANGINFO
+  if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+    AC_LIBOBJ([nl_langinfo])
+  fi
   gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
-  # Code from module obstack:
   AC_FUNC_OBSTACK
   dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]).
-  # Code from module open:
   gl_FUNC_OPEN
+  if test $REPLACE_OPEN = 1; then
+    AC_LIBOBJ([open])
+    gl_PREREQ_OPEN
+  fi
   gl_FCNTL_MODULE_INDICATOR([open])
-  # Code from module openat:
   gl_FUNC_OPENAT
-  # Code from module openat-die:
-  # Code from module parse-datetime:
+  if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+    AC_LIBOBJ([openat])
+    gl_PREREQ_OPENAT
+  fi
+  gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c
+  gl_FCNTL_MODULE_INDICATOR([openat])
+  gl_FUNC_OPENDIR
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+    AC_LIBOBJ([opendir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([opendir])
   gl_PARSE_DATETIME
-  # Code from module pathmax:
   gl_PATHMAX
-  # Code from module priv-set:
   gl_PRIV_SET
-  # Code from module progname:
   AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
   AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>])
-  # Code from module quote:
+  gl_FUNC_ACL
   gl_QUOTE
-  # Code from module quotearg:
   gl_QUOTEARG
-  # Code from module quotearg-simple:
-  # Code from module rawmemchr:
+  gl_FUNC_RAISE
+  if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+    AC_LIBOBJ([raise])
+    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])
-  # Code from module readlink:
+  gl_FUNC_READ
+  if test $REPLACE_READ = 1; then
+    AC_LIBOBJ([read])
+    gl_PREREQ_READ
+  fi
+  gl_UNISTD_MODULE_INDICATOR([read])
+  gl_FUNC_READDIR
+  if test $HAVE_READDIR = 0; then
+    AC_LIBOBJ([readdir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([readdir])
   gl_FUNC_READLINK
+  if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+    AC_LIBOBJ([readlink])
+    gl_PREREQ_READLINK
+  fi
   gl_UNISTD_MODULE_INDICATOR([readlink])
-  # Code from module readlinkat:
   gl_FUNC_READLINKAT
+  if test $HAVE_READLINKAT = 0; then
+    AC_LIBOBJ([readlinkat])
+  fi
   gl_UNISTD_MODULE_INDICATOR([readlinkat])
-  # Code from module realloc-posix:
   gl_FUNC_REALLOC_POSIX
+  if test $REPLACE_REALLOC = 1; then
+    AC_LIBOBJ([realloc])
+  fi
   gl_STDLIB_MODULE_INDICATOR([realloc-posix])
-  # Code from module regex:
   gl_REGEX
-  # Code from module rename:
+  if test $ac_use_included_regex = yes; then
+    AC_LIBOBJ([regex])
+    gl_PREREQ_REGEX
+  fi
   gl_FUNC_RENAME
+  if test $REPLACE_RENAME = 1; then
+    AC_LIBOBJ([rename])
+  fi
   gl_STDIO_MODULE_INDICATOR([rename])
-  # Code from module renameat:
   gl_FUNC_RENAMEAT
+  if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+    AC_LIBOBJ([renameat])
+  fi
+  if test $HAVE_RENAMEAT = 0; then
+    AC_LIBOBJ([at-func2])
+  fi
   gl_STDIO_MODULE_INDICATOR([renameat])
-  # Code from module rmdir:
+  gl_FUNC_REWINDDIR
+  if test $HAVE_REWINDDIR = 0; then
+    AC_LIBOBJ([rewinddir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([rewinddir])
   gl_FUNC_RMDIR
+  if test $REPLACE_RMDIR = 1; then
+    AC_LIBOBJ([rmdir])
+  fi
   gl_UNISTD_MODULE_INDICATOR([rmdir])
-  # Code from module rpmatch:
   gl_FUNC_RPMATCH
+  if test $HAVE_RPMATCH = 0; then
+    AC_LIBOBJ([rpmatch])
+    gl_PREREQ_RPMATCH
+  fi
   gl_STDLIB_MODULE_INDICATOR([rpmatch])
-  # Code from module safe-read:
-  gl_SAFE_READ
-  # Code from module safe-write:
-  gl_SAFE_WRITE
-  # Code from module same-inode:
-  # Code from module save-cwd:
+  gl_PREREQ_SAFE_READ
+  gl_PREREQ_SAFE_WRITE
   gl_SAVE_CWD
-  # Code from module savedir:
   gl_SAVEDIR
-  # Code from module setenv:
+  gl_FUNC_SECURE_GETENV
+  if test $HAVE_SECURE_GETENV = 0; then
+    AC_LIBOBJ([secure_getenv])
+    gl_PREREQ_SECURE_GETENV
+  fi
+  gl_STDLIB_MODULE_INDICATOR([secure_getenv])
+  AC_CHECK_HEADERS([selinux/flask.h])
+  AC_LIBOBJ([selinux-at])
+  gl_HEADERS_SELINUX_SELINUX_H
+  gl_HEADERS_SELINUX_CONTEXT_H
+  if test "$with_selinux" != no && test "$ac_cv_header_selinux_selinux_h" = yes; then
+    AC_LIBOBJ([getfilecon])
+  fi
   gl_FUNC_SETENV
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+    AC_LIBOBJ([setenv])
+  fi
   gl_STDLIB_MODULE_INDICATOR([setenv])
-  # Code from module size_max:
+  gl_SIGNAL_H
   gl_SIZE_MAX
-  # Code from module sleep:
   gl_FUNC_SLEEP
+  if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+    AC_LIBOBJ([sleep])
+  fi
   gl_UNISTD_MODULE_INDICATOR([sleep])
-  # Code from module snprintf:
   gl_FUNC_SNPRINTF
   gl_STDIO_MODULE_INDICATOR([snprintf])
   gl_MODULE_INDICATOR([snprintf])
-  # Code from module ssize_t:
   gt_TYPE_SSIZE_T
-  # Code from module stat:
   gl_FUNC_STAT
+  if test $REPLACE_STAT = 1; then
+    AC_LIBOBJ([stat])
+    gl_PREREQ_STAT
+  fi
   gl_SYS_STAT_MODULE_INDICATOR([stat])
-  # Code from module stat-macros:
-  # Code from module stat-time:
   gl_STAT_TIME
   gl_STAT_BIRTHTIME
-  # Code from module stdarg:
+  gl_MODULE_INDICATOR([statat]) dnl for lib/openat.h
+  gl_STDALIGN_H
   gl_STDARG_H
-  # Code from module stdbool:
   AM_STDBOOL_H
-  # Code from module stddef:
   gl_STDDEF_H
-  # Code from module stdint:
   gl_STDINT_H
-  # Code from module stdio:
   gl_STDIO_H
-  # Code from module stdlib:
   gl_STDLIB_H
-  # Code from module stpcpy:
   gl_FUNC_STPCPY
+  if test $HAVE_STPCPY = 0; then
+    AC_LIBOBJ([stpcpy])
+    gl_PREREQ_STPCPY
+  fi
   gl_STRING_MODULE_INDICATOR([stpcpy])
-  # Code from module strcase:
   gl_STRCASE
-  # Code from module strchrnul:
+  if test $HAVE_STRCASECMP = 0; then
+    AC_LIBOBJ([strcasecmp])
+    gl_PREREQ_STRCASECMP
+  fi
+  if test $HAVE_STRNCASECMP = 0; then
+    AC_LIBOBJ([strncasecmp])
+    gl_PREREQ_STRNCASECMP
+  fi
   gl_FUNC_STRCHRNUL
+  if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+    AC_LIBOBJ([strchrnul])
+    gl_PREREQ_STRCHRNUL
+  fi
   gl_STRING_MODULE_INDICATOR([strchrnul])
-  # Code from module strdup-posix:
   gl_FUNC_STRDUP_POSIX
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+    AC_LIBOBJ([strdup])
+    gl_PREREQ_STRDUP
+  fi
   gl_STRING_MODULE_INDICATOR([strdup])
-  # Code from module streq:
-  # Code from module strerror:
   gl_FUNC_STRERROR
+  if test $REPLACE_STRERROR = 1; then
+    AC_LIBOBJ([strerror])
+  fi
+  gl_MODULE_INDICATOR([strerror])
   gl_STRING_MODULE_INDICATOR([strerror])
-  # Code from module string:
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+    AC_LIBOBJ([strerror-override])
+    gl_PREREQ_SYS_H_WINSOCK2
+  fi
   gl_HEADER_STRING_H
-  # Code from module strings:
   gl_HEADER_STRINGS_H
-  # Code from module strndup:
   gl_FUNC_STRNDUP
+  if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+    AC_LIBOBJ([strndup])
+  fi
   gl_STRING_MODULE_INDICATOR([strndup])
-  # Code from module strnlen:
   gl_FUNC_STRNLEN
+  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+    AC_LIBOBJ([strnlen])
+    gl_PREREQ_STRNLEN
+  fi
   gl_STRING_MODULE_INDICATOR([strnlen])
-  # Code from module strnlen1:
-  # Code from module strtoimax:
-  gl_FUNC_STRTOIMAX
-  gl_INTTYPES_MODULE_INDICATOR([strtoimax])
-  # Code from module strtol:
   gl_FUNC_STRTOL
-  # Code from module strtoll:
-  gl_FUNC_STRTOLL
-  gl_STDLIB_MODULE_INDICATOR([strtoll])
-  # Code from module strtoul:
+  if test $ac_cv_func_strtol = no; then
+    AC_LIBOBJ([strtol])
+  fi
   gl_FUNC_STRTOUL
-  # Code from module strtoull:
+  if test $ac_cv_func_strtoul = no; then
+    AC_LIBOBJ([strtoul])
+  fi
   gl_FUNC_STRTOULL
+  if test $HAVE_STRTOULL = 0; then
+    AC_LIBOBJ([strtoull])
+    gl_PREREQ_STRTOULL
+  fi
   gl_STDLIB_MODULE_INDICATOR([strtoull])
-  # Code from module strtoumax:
   gl_FUNC_STRTOUMAX
+  if test $ac_cv_func_strtoumax = no; then
+    AC_LIBOBJ([strtoumax])
+    gl_PREREQ_STRTOUMAX
+  fi
   gl_INTTYPES_MODULE_INDICATOR([strtoumax])
-  # Code from module symlink:
   gl_FUNC_SYMLINK
+  if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+    AC_LIBOBJ([symlink])
+  fi
   gl_UNISTD_MODULE_INDICATOR([symlink])
-  # Code from module symlinkat:
   gl_FUNC_SYMLINKAT
+  if test $HAVE_SYMLINKAT = 0; then
+    AC_LIBOBJ([symlinkat])
+  fi
   gl_UNISTD_MODULE_INDICATOR([symlinkat])
-  # Code from module sys_stat:
   gl_HEADER_SYS_STAT_H
   AC_PROG_MKDIR_P
-  # Code from module sys_time:
   gl_HEADER_SYS_TIME_H
   AC_PROG_MKDIR_P
-  # Code from module sysexits:
+  gl_SYS_TYPES_H
+  AC_PROG_MKDIR_P
   gl_SYSEXITS
-  # Code from module tempname:
   gl_FUNC_GEN_TEMPNAME
-  # Code from module time:
   gl_HEADER_TIME_H
-  # Code from module time_r:
   gl_TIME_R
+  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+    AC_LIBOBJ([time_r])
+    gl_PREREQ_TIME_R
+  fi
   gl_TIME_MODULE_INDICATOR([time_r])
-  # Code from module timespec:
   gl_TIMESPEC
-  # Code from module unistd:
   gl_UNISTD_H
-  # Code from module unistd-safer:
   gl_UNISTD_SAFER
-  # Code from module unitypes:
   gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
-  # Code from module uniwidth/base:
   gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
-  # Code from module uniwidth/width:
   gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
-  # Code from module unlink:
   gl_FUNC_UNLINK
+  if test $REPLACE_UNLINK = 1; then
+    AC_LIBOBJ([unlink])
+  fi
   gl_UNISTD_MODULE_INDICATOR([unlink])
-  # Code from module unlinkdir:
+  gl_FUNC_UNLINKAT
+  if test $HAVE_UNLINKAT = 0 || test $REPLACE_UNLINKAT = 1; then
+    AC_LIBOBJ([unlinkat])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([unlinkat])
   gl_UNLINKDIR
-  # Code from module unlocked-io:
   gl_FUNC_GLIBC_UNLOCKED_IO
-  # Code from module unsetenv:
   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])
-  # Code from module utimens:
   gl_UTIMENS
-  # Code from module utimensat:
   gl_FUNC_UTIMENSAT
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+    AC_LIBOBJ([utimensat])
+  fi
   gl_SYS_STAT_MODULE_INDICATOR([utimensat])
-  # Code from module vasnprintf:
   gl_FUNC_VASNPRINTF
-  # Code from module vasprintf:
   gl_FUNC_VASPRINTF
   gl_STDIO_MODULE_INDICATOR([vasprintf])
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format])
      AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
-  # Code from module verify:
-  # Code from module version-etc:
   gl_VERSION_ETC
-  # Code from module version-etc-fsf:
-  # Code from module vsnprintf:
   gl_FUNC_VSNPRINTF
   gl_STDIO_MODULE_INDICATOR([vsnprintf])
-  # Code from module warn-on-use:
-  # Code from module wchar:
   gl_WCHAR_H
-  # Code from module wcrtomb:
   gl_FUNC_WCRTOMB
+  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+    AC_LIBOBJ([wcrtomb])
+    gl_PREREQ_WCRTOMB
+  fi
   gl_WCHAR_MODULE_INDICATOR([wcrtomb])
-  # Code from module wctype-h:
   gl_WCTYPE_H
-  # Code from module wcwidth:
   gl_FUNC_WCWIDTH
+  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+    AC_LIBOBJ([wcwidth])
+  fi
   gl_WCHAR_MODULE_INDICATOR([wcwidth])
-  # Code from module write:
   gl_FUNC_WRITE
+  if test $REPLACE_WRITE = 1; then
+    AC_LIBOBJ([write])
+    gl_PREREQ_WRITE
+  fi
   gl_UNISTD_MODULE_INDICATOR([write])
-  # Code from module xalloc:
   gl_XALLOC
-  # Code from module xalloc-die:
-  # Code from module xgetcwd:
   gl_XGETCWD
-  # Code from module xsize:
   gl_XSIZE
-  # Code from module xstrndup:
   gl_XSTRNDUP
-  # Code from module xstrtol:
   gl_XSTRTOL
-  # Code from module xstrtoumax:
-  # Code from module xvasprintf:
   gl_XVASPRINTF
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=xasprintf:1:c-format])])
@@ -873,14 +1168,22 @@ AC_DEFUN([gltests_LIBSOURCES], [
 # This macro records the list of files which have been installed by
 # gnulib-tool and may be removed by future gnulib-tool invocations.
 AC_DEFUN([gl_FILE_LIST], [
-  build-aux/arg-nonnull.h
-  build-aux/c++defs.h
   build-aux/config.rpath
   build-aux/gitlog-to-changelog
-  build-aux/warn-on-use.h
+  build-aux/snippet/_Noreturn.h
+  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
   doc/parse-datetime.texi
+  lib/acl-errno-valid.c
+  lib/acl-internal.h
+  lib/acl.h
+  lib/acl_entries.c
   lib/alloca.c
   lib/alloca.in.h
+  lib/allocator.c
+  lib/allocator.h
   lib/anytostr.c
   lib/areadlink.c
   lib/areadlink.h
@@ -910,25 +1213,35 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/backupfile.h
   lib/basename-lgpl.c
   lib/basename.c
+  lib/bitrotate.c
   lib/bitrotate.h
   lib/btowc.c
   lib/c-ctype.c
   lib/c-ctype.h
+  lib/c-strcase.h
+  lib/c-strcasecmp.c
+  lib/c-strcaseeq.h
+  lib/c-strncasecmp.c
   lib/canonicalize-lgpl.c
+  lib/careadlinkat.c
+  lib/careadlinkat.h
   lib/chdir-long.c
   lib/chdir-long.h
+  lib/chmodat.c
   lib/chown.c
+  lib/chownat.c
   lib/cloexec.c
   lib/cloexec.h
-  lib/close-hook.c
-  lib/close-hook.h
   lib/close-stream.c
   lib/close-stream.h
   lib/close.c
+  lib/closedir.c
   lib/closeout.c
   lib/closeout.h
   lib/config.charset
+  lib/copy-acl.c
   lib/dirent--.h
+  lib/dirent-private.h
   lib/dirent-safer.h
   lib/dirent.in.h
   lib/dirfd.c
@@ -937,6 +1250,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/dirname.h
   lib/dosname.h
   lib/dup-safer.c
+  lib/dup.c
   lib/dup2.c
   lib/errno.in.h
   lib/error.c
@@ -949,30 +1263,38 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/fchmodat.c
   lib/fchown-stub.c
   lib/fchownat.c
-  lib/fclose.c
   lib/fcntl.c
   lib/fcntl.in.h
+  lib/fd-hook.c
+  lib/fd-hook.h
   lib/fd-safer.c
   lib/fdopendir.c
   lib/fdutimensat.c
+  lib/file-has-acl.c
   lib/fileblocks.c
+  lib/filename.h
   lib/filenamecat-lgpl.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/fpending.c
   lib/fpending.h
+  lib/fseek.c
   lib/fseeko.c
+  lib/fstat.c
   lib/fstatat.c
   lib/full-write.c
   lib/full-write.h
   lib/futimens.c
+  lib/getcwd-lgpl.c
   lib/getcwd.c
   lib/getdelim.c
   lib/getdtablesize.c
+  lib/getfilecon.c
   lib/getline.c
   lib/getopt.c
   lib/getopt.in.h
@@ -992,12 +1314,15 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/inttostr.h
   lib/inttypes.in.h
   lib/iswblank.c
+  lib/itold.c
   lib/langinfo.in.h
   lib/lchown.c
   lib/link.c
   lib/linkat.c
   lib/localcharset.c
   lib/localcharset.h
+  lib/locale.in.h
+  lib/localeconv.c
   lib/lseek.c
   lib/lstat.c
   lib/malloc.c
@@ -1014,6 +1339,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/mbsrtowcs.c
   lib/mbtowc-impl.h
   lib/mbtowc.c
+  lib/mbuiter.c
   lib/mbuiter.h
   lib/memchr.c
   lib/memchr.valgrind
@@ -1030,6 +1356,10 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/mktime.c
   lib/modechange.c
   lib/modechange.h
+  lib/msvc-inval.c
+  lib/msvc-inval.h
+  lib/msvc-nothrow.c
+  lib/msvc-nothrow.h
   lib/nl_langinfo.c
   lib/obstack.c
   lib/obstack.h
@@ -1041,6 +1371,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/openat.c
   lib/openat.h
   lib/opendir-safer.c
+  lib/opendir.c
   lib/parse-datetime.h
   lib/parse-datetime.y
   lib/pathmax.h
@@ -1053,12 +1384,16 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/priv-set.h
   lib/progname.c
   lib/progname.h
-  lib/quote.c
+  lib/qcopy-acl.c
+  lib/qset-acl.c
   lib/quote.h
   lib/quotearg.c
   lib/quotearg.h
+  lib/raise.c
   lib/rawmemchr.c
   lib/rawmemchr.valgrind
+  lib/read.c
+  lib/readdir.c
   lib/readlink.c
   lib/readlinkat.c
   lib/realloc.c
@@ -1072,7 +1407,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/regexec.c
   lib/rename.c
   lib/renameat.c
+  lib/rewinddir.c
   lib/rmdir.c
+  lib/root-uid.h
   lib/rpmatch.c
   lib/safe-read.c
   lib/safe-read.h
@@ -1083,13 +1420,25 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/save-cwd.h
   lib/savedir.c
   lib/savedir.h
+  lib/se-context.c
+  lib/se-context.in.h
+  lib/se-selinux.c
+  lib/se-selinux.in.h
+  lib/secure_getenv.c
+  lib/selinux-at.c
+  lib/selinux-at.h
+  lib/set-acl.c
   lib/setenv.c
+  lib/signal.in.h
   lib/size_max.h
   lib/sleep.c
   lib/snprintf.c
   lib/stat-macros.h
+  lib/stat-time.c
   lib/stat-time.h
   lib/stat.c
+  lib/statat.c
+  lib/stdalign.in.h
   lib/stdarg.in.h
   lib/stdbool.in.h
   lib/stddef.in.h
@@ -1103,6 +1452,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/strchrnul.valgrind
   lib/strdup.c
   lib/streq.h
+  lib/strerror-override.c
+  lib/strerror-override.h
   lib/strerror.c
   lib/string.in.h
   lib/strings.in.h
@@ -1114,7 +1465,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/strnlen1.h
   lib/strtoimax.c
   lib/strtol.c
-  lib/strtoll.c
   lib/strtoul.c
   lib/strtoull.c
   lib/strtoumax.c
@@ -1122,16 +1472,19 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/symlinkat.c
   lib/sys_stat.in.h
   lib/sys_time.in.h
+  lib/sys_types.in.h
   lib/sysexits.in.h
   lib/tempname.c
   lib/tempname.h
   lib/time.in.h
   lib/time_r.c
+  lib/timespec.c
   lib/timespec.h
   lib/uinttostr.c
   lib/umaxtostr.c
   lib/unistd--.h
   lib/unistd-safer.h
+  lib/unistd.c
   lib/unistd.in.h
   lib/unitypes.in.h
   lib/uniwidth.in.h
@@ -1156,15 +1509,18 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/vsnprintf.c
   lib/wchar.in.h
   lib/wcrtomb.c
+  lib/wctype-h.c
   lib/wctype.in.h
   lib/wcwidth.c
   lib/write.c
   lib/xalloc-die.c
+  lib/xalloc-oversized.h
   lib/xalloc.h
   lib/xasprintf.c
   lib/xgetcwd.c
   lib/xgetcwd.h
   lib/xmalloc.c
+  lib/xsize.c
   lib/xsize.h
   lib/xstrndup.c
   lib/xstrndup.h
@@ -1176,8 +1532,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/xvasprintf.c
   lib/xvasprintf.h
   m4/00gnulib.m4
+  m4/acl.m4
   m4/alloca.m4
-  m4/argmatch.m4
   m4/argp.m4
   m4/backupfile.m4
   m4/bison.m4
@@ -1186,9 +1542,9 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/chdir-long.m4
   m4/chown.m4
   m4/clock_time.m4
-  m4/cloexec.m4
   m4/close-stream.m4
   m4/close.m4
+  m4/closedir.m4
   m4/closeout.m4
   m4/codeset.m4
   m4/configmake.m4
@@ -1198,15 +1554,18 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/dirfd.m4
   m4/dirname.m4
   m4/double-slash-root.m4
+  m4/dup.m4
   m4/dup2.m4
   m4/eealloc.m4
   m4/environ.m4
   m4/errno_h.m4
   m4/error.m4
-  m4/exclude.m4
+  m4/exponentd.m4
   m4/extensions.m4
+  m4/extern-inline.m4
   m4/fchdir.m4
-  m4/fclose.m4
+  m4/fchmodat.m4
+  m4/fchownat.m4
   m4/fcntl-o.m4
   m4/fcntl.m4
   m4/fcntl_h.m4
@@ -1216,7 +1575,10 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/float_h.m4
   m4/fnmatch.m4
   m4/fpending.m4
+  m4/fseek.m4
   m4/fseeko.m4
+  m4/fstat.m4
+  m4/fstatat.m4
   m4/futimens.m4
   m4/getcwd-abort-bug.m4
   m4/getcwd-path-max.m4
@@ -1232,11 +1594,9 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/glibc2.m4
   m4/glibc21.m4
   m4/gnulib-common.m4
-  m4/hash.m4
   m4/human.m4
   m4/iconv.m4
   m4/include_next.m4
-  m4/inline.m4
   m4/intdiv0.m4
   m4/intl.m4
   m4/intldir.m4
@@ -1249,6 +1609,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/inttypes_h.m4
   m4/iswblank.m4
   m4/langinfo_h.m4
+  m4/largefile.m4
   m4/lchown.m4
   m4/lcmessage.m4
   m4/lib-ld.m4
@@ -1262,12 +1623,16 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/locale-fr.m4
   m4/locale-ja.m4
   m4/locale-zh.m4
+  m4/locale_h.m4
+  m4/localeconv.m4
   m4/lock.m4
   m4/longlong.m4
   m4/lseek.m4
   m4/lstat.m4
   m4/malloc.m4
   m4/malloca.m4
+  m4/manywarnings.m4
+  m4/math_h.m4
   m4/mbchar.m4
   m4/mbiter.m4
   m4/mbrtowc.m4
@@ -1279,6 +1644,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/mempcpy.m4
   m4/memrchr.m4
   m4/mkdir.m4
+  m4/mkdirat.m4
   m4/mkdtemp.m4
   m4/mkfifo.m4
   m4/mkfifoat.m4
@@ -1287,11 +1653,16 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/mmap-anon.m4
   m4/mode_t.m4
   m4/modechange.m4
+  m4/msvc-inval.m4
+  m4/msvc-nothrow.m4
   m4/multiarch.m4
   m4/nl_langinfo.m4
   m4/nls.m4
+  m4/nocrash.m4
+  m4/off_t.m4
   m4/open.m4
   m4/openat.m4
+  m4/opendir.m4
   m4/parse-datetime.m4
   m4/pathmax.m4
   m4/po.m4
@@ -1301,26 +1672,35 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/progtest.m4
   m4/quote.m4
   m4/quotearg.m4
+  m4/raise.m4
   m4/rawmemchr.m4
+  m4/read.m4
+  m4/readdir.m4
   m4/readlink.m4
   m4/readlinkat.m4
   m4/realloc.m4
   m4/regex.m4
   m4/rename.m4
   m4/renameat.m4
+  m4/rewinddir.m4
   m4/rmdir.m4
   m4/rpmatch.m4
   m4/safe-read.m4
   m4/safe-write.m4
   m4/save-cwd.m4
   m4/savedir.m4
+  m4/secure_getenv.m4
+  m4/selinux-context-h.m4
+  m4/selinux-selinux-h.m4
   m4/setenv.m4
+  m4/signal_h.m4
   m4/size_max.m4
   m4/sleep.m4
   m4/snprintf.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
@@ -1337,16 +1717,16 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/strings_h.m4
   m4/strndup.m4
   m4/strnlen.m4
-  m4/strtoimax.m4
   m4/strtol.m4
-  m4/strtoll.m4
   m4/strtoul.m4
   m4/strtoull.m4
   m4/strtoumax.m4
   m4/symlink.m4
   m4/symlinkat.m4
+  m4/sys_socket_h.m4
   m4/sys_stat_h.m4
   m4/sys_time_h.m4
+  m4/sys_types_h.m4
   m4/sysexits.m4
   m4/tempname.m4
   m4/threadlib.m4
@@ -1358,6 +1738,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/unistd-safer.m4
   m4/unistd_h.m4
   m4/unlink.m4
+  m4/unlinkat.m4
   m4/unlinkdir.m4
   m4/unlocked-io.m4
   m4/utimbuf.m4
@@ -1370,6 +1751,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/visibility.m4
   m4/vsnprintf.m4
   m4/warn-on-use.m4
+  m4/warnings.m4
   m4/wchar_h.m4
   m4/wchar_t.m4
   m4/wcrtomb.m4
index 21c12f5650a860c1b3cd7104cf66155f199b3c29..f15290579e702330f45c6909c87880001b15c049 100644 (file)
@@ -1,13 +1,11 @@
-#serial 10
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+#serial 11
+dnl Copyright (C) 2002-2006, 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 Prerequisites of lib/human.c.
 AC_DEFUN([gl_HUMAN],
 [
-  AC_LIBOBJ([human])
-
-  dnl Prerequisites of lib/human.c.
   :
 ])
index 085cd068f52f3cdd43eda5678cbf63ffb2d4d136..a50364656944dadd8a911c8916cff6084561530f 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial 17 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2007-2011 Free Software Foundation, Inc.
+# iconv.m4 serial 18 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2007-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.
@@ -242,7 +242,7 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 #else
 size_t iconv();
index b3c78491855295c6b0a855438f5fac7ad146e641..108d945677fc5d4713c43fde800ce6bd876e17d3 100644 (file)
@@ -1,5 +1,5 @@
-# include_next.m4 serial 18
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# include_next.m4 serial 23
+dnl Copyright (C) 2006-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.
@@ -143,7 +143,7 @@ choke me
 # even if the compiler does not support include_next.
 # 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.
+# 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.
@@ -175,11 +175,13 @@ AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
     [AC_CHECK_HEADERS_ONCE([$1])
     ])
 
+dnl FIXME: gl_next_header and gl_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_next_header],
                     [gl_cv_next_]m4_defn([gl_HEADER_NAME]))
      if test $gl_cv_have_include_next = yes; then
-       AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+       AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
      else
        AC_CACHE_CHECK(
          [absolute name of <]m4_defn([gl_HEADER_NAME])[>],
@@ -205,33 +207,57 @@ AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
                  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],
+               AS_VAR_SET(gl_next_header,
                  ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-                  sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
-                    s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
-                    s#^/[^/]#//&#
-                    p
-                    q
-                  }'`'"'])
+                      sed -n "$gl_absolute_header_sed"`'"'])
           m4_if([$2], [check],
             [else
-               AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+               AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
              fi
             ])
          ])
      fi
      AC_SUBST(
        AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
-       [AS_VAR_GET([gl_next_header])])
+       [AS_VAR_GET(gl_next_header)])
      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='<'gl_HEADER_NAME'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
+       gl_next_as_first_directive=AS_VAR_GET(gl_next_header)
      fi
      AC_SUBST(
        AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
index 51f85477715453b6b58ef45ee468815c2492bf48..ab97d39f940220eeb26d2852a7902e78e393e303 100644 (file)
@@ -1,5 +1,5 @@
-# intlmacosx.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
+# intlmacosx.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2004-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.
@@ -13,11 +13,11 @@ dnl by the GNU Library General Public License, and the rest of the GNU
 dnl gettext package package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
-dnl Checks for special options needed on MacOS X.
+dnl Checks for special options needed on Mac OS X.
 dnl Defines INTL_MACOSX_LIBS.
 AC_DEFUN([gt_INTL_MACOSX],
 [
-  dnl Check for API introduced in MacOS X 10.2.
+  dnl Check for API introduced in Mac OS X 10.2.
   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
     [gt_cv_func_CFPreferencesCopyAppValue],
     [gt_save_LIBS="$LIBS"
@@ -31,9 +31,9 @@ AC_DEFUN([gt_INTL_MACOSX],
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
-      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
   fi
-  dnl Check for API introduced in MacOS X 10.3.
+  dnl Check for API introduced in Mac OS X 10.3.
   AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
@@ -46,7 +46,7 @@ AC_DEFUN([gt_INTL_MACOSX],
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
     AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
-      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+      [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
   fi
   INTL_MACOSX_LIBS=
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
index 7341054b6fb069c29751075454a8c878b5e3a07c..6ea70531caa1b501f8cd4e762cdaa40d1cf82f19 100644 (file)
@@ -1,5 +1,5 @@
 # intmax_t.m4 serial 8
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2011 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 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 b9875c91a585f9b478bbb9a716471b2c094e4c3f..1a0ce74dcf4383c6c27f99d1cc7996a0a36517dc 100644 (file)
@@ -1,5 +1,5 @@
 #serial 8
-dnl Copyright (C) 2004-2006, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2006, 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.
index e252b27e8cbac58bb77ad791ea12edc896822538..e5a1e057127388f1dd9d5a8071c85514fe652a7b 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes-pri.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1997-2002, 2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2002, 2006, 2008-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.
index 92a4ac019f5846ecdcf7d5257bed79216fc010a9..3b483d39f5cf3c4981b039dbe16e9f581d9f5a8f 100644 (file)
@@ -1,5 +1,5 @@
-# inttypes.m4 serial 18
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# inttypes.m4 serial 26
+dnl Copyright (C) 2006-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.
@@ -8,133 +8,15 @@ dnl From Derek Price, Bruno Haible.
 dnl Test whether <inttypes.h> is supported or must be substituted.
 
 AC_DEFUN([gl_INTTYPES_H],
+[
+  AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+  gl_INTTYPES_PRI_SCN
+])
+
+AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
 [
   AC_REQUIRE([gl_STDINT_H])
-  AC_REQUIRE([gt_INTTYPES_PRI])
   AC_CHECK_HEADERS_ONCE([inttypes.h])
-  AC_CHECK_DECLS_ONCE([imaxabs])
-  AC_CHECK_DECLS_ONCE([imaxdiv])
-  AC_CHECK_DECLS_ONCE([strtoimax])
-  AC_CHECK_DECLS_ONCE([strtoumax])
-
-  dnl Now see if we need a substitute <inttypes.h>.
-  dnl A complete <inttypes.h> requires
-  dnl   - a complete <stdint.h>,
-  dnl   - the existence of an <inttypes.h>,
-  dnl   - that imaxabs, imaxdiv, strtoimax, strtoumax are declared,
-  dnl   - some additional tests.
-  AC_CACHE_CHECK([whether inttypes.h conforms to C99],
-    [gl_cv_header_working_inttypes_h],
-    [gl_cv_header_working_inttypes_h=no
-     if test "$gl_cv_header_working_stdint_h" = yes \
-        && test $ac_cv_header_inttypes_h = yes \
-        && test "$ac_cv_have_decl_imaxabs" = yes \
-        && test "$ac_cv_have_decl_imaxdiv" = yes \
-        && test "$ac_cv_have_decl_strtoimax" = yes \
-        && test "$ac_cv_have_decl_strtoumax" = yes; then
-       AC_COMPILE_IFELSE([
-         AC_LANG_PROGRAM([[
-#include <stddef.h>
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* work if build isn't clean */
-#include <inttypes.h>
-
-/* No need to duplicate the tests of stdint.m4; they are subsumed by
-   $gl_cv_header_working_stdint_h = yes.  */
-
-/* Tests for macros supposed to be defined in inttypes.h.  */
-
-const char *k = /* implicit string concatenation */
-#ifdef INT8_MAX
-  PRId8 PRIi8
-#endif
-#ifdef UINT8_MAX
-  PRIo8 PRIu8 PRIx8 PRIX8
-#endif
-#ifdef INT16_MAX
-  PRId16 PRIi16
-#endif
-#ifdef UINT16_MAX
-  PRIo16 PRIu16 PRIx16 PRIX16
-#endif
-#ifdef INT32_MAX
-  PRId32 PRIi32
-#endif
-#ifdef UINT32_MAX
-  PRIo32 PRIu32 PRIx32 PRIX32
-#endif
-#ifdef INT64_MAX
-  PRId64 PRIi64
-#endif
-#ifdef UINT64_MAX
-  PRIo64 PRIu64 PRIx64 PRIX64
-#endif
-  PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
-  PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
-  PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
-  PRIdLEAST64 PRIiLEAST64
-  PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
-  PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
-  PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
-  PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
-  PRIdFAST64 PRIiFAST64
-  PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
-  PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
-#ifdef INTPTR_MAX
-  PRIdPTR PRIiPTR
-#endif
-#ifdef UINTPTR_MAX
-  PRIoPTR PRIuPTR PRIxPTR PRIXPTR
-#endif
-  ;
-const char *l = /* implicit string concatenation */
-#ifdef INT8_MAX
-  SCNd8 SCNi8
-#endif
-#ifdef UINT8_MAX
-  SCNo8 SCNu8 SCNx8
-#endif
-#ifdef INT16_MAX
-  SCNd16 SCNi16
-#endif
-#ifdef UINT16_MAX
-  SCNo16 SCNu16 SCNx16
-#endif
-#ifdef INT32_MAX
-  SCNd32 SCNi32
-#endif
-#ifdef UINT32_MAX
-  SCNo32 SCNu32 SCNx32
-#endif
-#ifdef INT64_MAX
-  SCNd64 SCNi64
-#endif
-#ifdef UINT64_MAX
-  SCNo64 SCNu64 SCNx64
-#endif
-  SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
-  SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
-  SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
-  SCNdLEAST64 SCNiLEAST64
-  SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
-  SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
-  SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
-  SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
-  SCNdFAST64 SCNiFAST64
-  SCNoFAST64 SCNuFAST64 SCNxFAST64
-  SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
-#ifdef INTPTR_MAX
-  SCNdPTR SCNiPTR
-#endif
-#ifdef UINTPTR_MAX
-  SCNoPTR SCNuPTR SCNxPTR
-#endif
-  ;
-         ]])],
-         [gl_cv_header_working_inttypes_h=yes])
-     fi])
 
   dnl Override <inttypes.h> always, so that the portability warnings work.
   AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
@@ -142,22 +24,17 @@ const char *l = /* implicit string concatenation */
 
   AC_REQUIRE([gl_MULTIARCH])
 
-  dnl Ensure that <stdint.h> defines the limit macros, since gnulib's
-  dnl <inttypes.h> relies on them.  This macro is only needed when a
-  dnl C++ compiler is in use; it has no effect for a C compiler.
-  dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's
-  dnl <inttypes.h> is going to be created, and to avoid redefinition warnings
-  dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS.
-  AC_DEFINE([GL_TRIGGER_STDC_LIMIT_MACROS], [1],
-    [Define to make the limit macros in <stdint.h> visible.])
-  AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ],
-[/* Ensure that <stdint.h> defines the limit macros, since gnulib's
-   <inttypes.h> relies on them.  */
-#if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT_MACROS
-# define __STDC_LIMIT_MACROS 1
-#endif
+  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 <inttypes.h>
+    ]], [imaxabs imaxdiv strtoimax strtoumax])
 ])
 
+# Ensure that the PRI* and SCN* macros are defined appropriately.
+AC_DEFUN([gl_INTTYPES_PRI_SCN],
+[
+  AC_REQUIRE([gt_INTTYPES_PRI])
+
   PRIPTR_PREFIX=
   if test -n "$STDINT_H"; then
     dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.
@@ -181,30 +58,6 @@ const char *l = /* implicit string concatenation */
   fi
   AC_SUBST([PRIPTR_PREFIX])
 
-  if test "$ac_cv_have_decl_imaxabs" = yes; then
-    HAVE_DECL_IMAXABS=1
-  else
-    HAVE_DECL_IMAXABS=0
-  fi
-
-  if test "$ac_cv_have_decl_imaxdiv" = yes; then
-    HAVE_DECL_IMAXDIV=1
-  else
-    HAVE_DECL_IMAXDIV=0
-  fi
-
-  if test "$ac_cv_have_decl_strtoimax" = yes; then
-    HAVE_DECL_STRTOIMAX=1
-  else
-    HAVE_DECL_STRTOIMAX=0
-  fi
-
-  if test "$ac_cv_have_decl_strtoumax" = yes; then
-    HAVE_DECL_STRTOUMAX=1
-  else
-    HAVE_DECL_STRTOUMAX=0
-  fi
-
   gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
     [INT32_MAX_LT_INTMAX_MAX],
     [defined INT32_MAX && defined INTMAX_MAX],
@@ -233,11 +86,6 @@ const char *l = /* implicit string concatenation */
   else
     UINT64_MAX_EQ_ULONG_MAX=-1
   fi
-
-  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 <inttypes.h>
-    ]], [imaxabs imaxdiv strtoimax strtoumax])
 ])
 
 # Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
@@ -299,4 +147,11 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
   HAVE_DECL_IMAXDIV=1;   AC_SUBST([HAVE_DECL_IMAXDIV])
   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])
+  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])
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;  AC_SUBST([PRIPTR_PREFIX])
+  UINT32_MAX_LT_UINTMAX_MAX=1;  AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';  AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
 ])
index f10fd54f6334b57f5ba2aa8c065a6a746ee7cf19..5f05ac58cd6432fbd8f6122ddcb50afd5f80bf38 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes_h.m4 serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-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.
index 38641ffb66833cb91453bf4c3cf3d54bae00e117..b73649706b85d5f09c68a064de44fb3c601a627e 100644 (file)
@@ -1,5 +1,5 @@
-# iswblank.m4 serial 2
-dnl Copyright (C) 2011 Free Software Foundation, Inc.
+# iswblank.m4 serial 4
+dnl Copyright (C) 2011-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.
@@ -11,7 +11,17 @@ AC_DEFUN([gl_FUNC_ISWBLANK],
   dnl Persuade glibc <wctype.h> to declare iswblank().
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([iswblank])
-  AC_CHECK_DECLS_ONCE([iswblank])
+  AC_CHECK_DECLS([iswblank], , , [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+]])
   if test $ac_cv_func_iswblank = no; then
     HAVE_ISWBLANK=0
     if test $ac_cv_have_decl_iswblank = yes; then
@@ -24,7 +34,7 @@ AC_DEFUN([gl_FUNC_ISWBLANK],
   else
     if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
       dnl Redefine only iswblank.
-      AC_LIBOBJ([iswblank])
+      :
     fi
   fi
 
index 4cced8a549a5f274376055642d86cd68d5e9578d..73bef8bce3d73d69b959e9555907e5462dc28cb4 100644 (file)
@@ -1,5 +1,5 @@
 # langinfo_h.m4 serial 7
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
diff --git a/m4/largefile.m4 b/m4/largefile.m4
new file mode 100644 (file)
index 0000000..1e605e3
--- /dev/null
@@ -0,0 +1,146 @@
+# Enable large files on systems where this is not the default.
+
+# Copyright 1992-1996, 1998-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.
+
+# The following implementation works around a problem in autoconf <= 2.69;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+# or configures them incorrectly in some cases.
+m4_version_prereq([2.70], [] ,[
+
+# _AC_SYS_LARGEFILE_TEST_INCLUDES
+# -------------------------------
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+[@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1]];[]dnl
+])
+
+
+# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+#                               CACHE-VAR,
+#                               DESCRIPTION,
+#                               PROLOGUE, [FUNCTION-BODY])
+# --------------------------------------------------------
+m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+[while :; do
+  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+    [AC_LANG_PROGRAM([$5], [$6])],
+    [$3=no; break])
+  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+    [AC_LANG_PROGRAM([@%:@define $1 $2
+$5], [$6])],
+    [$3=$2; break])
+  $3=unknown
+  break
+done])
+case $$3 in #(
+  no | unknown) ;;
+  *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+esac
+rm -rf conftest*[]dnl
+])# _AC_SYS_LARGEFILE_MACRO_VALUE
+
+
+# AC_SYS_LARGEFILE
+# ----------------
+# By default, many hosts won't let programs access large files;
+# one must use special compiler options to get large-file access to work.
+# For more details about this brain damage please see:
+# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html
+AC_DEFUN([AC_SYS_LARGEFILE],
+[AC_ARG_ENABLE(largefile,
+               [  --disable-largefile     omit support for large files])
+if test "$enable_largefile" != no; then
+
+  AC_CACHE_CHECK([for special C compiler options needed for large files],
+    ac_cv_sys_largefile_CC,
+    [ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+         AC_COMPILE_IFELSE([], [break])
+         CC="$CC -n32"
+         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+         break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi])
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+    ac_cv_sys_file_offset_bits,
+    [Number of bits in a file offset, on hosts where this is settable.],
+    [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+      ac_cv_sys_large_files,
+      [Define for large files, on AIX-style hosts.],
+      [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+  fi
+
+  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
+    [Enable large inode numbers on Mac OS X 10.5.])
+fi
+])# AC_SYS_LARGEFILE
+])# m4_version_prereq 2.70
+
+# Enable large files on systems where this is implemented by Gnulib, not by the
+# system headers.
+# Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib
+# overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively.
+AC_DEFUN([gl_LARGEFILE],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    mingw*)
+      dnl Native Windows.
+      dnl mingw64 defines off_t to a 64-bit type already, if
+      dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE.
+      AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64],
+        [AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <sys/types.h>
+                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
+              ]],
+              [[]])],
+           [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no])
+        ])
+      if test $gl_cv_type_off_t_64 = no; then
+        WINDOWS_64_BIT_OFF_T=1
+      else
+        WINDOWS_64_BIT_OFF_T=0
+      fi
+      dnl But all native Windows platforms (including mingw64) have a 32-bit
+      dnl st_size member in 'struct stat'.
+      WINDOWS_64_BIT_ST_SIZE=1
+      ;;
+    *)
+      dnl Nothing to do on gnulib's side.
+      dnl A 64-bit off_t is
+      dnl   - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX,
+      dnl     OSF/1, Cygwin,
+      dnl   - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on
+      dnl     glibc, HP-UX, Solaris,
+      dnl   - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX,
+      dnl   - impossible to achieve on Minix 3.1.8.
+      WINDOWS_64_BIT_OFF_T=0
+      WINDOWS_64_BIT_ST_SIZE=0
+      ;;
+  esac
+])
index b567d81b43b23d6cba645530d8733db41e5e8655..9401d9f47ac3786bd337009d280caea4bf349678 100644 (file)
@@ -1,7 +1,7 @@
-# serial 15
+# serial 17
 # Determine whether we need the lchown wrapper.
 
-dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2011 Free Software Foundation,
+dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 
 dnl This file is free software; the Free Software Foundation
@@ -17,13 +17,22 @@ AC_DEFUN([gl_FUNC_LCHOWN],
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_CHOWN])
   AC_CHECK_FUNCS_ONCE([lchmod])
-  AC_REPLACE_FUNCS([lchown])
+  AC_CHECK_FUNCS([lchown])
   if test $ac_cv_func_lchown = no; then
     HAVE_LCHOWN=0
-  elif test "$gl_cv_func_chown_slash_works" != yes \
-      || test "$gl_cv_func_chown_ctime_works" != yes; then
+  else
     dnl Trailing slash and ctime bugs in chown also occur in lchown.
-    AC_LIBOBJ([lchown])
-    REPLACE_LCHOWN=1
+    case "$gl_cv_func_chown_slash_works" in
+      *yes) ;;
+      *)
+        REPLACE_LCHOWN=1
+        ;;
+    esac
+    case "$gl_cv_func_chown_ctime_works" in
+      *yes) ;;
+      *)
+        REPLACE_LCHOWN=1
+        ;;
+    esac
   fi
 ])
index ae003f7c5943f2d7a84ca761f666ba48404e02c2..c145e478e997c5567a97a6fceec986910db9489e 100644 (file)
@@ -1,33 +1,39 @@
-# lib-ld.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2009-2011 Free Software Foundation, Inc.
+# lib-ld.m4 serial 6
+dnl Copyright (C) 1996-2003, 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 Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
+dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
+dnl collision with libtool.m4.
 
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
 AC_DEFUN([AC_LIB_PROG_LD_GNU],
 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
+  acl_cv_prog_gnu_ld=yes
+  ;;
 *)
-  acl_cv_prog_gnu_ld=no ;;
+  acl_cv_prog_gnu_ld=no
+  ;;
 esac])
 with_gnu_ld=$acl_cv_prog_gnu_ld
 ])
 
-dnl From libtool-1.4. Sets the variable LD.
+dnl From libtool-2.4. Sets the variable LD.
 AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
+[AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+        [assume the C compiler uses GNU ld [default=no]])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
 # Prepare PATH_SEPARATOR.
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
@@ -40,10 +46,11 @@ if test "${PATH_SEPARATOR+set}" != set; then
            || PATH_SEPARATOR=';'
        }
 fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
+  AC_MSG_CHECKING([for ld used by $CC])
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -53,11 +60,11 @@ if test "$GCC" = yes; then
   esac
   case $ac_prog in
     # Accept absolute paths.
-    [[\\/]* | [A-Za-z]:[\\/]*)]
-      [re_direlt='/[^/][^/]*/\.\./']
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
+      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
@@ -78,23 +85,26 @@ else
 fi
 AC_CACHE_VAL([acl_cv_path_LD],
 [if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
+    IFS="$acl_save_ifs"
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
       acl_cv_path_LD="$ac_dir/$ac_prog"
       # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
+      # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break
+        ;;
       *)
-        test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break
+        ;;
       esac
     fi
   done
-  IFS="$ac_save_ifs"
+  IFS="$acl_save_ifs"
 else
   acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi])
index e7c9ba9d3d71d79a4838e605dfeedf19c0b7c9d2..073f04050cb143fb8e5748b3f6598261575ee566 100644 (file)
@@ -1,5 +1,5 @@
 # lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-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.
index 7e5f0bde03d858ae3df72481ab340f2a17fd15ef..60908e8fb419800f8e183f05f6f71fa9787a68c7 100644 (file)
@@ -1,5 +1,5 @@
 # lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-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.
index 9831448a278b1a64d8a306668cd6cca5e7c0f60f..d105c721715abc9c870e0501f5b83f604cd00878 100644 (file)
@@ -1,5 +1,5 @@
 # libunistring-base.m4 serial 5
-dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-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.
index 3f1127aa62f64979fe0673fdbaca5f532262d947..35c4fced5dfb94b0ff9c6b17084252adcf8b036b 100644 (file)
@@ -1,8 +1,8 @@
-# serial 16
+# serial 19
 dnl Run a program to determine whether link(2) follows symlinks.
 dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
 
-# Copyright (C) 1999-2001, 2004-2006, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2001, 2004-2006, 2009-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.
@@ -16,6 +16,7 @@ dnl link() is sufficient).  If it is -1, use a Solaris specific
 dnl runtime test.  If it is -2, use a generic runtime test.
 AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
 [dnl
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([readlink])
   dnl Mingw lacks link, although gnulib provides a good replacement.
   dnl However, it also lacks symlink, so there's nothing to test in
@@ -81,19 +82,27 @@ AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
            ]])],
            [gl_cv_func_link_follows_symlink=no], dnl GNU behavior
            [gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile failed
-           [gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
-         )
+           [dnl We're cross compiling.
+            dnl The past results are "yes" on Mac OS X, FreeBSD, NetBSD,
+            dnl OpenBSD, Minix, AIX, HP-UX, OSF/1, and "no" on Linux, Cygwin.
+            case "$host_os" in
+                           # On glibc/Linux we know the result.
+              linux*-gnu*) gl_cv_func_link_follows_symlink="guessing no" ;;
+                           # Otherwise, we don't know.
+              *)           gl_cv_func_link_follows_symlink=unknown ;;
+            esac
+           ])
          rm -f conftest.file conftest.sym conftest.hard
         ])
-      case $gl_cv_func_link_follows_symlink in
-        yes) gl_link_follows_symlinks=1 ;;
-        no) ;; # already defaulted to 0
+      case "$gl_cv_func_link_follows_symlink" in
+        *yes) gl_link_follows_symlinks=1 ;;
+        *no) ;; # already defaulted to 0
         *) gl_link_follows_symlinks=-2 ;;
       esac
     fi
   fi
   AC_DEFINE_UNQUOTED([LINK_FOLLOWS_SYMLINKS], [$gl_link_follows_symlinks],
-    [Define to 1 if `link(2)' dereferences symbolic links, 0 if it
+    [Define to 1 if 'link(2)' dereferences symbolic links, 0 if it
      creates hard links to symlinks, -1 if it depends on the variable __xpg4,
      and -2 if unknown.])
 ])
index 479083cb84bf48e2daa07201050ca183fa9d2b44..7cc0ceb91c698bbf169f506c89ead995cff97ebb 100644 (file)
@@ -1,5 +1,5 @@
-# link.m4 serial 5
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# link.m4 serial 8
+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.
@@ -7,12 +7,12 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_LINK],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([link])
   if test $ac_cv_func_link = no; then
     HAVE_LINK=0
-    AC_LIBOBJ([link])
   else
-    AC_CACHE_CHECK([whether link handles trailing slash correctly],
+    AC_CACHE_CHECK([whether link obeys POSIX],
       [gl_cv_func_link_works],
       [touch conftest.a
        # Assume that if we have lstat, we can also check symlinks.
@@ -29,15 +29,27 @@ AC_DEFUN([gl_FUNC_LINK],
 #if HAVE_LSTAT
              if (!link ("conftest.lnk/", "conftest.b"))
                result |= 2;
+             if (rename ("conftest.a", "conftest.b"))
+               result |= 4;
+             if (!link ("conftest.b", "conftest.lnk"))
+               result |= 8;
 #endif
              return result;
            ]])],
          [gl_cv_func_link_works=yes], [gl_cv_func_link_works=no],
-         [gl_cv_func_link_works="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_link_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_link_works="guessing no" ;;
+          esac
+         ])
        rm -f conftest.a conftest.b conftest.lnk])
-    if test "$gl_cv_func_link_works" != yes; then
-      REPLACE_LINK=1
-      AC_LIBOBJ([link])
-    fi
+    case "$gl_cv_func_link_works" in
+      *yes) ;;
+      *)
+        REPLACE_LINK=1
+        ;;
+    esac
   fi
 ])
index 1a1a6b463af6aa621c79dd199ec7b6b338353c12..b561ddadf31bf589ecd4f070f9999701f0f6b710 100644 (file)
@@ -1,7 +1,7 @@
-# serial 4
+# serial 6
 # See if we need to provide linkat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -11,7 +11,6 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_LINKAT],
 [
   AC_REQUIRE([gl_FUNC_OPENAT])
-  AC_REQUIRE([gl_FUNC_LINK])
   AC_REQUIRE([gl_FUNC_LINK_FOLLOWS_SYMLINK])
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@@ -20,8 +19,6 @@ AC_DEFUN([gl_FUNC_LINKAT],
   AC_CHECK_HEADERS_ONCE([sys/param.h])
   if test $ac_cv_func_linkat = no; then
     HAVE_LINKAT=0
-    AC_LIBOBJ([linkat])
-    AC_LIBOBJ([at-func2])
   else
     AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works],
       [gl_cv_func_linkat_follow],
@@ -91,7 +88,6 @@ choke me
     if test "$gl_cv_func_linkat_follow" != yes \
        || test $gl_linkat_slash_bug = 1; then
       REPLACE_LINKAT=1
-      AC_LIBOBJ([linkat])
       AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug],
         [Define to 1 if linkat fails to recognize a trailing slash.])
     fi
index 6801ca955d324ce9b76877b84967128b4f56625d..2e93e5818d6792f8cab5e775c7919426a5c9193d 100644 (file)
@@ -1,5 +1,5 @@
 # localcharset.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 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.
index 3f4f954e50219aa560e8ce871a75f01e6c86ef7c..ef199e397361ec1c2c6816f878e11f742446c055 100644 (file)
@@ -1,5 +1,5 @@
-# locale-fr.m4 serial 13
-dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc.
+# locale-fr.m4 serial 17
+dnl Copyright (C) 2003, 2005-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.
@@ -26,9 +26,9 @@ char buf[16];
 int main () {
   /* Check whether the given locale name is recognized by the system.  */
 #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
+  /* On native Windows, setlocale(category, "") looks at the system settings,
      not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
      category of the locale to "C".  */
   if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
       || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
@@ -37,7 +37,7 @@ int main () {
   if (setlocale (LC_ALL, "") == NULL) return 1;
 #endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -63,10 +63,12 @@ int main () {
      one byte long. This excludes the UTF-8 encoding.  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 changequote([,])dnl
@@ -80,7 +82,7 @@ changequote([,])dnl
         # "ja" as "Japanese" or "Japanese_Japan.932",
         # and similar.
         mingw*)
-          # Test for the native Win32 locale name.
+          # Test for the native Windows locale name.
           if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
             gt_cv_locale_fr=French_France.1252
           else
@@ -90,7 +92,7 @@ changequote([,])dnl
           ;;
         *)
           # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
           # configure script would override the LC_ALL setting. Likewise for
           # LC_CTYPE, which is also set at the beginning of the configure script.
           # Test for the usual locale name.
@@ -152,9 +154,9 @@ int main () {
 #if !(defined __BEOS__ || defined __HAIKU__)
   /* Check whether the given locale name is recognized by the system.  */
 # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
+  /* On native Windows, setlocale(category, "") looks at the system settings,
      not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
      category of the locale to "C".  */
   if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
       || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
@@ -163,7 +165,7 @@ int main () {
   if (setlocale (LC_ALL, "") == NULL) return 1;
 # endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -189,10 +191,12 @@ int main () {
       || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
     return 1;
 #endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 changequote([,])dnl
@@ -206,7 +210,7 @@ changequote([,])dnl
         # "ja" as "Japanese" or "Japanese_Japan.932",
         # and similar.
         mingw*)
-          # Test for the hypothetical native Win32 locale name.
+          # Test for the hypothetical native Windows locale name.
           if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
             gt_cv_locale_fr_utf8=French_France.65001
           else
@@ -216,7 +220,7 @@ changequote([,])dnl
           ;;
         *)
           # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
           # configure script would override the LC_ALL setting. Likewise for
           # LC_CTYPE, which is also set at the beginning of the configure script.
           # Test for the usual locale name.
index d44c2c80892138929ae2fb38dfe96b4e446e50d3..132a3e7793807b544aa11087c134c7bf057460b8 100644 (file)
@@ -1,5 +1,5 @@
-# locale-ja.m4 serial 9
-dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc.
+# locale-ja.m4 serial 12
+dnl Copyright (C) 2003, 2005-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.
@@ -28,9 +28,9 @@ int main ()
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
 #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
+  /* On native Windows, setlocale(category, "") looks at the system settings,
      not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
      category of the locale to "C".  */
   if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
       || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
@@ -39,7 +39,7 @@ int main ()
   if (setlocale (LC_ALL, "") == NULL) return 1;
 #endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -84,13 +84,14 @@ changequote([,])dnl
         # "ja" as "Japanese" or "Japanese_Japan.932",
         # and similar.
         mingw*)
-          # Note that on native Win32, the Japanese locale is Japanese_Japan.932,
-          # and CP932 is very different from EUC-JP, so we cannot use it here.
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
           gt_cv_locale_ja=none
           ;;
         *)
           # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
           # configure script would override the LC_ALL setting. Likewise for
           # LC_CTYPE, which is also set at the beginning of the configure script.
           # Test for the AIX locale name.
index e03f91f06aee2ce31646e052da096296eb6a8530..4eed73f4062eee13a53e7ca186c76dba6ca4b35f 100644 (file)
@@ -1,5 +1,5 @@
-# locale-zh.m4 serial 8
-dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc.
+# locale-zh.m4 serial 12
+dnl Copyright (C) 2003, 2005-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.
@@ -29,9 +29,9 @@ int main ()
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
 #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
-  /* On native Win32, setlocale(category, "") looks at the system settings,
+  /* On native Windows, setlocale(category, "") looks at the system settings,
      not at the environment variables.  Also, when an encoding suffix such
-     as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
      category of the locale to "C".  */
   if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
       || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
@@ -40,7 +40,7 @@ int main ()
   if (setlocale (LC_ALL, "") == NULL) return 1;
 #endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -85,7 +85,7 @@ changequote([,])dnl
         # "ja" as "Japanese" or "Japanese_Japan.932",
         # and similar.
         mingw*)
-          # Test for the hypothetical native Win32 locale name.
+          # Test for the hypothetical native Windows locale name.
           if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
             gt_cv_locale_zh_CN=Chinese_China.54936
           else
@@ -93,9 +93,15 @@ changequote([,])dnl
             gt_cv_locale_zh_CN=none
           fi
           ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
         *)
           # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-          # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
           # configure script would override the LC_ALL setting. Likewise for
           # LC_CTYPE, which is also set at the beginning of the configure script.
           # Test for the locale name without encoding suffix.
diff --git a/m4/locale_h.m4 b/m4/locale_h.m4
new file mode 100644 (file)
index 0000000..8bd12e8
--- /dev/null
@@ -0,0 +1,122 @@
+# locale_h.m4 serial 19
+dnl Copyright (C) 2007, 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.
+
+AC_DEFUN([gl_LOCALE_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_LOCALE_H_DEFAULTS])
+
+  dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_*
+  dnl members of 'struct lconv'.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
+  AC_REQUIRE([gl_STDDEF_H])
+
+  dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
+  dnl only if _LCONV_C99 is defined.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    solaris*)
+      AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.])
+      ;;
+  esac
+
+  AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001],
+    [gl_cv_header_locale_h_posix2001],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <locale.h>
+            int x = LC_MESSAGES;
+            int y = sizeof (((struct lconv *) 0)->decimal_point);]],
+          [[]])],
+       [gl_cv_header_locale_h_posix2001=yes],
+       [gl_cv_header_locale_h_posix2001=no])])
+
+  dnl Check for <xlocale.h>.
+  AC_CHECK_HEADERS_ONCE([xlocale.h])
+  if test $ac_cv_header_xlocale_h = yes; then
+    HAVE_XLOCALE_H=1
+    dnl Check whether use of locale_t requires inclusion of <xlocale.h>,
+    dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by
+    dnl itself, we assume that <xlocale.h> will do so.
+    AC_CACHE_CHECK([whether locale.h defines locale_t],
+      [gl_cv_header_locale_has_locale_t],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <locale.h>
+              locale_t x;]],
+            [[]])],
+         [gl_cv_header_locale_has_locale_t=yes],
+         [gl_cv_header_locale_has_locale_t=no])
+      ])
+    if test $gl_cv_header_locale_has_locale_t = yes; then
+      gl_cv_header_locale_h_needs_xlocale_h=no
+    else
+      gl_cv_header_locale_h_needs_xlocale_h=yes
+    fi
+  else
+    HAVE_XLOCALE_H=0
+    gl_cv_header_locale_h_needs_xlocale_h=no
+  fi
+  AC_SUBST([HAVE_XLOCALE_H])
+
+  dnl Check whether 'struct lconv' is complete.
+  dnl Bionic libc's 'struct lconv' is just a dummy.
+  dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
+  dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members.
+  AC_CACHE_CHECK([whether struct lconv is properly defined],
+    [gl_cv_sys_struct_lconv_ok],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <locale.h>
+            struct lconv l;
+            int x = sizeof (l.decimal_point);
+            int y = sizeof (l.int_p_cs_precedes);]],
+          [[]])],
+       [gl_cv_sys_struct_lconv_ok=yes],
+       [gl_cv_sys_struct_lconv_ok=no])
+    ])
+  if test $gl_cv_sys_struct_lconv_ok = no; then
+    REPLACE_STRUCT_LCONV=1
+  fi
+
+  dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_NEXT_HEADERS([locale.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 <locale.h>
+/* Some systems provide declarations in a non-standard header.  */
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
+#endif
+    ]],
+    [setlocale duplocale])
+])
+
+AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_LOCALE_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_LOCALE_H_DEFAULTS],
+[
+  GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV])
+  GNULIB_SETLOCALE=0;  AC_SUBST([GNULIB_SETLOCALE])
+  GNULIB_DUPLOCALE=0;  AC_SUBST([GNULIB_DUPLOCALE])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DUPLOCALE=1;       AC_SUBST([HAVE_DUPLOCALE])
+  REPLACE_LOCALECONV=0;   AC_SUBST([REPLACE_LOCALECONV])
+  REPLACE_SETLOCALE=0;    AC_SUBST([REPLACE_SETLOCALE])
+  REPLACE_DUPLOCALE=0;    AC_SUBST([REPLACE_DUPLOCALE])
+  REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
+])
diff --git a/m4/localeconv.m4 b/m4/localeconv.m4
new file mode 100644 (file)
index 0000000..b8bb596
--- /dev/null
@@ -0,0 +1,22 @@
+# localeconv.m4 serial 1
+dnl Copyright (C) 2012-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.
+
+AC_DEFUN([gl_FUNC_LOCALECONV],
+[
+  AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+  AC_REQUIRE([gl_LOCALE_H])
+
+  if test $REPLACE_STRUCT_LCONV = 1; then
+    REPLACE_LOCALECONV=1
+  fi
+])
+
+# Prerequisites of lib/localeconv.c.
+AC_DEFUN([gl_PREREQ_LOCALECONV],
+[
+  AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [],
+    [[#include <locale.h>]])
+])
index aed816cfa5e46efe628199bf956a0914cb0d883e..3af6ab5aa198811fb2200b486babd3be54831556 100644 (file)
@@ -1,5 +1,5 @@
-# longlong.m4 serial 16
-dnl Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc.
+# longlong.m4 serial 17
+dnl Copyright (C) 1999-2007, 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.
@@ -51,7 +51,7 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT],
       fi])
   if test $ac_cv_type_long_long_int = yes; then
     AC_DEFINE([HAVE_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type `long long int'.])
+      [Define to 1 if the system has the type 'long long int'.])
   fi
 ])
 
@@ -77,7 +77,7 @@ AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
      fi])
   if test $ac_cv_type_unsigned_long_long_int = yes; then
     AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type `unsigned long long int'.])
+      [Define to 1 if the system has the type 'unsigned long long int'.])
   fi
 ])
 
index f6452f6f20ea7d499e127ac4650739e3abd00bc0..df9302af4074e2393ba8e9fbb30ff604030443d3 100644 (file)
@@ -1,5 +1,5 @@
-# lseek.m4 serial 6
-dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# lseek.m4 serial 10
+dnl Copyright (C) 2007, 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.
@@ -7,43 +7,65 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_LSEEK],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AC_PROG_CC])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
   AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe],
-    [if test $cross_compiling = no; then
-       AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+    [case "$host_os" in
+       mingw*)
+         dnl Native Windows.
+         dnl The result of lseek (fd, (off_t)0, SEEK_CUR) or
+         dnl SetFilePointer(handle, 0, NULL, FILE_CURRENT)
+         dnl for a pipe depends on the environment: In a Cygwin 1.5
+         dnl environment it succeeds (wrong); in a Cygwin 1.7 environment
+         dnl it fails with a wrong errno value.
+         gl_cv_func_lseek_pipe=no
+         ;;
+       *)
+         if test $cross_compiling = no; then
+           AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h> /* for off_t */
 #include <stdio.h> /* for SEEK_CUR */
-#include <unistd.h>]], [[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+]], [[
   /* Exit with success only if stdin is seekable.  */
   return lseek (0, (off_t)0, SEEK_CUR) < 0;
 ]])],
-         [if test -s conftest$ac_exeext \
-             && ./conftest$ac_exeext < conftest.$ac_ext \
-             && test 1 = "`echo hi \
-               | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then
-            gl_cv_func_lseek_pipe=yes
-          else
-            gl_cv_func_lseek_pipe=no
-          fi],
-         [gl_cv_func_lseek_pipe=no])
-     else
-       AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__
-/* mingw and BeOS mistakenly return 0 when trying to seek on pipes.  */
+             [if test -s conftest$ac_exeext \
+                 && ./conftest$ac_exeext < conftest.$ac_ext \
+                 && test 1 = "`echo hi \
+                   | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then
+                gl_cv_func_lseek_pipe=yes
+              else
+                gl_cv_func_lseek_pipe=no
+              fi
+             ],
+             [gl_cv_func_lseek_pipe=no])
+         else
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE([[
+#if defined __BEOS__
+/* BeOS mistakenly return 0 when trying to seek on pipes.  */
   Choke me.
 #endif]])],
-         [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no])
-     fi])
+             [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no])
+         fi
+         ;;
+     esac
+    ])
   if test $gl_cv_func_lseek_pipe = no; then
-    gl_REPLACE_LSEEK
+    REPLACE_LSEEK=1
+    AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
+      [Define to 1 if lseek does not detect pipes.])
   fi
-])
 
-AC_DEFUN([gl_REPLACE_LSEEK],
-[
-  AC_LIBOBJ([lseek])
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  REPLACE_LSEEK=1
-  AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
-            [Define to 1 if lseek does not detect pipes.])
+  AC_REQUIRE([gl_SYS_TYPES_H])
+  if test $WINDOWS_64_BIT_OFF_T = 1; then
+    REPLACE_LSEEK=1
+  fi
 ])
index b9b22a6b20e096a94bac4d3a9a51a0f71aa9af90..5f4db64a42b6d60ed1e3fbbeeb427c7a87ea705d 100644 (file)
@@ -1,6 +1,6 @@
-# serial 21
+# serial 26
 
-# Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,24 +15,26 @@ AC_DEFUN([gl_FUNC_LSTAT],
   dnl "#define lstat stat", and lstat.c is a no-op.
   AC_CHECK_FUNCS_ONCE([lstat])
   if test $ac_cv_func_lstat = yes; then
-    AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
-    if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
-      dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ([lstat]).
-      REPLACE_LSTAT=1
-    fi
-    # Prerequisites of lib/lstat.c.
-    AC_REQUIRE([AC_C_INLINE])
+    AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        REPLACE_LSTAT=1
+        ;;
+    esac
   else
     HAVE_LSTAT=0
   fi
 ])
 
-# Redefine AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, because it is no longer
-# maintained in Autoconf.
-AC_DEFUN([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+# Prerequisites of lib/lstat.c.
+AC_DEFUN([gl_PREREQ_LSTAT], [:])
+
+AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
 [
+  dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
+  dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
   AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
-    [ac_cv_func_lstat_dereferences_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
@@ -45,25 +47,27 @@ AC_DEFUN([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
                  have to compile and use the lstat wrapper.  */
               return lstat ("conftest.sym/", &sbuf) == 0;
             ]])],
-         [ac_cv_func_lstat_dereferences_slashed_symlink=yes],
-         [ac_cv_func_lstat_dereferences_slashed_symlink=no],
-         [# When cross-compiling, be pessimistic so we will end up using the
-          # replacement version of lstat that checks for trailing slashes and
-          # calls lstat a second time when necessary.
-          ac_cv_func_lstat_dereferences_slashed_symlink=no
+         [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.
-       ac_cv_func_lstat_dereferences_slashed_symlink=no
+       gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
      fi
      rm -f conftest.sym conftest.file
     ])
-  test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
-    AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
-      [Define to 1 if `lstat' dereferences a symlink specified
-       with a trailing slash.])
-  if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then
-    AC_LIBOBJ([lstat])
-  fi
+  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+    *yes)
+      AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
+        [Define to 1 if 'lstat' dereferences a symlink specified
+         with a trailing slash.])
+      ;;
+  esac
 ])
index 8094444507ad0c3cf450979da296c7e627a2d2f8..4b24a0b115f2515f98f319bb9a74ad2e28426306 100644 (file)
@@ -1,9 +1,47 @@
-# malloc.m4 serial 12
-dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# malloc.m4 serial 14
+dnl Copyright (C) 2007, 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.
 
+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
+AC_DEFUN([_AC_FUNC_MALLOC_IF],
+[
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+  AC_CHECK_HEADERS([stdlib.h])
+  AC_CACHE_CHECK([for GNU libc compatible malloc],
+    [ac_cv_func_malloc_0_nonnull],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+            # include <stdlib.h>
+            #else
+            char *malloc ();
+            #endif
+          ]],
+          [[return ! malloc (0);]])
+       ],
+       [ac_cv_func_malloc_0_nonnull=yes],
+       [ac_cv_func_malloc_0_nonnull=no],
+       [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
+       ])
+    ])
+  AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2])
+])# _AC_FUNC_MALLOC_IF
+
+])
+
 # gl_FUNC_MALLOC_GNU
 # ------------------
 # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
@@ -17,7 +55,7 @@ AC_DEFUN([gl_FUNC_MALLOC_GNU],
                [Define to 1 if your system has a GNU libc compatible 'malloc'
                 function, and to 0 otherwise.])],
     [AC_DEFINE([HAVE_MALLOC_GNU], [0])
-     gl_REPLACE_MALLOC
+     REPLACE_MALLOC=1
     ])
 ])
 
@@ -33,7 +71,7 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
     AC_DEFINE([HAVE_MALLOC_POSIX], [1],
       [Define if the 'malloc' function is POSIX compliant.])
   else
-    gl_REPLACE_MALLOC
+    REPLACE_MALLOC=1
   fi
 ])
 
@@ -58,9 +96,3 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
         [gl_cv_func_malloc_posix=no])
     ])
 ])
-
-AC_DEFUN([gl_REPLACE_MALLOC],
-[
-  AC_LIBOBJ([malloc])
-  REPLACE_MALLOC=1
-])
index aec43f5877a70874f466e08ea67f4850ef2a3335..791ce10d5f9839012ea218d482bb65f8fd00697d 100644 (file)
@@ -1,5 +1,5 @@
 # malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2011 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 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/manywarnings.m4 b/m4/manywarnings.m4
new file mode 100644 (file)
index 0000000..be6d4c9
--- /dev/null
@@ -0,0 +1,222 @@
+# manywarnings.m4 serial 5
+dnl Copyright (C) 2008-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 From Simon Josefsson
+
+# gl_MANYWARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR)
+# --------------------------------------------------
+# Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR.
+# Elements separated by whitespace.  In set logic terms, the function
+# does OUTVAR = LISTVAR \ REMOVEVAR.
+AC_DEFUN([gl_MANYWARN_COMPLEMENT],
+[
+  gl_warn_set=
+  set x $2; shift
+  for gl_warn_item
+  do
+    case " $3 " in
+      *" $gl_warn_item "*)
+        ;;
+      *)
+        gl_warn_set="$gl_warn_set $gl_warn_item"
+        ;;
+    esac
+  done
+  $1=$gl_warn_set
+])
+
+# gl_MANYWARN_ALL_GCC(VARIABLE)
+# -----------------------------
+# Add all documented GCC warning parameters to variable VARIABLE.
+# Note that you need to test them using gl_WARN_ADD if you want to
+# make sure your gcc understands it.
+AC_DEFUN([gl_MANYWARN_ALL_GCC],
+[
+  dnl First, check for some issues that only occur when combining multiple
+  dnl gcc warning categories.
+  AC_REQUIRE([AC_PROG_CC])
+  if test -n "$GCC"; then
+
+    dnl Check if -W -Werror -Wno-missing-field-initializers is supported
+    dnl with the current $CC $CFLAGS $CPPFLAGS.
+    AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported])
+    AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[]], [[]])],
+        [gl_cv_cc_nomfi_supported=yes],
+        [gl_cv_cc_nomfi_supported=no])
+      CFLAGS="$gl_save_CFLAGS"])
+    AC_MSG_RESULT([$gl_cv_cc_nomfi_supported])
+
+    if test "$gl_cv_cc_nomfi_supported" = yes; then
+      dnl Now check whether -Wno-missing-field-initializers is needed
+      dnl for the { 0, } construct.
+      AC_MSG_CHECKING([whether -Wno-missing-field-initializers is needed])
+      AC_CACHE_VAL([gl_cv_cc_nomfi_needed], [
+        gl_save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS -W -Werror"
+        AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[void f (void)
+               {
+                 typedef struct { int a; int b; } s_t;
+                 s_t s1 = { 0, };
+               }
+             ]],
+             [[]])],
+          [gl_cv_cc_nomfi_needed=no],
+          [gl_cv_cc_nomfi_needed=yes])
+        CFLAGS="$gl_save_CFLAGS"
+      ])
+      AC_MSG_RESULT([$gl_cv_cc_nomfi_needed])
+    fi
+
+    dnl Next, check if -Werror -Wuninitialized is useful with the
+    dnl user's choice of $CFLAGS; some versions of gcc warn that it
+    dnl has no effect if -O is not also used
+    AC_MSG_CHECKING([whether -Wuninitialized is supported])
+    AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [
+      gl_save_CFLAGS="$CFLAGS"
+      CFLAGS="$CFLAGS -Werror -Wuninitialized"
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[]], [[]])],
+        [gl_cv_cc_uninitialized_supported=yes],
+        [gl_cv_cc_uninitialized_supported=no])
+      CFLAGS="$gl_save_CFLAGS"])
+    AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported])
+
+  fi
+
+  # List all gcc warning categories.
+  gl_manywarn_set=
+  for gl_manywarn_item in \
+    -W \
+    -Wabi \
+    -Waddress \
+    -Waggressive-loop-optimizations \
+    -Wall \
+    -Warray-bounds \
+    -Wattributes \
+    -Wbad-function-cast \
+    -Wbuiltin-macro-redefined \
+    -Wcast-align \
+    -Wchar-subscripts \
+    -Wclobbered \
+    -Wcomment \
+    -Wcomments \
+    -Wcoverage-mismatch \
+    -Wcpp \
+    -Wdeprecated \
+    -Wdeprecated-declarations \
+    -Wdisabled-optimization \
+    -Wdiv-by-zero \
+    -Wdouble-promotion \
+    -Wempty-body \
+    -Wendif-labels \
+    -Wenum-compare \
+    -Wextra \
+    -Wformat-contains-nul \
+    -Wformat-extra-args \
+    -Wformat-nonliteral \
+    -Wformat-security \
+    -Wformat-y2k \
+    -Wformat-zero-length \
+    -Wfree-nonheap-object \
+    -Wignored-qualifiers \
+    -Wimplicit \
+    -Wimplicit-function-declaration \
+    -Wimplicit-int \
+    -Winit-self \
+    -Winline \
+    -Wint-to-pointer-cast \
+    -Winvalid-memory-model \
+    -Winvalid-pch \
+    -Wjump-misses-init \
+    -Wlogical-op \
+    -Wmain \
+    -Wmaybe-uninitialized \
+    -Wmissing-braces \
+    -Wmissing-declarations \
+    -Wmissing-field-initializers \
+    -Wmissing-include-dirs \
+    -Wmissing-parameter-type \
+    -Wmissing-prototypes \
+    -Wmudflap \
+    -Wmultichar \
+    -Wnarrowing \
+    -Wnested-externs \
+    -Wnonnull \
+    -Wnormalized=nfc \
+    -Wold-style-declaration \
+    -Wold-style-definition \
+    -Woverflow \
+    -Woverlength-strings \
+    -Woverride-init \
+    -Wpacked \
+    -Wpacked-bitfield-compat \
+    -Wparentheses \
+    -Wpointer-arith \
+    -Wpointer-sign \
+    -Wpointer-to-int-cast \
+    -Wpragmas \
+    -Wreturn-local-addr \
+    -Wreturn-type \
+    -Wsequence-point \
+    -Wshadow \
+    -Wsizeof-pointer-memaccess \
+    -Wstack-protector \
+    -Wstrict-aliasing \
+    -Wstrict-overflow \
+    -Wstrict-prototypes \
+    -Wsuggest-attribute=const \
+    -Wsuggest-attribute=format \
+    -Wsuggest-attribute=noreturn \
+    -Wsuggest-attribute=pure \
+    -Wswitch \
+    -Wswitch-default \
+    -Wsync-nand \
+    -Wsystem-headers \
+    -Wtrampolines \
+    -Wtrigraphs \
+    -Wtype-limits \
+    -Wuninitialized \
+    -Wunknown-pragmas \
+    -Wunsafe-loop-optimizations \
+    -Wunused \
+    -Wunused-but-set-parameter \
+    -Wunused-but-set-variable \
+    -Wunused-function \
+    -Wunused-label \
+    -Wunused-local-typedefs \
+    -Wunused-macros \
+    -Wunused-parameter \
+    -Wunused-result \
+    -Wunused-value \
+    -Wunused-variable \
+    -Wvarargs \
+    -Wvariadic-macros \
+    -Wvector-operation-performance \
+    -Wvla \
+    -Wvolatile-register-var \
+    -Wwrite-strings \
+    \
+    ; do
+    gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
+  done
+
+  # Disable specific options as needed.
+  if test "$gl_cv_cc_nomfi_needed" = yes; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
+  fi
+
+  if test "$gl_cv_cc_uninitialized_supported" = no; then
+    gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
+  fi
+
+  $1=$gl_manywarn_set
+])
index 763dd81e3e3a31192d7a7aaabf122548b1fb3962..b18ecef131c30b5eb46e83bd3c882f662f46a7b9 100644 (file)
@@ -1,5 +1,5 @@
-# mbchar.m4 serial 8
-dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
+# mbchar.m4 serial 9
+dnl Copyright (C) 2005-2007, 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.
@@ -10,5 +10,4 @@ dnl From Bruno Haible.
 AC_DEFUN([gl_MBCHAR],
 [
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-  AC_REQUIRE([AC_C_INLINE])
 ])
index 8582b30b0685281e28de4ae215a5b4173baba5d1..9b5fceda4208550d51a93a101a7e0f4aced6d85a 100644 (file)
@@ -1,5 +1,5 @@
-# mbiter.m4 serial 6
-dnl Copyright (C) 2005, 2008-2011 Free Software Foundation, Inc.
+# mbiter.m4 serial 7
+dnl Copyright (C) 2005, 2008-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.
@@ -9,7 +9,6 @@ dnl From Bruno Haible.
 
 AC_DEFUN([gl_MBITER],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
   :
 ])
index c353862973e4feda9a6d9036f39f76c6157fd804..4c9f38861c62cdc2383dc81ffeabd621a2761a3c 100644 (file)
@@ -1,5 +1,5 @@
-# mbrtowc.m4 serial 22
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2011 Free Software Foundation,
+# mbrtowc.m4 serial 25
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 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,
@@ -15,6 +15,22 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
   AC_CHECK_FUNCS_ONCE([mbrtowc])
   if test $ac_cv_func_mbrtowc = no; then
     HAVE_MBRTOWC=0
+    AC_CHECK_DECLS([mbrtowc],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_mbrtowc = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_MBRTOWC=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_MBRTOWC=1
@@ -53,11 +69,6 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
       esac
     fi
   fi
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([mbrtowc])
-    gl_PREREQ_MBRTOWC
-  fi
 ])
 
 dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that
@@ -88,9 +99,6 @@ AC_DEFUN([gl_MBSTATE_T_BROKEN],
   else
     REPLACE_MBSTATE_T=1
   fi
-  if test $REPLACE_MBSTATE_T = 1; then
-    gl_REPLACE_WCHAR_H
-  fi
 ])
 
 dnl Test whether mbrtowc puts the state into non-initial state when parsing an
index 47e2d14a73538d34bb60946fd0af8dae40a26c6e..2e6d0921ae37f66c78e5d06d9578b6f239556f09 100644 (file)
@@ -1,5 +1,5 @@
-# mbsinit.m4 serial 5
-dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
+# mbsinit.m4 serial 8
+dnl Copyright (C) 2008, 2010-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.
@@ -15,6 +15,22 @@ AC_DEFUN([gl_FUNC_MBSINIT],
   AC_CHECK_FUNCS_ONCE([mbsinit])
   if test $ac_cv_func_mbsinit = no; then
     HAVE_MBSINIT=0
+    AC_CHECK_DECLS([mbsinit],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_mbsinit = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_MBSINIT=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_MBSINIT=1
@@ -27,11 +43,6 @@ AC_DEFUN([gl_FUNC_MBSINIT],
       esac
     fi
   fi
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([mbsinit])
-    gl_PREREQ_MBSINIT
-  fi
 ])
 
 # Prerequisites of lib/mbsinit.c.
index 1fe8dcf27d71a338192ae71f9f5f0c471cc4f92f..c4934c2813334997e94ea8608b76769581501368 100644 (file)
@@ -1,5 +1,5 @@
-# mbsrtowcs.m4 serial 10
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# mbsrtowcs.m4 serial 13
+dnl Copyright (C) 2008-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.
@@ -14,6 +14,22 @@ AC_DEFUN([gl_FUNC_MBSRTOWCS],
   AC_CHECK_FUNCS_ONCE([mbsrtowcs])
   if test $ac_cv_func_mbsrtowcs = no; then
     HAVE_MBSRTOWCS=0
+    AC_CHECK_DECLS([mbsrtowcs],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_mbsrtowcs = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares mbsrtowcs() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_MBSRTOWCS=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_MBSRTOWCS=1
@@ -25,12 +41,6 @@ AC_DEFUN([gl_FUNC_MBSRTOWCS],
       esac
     fi
   fi
-  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([mbsrtowcs])
-    AC_LIBOBJ([mbsrtowcs-state])
-    gl_PREREQ_MBSRTOWCS
-  fi
 ])
 
 dnl Test whether mbsrtowcs works.
index f7c46b8ccbe26d9133b30320b1afb757aa5ffc2e..ed001179889abf292a9eb139b066c9ccf087f7d4 100644 (file)
@@ -1,5 +1,5 @@
 # mbstate_t.m4 serial 13
-dnl Copyright (C) 2000-2002, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-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.
index 9215892f6fc87a5cd019898afaa28b65ca20a592..e4794619666d98eb5fd8b1cde6fbc9d02e8e7482 100644 (file)
@@ -1,5 +1,5 @@
-# mbtowc.m4 serial 1
-dnl Copyright (C) 2011 Free Software Foundation, Inc.
+# mbtowc.m4 serial 2
+dnl Copyright (C) 2011-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.
@@ -11,10 +11,6 @@ AC_DEFUN([gl_FUNC_MBTOWC],
   if false; then
     REPLACE_MBTOWC=1
   fi
-  if test $REPLACE_MBTOWC = 1; then
-    AC_LIBOBJ([mbtowc])
-    gl_PREREQ_MBTOWC
-  fi
 ])
 
 # Prerequisites of lib/mbtowc.c.
index 3c2b313916841cd2a2e9efa8f60ab1b6d6dcf21c..2d8abe75d7a8a1603cd3a65d1ae06eac50612454 100644 (file)
@@ -1,5 +1,5 @@
-# memchr.m4 serial 10
-dnl Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc.
+# memchr.m4 serial 12
+dnl Copyright (C) 2002-2004, 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.
@@ -11,10 +11,16 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
 
-  dnl These days, we assume memchr is present.  But just in case...
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([memchr])
-  if test $ac_cv_func_memchr = yes; then
+  m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [
+    dnl These days, we assume memchr is present.  But if support for old
+    dnl platforms is desired:
+    AC_CHECK_FUNCS_ONCE([memchr])
+    if test $ac_cv_func_memchr = no; then
+      HAVE_MEMCHR=0
+    fi
+  ])
+  if test $HAVE_MEMCHR = 1; then
     # Detect platform-specific bugs in some versions of glibc:
     # memchr should not dereference anything with length 0
     #   http://bugzilla.redhat.com/499689
@@ -73,12 +79,6 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
     if test "$gl_cv_func_memchr_works" != yes; then
       REPLACE_MEMCHR=1
     fi
-  else
-    HAVE_MEMCHR=0
-  fi
-  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
-    AC_LIBOBJ([memchr])
-    gl_PREREQ_MEMCHR
   fi
 ])
 
index cc36900a1f5008332faca88f73d7f2c97fea2517..a48f2d107cd84cc74f12b899831a41d236cc8f05 100644 (file)
@@ -1,5 +1,5 @@
-# mempcpy.m4 serial 10
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2011 Free Software Foundation,
+# mempcpy.m4 serial 11
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -14,10 +14,9 @@ AC_DEFUN([gl_FUNC_MEMPCPY],
   AC_REQUIRE([AC_C_RESTRICT])
 
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_REPLACE_FUNCS([mempcpy])
+  AC_CHECK_FUNCS([mempcpy])
   if test $ac_cv_func_mempcpy = no; then
     HAVE_MEMPCPY=0
-    gl_PREREQ_MEMPCPY
   fi
 ])
 
index 90a89440a2915eadd613f4cbd642a1e2215be7d2..5920f5747b73839ce1e87df4bb674e1a2eafc2e9 100644 (file)
@@ -1,5 +1,5 @@
-# memrchr.m4 serial 9
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
+# memrchr.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 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,
@@ -16,10 +16,7 @@ AC_DEFUN([gl_FUNC_MEMRCHR],
     HAVE_DECL_MEMRCHR=0
   fi
 
-  AC_REPLACE_FUNCS([memrchr])
-  if test $ac_cv_func_memrchr = no; then
-    gl_PREREQ_MEMRCHR
-  fi
+  AC_CHECK_FUNCS([memrchr])
 ])
 
 # Prerequisites of lib/memrchr.c.
index b6fd09de575fbc533a13102abd0e5ce7da69d8d4..bcbce18d698bb2ca348dde195cd4cb66baa25683 100644 (file)
@@ -1,6 +1,6 @@
-# serial 9
+# serial 11
 
-# Copyright (C) 2001, 2003-2004, 2006, 2008-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2004, 2006, 2008-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.
@@ -11,6 +11,7 @@
 AC_DEFUN([gl_FUNC_MKDIR],
 [dnl
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_HEADERS_ONCE([unistd.h])
   AC_CACHE_CHECK([whether mkdir handles trailing slash],
     [gl_cv_func_mkdir_trailing_slash_works],
@@ -21,14 +22,22 @@ AC_DEFUN([gl_FUNC_MKDIR],
 ]], [return mkdir ("conftest.dir/", 0700);])],
       [gl_cv_func_mkdir_trailing_slash_works=yes],
       [gl_cv_func_mkdir_trailing_slash_works=no],
-      [gl_cv_func_mkdir_trailing_slash_works="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
+       esac
+      ])
     rm -rf conftest.dir
     ]
   )
-  if test "$gl_cv_func_mkdir_trailing_slash_works" != yes; then
-    REPLACE_MKDIR=1
-    AC_LIBOBJ([mkdir])
-  fi
+  case "$gl_cv_func_mkdir_trailing_slash_works" in
+    *yes) ;;
+    *)
+      REPLACE_MKDIR=1
+      ;;
+  esac
 
   AC_CACHE_CHECK([whether mkdir handles trailing dot],
     [gl_cv_func_mkdir_trailing_dot_works],
@@ -39,14 +48,22 @@ AC_DEFUN([gl_FUNC_MKDIR],
 ]], [return !mkdir ("conftest.dir/./", 0700);])],
       [gl_cv_func_mkdir_trailing_dot_works=yes],
       [gl_cv_func_mkdir_trailing_dot_works=no],
-      [gl_cv_func_mkdir_trailing_dot_works="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+       esac
+      ])
     rm -rf conftest.dir
     ]
   )
-  if test "$gl_cv_func_mkdir_trailing_dot_works" != yes; then
-    REPLACE_MKDIR=1
-    AC_LIBOBJ([mkdir])
-    AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly
-      creates a directory given with a trailing dot component.])
-  fi
+  case "$gl_cv_func_mkdir_trailing_dot_works" in
+    *yes) ;;
+    *)
+      REPLACE_MKDIR=1
+      AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly
+        creates a directory given with a trailing dot component.])
+      ;;
+  esac
 ])
diff --git a/m4/mkdirat.m4 b/m4/mkdirat.m4
new file mode 100644 (file)
index 0000000..d22604a
--- /dev/null
@@ -0,0 +1,23 @@
+# mkdirat.m4 serial 1
+dnl Copyright (C) 2004-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.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_MKDIRAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([mkdirat])
+  if test $ac_cv_func_mkdirat != yes; then
+    HAVE_MKDIRAT=0
+  fi
+])
+
+# Prerequisite of mkdirat's declaration and of lib/mkdirat.c.
+AC_DEFUN([gl_PREREQ_MKDIRAT],
+[
+  AC_REQUIRE([AC_TYPE_MODE_T])
+])
index 0ef7dfb453c0714e1a52262e131a25f5b8f537e4..b7c0a61b294df247734ce449d04601bfe763f7fb 100644 (file)
@@ -1,17 +1,16 @@
-# mkdtemp.m4 serial 6
-dnl Copyright (C) 2001-2003, 2006-2007, 2009-2011 Free Software Foundation,
+# mkdtemp.m4 serial 8
+dnl Copyright (C) 2001-2003, 2006-2007, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gt_FUNC_MKDTEMP],
+AC_DEFUN([gl_FUNC_MKDTEMP],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  AC_REPLACE_FUNCS([mkdtemp])
+  AC_CHECK_FUNCS([mkdtemp])
   if test $ac_cv_func_mkdtemp = no; then
     HAVE_MKDTEMP=0
-    gl_PREREQ_MKDTEMP
   fi
 ])
 
index 4475e2effd011449061cee1561dcc888f9cd69b6..e571c64e2563cea7ab778f56878b9b359a97f548 100644 (file)
@@ -1,7 +1,7 @@
-# serial 2
+# serial 4
 # See if we need to provide mkfifo replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -11,10 +11,10 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_MKFIFO],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([mkfifo])
   if test $ac_cv_func_mkfifo = no; then
     HAVE_MKFIFO=0
-    AC_LIBOBJ([mkfifo])
   else
     dnl Check for Solaris 9 and FreeBSD bug with trailing slash.
     AC_CHECK_FUNCS_ONCE([lstat])
@@ -38,13 +38,21 @@ AC_DEFUN([gl_FUNC_MKFIFO],
              return result;
            ]])],
          [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=no],
-         [gl_cv_func_mkfifo_works="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_mkfifo_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_mkfifo_works="guessing no" ;;
+          esac
+         ])
        rm -f conftest.tmp conftest.lnk])
-    if test "$gl_cv_func_mkfifo_works" != yes; then
-      AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
-        does not reject trailing slash])
-      REPLACE_MKFIFO=1
-      AC_LIBOBJ([mkfifo])
-    fi
+    case "$gl_cv_func_mkfifo_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
+          does not reject trailing slash])
+        REPLACE_MKFIFO=1
+        ;;
+    esac
   fi
 ])
index fe7fcdff6041584cf9b793f733c642567a751924..61e052c2e036d97f4cdbd4f43299d87393255fd8 100644 (file)
@@ -1,7 +1,7 @@
-# serial 2
+# serial 3
 # See if we need to provide mkfifoat/mknodat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -18,7 +18,5 @@ AC_DEFUN([gl_FUNC_MKFIFOAT],
     # No known system has mkfifoat but not mknodat
     HAVE_MKFIFOAT=0
     HAVE_MKNODAT=0
-    AC_LIBOBJ([mkfifoat])
-    AC_LIBOBJ([mknodat])
   fi
 ])
index d9f68f4c28b8a2bae92b47211bb0bd5c6c048e5d..478ee55915ce07ce308895b7984a4cd44e5ebb5e 100644 (file)
@@ -1,7 +1,7 @@
-# serial 3
+# serial 5
 # See if we need to provide mknod replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -11,12 +11,12 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_MKNOD],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_REQUIRE([gl_FUNC_MKFIFO])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([mknod])
   if test $ac_cv_func_mknod = no; then
     HAVE_MKNOD=0
-    AC_LIBOBJ([mknod])
   else
     dnl Detect BSD bug, where mknod requires root privileges to create fifo.
     AC_CACHE_CHECK([whether mknod can create fifo without root privileges],
@@ -25,9 +25,16 @@ AC_DEFUN([gl_FUNC_MKNOD],
          [AC_LANG_PROGRAM(
            [[#include <sys/stat.h>
              #include <unistd.h>
+
+             /* Copied from root-uid.h.  FIXME: Just use root-uid.h.  */
+             #ifdef __TANDEM
+             # define ROOT_UID 65535
+             #else
+             # define ROOT_UID 0
+             #endif
 ]], [[/* Indeterminate for super-user, assume no.  Why are you running
          configure as root, anyway?  */
-      if (!geteuid ()) return 99;
+      if (geteuid () == ROOT_UID) return 99;
       if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;]])],
          [gl_cv_func_mknod_works=yes],
          [if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
@@ -35,16 +42,25 @@ AC_DEFUN([gl_FUNC_MKNOD],
 [(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)])
           fi
           gl_cv_func_mknod_works=no],
-         [gl_cv_func_mknod_works="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_mknod_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_mknod_works="guessing no" ;;
+          esac
+         ])
        rm -f conftest.fifo])
-    if test "$gl_cv_func_mknod_works" != yes; then
-      AC_DEFINE([MKNOD_FIFO_BUG], [1], [Define to 1 if mknod cannot create
-        a fifo without super-user privileges])
-    fi
+    case "$gl_cv_func_mknod_works" in
+      *yes) ;;
+      *)
+        REPLACE_MKNOD=1
+        AC_DEFINE([MKNOD_FIFO_BUG], [1], [Define to 1 if mknod cannot create
+          a fifo without super-user privileges])
+        ;;
+    esac
     dnl Systems that mishandle trailing slash on mkfifo also goof on mknod.
-    if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+    if test $REPLACE_MKFIFO = 1; then
       REPLACE_MKNOD=1
-      AC_LIBOBJ([mknod])
     fi
   fi
 ])
index 56b2416d619302fba98577929692500717d61f3c..faefb77009239f82ac2f77ac0c10d71d4f38af07 100644 (file)
@@ -1,5 +1,5 @@
-# serial 19
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
+# serial 25
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 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,21 +7,24 @@ dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Jim Meyering.
 
-# Redefine AC_FUNC_MKTIME, because it is no longer maintained in Autoconf.
-# AC_FUNC_MKTIME
-# --------------
-AC_DEFUN([AC_FUNC_MKTIME],
-[AC_CHECK_HEADERS_ONCE([unistd.h])
-AC_CHECK_FUNCS_ONCE([alarm])
-AC_REQUIRE([gl_MULTIARCH])
-if test $APPLE_UNIVERSAL_BUILD = 1; then
-  # A universal build on Apple MacOS X platforms.
-  # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
-  # But we need a configuration result that is valid in both modes.
-  ac_cv_func_working_mktime=no
-fi
-AC_CACHE_CHECK([for working mktime], [ac_cv_func_working_mktime],
-[AC_RUN_IFELSE([AC_LANG_SOURCE(
+AC_DEFUN([gl_FUNC_MKTIME],
+[
+  AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+
+  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_REQUIRE([gl_MULTIARCH])
+  if test $APPLE_UNIVERSAL_BUILD = 1; then
+    # A universal build on Apple Mac OS X platforms.
+    # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+    # But we need a configuration result that is valid in both modes.
+    gl_cv_func_working_mktime=no
+  fi
+  AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime],
+    [AC_RUN_IFELSE(
+       [AC_LANG_SOURCE(
 [[/* Test program from Paul Eggert and Tony Leneis.  */
 #include <limits.h>
 #include <stdlib.h>
@@ -31,8 +34,8 @@ AC_CACHE_CHECK([for working mktime], [ac_cv_func_working_mktime],
 # include <unistd.h>
 #endif
 
-#ifndef HAVE_ALARM
-# define alarm(X) /* empty */
+#if HAVE_DECL_ALARM
+# include <signal.h>
 #endif
 
 /* Work around redefinition to rpl_putenv by other config tests.  */
@@ -168,10 +171,13 @@ main ()
   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.
      Give up after 60 seconds; a mktime slower than that
      isn't worth using anyway.  */
+  signal (SIGALRM, SIG_DFL);
   alarm (60);
+#endif
 
   time_t_max = (! time_t_signed
                 ? (time_t) -1
@@ -189,20 +195,23 @@ main ()
       if (tz_strings[i])
         putenv (tz_strings[i]);
 
-      for (t = 0; t <= time_t_max - delta; t += delta)
+      for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta)
         if (! mktime_test (t))
           result |= 1;
-      if (! (mktime_test ((time_t) 1)
-             && mktime_test ((time_t) (60 * 60))
-             && mktime_test ((time_t) (60 * 60 * 24))))
+      if ((result & 2) == 0
+          && ! (mktime_test ((time_t) 1)
+                && mktime_test ((time_t) (60 * 60))
+                && mktime_test ((time_t) (60 * 60 * 24))))
         result |= 2;
 
-      for (j = 1; ; j <<= 1)
-        if (! bigtime_test (j))
-          result |= 4;
-        else if (INT_MAX / 2 < j)
-          break;
-      if (! bigtime_test (INT_MAX))
+      for (j = 1; (result & 4) == 0; j <<= 1)
+        {
+          if (! bigtime_test (j))
+            result |= 4;
+          if (INT_MAX / 2 < j)
+            break;
+        }
+      if ((result & 8) == 0 && ! bigtime_test (INT_MAX))
         result |= 8;
     }
   if (! irix_6_4_bug ())
@@ -213,29 +222,32 @@ main ()
     result |= 64;
   return result;
 }]])],
-               [ac_cv_func_working_mktime=yes],
-               [ac_cv_func_working_mktime=no],
-               [ac_cv_func_working_mktime=no])])
-if test $ac_cv_func_working_mktime = no; then
-  AC_LIBOBJ([mktime])
-fi
-])# AC_FUNC_MKTIME
+       [gl_cv_func_working_mktime=yes],
+       [gl_cv_func_working_mktime=no],
+       [gl_cv_func_working_mktime=no])
+    ])
 
-AC_DEFUN([gl_FUNC_MKTIME],
-[
-  AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
-  AC_FUNC_MKTIME
-  dnl Note: AC_FUNC_MKTIME does AC_LIBOBJ([mktime]).
-  if test $ac_cv_func_working_mktime = no; then
+  if test $gl_cv_func_working_mktime = no; then
     REPLACE_MKTIME=1
-    gl_PREREQ_MKTIME
   else
     REPLACE_MKTIME=0
   fi
 ])
 
-# Prerequisites of lib/mktime.c.
-AC_DEFUN([gl_PREREQ_MKTIME],
-[
-  AC_REQUIRE([AC_C_INLINE])
+AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
+  AC_REQUIRE([gl_FUNC_MKTIME])
+  if test $REPLACE_MKTIME = 0; then
+    dnl BeOS has __mktime_internal in libc, but other platforms don't.
+    AC_CHECK_FUNC([__mktime_internal],
+      [AC_DEFINE([mktime_internal], [__mktime_internal],
+         [Define to the real name of the mktime_internal function.])
+      ],
+      [dnl mktime works but it doesn't export __mktime_internal,
+       dnl so we need to substitute our own mktime implementation.
+       REPLACE_MKTIME=1
+      ])
+  fi
 ])
+
+# Prerequisites of lib/mktime.c.
+AC_DEFUN([gl_PREREQ_MKTIME], [:])
index 7ba7fd26b6cde7f3f99713920627750fd3d2d43c..9b60ddfa47d77a4c93ce38e61dd2471e7ad1a76c 100644 (file)
@@ -1,5 +1,5 @@
-# mmap-anon.m4 serial 9
-dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+# mmap-anon.m4 serial 10
+dnl Copyright (C) 2005, 2007, 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.
@@ -9,7 +9,7 @@ dnl with or without modifications, as long as this notice is preserved.
 # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS
 #   and MAP_ANON exist and have the same value.
 # - On HP-UX, only MAP_ANONYMOUS exists.
-# - On MacOS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
+# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
 # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be
 #   used.
 
@@ -27,18 +27,18 @@ AC_DEFUN([gl_FUNC_MMAP_ANON],
   gl_have_mmap_anonymous=no
   if test $gl_have_mmap = yes; then
     AC_MSG_CHECKING([for MAP_ANONYMOUS])
-    AC_EGREP_CPP([I cant identify this map.], [
+    AC_EGREP_CPP([I cannot identify this map], [
 #include <sys/mman.h>
 #ifdef MAP_ANONYMOUS
-    I cant identify this map.
+    I cannot identify this map
 #endif
 ],
       [gl_have_mmap_anonymous=yes])
     if test $gl_have_mmap_anonymous != yes; then
-      AC_EGREP_CPP([I cant identify this map.], [
+      AC_EGREP_CPP([I cannot identify this map], [
 #include <sys/mman.h>
 #ifdef MAP_ANON
-    I cant identify this map.
+    I cannot identify this map
 #endif
 ],
         [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON],
index f9cf704723a2331e160f5cb74b6d25dfb9a72c3f..d5b66d45bdac60c51f36659b4e7c28a349b2629d 100644 (file)
@@ -1,5 +1,5 @@
 # mode_t.m4 serial 2
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
index 8661ade64a0240504118669c8a12f8bc676d42ad..949afb3dfc665390df7e1c3d6b553aac4cbb029b 100644 (file)
@@ -1,5 +1,5 @@
-# modechange.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# modechange.m4 serial 7
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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,5 +7,5 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_MODECHANGE],
 [
-  AC_LIBOBJ([modechange])
+  :
 ])
diff --git a/m4/msvc-inval.m4 b/m4/msvc-inval.m4
new file mode 100644 (file)
index 0000000..9a6a47a
--- /dev/null
@@ -0,0 +1,19 @@
+# msvc-inval.m4 serial 1
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_MSVC_INVAL],
+[
+  AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler])
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+    AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1],
+      [Define to 1 on MSVC platforms that have the "invalid parameter handler"
+       concept.])
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
+  AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+])
diff --git a/m4/msvc-nothrow.m4 b/m4/msvc-nothrow.m4
new file mode 100644 (file)
index 0000000..a39618a
--- /dev/null
@@ -0,0 +1,10 @@
+# msvc-nothrow.m4 serial 1
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_MSVC_NOTHROW],
+[
+  AC_REQUIRE([gl_MSVC_INVAL])
+])
index 691d89270b69ea15a1e83a9584a959d008f386bc..552ec7e716e7dcdd76373489b3bfb05abab63673 100644 (file)
@@ -1,12 +1,12 @@
-# multiarch.m4 serial 6
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# multiarch.m4 serial 7
+dnl Copyright (C) 2008-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.
 
 # Determine whether the compiler is or may be producing universal binaries.
 #
-# On MacOS X 10.5 and later systems, the user can create libraries and
+# On Mac OS X 10.5 and later systems, the user 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
index ca9d28daf2be9b673919e9bd59cfe6ed70891bbe..25e2101559a73ae59bd32220ba456d8b6087c981 100644 (file)
@@ -1,5 +1,5 @@
-# nl_langinfo.m4 serial 4
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# nl_langinfo.m4 serial 5
+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.
@@ -43,10 +43,8 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO],
       REPLACE_NL_LANGINFO=1
       AC_DEFINE([REPLACE_NL_LANGINFO], [1],
         [Define if nl_langinfo exists but is overridden by gnulib.])
-      AC_LIBOBJ([nl_langinfo])
     fi
   else
     HAVE_NL_LANGINFO=0
-    AC_LIBOBJ([nl_langinfo])
   fi
 ])
index 6a21216d22b05973a0908b76c47e6ff7b8100928..8f8a147beca14ac07c63ee665cc4e21bdd836a8f 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-2011 Free Software Foundation,
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 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/nocrash.m4 b/m4/nocrash.m4
new file mode 100644 (file)
index 0000000..105b884
--- /dev/null
@@ -0,0 +1,130 @@
+# nocrash.m4 serial 4
+dnl Copyright (C) 2005, 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 Based on libsigsegv, from Bruno Haible and Paolo Bonzini.
+
+AC_PREREQ([2.13])
+
+dnl Expands to some code for use in .c programs that will cause the configure
+dnl test to exit instead of crashing. This is useful to avoid triggering
+dnl action from a background debugger and to avoid core dumps.
+dnl Usage:   ...
+dnl          ]GL_NOCRASH[
+dnl          ...
+dnl          int main() { nocrash_init(); ... }
+AC_DEFUN([GL_NOCRASH],[[
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on Mac OS X.  */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens.  */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+   EXC_BAD_ACCESS.  */
+static void *
+mach_exception_thread (void *arg)
+{
+  /* Buffer for a message to be received.  */
+  struct {
+    mach_msg_header_t head;
+    mach_msg_body_t msgh_body;
+    char data[1024];
+  } msg;
+  mach_msg_return_t retval;
+  /* Wait for a message on the exception port.  */
+  retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+                     our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+  if (retval != MACH_MSG_SUCCESS)
+    abort ();
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+  mach_port_t self = mach_task_self ();
+  /* Allocate a port on which the thread shall listen for exceptions.  */
+  if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+      == KERN_SUCCESS) {
+    /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html.  */
+    if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+                                MACH_MSG_TYPE_MAKE_SEND)
+        == KERN_SUCCESS) {
+      /* The exceptions we want to catch.  Only EXC_BAD_ACCESS is interesting
+         for us.  */
+      exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+      /* Create the thread listening on the exception port.  */
+      pthread_attr_t attr;
+      pthread_t thread;
+      if (pthread_attr_init (&attr) == 0
+          && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+          && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+        pthread_attr_destroy (&attr);
+        /* Replace the exception port info for these exceptions with our own.
+           Note that we replace the exception port for the entire task, not only
+           for a particular thread.  This has the effect that when our exception
+           port gets the message, the thread specific exception port has already
+           been asked, and we don't need to bother about it.
+           See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html.  */
+        task_set_exception_ports (self, mask, our_exception_port,
+                                  EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+      }
+    }
+  }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems.  */
+#include <signal.h>
+/* A POSIX signal handler.  */
+static void
+exception_handler (int sig)
+{
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+  signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+  signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+]])
diff --git a/m4/off_t.m4 b/m4/off_t.m4
new file mode 100644 (file)
index 0000000..d355d01
--- /dev/null
@@ -0,0 +1,18 @@
+# off_t.m4 serial 1
+dnl Copyright (C) 2012-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 Check whether to override the 'off_t' type.
+dnl Set WINDOWS_64_BIT_OFF_T.
+
+AC_DEFUN([gl_TYPE_OFF_T],
+[
+  m4_ifdef([gl_LARGEFILE], [
+    AC_REQUIRE([gl_LARGEFILE])
+  ], [
+    WINDOWS_64_BIT_OFF_T=0
+  ])
+  AC_SUBST([WINDOWS_64_BIT_OFF_T])
+])
index bfebdab7b6c691fbc88136ece812e5bac99b5fb9..a6cb1019a7064801a24f400debe4af5ed5774f58 100644 (file)
@@ -1,5 +1,5 @@
-# open.m4 serial 11
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# open.m4 serial 14
+dnl Copyright (C) 2007-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.
@@ -9,7 +9,7 @@ AC_DEFUN([gl_FUNC_OPEN],
   AC_REQUIRE([AC_CANONICAL_HOST])
   case "$host_os" in
     mingw* | pw*)
-      gl_REPLACE_OPEN
+      REPLACE_OPEN=1
       ;;
     *)
       dnl open("foo/") should not create a file when the file name has a
@@ -57,25 +57,35 @@ changequote([,])dnl
         *no)
           AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
             [Define to 1 if open() fails to recognize a trailing slash.])
-          gl_REPLACE_OPEN
+          REPLACE_OPEN=1
           ;;
       esac
       ;;
   esac
-])
-
-AC_DEFUN([gl_REPLACE_OPEN],
-[
-  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
-  REPLACE_OPEN=1
-  AC_LIBOBJ([open])
-  gl_PREREQ_OPEN
+  dnl Replace open() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    if test $REPLACE_OPEN = 0; then
+      gl_TEST_FCHDIR
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_OPEN=1
+      fi
+    fi
+  ])
+  dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    if test $REPLACE_OPEN = 0; then
+      gl_NONBLOCKING_IO
+      if test $gl_cv_have_open_O_NONBLOCK != yes; then
+        REPLACE_OPEN=1
+      fi
+    fi
+  ])
 ])
 
 # Prerequisites of lib/open.c.
 AC_DEFUN([gl_PREREQ_OPEN],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
   :
 ])
index 28c0e1dafbd713cfe661e83d2ca11a8f2b92228c..3bf961745fec40f0088a9a2abb2bd4ed5cfca569 100644 (file)
@@ -1,7 +1,7 @@
-# serial 31
+# serial 45
 # See if we need to use our replacement for Solaris' openat et al functions.
 
-dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-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.
@@ -11,161 +11,26 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_OPENAT],
 [
   AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
-  GNULIB_OPENAT=1
-
-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
-  GNULIB_FCHMODAT=1
-  GNULIB_FSTATAT=1
-  GNULIB_MKDIRAT=1
-
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  GNULIB_FCHOWNAT=1
-  GNULIB_UNLINKAT=1
-
-  AC_LIBOBJ([openat-proc])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_FUNCS_ONCE([lchmod])
-  AC_REPLACE_FUNCS([fchmodat fstatat mkdirat openat unlinkat])
-  AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
-  AC_REQUIRE([gl_FUNC_UNLINK])
-  case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
-  yes+yes)
-    # GNU/Hurd has unlinkat, but it has the same bug as unlink.
-    if test $REPLACE_UNLINK = 1; then
-      AC_LIBOBJ([unlinkat])
-      REPLACE_UNLINKAT=1
-    fi ;;
+  AC_CHECK_FUNCS_ONCE([openat])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+  yes+*yes)
+    ;;
   yes+*)
     # Solaris 9 has *at functions, but uniformly mishandles trailing
     # slash in all of them.
-    AC_LIBOBJ([openat])
     REPLACE_OPENAT=1
-    AC_LIBOBJ([fstatat])
-    REPLACE_FSTATAT=1
-    AC_LIBOBJ([unlinkat])
-    REPLACE_UNLINKAT=1
     ;;
   *)
     HAVE_OPENAT=0
-    HAVE_UNLINKAT=0 # No known system with unlinkat but not openat
-    HAVE_FSTATAT=0 # No known system with fstatat but not openat
-    gl_PREREQ_OPENAT;;
+    ;;
   esac
-  if test $ac_cv_func_fchmodat != yes; then
-    HAVE_FCHMODAT=0
-  fi
-  if test $ac_cv_func_mkdirat != yes; then
-    HAVE_MKDIRAT=0
-  fi
-  gl_FUNC_FCHOWNAT
-])
-
-# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
-AC_DEFUN([gl_FUNC_FCHOWNAT_DEREF_BUG],
-[
-  dnl Persuade glibc's <unistd.h> to declare fchownat().
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
-  AC_CACHE_CHECK([whether fchownat works with AT_SYMLINK_NOFOLLOW],
-    gl_cv_func_fchownat_nofollow_works,
-    [
-     gl_dangle=conftest.dangle
-     # Remove any remnants of a previous test.
-     rm -f $gl_dangle
-     # Arrange for deletion of the temporary file this test creates.
-     ac_clean_files="$ac_clean_files $gl_dangle"
-     ln -s conftest.no-such $gl_dangle
-     AC_RUN_IFELSE(
-       [AC_LANG_SOURCE(
-          [[
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <sys/types.h>
-int
-main ()
-{
-  return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (),
-                    AT_SYMLINK_NOFOLLOW) != 0
-          && errno == ENOENT);
-}
-          ]])],
-    [gl_cv_func_fchownat_nofollow_works=yes],
-    [gl_cv_func_fchownat_nofollow_works=no],
-    [gl_cv_func_fchownat_nofollow_works=no],
-    )
-  ])
-  AS_IF([test $gl_cv_func_fchownat_nofollow_works = no], [$1], [$2])
-])
-
-# gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
-AC_DEFUN([gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG],
-[
-  dnl Persuade glibc's <unistd.h> to declare fchownat().
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
-  AC_CACHE_CHECK([whether fchownat works with an empty file name],
-    [gl_cv_func_fchownat_empty_filename_works],
-    [AC_RUN_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <unistd.h>
-            #include <fcntl.h>
-          ]],
-          [[int fd;
-            int ret;
-            if (mkdir ("conftestdir", 0700) < 0)
-              return 2;
-            fd = open ("conftestdir", O_RDONLY);
-            if (fd < 0)
-              return 3;
-            ret = fchownat (fd, "", -1, -1, 0);
-            close (fd);
-            rmdir ("conftestdir");
-            return ret == 0;
-          ]])],
-       [gl_cv_func_fchownat_empty_filename_works=yes],
-       [gl_cv_func_fchownat_empty_filename_works=no],
-       [gl_cv_func_fchownat_empty_filename_works="guessing no"])
-    ])
-  AS_IF([test "$gl_cv_func_fchownat_empty_filename_works" != yes], [$1], [$2])
-])
-
-# If we have the fchownat function, and it has the bug (in glibc-2.4)
-# that it dereferences symlinks even with AT_SYMLINK_NOFOLLOW, then
-# use the replacement function.
-# Also if the fchownat function, like chown, has the trailing slash bug,
-# use the replacement function.
-# Also use the replacement function if fchownat is simply not available.
-AC_DEFUN([gl_FUNC_FCHOWNAT],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([gl_FUNC_CHOWN])
-  AC_CHECK_FUNC([fchownat],
-    [gl_FUNC_FCHOWNAT_DEREF_BUG(
-       [REPLACE_FCHOWNAT=1
-        AC_DEFINE([FCHOWNAT_NOFOLLOW_BUG], [1],
-                  [Define to 1 if your platform has fchownat, but it cannot
-                   perform lchown tasks.])
-       ])
-     gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG(
-       [REPLACE_FCHOWNAT=1
-        AC_DEFINE([FCHOWNAT_EMPTY_FILENAME_BUG], [1],
-                  [Define to 1 if your platform has fchownat, but it does
-                   not reject an empty file name.])
-       ])
-     if test $REPLACE_CHOWN = 1; then
-       REPLACE_FCHOWNAT=1
-     fi],
-    [HAVE_FCHOWNAT=0])
-  if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
-    AC_LIBOBJ([fchownat])
-  fi
 ])
 
+# Prerequisites of lib/openat.c.
 AC_DEFUN([gl_PREREQ_OPENAT],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
   :
 ])
diff --git a/m4/opendir.m4 b/m4/opendir.m4
new file mode 100644 (file)
index 0000000..d411680
--- /dev/null
@@ -0,0 +1,25 @@
+# opendir.m4 serial 2
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_OPENDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([opendir])
+  if test $ac_cv_func_opendir = no; then
+    HAVE_OPENDIR=0
+  fi
+  dnl Replace opendir() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_OPENDIR = 1; then
+        REPLACE_OPENDIR=1
+      fi
+    fi
+  ])
+])
index e665ef37042c66a2cda7478a6b6b80b0e0038fd6..62ce16a5049c7d107b763a4ec9875b4864164e11 100644 (file)
@@ -1,5 +1,5 @@
-# parse-datetime.m4 serial 19
-dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
+# parse-datetime.m4 serial 21
+dnl Copyright (C) 2002-2006, 2008-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.
index 17b3d648f825bb3d9a855a2cda1ff2d6bcaa2073..e11bf57a089bd8aa86ace96e75df9a7bf757193b 100644 (file)
@@ -1,5 +1,5 @@
-# pathmax.m4 serial 8
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# pathmax.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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,
@@ -8,6 +8,35 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_PATHMAX],
 [
   dnl Prerequisites of lib/pathmax.h.
-  AC_CHECK_FUNCS_ONCE([pathconf])
   AC_CHECK_HEADERS_ONCE([sys/param.h])
 ])
+
+# Expands to a piece of C program that defines PATH_MAX in the same way as
+# "pathmax.h" will do.
+AC_DEFUN([gl_PATHMAX_SNIPPET], [[
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+]])
+
+# Prerequisites of gl_PATHMAX_SNIPPET.
+AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ],
+[
+  AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
+])
index a3e99d6e72555fa22036c95ee2c759938aacf3cf..f39572343522bc23770642fbe30f740bc75ad616 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,5 +1,5 @@
-# po.m4 serial 17 (gettext-0.18)
-dnl Copyright (C) 1995-2011 Free Software Foundation, Inc.
+# po.m4 serial 20 (gettext-0.18.2)
+dnl Copyright (C) 1995-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.
@@ -17,14 +17,14 @@ dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AC_PREREQ([2.50])
+AC_PREREQ([2.60])
 
 dnl Checks for all prerequisites of the po subdirectory.
 AC_DEFUN([AM_PO_SUBDIRS],
 [
   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
   AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+  AC_REQUIRE([AC_PROG_MKDIR_P])dnl
   AC_REQUIRE([AM_NLS])dnl
 
   dnl Release version of the gettext macros. This is used to ensure that
@@ -102,7 +102,7 @@ changequote([,])dnl
       case "$ac_file" in */Makefile.in)
         # Adjust a relative srcdir.
         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
         # In autoconf-2.13 it is called $ac_given_srcdir.
         # In autoconf-2.50 it is called $srcdir.
@@ -118,7 +118,8 @@ changequote([,])dnl
         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
           rm -f "$ac_dir/POTFILES"
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[  ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          gt_tab=`printf '\t'`
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
           POMAKEFILEDEPS="POTFILES.in"
           # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
           # on $ac_dir but don't depend on user-specified configuration
@@ -129,12 +130,12 @@ changequote([,])dnl
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
             ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
           fi
           # Compute POFILES
@@ -226,7 +227,7 @@ AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
 changequote(,)dnl
   # Adjust a relative srcdir.
   ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
   ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
   # In autoconf-2.13 it is called $ac_given_srcdir.
   # In autoconf-2.50 it is called $srcdir.
@@ -254,6 +255,7 @@ EOT
   fi
 
   # A sed script that extracts the value of VARIABLE from a Makefile.
+  tab=`printf '\t'`
   sed_x_variable='
 # Test if the hold space is empty.
 x
@@ -261,9 +263,9 @@ s/P/P/
 x
 ta
 # Yes it was empty. Look if we have the expected variable definition.
-/^[     ]*VARIABLE[     ]*=/{
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
   # Seen the first line of the variable definition.
-  s/^[  ]*VARIABLE[     ]*=//
+  s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
   ba
 }
 bd
@@ -315,7 +317,7 @@ changequote([,])dnl
     sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
     ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
   fi
-  # Hide the ALL_LINGUAS assigment from automake < 1.5.
+  # Hide the ALL_LINGUAS assignment from automake < 1.5.
   eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
   # Compute POFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -405,14 +407,15 @@ changequote([,])dnl
   fi
 
   sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+  tab=`printf '\t'`
   if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
     # Add dependencies that cannot be formulated as a simple suffix rule.
     for lang in $ALL_LINGUAS; do
       frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
       cat >> "$ac_file.tmp" <<EOF
 $frobbedlang.msg: $lang.po
-       @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-       \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
 EOF
     done
   fi
@@ -422,8 +425,8 @@ EOF
       frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
       cat >> "$ac_file.tmp" <<EOF
 $frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-       @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-       \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
 EOF
     done
   fi
index 9c2ed1ef2fba46d352938c48acdeebb5ce4a0b33..ef44f785186071b918b912c8a5ac6e7db46b6c03 100644 (file)
@@ -1,5 +1,5 @@
-# printf.m4 serial 42
-dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
+# printf.m4 serial 50
+dnl Copyright (C) 2003, 2007-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.
@@ -63,7 +63,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_printf_sizes_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
            darwin*)              gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -178,28 +178,28 @@ static double zero = 0.0;
 int main ()
 {
   int result = 0;
-  if (sprintf (buf, "%f", 1.0 / 0.0) < 0
+  if (sprintf (buf, "%f", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 1;
-  if (sprintf (buf, "%f", -1.0 / 0.0) < 0
+  if (sprintf (buf, "%f", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 1;
   if (sprintf (buf, "%f", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
     result |= 2;
-  if (sprintf (buf, "%e", 1.0 / 0.0) < 0
+  if (sprintf (buf, "%e", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 4;
-  if (sprintf (buf, "%e", -1.0 / 0.0) < 0
+  if (sprintf (buf, "%e", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 4;
   if (sprintf (buf, "%e", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
     result |= 8;
-  if (sprintf (buf, "%g", 1.0 / 0.0) < 0
+  if (sprintf (buf, "%g", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 16;
-  if (sprintf (buf, "%g", -1.0 / 0.0) < 0
+  if (sprintf (buf, "%g", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 16;
   if (sprintf (buf, "%g", zero / zero) < 0
@@ -222,7 +222,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
            darwin*)              gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on HP-UX >= 11.
@@ -251,6 +251,7 @@ AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE],
   AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([gl_BIGENDIAN])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   dnl The user can set or unset the variable gl_printf_safe to indicate
   dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
@@ -294,34 +295,34 @@ int main ()
 {
   int result = 0;
   nocrash_init();
-  if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 1;
-  if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 1;
   if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
     result |= 1;
-  if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 1;
-  if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 1;
   if (sprintf (buf, "%Le", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
     result |= 1;
-  if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
     result |= 1;
-  if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
     result |= 1;
   if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
     result |= 1;
-#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 # ifdef WORDS_BIGENDIAN
@@ -478,6 +479,7 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_A],
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
   int result = 0;
@@ -502,17 +504,17 @@ int main ()
     result |= 4;
   /* This catches a FreeBSD 6.1 bug.  See
      <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-  if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
+  if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
       || buf[0] == '0')
     result |= 8;
-  /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
+  /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug.  */
   if (sprintf (buf, "%.1a", 1.999) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
     result |= 16;
-  /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+  /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
      glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
   if (sprintf (buf, "%.1La", 1.999L) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
@@ -562,13 +564,14 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
   int result = 0;
   if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
       || strcmp (buf, "1234567.000000 33") != 0)
     result |= 1;
-  if (sprintf (buf, "%F", 1.0 / 0.0) < 0
+  if (sprintf (buf, "%F", 1.0 / zero) < 0
       || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
     result |= 2;
   /* This catches a Cygwin 1.5.x bug.  */
@@ -587,7 +590,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 6.
            freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
            darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on Solaris >= 2.10.
@@ -615,12 +618,27 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
       AC_RUN_IFELSE(
         [AC_LANG_SOURCE([[
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#ifdef _MSC_VER
+/* See page about "Parameter Validation" on msdn.microsoft.com.  */
+static void cdecl
+invalid_parameter_handler (const wchar_t *expression,
+                           const wchar_t *function,
+                           const wchar_t *file, unsigned int line,
+                           uintptr_t dummy)
+{
+  exit (1);
+}
+#endif
 static char fmtstring[10];
 static char buf[100];
 int main ()
 {
   int count = -1;
+#ifdef _MSC_VER
+  _set_invalid_parameter_handler (invalid_parameter_handler);
+#endif
   /* Copy the format string.  Some systems (glibc with _FORTIFY_SOURCE=2)
      support %n in format strings in read-only memory but not in writable
      memory.  */
@@ -636,7 +654,8 @@ int main ()
         [
 changequote(,)dnl
          case "$host_os" in
-           *)     gl_cv_func_printf_directive_n="guessing yes";;
+           mingw*) gl_cv_func_printf_directive_n="guessing no";;
+           *)      gl_cv_func_printf_directive_n="guessing yes";;
          esac
 changequote([,])dnl
         ])
@@ -862,9 +881,10 @@ AC_DEFUN([gl_PRINTF_FLAG_ZERO],
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
-  if (sprintf (buf, "%010f", 1.0 / 0.0, 33, 44, 55) < 0
+  if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
       || (strcmp (buf, "       inf") != 0
           && strcmp (buf, "  infinity") != 0))
     return 1;
@@ -892,7 +912,8 @@ dnl On mingw, precisions larger than 512 are treated like 512, in integer,
 dnl floating-point or pointer output. On Solaris 10/x86, precisions larger
 dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC,
 dnl precisions larger than 510 in floating-point output yield wrong results.
-dnl On BeOS, precisions larger than 1044 crash the program.
+dnl On AIX 7.1, precisions larger than 998 in floating-point output yield
+dnl wrong results. On BeOS, precisions larger than 1044 crash the program.
 dnl Result is gl_cv_func_printf_precision.
 
 AC_DEFUN([gl_PRINTF_PRECISION],
@@ -921,6 +942,9 @@ int main ()
   if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
       || buf[0] != '1')
     result |= 4;
+  if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+      || buf[0] != '1')
+    result |= 4;
   return result;
 }]])],
         [gl_cv_func_printf_precision=yes],
@@ -928,7 +952,7 @@ int main ()
         [
 changequote(,)dnl
          case "$host_os" in
-           # Guess no only on Solaris, native Win32, and BeOS systems.
+           # Guess no only on Solaris, native Windows, and BeOS systems.
            solaris*)     gl_cv_func_printf_precision="guessing no" ;;
            mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
            beos*)        gl_cv_func_printf_precision="guessing no" ;;
@@ -1004,8 +1028,9 @@ int main()
 changequote([,])dnl
           ])])
           if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-            (./conftest
+            (./conftest 2>&AS_MESSAGE_LOG_FD
              result=$?
+             _AS_ECHO_LOG([\$? = $result])
              if test $result != 0 && test $result != 77; then result=1; fi
              exit $result
             ) >/dev/null 2>/dev/null
@@ -1019,7 +1044,7 @@ changequote([,])dnl
           fi
           rm -fr conftest*
         else
-          dnl A universal build on Apple MacOS X platforms.
+          dnl A universal build on Apple Mac OS X platforms.
           dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode.
           dnl But we need a configuration result that is valid in both modes.
           gl_cv_func_printf_enomem="guessing no"
@@ -1072,6 +1097,7 @@ AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
     [gl_cv_func_snprintf_truncation_c99],
     [
@@ -1079,11 +1105,25 @@ AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
         [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char buf[100];
 int main ()
 {
   strcpy (buf, "ABCDEF");
-  snprintf (buf, 3, "%d %d", 4567, 89);
+  my_snprintf (buf, 3, "%d %d", 4567, 89);
   if (memcmp (buf, "45\0DEF", 6) != 0)
     return 1;
   return 0;
@@ -1098,7 +1138,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
            darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -1153,6 +1193,7 @@ AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
     [gl_cv_func_snprintf_retval_c99],
     [
@@ -1160,15 +1201,29 @@ AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99],
         [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char buf[100];
 int main ()
 {
   strcpy (buf, "ABCDEF");
-  if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
     return 1;
-  if (snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
     return 2;
-  if (snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
     return 3;
   return 0;
 }]])],
@@ -1182,7 +1237,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
            darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on OpenBSD >= 3.9.
@@ -1217,6 +1272,7 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
     [gl_cv_func_snprintf_directive_n],
     [
@@ -1224,6 +1280,20 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
         [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char fmtstring[10];
 static char buf[100];
 int main ()
@@ -1233,7 +1303,7 @@ int main ()
      support %n in format strings in read-only memory but not in writable
      memory.  */
   strcpy (fmtstring, "%d %n");
-  snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
+  my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
   if (count != 6)
     return 1;
   return 0;
@@ -1248,7 +1318,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_snprintf_directive_n="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_directive_n="guessing no";;
            darwin*)              gl_cv_func_snprintf_directive_n="guessing yes";;
                                  # Guess yes on Solaris >= 2.6.
@@ -1285,16 +1355,31 @@ dnl Result is gl_cv_func_snprintf_size1.
 AC_DEFUN([gl_SNPRINTF_SIZE1],
 [
   AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf respects a size of 1],
     [gl_cv_func_snprintf_size1],
     [
       AC_RUN_IFELSE(
         [AC_LANG_SOURCE([[
 #include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 int main()
 {
   static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
-  snprintf (buf, 1, "%d", 12345);
+  my_snprintf (buf, 1, "%d", 12345);
   return buf[1] != 'E';
 }]])],
         [gl_cv_func_snprintf_size1=yes],
@@ -1375,7 +1460,7 @@ changequote(,)dnl
                                  # Guess yes on FreeBSD >= 5.
            freebsd[1-4]*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                                 # Guess yes on MacOS X >= 10.3.
+                                 # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            darwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on Cygwin.
@@ -1455,17 +1540,18 @@ dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
 dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   MacOS X 10.5.8                 .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   MacOS X 10.3.9                 .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
+dnl   Mac OS X 10.5.8                .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Mac OS X 10.3.9                .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   OpenBSD 3.9, 4.0               .  .  #  #  #  #  .  #  .  #  .  #  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.7.0 (2009)            .  .  .  #  .  .  .  ?  .  .  .  .  .  ?  .  .  .  .  .  .
 dnl   Cygwin 1.5.25 (2008)           .  .  .  #  #  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.5.19 (2006)           #  .  .  #  #  #  .  #  .  #  .  #  #  #  .  .  .  .  .  .
-dnl   Solaris 11 2010-11             .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Solaris 11 2011-11             .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
 dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  #  .  .  .  .  .  .  .
 dnl   Solaris 2.6 ... 9              #  .  #  #  #  #  .  #  .  .  .  #  #  .  .  .  #  .  .  .
 dnl   Solaris 2.5.1                  #  .  #  #  #  #  .  #  .  .  .  #  .  .  #  #  #  #  #  #
-dnl   AIX 5.2, 7.1                   .  .  #  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   AIX 7.1                        .  .  #  #  #  .  .  .  .  .  .  #  #  .  .  .  .  .  .  .
+dnl   AIX 5.2                        .  .  #  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
 dnl   AIX 4.3.2, 5.1                 #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  .
 dnl   HP-UX 11.31                    .  .  .  .  #  .  .  .  .  .  .  #  .  .  .  .  #  #  .  .
 dnl   HP-UX 11.{00,11,23}            #  .  .  .  #  #  .  .  .  .  .  #  .  .  .  .  #  #  .  #
@@ -1478,4 +1564,7 @@ dnl   NetBSD 4.0                     .  ?  ?  ?  ?  ?  .  ?  .  ?  ?  ?  ?  ?  .
 dnl   NetBSD 3.0                     .  .  .  .  #  #  .  ?  #  #  ?  #  .  #  .  .  .  .  .  .
 dnl   Haiku                          .  .  .  #  #  #  .  #  .  .  .  .  .  ?  .  .  ?  .  .  .
 dnl   BeOS                           #  #  .  #  #  #  .  ?  #  .  ?  .  #  ?  .  .  ?  .  .  .
-dnl   mingw                          #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
+dnl   old mingw / msvcrt             #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
+dnl   MSVC 9                         #  #  #  #  #  #  #  .  #  #  .  #  #  ?  #  #  #  #  .  .
+dnl   mingw 2009-2011                .  #  .  #  .  .  .  .  #  #  .  .  .  ?  .  .  .  .  .  .
+dnl   mingw-w64 2011                 #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
index 1509ba6652d7b2b24a5b8b6c20dcce55cba217ae..41a0aaf40061acf0b4e6788df583c4562a4b5814 100644 (file)
@@ -1,6 +1,6 @@
-# serial 7
+# serial 8
 
-# Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,6 @@
 
 AC_DEFUN([gl_PRIV_SET],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_CHECK_FUNCS([getppriv])
   AC_CHECK_HEADERS_ONCE([priv.h])
 ])
index 5130d56a7b207b1c3eba23486a7a3e383b2fef0c..7b3912329d529ea9f78e870fcac12edcbc6dde35 100644 (file)
@@ -1,5 +1,5 @@
 # progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2005, 2008-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.
index 23286841cf677166938db98f1c8f91276a5e0010..ac49236e169274509d2c99a87b334b5fe7bbee7a 100644 (file)
@@ -1,5 +1,5 @@
-# quote.m4 serial 5
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# quote.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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,8 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_QUOTE],
 [
-  AC_LIBOBJ([quote])
-
   dnl Prerequisites of lib/quote.c.
   dnl (none)
+  :
 ])
index ff4a2fa4be1f779c1cb77fdd75e3a6738221f0d0..bc0ef0c931f30b7fd443e9596855e861477add8e 100644 (file)
@@ -1,10 +1,10 @@
-# quotearg.m4 serial 8
-dnl Copyright (C) 2002, 2004-2011 Free Software Foundation, Inc.
+# quotearg.m4 serial 9
+dnl Copyright (C) 2002, 2004-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.
 
 AC_DEFUN([gl_QUOTEARG],
 [
-  AC_LIBOBJ([quotearg])
+  :
 ])
diff --git a/m4/raise.m4 b/m4/raise.m4
new file mode 100644 (file)
index 0000000..7df3317
--- /dev/null
@@ -0,0 +1,34 @@
+# raise.m4 serial 3
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_RAISE],
+[
+  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  AC_CHECK_FUNCS([raise])
+  if test $ac_cv_func_raise = no; then
+    HAVE_RAISE=0
+  else
+    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+      REPLACE_RAISE=1
+    fi
+    m4_ifdef([gl_SIGNALBLOCKING], [
+      gl_SIGNALBLOCKING
+      if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
+        m4_ifdef([gl_SIGNAL_SIGPIPE], [
+          gl_SIGNAL_SIGPIPE
+          if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+            REPLACE_RAISE=1
+          fi
+        ], [:])
+      fi
+    ])
+  fi
+])
+
+# Prerequisites of lib/raise.c.
+AC_DEFUN([gl_PREREQ_RAISE], [:])
index 542cba18d5958a3adda26067ae49bdf04ca45637..8c500547c556a8c5b9e182c6e69e56b6081c972c 100644 (file)
@@ -1,5 +1,5 @@
-# rawmemchr.m4 serial 1
-dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
+# rawmemchr.m4 serial 2
+dnl Copyright (C) 2003, 2007-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.
@@ -10,10 +10,9 @@ AC_DEFUN([gl_FUNC_RAWMEMCHR],
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_REPLACE_FUNCS([rawmemchr])
+  AC_CHECK_FUNCS([rawmemchr])
   if test $ac_cv_func_rawmemchr = no; then
     HAVE_RAWMEMCHR=0
-    gl_PREREQ_RAWMEMCHR
   fi
 ])
 
diff --git a/m4/read.m4 b/m4/read.m4
new file mode 100644 (file)
index 0000000..81f0f3a
--- /dev/null
@@ -0,0 +1,26 @@
+# read.m4 serial 4
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_READ],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_READ=1
+  fi
+  dnl This ifdef is just an optimization, to avoid performing a configure
+  dnl check whose result is not used. It does not make the test of
+  dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_READ=1
+    fi
+  ])
+])
+
+# Prerequisites of lib/read.c.
+AC_DEFUN([gl_PREREQ_READ], [:])
diff --git a/m4/readdir.m4 b/m4/readdir.m4
new file mode 100644 (file)
index 0000000..4269bb4
--- /dev/null
@@ -0,0 +1,15 @@
+# readdir.m4 serial 1
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_READDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([readdir])
+  if test $ac_cv_func_readdir = no; then
+    HAVE_READDIR=0
+  fi
+])
index a502ca560fe4835805fb4c4b2013e28fb95e0668..96e50425a53de5ae28d72dfcf8fb1c8cb09dcc6e 100644 (file)
@@ -1,5 +1,5 @@
-# readlink.m4 serial 9
-dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
+# readlink.m4 serial 12
+dnl Copyright (C) 2003, 2007, 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.
@@ -7,11 +7,10 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_READLINK],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([readlink])
   if test $ac_cv_func_readlink = no; then
     HAVE_READLINK=0
-    AC_LIBOBJ([readlink])
-    gl_PREREQ_READLINK
   else
     AC_CACHE_CHECK([whether readlink signature is correct],
       [gl_cv_decl_readlink_works],
@@ -34,21 +33,31 @@ AC_DEFUN([gl_FUNC_READLINK],
 ]], [[char buf[20];
       return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])],
          [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no],
-         [gl_cv_func_readlink_works="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_readlink_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_readlink_works="guessing no" ;;
+          esac
+         ])
       rm -f conftest.link conftest.lnk2])
-    if test "$gl_cv_func_readlink_works" != yes; then
-      AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink
-        fails to recognize a trailing slash.])
-      REPLACE_READLINK=1
-      AC_LIBOBJ([readlink])
-    elif test "$gl_cv_decl_readlink_works" != yes; then
-      REPLACE_READLINK=1
-      AC_LIBOBJ([readlink])
-    fi
+    case "$gl_cv_func_readlink_works" in
+      *yes)
+        if test "$gl_cv_decl_readlink_works" != yes; then
+          REPLACE_READLINK=1
+        fi
+        ;;
+      *)
+        AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink
+          fails to recognize a trailing slash.])
+        REPLACE_READLINK=1
+        ;;
+    esac
   fi
 ])
 
-# Like gl_FUNC_READLINK, except prepare for separate compilation (no AC_LIBOBJ).
+# Like gl_FUNC_READLINK, except prepare for separate compilation
+# (no REPLACE_READLINK, no AC_LIBOBJ).
 AC_DEFUN([gl_FUNC_READLINK_SEPARATE],
 [
   AC_CHECK_FUNCS_ONCE([readlink])
index 8dc7d19a8a0f867a1076a79e087536f5c2c8b9de..b2ff40dcb027bc6bffc3db68dad4a5c3ec566e85 100644 (file)
@@ -1,7 +1,7 @@
-# serial 1
+# serial 3
 # See if we need to provide readlinkat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -10,12 +10,10 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_READLINKAT],
 [
-  AC_REQUIRE([gl_FUNC_OPENAT])
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([readlinkat])
   if test $ac_cv_func_readlinkat = no; then
     HAVE_READLINKAT=0
-    AC_LIBOBJ([readlinkat])
   fi
 ])
index a403d9fb3294eef67f56317b81730f999f34a23b..d477fb470b23259d4b6d88bda502bc48c10a39d5 100644 (file)
@@ -1,9 +1,47 @@
-# realloc.m4 serial 11
-dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# realloc.m4 serial 13
+dnl Copyright (C) 2007, 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.
 
+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
+AC_DEFUN([_AC_FUNC_REALLOC_IF],
+[
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+  AC_CHECK_HEADERS([stdlib.h])
+  AC_CACHE_CHECK([for GNU libc compatible realloc],
+    [ac_cv_func_realloc_0_nonnull],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+            # include <stdlib.h>
+            #else
+            char *realloc ();
+            #endif
+          ]],
+          [[return ! realloc (0, 0);]])
+       ],
+       [ac_cv_func_realloc_0_nonnull=yes],
+       [ac_cv_func_realloc_0_nonnull=no],
+       [case "$host_os" in
+          # Guess yes on platforms where we know the result.
+          *-gnu* | freebsd* | netbsd* | openbsd* \
+          | hpux* | solaris* | cygwin* | mingw*)
+            ac_cv_func_realloc_0_nonnull=yes ;;
+          # If we don't know, assume the worst.
+          *) ac_cv_func_realloc_0_nonnull=no ;;
+        esac
+       ])
+    ])
+  AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2])
+])# AC_FUNC_REALLOC
+
+])
+
 # gl_FUNC_REALLOC_GNU
 # -------------------
 # Test whether 'realloc (0, 0)' is handled like in GNU libc, and replace
@@ -17,7 +55,7 @@ AC_DEFUN([gl_FUNC_REALLOC_GNU],
                [Define to 1 if your system has a GNU libc compatible 'realloc'
                 function, and to 0 otherwise.])],
     [AC_DEFINE([HAVE_REALLOC_GNU], [0])
-     gl_REPLACE_REALLOC
+     REPLACE_REALLOC=1
     ])
 ])# gl_FUNC_REALLOC_GNU
 
@@ -33,12 +71,6 @@ AC_DEFUN([gl_FUNC_REALLOC_POSIX],
     AC_DEFINE([HAVE_REALLOC_POSIX], [1],
       [Define if the 'realloc' function is POSIX compliant.])
   else
-    gl_REPLACE_REALLOC
+    REPLACE_REALLOC=1
   fi
 ])
-
-AC_DEFUN([gl_REPLACE_REALLOC],
-[
-  AC_LIBOBJ([realloc])
-  REPLACE_REALLOC=1
-])
index 24198b5570319d412cf6aa9a35cffd763de45550..6d29dcfb1da0081fc437c7843e57eac543118abc 100644 (file)
@@ -1,6 +1,6 @@
-# serial 58
+# serial 64
 
-# Copyright (C) 1996-2001, 2003-2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -27,15 +27,21 @@ AC_DEFUN([gl_REGEX],
     # following run test, then default to *not* using the included regex.c.
     # If cross compiling, assume the test would fail and use the included
     # regex.c.
+    AC_CHECK_DECLS_ONCE([alarm])
     AC_CACHE_CHECK([for working re_compile_pattern],
                    [gl_cv_func_re_compile_pattern_working],
       [AC_RUN_IFELSE(
         [AC_LANG_PROGRAM(
-          [AC_INCLUDES_DEFAULT[
-           #include <locale.h>
-           #include <limits.h>
-           #include <regex.h>
-           ]],
+          [[#include <regex.h>
+
+            #include <locale.h>
+            #include <limits.h>
+            #include <string.h>
+            #if HAVE_DECL_ALARM
+            # include <unistd.h>
+            # include <signal.h>
+            #endif
+          ]],
           [[int result = 0;
             static struct re_pattern_buffer regex;
             unsigned char folded_chars[UCHAR_MAX + 1];
@@ -43,26 +49,65 @@ AC_DEFUN([gl_REGEX],
             const char *s;
             struct re_registers regs;
 
-            /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
-               This test needs valgrind to catch the bug on Debian
-               GNU/Linux 3.1 x86, but it might catch the bug better
-               on other platforms and it shouldn't hurt to try the
-               test here.  */
+#if HAVE_DECL_ALARM
+            /* Some builds of glibc go into an infinite loop on this test.  */
+            signal (SIGALRM, SIG_DFL);
+            alarm (2);
+#endif
             if (setlocale (LC_ALL, "en_US.UTF-8"))
               {
-                static char const pat[] = "insert into";
-                static char const data[] =
-                  "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
-                re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
-                               | RE_ICASE);
-                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, &regs)
-                         != -1)
-                  result |= 1;
+                {
+                  /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+                     This test needs valgrind to catch the bug on Debian
+                     GNU/Linux 3.1 x86, but it might catch the bug better
+                     on other platforms and it shouldn't hurt to try the
+                     test here.  */
+                  static char const pat[] = "insert into";
+                  static char const data[] =
+                    "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK";
+                  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE
+                                 | RE_ICASE);
+                  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, &regs)
+                           != -1)
+                    result |= 1;
+                }
+
+                {
+                  /* This test is from glibc bug 15078.
+                     The test case is from Andreas Schwab in
+                     <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
+                     */
+                  static char const pat[] = "[^x]x";
+                  static char const data[] =
+                    /* <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
+                    {
+                      i = re_search (&regex, data, sizeof data - 1,
+                                     0, sizeof data - 1, 0);
+                      if (i != 0 && i != 21)
+                        result |= 1;
+                    }
+                }
+
                 if (! setlocale (LC_ALL, "C"))
                   return 1;
               }
@@ -175,6 +220,9 @@ AC_DEFUN([gl_REGEX],
   esac
 
   if test $ac_use_included_regex = yes; then
+    AC_DEFINE([_REGEX_INCLUDE_LIMITS_H], [1],
+      [Define if you want <regex.h> to include <limits.h>, so that it
+       consistently overrides <limits.h>'s RE_DUP_MAX.])
     AC_DEFINE([_REGEX_LARGE_OFFSETS], [1],
       [Define if you want regoff_t to be at least as wide POSIX requires.])
     AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
@@ -207,8 +255,6 @@ AC_DEFUN([gl_REGEX],
       [Define to rpl_regerror if the replacement should be used.])
     AC_DEFINE([regfree], [rpl_regfree],
       [Define to rpl_regfree if the replacement should be used.])
-    AC_LIBOBJ([regex])
-    gl_PREREQ_REGEX
   fi
 ])
 
@@ -219,7 +265,8 @@ AC_DEFUN([gl_PREREQ_REGEX],
   AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
+  AC_REQUIRE([gl_EEMALLOC])
   AC_CHECK_HEADERS([libintl.h])
   AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll])
-  AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
+  AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
 ])
index 6648542c7a346912714d88617faf6350f5e50743..66430aa8782a0a603df38481e221d89c1c456675 100644 (file)
@@ -1,6 +1,6 @@
-# serial 23
+# serial 26
 
-# Copyright (C) 2001, 2003, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005-2006, 2009-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.
@@ -54,16 +54,24 @@ AC_DEFUN([gl_FUNC_RENAME],
       [gl_cv_func_rename_slash_dst_works=yes],
       [gl_cv_func_rename_slash_dst_works=no],
       dnl When crosscompiling, assume rename is broken.
-      [gl_cv_func_rename_slash_dst_works="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_slash_dst_works="guessing no" ;;
+       esac
+      ])
     rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
   ])
-  if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
-    AC_LIBOBJ([rename])
-    REPLACE_RENAME=1
-    AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1],
-      [Define if rename does not correctly handle slashes on the destination
-       argument, such as on Solaris 10 or NetBSD 1.6.])
-  fi
+  case "$gl_cv_func_rename_slash_dst_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
+      AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1],
+        [Define if rename does not correctly handle slashes on the destination
+         argument, such as on Solaris 10 or NetBSD 1.6.])
+      ;;
+  esac
 
   dnl SunOS 4.1.1_U1 mistakenly forbids rename("dir/","name").
   dnl Solaris 9 mistakenly allows rename("file/","name").
@@ -98,58 +106,79 @@ AC_DEFUN([gl_FUNC_RENAME],
       [gl_cv_func_rename_slash_src_works=yes],
       [gl_cv_func_rename_slash_src_works=no],
       dnl When crosscompiling, assume rename is broken.
-      [gl_cv_func_rename_slash_src_works="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_slash_src_works="guessing no" ;;
+       esac
+      ])
     rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
   ])
-  if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
-    AC_LIBOBJ([rename])
-    REPLACE_RENAME=1
-    AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1],
-      [Define if rename does not correctly handle slashes on the source
-       argument, such as on Solaris 9 or cygwin 1.5.])
-  fi
+  case "$gl_cv_func_rename_slash_src_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
+      AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1],
+        [Define if rename does not correctly handle slashes on the source
+         argument, such as on Solaris 9 or cygwin 1.5.])
+      ;;
+  esac
 
   dnl NetBSD 1.6 and cygwin 1.5.x mistakenly reduce hard link count
   dnl on rename("h1","h2").
   dnl This bug requires stat'ting targets prior to attempting rename.
+  AC_CHECK_FUNCS_ONCE([link])
   AC_CACHE_CHECK([whether rename manages hard links correctly],
     [gl_cv_func_rename_link_works],
-    [rm -rf conftest.f conftest.f1
-    if touch conftest.f && ln conftest.f conftest.f1 &&
-        set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then
-      AC_RUN_IFELSE(
-        [AC_LANG_PROGRAM([[
-#          include <stdio.h>
-#          include <stdlib.h>
-#          include <unistd.h>
-           ]],
-           [[int result = 0;
-             if (rename ("conftest.f", "conftest.f1"))
-               result |= 1;
-             if (unlink ("conftest.f1"))
-               result |= 2;
-             if (rename ("conftest.f", "conftest.f"))
-               result |= 4;
-             if (rename ("conftest.f1", "conftest.f1") == 0)
-               result |= 8;
-             return result;
-           ]])],
-        [gl_cv_func_rename_link_works=yes],
-        [gl_cv_func_rename_link_works=no],
-        dnl When crosscompiling, assume rename is broken.
-        [gl_cv_func_rename_link_works="guessing no"])
-    else
-      gl_cv_func_rename_link_works="guessing no"
-    fi
-    rm -rf conftest.f conftest.f1
-  ])
-  if test "x$gl_cv_func_rename_link_works" != xyes; then
-    AC_LIBOBJ([rename])
-    REPLACE_RENAME=1
-    AC_DEFINE([RENAME_HARD_LINK_BUG], [1],
-      [Define if rename fails to leave hard links alone, as on NetBSD 1.6
-       or Cygwin 1.5.])
-  fi
+    [if test $ac_cv_func_link = yes; then
+       rm -rf conftest.f conftest.f1
+       if touch conftest.f && ln conftest.f conftest.f1 &&
+           set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then
+         AC_RUN_IFELSE(
+           [AC_LANG_PROGRAM([[
+#             include <stdio.h>
+#             include <stdlib.h>
+#             include <unistd.h>
+              ]],
+              [[int result = 0;
+                if (rename ("conftest.f", "conftest.f1"))
+                  result |= 1;
+                if (unlink ("conftest.f1"))
+                  result |= 2;
+                if (rename ("conftest.f", "conftest.f"))
+                  result |= 4;
+                if (rename ("conftest.f1", "conftest.f1") == 0)
+                  result |= 8;
+                return result;
+              ]])],
+           [gl_cv_func_rename_link_works=yes],
+           [gl_cv_func_rename_link_works=no],
+           dnl When crosscompiling, assume rename is broken.
+           [case "$host_os" in
+                      # Guess yes on glibc systems.
+              *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;;
+                      # If we don't know, assume the worst.
+              *)      gl_cv_func_rename_link_works="guessing no" ;;
+            esac
+           ])
+       else
+         gl_cv_func_rename_link_works="guessing no"
+       fi
+       rm -rf conftest.f conftest.f1
+     else
+       gl_cv_func_rename_link_works=yes
+     fi
+    ])
+  case "$gl_cv_func_rename_link_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
+      AC_DEFINE([RENAME_HARD_LINK_BUG], [1],
+        [Define if rename fails to leave hard links alone, as on NetBSD 1.6
+         or Cygwin 1.5.])
+      ;;
+  esac
 
   dnl Cygwin 1.5.x mistakenly allows rename("dir","file").
   dnl mingw mistakenly forbids rename("dir1","dir2").
@@ -175,14 +204,22 @@ AC_DEFUN([gl_FUNC_RENAME],
       [gl_cv_func_rename_dest_works=yes],
       [gl_cv_func_rename_dest_works=no],
       dnl When crosscompiling, assume rename is broken.
-      [gl_cv_func_rename_dest_works="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_rename_dest_works="guessing no" ;;
+       esac
+      ])
     rm -rf conftest.f conftest.d1 conftest.d2
   ])
-  if test "x$gl_cv_func_rename_dest_works" != xyes; then
-    AC_LIBOBJ([rename])
-    REPLACE_RENAME=1
-    AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
-      [Define if rename does not work when the destination file exists,
-       as on Cygwin 1.5 or Windows.])
-  fi
+  case "$gl_cv_func_rename_dest_works" in
+    *yes) ;;
+    *)
+      REPLACE_RENAME=1
+      AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
+        [Define if rename does not work when the destination file exists,
+         as on Cygwin 1.5 or Windows.])
+      ;;
+  esac
 ])
index 2fa2b8cfa3686c5270345075287d99af1fe59751..30a7d911b9f0227d8042a51095f8ef63737cbba8 100644 (file)
@@ -1,7 +1,7 @@
-# serial 2
+# serial 3
 # See if we need to provide renameat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -17,12 +17,8 @@ AC_DEFUN([gl_FUNC_RENAMEAT],
   AC_CHECK_FUNCS_ONCE([renameat])
   if test $ac_cv_func_renameat = no; then
     HAVE_RENAMEAT=0
-    AC_LIBOBJ([renameat])
-    AC_LIBOBJ([at-func2])
   elif test $REPLACE_RENAME = 1; then
     dnl Solaris 9 and 10 have the same bugs in renameat as in rename.
     REPLACE_RENAMEAT=1
-    AC_LIBOBJ([renameat])
-    AC_LIBOBJ([at-func2])
   fi
 ])
diff --git a/m4/rewinddir.m4 b/m4/rewinddir.m4
new file mode 100644 (file)
index 0000000..ee9d9b9
--- /dev/null
@@ -0,0 +1,15 @@
+# rewinddir.m4 serial 1
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN([gl_FUNC_REWINDDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([rewinddir])
+  if test $ac_cv_func_rewinddir = no; then
+    HAVE_REWINDDIR=0
+  fi
+])
index 41705a1ee442b7ae8bdfac2d993ab702d609176f..f6a02dd24a86aca5e6a7d13983ad44709b581c7f 100644 (file)
@@ -1,5 +1,5 @@
-# rmdir.m4 serial 10
-dnl Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc.
+# rmdir.m4 serial 13
+dnl Copyright (C) 2002, 2005, 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.
@@ -7,7 +7,9 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_RMDIR],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   dnl Detect cygwin 1.5.x bug.
+  AC_CHECK_HEADERS_ONCE([unistd.h])
   AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works],
     [mkdir conftest.dir
      touch conftest.file
@@ -15,7 +17,11 @@ AC_DEFUN([gl_FUNC_RMDIR],
        [AC_LANG_PROGRAM(
          [[#include <stdio.h>
            #include <errno.h>
-           #include <unistd.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <direct.h>
+           #endif
 ]], [[int result = 0;
       if (!rmdir ("conftest.file/"))
         result |= 1;
@@ -26,10 +32,18 @@ AC_DEFUN([gl_FUNC_RMDIR],
       return result;
     ]])],
        [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no],
-       [gl_cv_func_rmdir_works="guessing no"])
+       [case "$host_os" in
+                  # Guess yes on glibc systems.
+          *-gnu*) gl_cv_func_rmdir_works="guessing yes" ;;
+                  # If we don't know, assume the worst.
+          *)      gl_cv_func_rmdir_works="guessing no" ;;
+        esac
+       ])
      rm -rf conftest.dir conftest.file])
-  if test x"$gl_cv_func_rmdir_works" != xyes; then
-    REPLACE_RMDIR=1
-    AC_LIBOBJ([rmdir])
-  fi
+  case "$gl_cv_func_rmdir_works" in
+    *yes) ;;
+    *)
+      REPLACE_RMDIR=1
+      ;;
+  esac
 ])
index a8d0f10f251a425bea1a59a2d3c9341fbeb97eaa..4edc46651452508342177b7e5bac342d5a74d4fa 100644 (file)
@@ -1,5 +1,5 @@
-# rpmatch.m4 serial 9
-dnl Copyright (C) 2002-2003, 2007-2011 Free Software Foundation, Inc.
+# rpmatch.m4 serial 10
+dnl Copyright (C) 2002-2003, 2007-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.
@@ -10,10 +10,9 @@ AC_DEFUN([gl_FUNC_RPMATCH],
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  AC_REPLACE_FUNCS([rpmatch])
+  AC_CHECK_FUNCS([rpmatch])
   if test $ac_cv_func_rpmatch = no; then
     HAVE_RPMATCH=0
-    gl_PREREQ_RPMATCH
   fi
 ])
 
index ea8eedbfc88f40a8106948affb4349e8380fce22..be5207a5c63a3c7eb8c566a1dbd0aa52afac4f6f 100644 (file)
@@ -1,17 +1,10 @@
-# safe-read.m4 serial 5
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# safe-read.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_SAFE_READ],
-[
-  AC_LIBOBJ([safe-read])
-
-  gl_PREREQ_SAFE_READ
-])
-
 # Prerequisites of lib/safe-read.c.
 AC_DEFUN([gl_PREREQ_SAFE_READ],
 [
index 7f6b9f81af29bc21fa54c33d35e4fcd7429fd424..bc2a33f8756a9c984a8fc764959157ab7542a0ef 100644 (file)
@@ -1,16 +1,9 @@
-# safe-write.m4 serial 3
-dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+# safe-write.m4 serial 4
+dnl Copyright (C) 2002, 2005-2006, 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.
 
-AC_DEFUN([gl_SAFE_WRITE],
-[
-  AC_LIBOBJ([safe-write])
-
-  gl_PREREQ_SAFE_WRITE
-])
-
 # Prerequisites of lib/safe-write.c.
 AC_DEFUN([gl_PREREQ_SAFE_WRITE],
 [
index 7437e0536786345d230bf30d41453fa50868023c..74e1f562acb2a06d445a7406a6e0c2d41a074f3c 100644 (file)
@@ -1,12 +1,11 @@
-# serial 9
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+# serial 10
+dnl Copyright (C) 2002-2006, 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 Prerequisites for lib/save-cwd.c.
 AC_DEFUN([gl_SAVE_CWD],
 [
-  AC_LIBOBJ([save-cwd])
-  dnl Prerequisites for lib/save-cwd.c.
   AC_CHECK_FUNCS_ONCE([fchdir])
 ])
index 94f3e8968e2418ad4afc8fed8963eebd562a241f..96fe92852127c2a3441688a2da5de8d45e4f371e 100644 (file)
@@ -1,5 +1,5 @@
-# savedir.m4 serial 9
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
+# savedir.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 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,5 +7,5 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_SAVEDIR],
 [
-  AC_LIBOBJ([savedir])
+  :
 ])
diff --git a/m4/secure_getenv.m4 b/m4/secure_getenv.m4
new file mode 100644 (file)
index 0000000..5da5298
--- /dev/null
@@ -0,0 +1,25 @@
+# Look up an environment variable more securely.
+dnl Copyright 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.
+
+AC_DEFUN([gl_FUNC_SECURE_GETENV],
+[
+  dnl Persuade glibc <stdlib.h> to declare secure_getenv().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([secure_getenv])
+  if test $ac_cv_func_secure_getenv = no; then
+    HAVE_SECURE_GETENV=0
+  fi
+])
+
+# Prerequisites of lib/secure_getenv.c.
+AC_DEFUN([gl_PREREQ_SECURE_GETENV], [
+  AC_CHECK_FUNCS([__secure_getenv])
+  if test $ac_cv_func___secure_getenv = no; then
+    AC_CHECK_FUNCS([issetugid])
+  fi
+])
diff --git a/m4/selinux-context-h.m4 b/m4/selinux-context-h.m4
new file mode 100644 (file)
index 0000000..c85255b
--- /dev/null
@@ -0,0 +1,22 @@
+# serial 3   -*- Autoconf -*-
+# Copyright (C) 2006-2007, 2009-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.
+
+# From Jim Meyering
+# Provide <selinux/context.h>, if necessary.
+
+AC_DEFUN([gl_HEADERS_SELINUX_CONTEXT_H],
+[
+  AC_REQUIRE([gl_LIBSELINUX])
+  if test "$with_selinux" != no; then
+    AC_CHECK_HEADERS([selinux/context.h],
+                     [SELINUX_CONTEXT_H=],
+                     [SELINUX_CONTEXT_H=selinux/context.h])
+  else
+    SELINUX_CONTEXT_H=selinux/context.h
+  fi
+  AC_SUBST([SELINUX_CONTEXT_H])
+  AM_CONDITIONAL([GL_GENERATE_SELINUX_CONTEXT_H], [test -n "$SELINUX_CONTEXT_H"])
+])
diff --git a/m4/selinux-selinux-h.m4 b/m4/selinux-selinux-h.m4
new file mode 100644 (file)
index 0000000..17cccff
--- /dev/null
@@ -0,0 +1,69 @@
+# serial 5   -*- Autoconf -*-
+# Copyright (C) 2006-2007, 2009-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.
+
+# From Jim Meyering
+# Provide <selinux/selinux.h>, if necessary.
+# If it is already present, provide wrapper functions to guard against
+# misbehavior from getfilecon, lgetfilecon, and fgetfilecon.
+
+AC_DEFUN([gl_HEADERS_SELINUX_SELINUX_H],
+[
+  AC_REQUIRE([gl_LIBSELINUX])
+  if test "$with_selinux" != no; then
+    AC_CHECK_HEADERS([selinux/selinux.h])
+
+    if test "$ac_cv_header_selinux_selinux_h" = yes; then
+      # We do have <selinux/selinux.h>, so do compile getfilecon.c
+      # and arrange to use its wrappers.
+      gl_CHECK_NEXT_HEADERS([selinux/selinux.h])
+      AC_DEFINE([getfilecon], [rpl_getfilecon],
+                [Always use our getfilecon wrapper.])
+      AC_DEFINE([lgetfilecon], [rpl_lgetfilecon],
+                [Always use our lgetfilecon wrapper.])
+      AC_DEFINE([fgetfilecon], [rpl_fgetfilecon],
+                [Always use our fgetfilecon wrapper.])
+    fi
+
+    case "$ac_cv_search_setfilecon:$ac_cv_header_selinux_selinux_h" in
+      no:*) # already warned
+        ;;
+      *:no)
+        AC_MSG_WARN([libselinux was found but selinux/selinux.h is missing.])
+        AC_MSG_WARN([AC_PACKAGE_NAME will be compiled without SELinux support.])
+    esac
+  else
+    # Do as if <selinux/selinux.h> does not exist, even if
+    # AC_CHECK_HEADERS_ONCE has already determined that it exists.
+    AC_DEFINE([HAVE_SELINUX_SELINUX_H], [0])
+  fi
+])
+
+AC_DEFUN([gl_LIBSELINUX],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_CANONICAL_BUILD])
+
+  AC_ARG_WITH([selinux],
+    AS_HELP_STRING([--without-selinux], [do not use SELinux, even on systems with SELinux]),
+    [], [with_selinux=maybe])
+
+  LIB_SELINUX=
+  if test "$with_selinux" != no; then
+    gl_save_LIBS=$LIBS
+    AC_SEARCH_LIBS([setfilecon], [selinux],
+                   [test "$ac_cv_search_setfilecon" = "none required" ||
+                    LIB_SELINUX=$ac_cv_search_setfilecon])
+    LIBS=$gl_save_LIBS
+  fi
+  AC_SUBST([LIB_SELINUX])
+
+  # Warn if SELinux is found but libselinux is absent;
+  if test "$ac_cv_search_setfilecon" = no &&
+     test "$host" = "$build" && test -d /selinux; then
+    AC_MSG_WARN([This system supports SELinux but libselinux is missing.])
+    AC_MSG_WARN([AC_PACKAGE_NAME will be compiled without SELinux support.])
+  fi
+])
index ba619b082e4b9d54878d4f79bb79e2bb3b2419e0..cb5351a07be03e2a7b74559a8e02666f33b479fb 100644 (file)
@@ -1,5 +1,5 @@
-# setenv.m4 serial 21
-dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc.
+# setenv.m4 serial 26
+dnl Copyright (C) 2001-2004, 2006-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.
@@ -7,20 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_SETENV],
 [
   AC_REQUIRE([gl_FUNC_SETENV_SEPARATE])
-  if test $HAVE_SETENV$REPLACE_SETENV != 10; then
-    AC_LIBOBJ([setenv])
-  fi
-])
-
-# Like gl_FUNC_SETENV, except prepare for separate compilation (no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
-[
-  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  AC_CHECK_DECLS_ONCE([setenv])
-  if test $ac_cv_have_decl_setenv = no; then
-    HAVE_DECL_SETENV=0
-  fi
-  AC_CHECK_FUNCS_ONCE([setenv])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   if test $ac_cv_func_setenv = no; then
     HAVE_SETENV=0
   else
@@ -47,27 +34,48 @@ AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
        return result;
       ]])],
       [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
-      [gl_cv_func_setenv_works="guessing no"])])
-    if test "$gl_cv_func_setenv_works" != yes; then
-      REPLACE_SETENV=1
-      AC_LIBOBJ([setenv])
-    fi
+      [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
+      ])])
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
   fi
+])
+
+# Like gl_FUNC_SETENV, except prepare for separate compilation
+# (no REPLACE_SETENV, no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([setenv])
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
+  AC_CHECK_FUNCS_ONCE([setenv])
   gl_PREREQ_SETENV
 ])
 
 AC_DEFUN([gl_FUNC_UNSETENV],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_DECLS_ONCE([unsetenv])
   if test $ac_cv_have_decl_unsetenv = no; then
     HAVE_DECL_UNSETENV=0
   fi
   AC_CHECK_FUNCS([unsetenv])
   if test $ac_cv_func_unsetenv = no; then
-    AC_LIBOBJ([unsetenv])
-    gl_PREREQ_UNSETENV
+    HAVE_UNSETENV=0
   else
+    HAVE_UNSETENV=1
     dnl Some BSDs return void, failing to do error checking.
     AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
       [AC_COMPILE_IFELSE(
@@ -80,11 +88,7 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
 int unsetenv (const char *name);
-#else
-int unsetenv();
-#endif
             ]],
             [[]])],
          [gt_cv_func_unsetenv_ret='int'],
@@ -93,7 +97,6 @@ int unsetenv();
       AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
        instead of int.])
       REPLACE_UNSETENV=1
-      AC_LIBOBJ([unsetenv])
     fi
 
     dnl Solaris 10 unsetenv does not remove all copies of a name.
@@ -123,11 +126,19 @@ int unsetenv();
        if (getenv ("a")) return 6;
       ]])],
       [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no],
-      [gl_cv_func_unsetenv_works="guessing no"])])
-    if test "$gl_cv_func_unsetenv_works" != yes; then
-      REPLACE_UNSETENV=1
-      AC_LIBOBJ([unsetenv])
-    fi
+      [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
+      ])])
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
   fi
 ])
 
diff --git a/m4/signal_h.m4 b/m4/signal_h.m4
new file mode 100644 (file)
index 0000000..3de9f27
--- /dev/null
@@ -0,0 +1,83 @@
+# signal_h.m4 serial 18
+dnl Copyright (C) 2007-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.
+
+AC_DEFUN([gl_SIGNAL_H],
+[
+  AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+  AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
+  gl_NEXT_HEADERS([signal.h])
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'.  C99 requires that it compile.
+  AC_CHECK_TYPE([volatile sig_atomic_t], [],
+    [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
+#include <signal.h>
+    ]])
+
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  AC_REQUIRE([AC_TYPE_UID_T])
+
+  dnl Persuade glibc <signal.h> to define sighandler_t.
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[
+#include <signal.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 <signal.h>
+    ]], [pthread_sigmask sigaction
+    sigaddset sigdelset sigemptyset sigfillset sigismember
+    sigpending sigprocmask])
+])
+
+AC_DEFUN([gl_CHECK_TYPE_SIGSET_T],
+[
+  AC_CHECK_TYPES([sigset_t],
+    [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
+    [[
+      #include <signal.h>
+      /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
+      #include <sys/types.h>
+    ]])
+  if test $gl_cv_type_sigset_t != yes; then
+    HAVE_SIGSET_T=0
+  fi
+])
+
+AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SIGNAL_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_SIGNAL_H_DEFAULTS],
+[
+  GNULIB_PTHREAD_SIGMASK=0;    AC_SUBST([GNULIB_PTHREAD_SIGMASK])
+  GNULIB_RAISE=0;              AC_SUBST([GNULIB_RAISE])
+  GNULIB_SIGNAL_H_SIGPIPE=0;   AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE])
+  GNULIB_SIGPROCMASK=0;        AC_SUBST([GNULIB_SIGPROCMASK])
+  GNULIB_SIGACTION=0;          AC_SUBST([GNULIB_SIGACTION])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
+  HAVE_PTHREAD_SIGMASK=1;      AC_SUBST([HAVE_PTHREAD_SIGMASK])
+  HAVE_RAISE=1;                AC_SUBST([HAVE_RAISE])
+  HAVE_SIGSET_T=1;             AC_SUBST([HAVE_SIGSET_T])
+  HAVE_SIGINFO_T=1;            AC_SUBST([HAVE_SIGINFO_T])
+  HAVE_SIGACTION=1;            AC_SUBST([HAVE_SIGACTION])
+  HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+                               AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
+  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+                               AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
+  HAVE_SIGHANDLER_T=1;         AC_SUBST([HAVE_SIGHANDLER_T])
+  REPLACE_PTHREAD_SIGMASK=0;   AC_SUBST([REPLACE_PTHREAD_SIGMASK])
+  REPLACE_RAISE=0;             AC_SUBST([REPLACE_RAISE])
+])
index e8070981a805f680d4f61b4cdb2b27dbe82ea676..4b247abc0bfe6a9d0a5bde1c0d0be422b3e811ab 100644 (file)
@@ -1,5 +1,5 @@
 # size_max.m4 serial 10
-dnl Copyright (C) 2003, 2005-2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2006, 2008-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.
index 4a251dae12262aa790f619618379a32720e66e16..a27baa6d5b2c0e267a2090fdeb0cf935fbba5168 100644 (file)
@@ -1,5 +1,5 @@
-# sleep.m4 serial 4
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# sleep.m4 serial 7
+dnl Copyright (C) 2007-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.
@@ -7,16 +7,16 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_SLEEP],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   dnl We expect to see the declaration of sleep() in a header file.
   dnl Older versions of mingw have a sleep() function that is an alias to
   dnl _sleep() in MSVCRT. It has a different signature than POSIX sleep():
   dnl it takes the number of milliseconds as argument and returns void.
   dnl mingw does not declare this function.
-  AC_CHECK_DECLS([sleep], , , [#include <unistd.h>])
+  AC_CHECK_DECLS([sleep], , , [[#include <unistd.h>]])
   AC_CHECK_FUNCS_ONCE([sleep])
   if test $ac_cv_have_decl_sleep != yes; then
     HAVE_SLEEP=0
-    AC_LIBOBJ([sleep])
   else
     dnl Cygwin 1.5.x has a bug where sleep can't exceed 49.7 days.
     AC_CACHE_CHECK([for working sleep], [gl_cv_func_sleep_works],
@@ -45,10 +45,18 @@ handle_alarm (int sig)
     return 0;
     ]])],
       [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no],
-      [gl_cv_func_sleep_works="guessing no"])])
-    if test "$gl_cv_func_sleep_works" != yes; then
-      REPLACE_SLEEP=1
-      AC_LIBOBJ([sleep])
-    fi
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_sleep_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_sleep_works="guessing no" ;;
+       esac
+      ])])
+    case "$gl_cv_func_sleep_works" in
+      *yes) ;;
+      *)
+        REPLACE_SLEEP=1
+        ;;
+    esac
   fi
 ])
index 8aa5dbe598fc5fd7fc5f1538eca94aa020c64e43..3698e844095025a5ae5abd49e7e1131ad1379865 100644 (file)
@@ -1,9 +1,13 @@
-# snprintf.m4 serial 5
-dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
+# snprintf.m4 serial 6
+dnl Copyright (C) 2002-2004, 2007-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 Libintl 0.17 will replace snprintf only if it does not support %1$s,
+dnl but defers to any gnulib snprintf replacements.  Therefore, gnulib
+dnl must guarantee that the decision for replacing snprintf is a superset
+dnl of the reasons checked by libintl.
 AC_DEFUN([gl_FUNC_SNPRINTF],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
@@ -16,7 +20,12 @@ AC_DEFUN([gl_FUNC_SNPRINTF],
         gl_SNPRINTF_RETVAL_C99
         case "$gl_cv_func_snprintf_retval_c99" in
           *yes)
-            gl_cv_func_snprintf_usable=yes
+            gl_PRINTF_POSITIONS
+            case "$gl_cv_func_printf_positions" in
+              *yes)
+                gl_cv_func_snprintf_usable=yes
+                ;;
+            esac
             ;;
         esac
         ;;
index d7127521ebe126afa0eaff14fe7167a7766bea95..63381343447352748e08cfae8f9a97a071c2d748 100644 (file)
@@ -1,5 +1,5 @@
 # ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-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.
index 75ddbee49b5b05125f1c2884d25783b3f8b53f53..d777f742a2fbc710d560df4bb3d0bd67ede8e443 100644 (file)
@@ -1,6 +1,6 @@
 # Checks for stat-related time functions.
 
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2011 Free Software
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2013 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
@@ -19,7 +19,6 @@ dnl From Paul Eggert.
 
 AC_DEFUN([gl_STAT_TIME],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_HEADERS_ONCE([sys/time.h])
 
@@ -70,7 +69,6 @@ AC_DEFUN([gl_STAT_TIME],
 #
 AC_DEFUN([gl_STAT_BIRTHTIME],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_HEADERS_ONCE([sys/time.h])
   AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [],
index 27f82d5a91aff206dfc0bbed455419d2521d355f..2456297acb7f0475c6b5f85174d6df332c077907 100644 (file)
@@ -1,6 +1,6 @@
-# serial 7
+# serial 11
 
-# Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -23,8 +23,9 @@ AC_DEFUN([gl_FUNC_STAT],
             mingw*) gl_cv_func_stat_dir_slash="guessing no";;
             *) gl_cv_func_stat_dir_slash="guessing yes";;
           esac])])
-  dnl AIX 7.1, Solaris 9 mistakenly succeed on stat("file/")
-  dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/")
+  dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/").
+  dnl (For mingw, this is due to a broken stat() override in libmingwex.a.)
+  dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/").
   AC_CACHE_CHECK([whether stat handles trailing slashes on files],
       [gl_cv_func_stat_file_slash],
       [touch conftest.tmp
@@ -46,7 +47,13 @@ AC_DEFUN([gl_FUNC_STAT],
       return result;
            ]])],
          [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no],
-         [gl_cv_func_stat_file_slash="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_stat_file_slash="guessing no" ;;
+          esac
+         ])
        rm -f conftest.tmp conftest.lnk])
   case $gl_cv_func_stat_dir_slash in
     *no) REPLACE_STAT=1
@@ -58,9 +65,7 @@ AC_DEFUN([gl_FUNC_STAT],
       AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs
         help when passed a file name with a trailing slash]);;
   esac
-  if test $REPLACE_STAT = 1; then
-    AC_LIBOBJ([stat])
-    dnl Prerequisites of lib/stat.c.
-    AC_REQUIRE([AC_C_INLINE])
-  fi
 ])
+
+# Prerequisites of lib/stat.c.
+AC_DEFUN([gl_PREREQ_STAT], [:])
diff --git a/m4/stdalign.m4 b/m4/stdalign.m4
new file mode 100644 (file)
index 0000000..a866ff6
--- /dev/null
@@ -0,0 +1,52 @@
+# Check for stdalign.h that conforms to C11.
+
+dnl Copyright 2011-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.
+
+# 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 \
+                (__GNUC__ || __IBMC__ || __IBMCPP__ \
+                 || 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 a1ef178c55faded595035623efc3f6af0619fd24..c087f61ed35a053be7ae0e20b1bcd8ff8d379910 100644 (file)
@@ -1,5 +1,5 @@
-# stdarg.m4 serial 5
-dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
+# stdarg.m4 serial 6
+dnl Copyright (C) 2006, 2008-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.
@@ -9,8 +9,8 @@ dnl Provide a working va_copy in combination with <stdarg.h>.
 
 AC_DEFUN([gl_STDARG_H],
 [
-  STDARG_H='';                AC_SUBST([STDARG_H])
-  NEXT_STDARG_H='<stdarg.h>'; AC_SUBST([NEXT_STDARG_H])
+  STDARG_H=''
+  NEXT_STDARG_H='<stdarg.h>'
   AC_MSG_CHECKING([for va_copy])
   AC_CACHE_VAL([gl_cv_func_va_copy], [
     AC_COMPILE_IFELSE(
@@ -72,4 +72,7 @@ error, bail out
       fi
     fi
   fi
+  AC_SUBST([STDARG_H])
+  AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
+  AC_SUBST([NEXT_STDARG_H])
 ])
index 838cf0f4679a2a9a4dca119c1760d2040caf3cf0..80d5559ab435a58dcd9459fc674e16ffc815aec5 100644 (file)
@@ -1,11 +1,11 @@
 # Check for stdbool.h that conforms to C99.
 
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 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.
 
-#serial 4
+#serial 5
 
 # Prepare for substituting <stdbool.h> if it is not supported.
 
@@ -21,6 +21,7 @@ AC_DEFUN([AM_STDBOOL_H],
     STDBOOL_H='stdbool.h'
   fi
   AC_SUBST([STDBOOL_H])
+  AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
 
   if test "$ac_cv_type__Bool" = yes; then
     HAVE__BOOL=1
index 1942b6aa0df534dbd08a25f81773a576167b7aea..5da8ab1ec451cf255dfb026216c24a74f012aa77 100644 (file)
@@ -1,6 +1,6 @@
 dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
-# stddef_h.m4 serial 3
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# stddef_h.m4 serial 4
+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.
@@ -9,6 +9,7 @@ AC_DEFUN([gl_STDDEF_H],
 [
   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
+  STDDEF_H=
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
     STDDEF_H=stddef.h
@@ -24,6 +25,8 @@ AC_DEFUN([gl_STDDEF_H],
     REPLACE_NULL=1
     STDDEF_H=stddef.h
   fi
+  AC_SUBST([STDDEF_H])
+  AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
   if test -n "$STDDEF_H"; then
     gl_NEXT_HEADERS([stddef.h])
   fi
@@ -41,5 +44,4 @@ AC_DEFUN([gl_STDDEF_H_DEFAULTS],
   dnl Assume proper GNU behavior unless another module says otherwise.
   REPLACE_NULL=0;                AC_SUBST([REPLACE_NULL])
   HAVE_WCHAR_T=1;                AC_SUBST([HAVE_WCHAR_T])
-  STDDEF_H='';                   AC_SUBST([STDDEF_H])
 ])
index e7d0d0765a2b3cf28cfc4b339e70609ef9414538..27cdcdb9a56de631d74868455c6c0348d5718efc 100644 (file)
@@ -1,5 +1,5 @@
-# stdint.m4 serial 39
-dnl Copyright (C) 2001-2011 Free Software Foundation, Inc.
+# stdint.m4 serial 43
+dnl Copyright (C) 2001-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.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Paul Eggert and Bruno Haible.
 dnl Test whether <stdint.h> is supported or must be substituted.
 
-AC_DEFUN([gl_STDINT_H],
+AC_DEFUN_ONCE([gl_STDINT_H],
 [
   AC_PREREQ([2.59])dnl
 
@@ -69,8 +69,6 @@ AC_DEFUN([gl_STDINT_H],
       [gl_cv_header_working_stdint_h=no
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
 #include <stdint.h>
 /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
@@ -219,8 +217,6 @@ struct s {
           dnl This detects a bug on HP-UX 11.23/ia64.
           AC_RUN_IFELSE([
             AC_LANG_PROGRAM([[
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
 #include <stdint.h>
 ]
@@ -305,6 +301,7 @@ static const char *macro_values[] =
     STDINT_H=stdint.h
   fi
   AC_SUBST([STDINT_H])
+  AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
 ])
 
 dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
@@ -465,6 +462,14 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
   fi
   gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
     [gl_STDINT_INCLUDES])
+
+  dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
+  dnl requirement that wint_t is "unchanged by default argument promotions".
+  dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
+  dnl Set the variable BITSIZEOF_WINT_T accordingly.
+  if test $BITSIZEOF_WINT_T -lt 32; then
+    BITSIZEOF_WINT_T=32
+  fi
 ])
 
 dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
index 356b14e1206453d6343ff36ab2956cc4404ea686..511ab4e9cc8a275ad6b5e330fca7e62cf5943f95 100644 (file)
@@ -1,5 +1,5 @@
 # stdint_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-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.
index 7f3ae56295f1d6ffcdedfa9b0cc91536273e5de8..ebade067d992e55d11bb8e0eee4ffe81f582ab89 100644 (file)
@@ -1,5 +1,5 @@
-# stdio_h.m4 serial 33
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# stdio_h.m4 serial 43
+dnl Copyright (C) 2007-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.
@@ -7,8 +7,32 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_STDIO_H],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
-  AC_REQUIRE([AC_C_INLINE])
   gl_NEXT_HEADERS([stdio.h])
+
+  dnl No need to create extra modules for these functions. Everyone who uses
+  dnl <stdio.h> likely needs them.
+  GNULIB_FSCANF=1
+  gl_MODULE_INDICATOR([fscanf])
+  GNULIB_SCANF=1
+  gl_MODULE_INDICATOR([scanf])
+  GNULIB_FGETC=1
+  GNULIB_GETC=1
+  GNULIB_GETCHAR=1
+  GNULIB_FGETS=1
+  GNULIB_FREAD=1
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+  dnl or GNULIB_NONBLOCKING redundant.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_STDIO_READ_FUNCS=1
+      AC_LIBOBJ([stdio-read])
+    fi
+  ])
+
   dnl No need to create extra modules for these functions. Everyone who uses
   dnl <stdio.h> likely needs them.
   GNULIB_FPRINTF=1
@@ -21,9 +45,11 @@ AC_DEFUN([gl_STDIO_H],
   GNULIB_FPUTS=1
   GNULIB_PUTS=1
   GNULIB_FWRITE=1
-  dnl This ifdef is just an optimization, to avoid performing a configure
-  dnl check whose result is not used. It does not make the test of
-  dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant.
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
+  dnl GNULIB_SIGPIPE redundant.
   m4_ifdef([gl_SIGNAL_SIGPIPE], [
     gl_SIGNAL_SIGPIPE
     if test $gl_cv_header_signal_h_SIGPIPE != yes; then
@@ -31,13 +57,25 @@ AC_DEFUN([gl_STDIO_H],
       AC_LIBOBJ([stdio-write])
     fi
   ])
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+  dnl or GNULIB_NONBLOCKING redundant.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_STDIO_WRITE_FUNCS=1
+      AC_LIBOBJ([stdio-write])
+    fi
+  ])
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use, and which is not
-  dnl guaranteed by C89.
+  dnl guaranteed by both C89 and C11.
   gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
-    ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat
-    snprintf tmpfile vdprintf vsnprintf])
+    ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
+    renameat snprintf tmpfile vdprintf vsnprintf])
 ])
 
 AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
@@ -53,23 +91,31 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
 [
   GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
   GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
+  GNULIB_FDOPEN=0;               AC_SUBST([GNULIB_FDOPEN])
   GNULIB_FFLUSH=0;               AC_SUBST([GNULIB_FFLUSH])
+  GNULIB_FGETC=0;                AC_SUBST([GNULIB_FGETC])
+  GNULIB_FGETS=0;                AC_SUBST([GNULIB_FGETS])
   GNULIB_FOPEN=0;                AC_SUBST([GNULIB_FOPEN])
   GNULIB_FPRINTF=0;              AC_SUBST([GNULIB_FPRINTF])
   GNULIB_FPRINTF_POSIX=0;        AC_SUBST([GNULIB_FPRINTF_POSIX])
   GNULIB_FPURGE=0;               AC_SUBST([GNULIB_FPURGE])
   GNULIB_FPUTC=0;                AC_SUBST([GNULIB_FPUTC])
   GNULIB_FPUTS=0;                AC_SUBST([GNULIB_FPUTS])
+  GNULIB_FREAD=0;                AC_SUBST([GNULIB_FREAD])
   GNULIB_FREOPEN=0;              AC_SUBST([GNULIB_FREOPEN])
+  GNULIB_FSCANF=0;               AC_SUBST([GNULIB_FSCANF])
   GNULIB_FSEEK=0;                AC_SUBST([GNULIB_FSEEK])
   GNULIB_FSEEKO=0;               AC_SUBST([GNULIB_FSEEKO])
   GNULIB_FTELL=0;                AC_SUBST([GNULIB_FTELL])
   GNULIB_FTELLO=0;               AC_SUBST([GNULIB_FTELLO])
   GNULIB_FWRITE=0;               AC_SUBST([GNULIB_FWRITE])
+  GNULIB_GETC=0;                 AC_SUBST([GNULIB_GETC])
+  GNULIB_GETCHAR=0;              AC_SUBST([GNULIB_GETCHAR])
   GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM])
   GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE])
   GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
   GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+  GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE])
   GNULIB_PERROR=0;               AC_SUBST([GNULIB_PERROR])
   GNULIB_POPEN=0;                AC_SUBST([GNULIB_POPEN])
   GNULIB_PRINTF=0;               AC_SUBST([GNULIB_PRINTF])
@@ -80,11 +126,15 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
   GNULIB_REMOVE=0;               AC_SUBST([GNULIB_REMOVE])
   GNULIB_RENAME=0;               AC_SUBST([GNULIB_RENAME])
   GNULIB_RENAMEAT=0;             AC_SUBST([GNULIB_RENAMEAT])
+  GNULIB_SCANF=0;                AC_SUBST([GNULIB_SCANF])
   GNULIB_SNPRINTF=0;             AC_SUBST([GNULIB_SNPRINTF])
   GNULIB_SPRINTF_POSIX=0;        AC_SUBST([GNULIB_SPRINTF_POSIX])
+  GNULIB_STDIO_H_NONBLOCKING=0;  AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
   GNULIB_STDIO_H_SIGPIPE=0;      AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
   GNULIB_TMPFILE=0;              AC_SUBST([GNULIB_TMPFILE])
   GNULIB_VASPRINTF=0;            AC_SUBST([GNULIB_VASPRINTF])
+  GNULIB_VFSCANF=0;              AC_SUBST([GNULIB_VFSCANF])
+  GNULIB_VSCANF=0;               AC_SUBST([GNULIB_VSCANF])
   GNULIB_VDPRINTF=0;             AC_SUBST([GNULIB_VDPRINTF])
   GNULIB_VFPRINTF=0;             AC_SUBST([GNULIB_VFPRINTF])
   GNULIB_VFPRINTF_POSIX=0;       AC_SUBST([GNULIB_VFPRINTF_POSIX])
@@ -104,11 +154,14 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
   HAVE_DPRINTF=1;                AC_SUBST([HAVE_DPRINTF])
   HAVE_FSEEKO=1;                 AC_SUBST([HAVE_FSEEKO])
   HAVE_FTELLO=1;                 AC_SUBST([HAVE_FTELLO])
+  HAVE_PCLOSE=1;                 AC_SUBST([HAVE_PCLOSE])
+  HAVE_POPEN=1;                  AC_SUBST([HAVE_POPEN])
   HAVE_RENAMEAT=1;               AC_SUBST([HAVE_RENAMEAT])
   HAVE_VASPRINTF=1;              AC_SUBST([HAVE_VASPRINTF])
   HAVE_VDPRINTF=1;               AC_SUBST([HAVE_VDPRINTF])
   REPLACE_DPRINTF=0;             AC_SUBST([REPLACE_DPRINTF])
   REPLACE_FCLOSE=0;              AC_SUBST([REPLACE_FCLOSE])
+  REPLACE_FDOPEN=0;              AC_SUBST([REPLACE_FDOPEN])
   REPLACE_FFLUSH=0;              AC_SUBST([REPLACE_FFLUSH])
   REPLACE_FOPEN=0;               AC_SUBST([REPLACE_FOPEN])
   REPLACE_FPRINTF=0;             AC_SUBST([REPLACE_FPRINTF])
@@ -129,6 +182,7 @@ AC_DEFUN([gl_STDIO_H_DEFAULTS],
   REPLACE_RENAMEAT=0;            AC_SUBST([REPLACE_RENAMEAT])
   REPLACE_SNPRINTF=0;            AC_SUBST([REPLACE_SNPRINTF])
   REPLACE_SPRINTF=0;             AC_SUBST([REPLACE_SPRINTF])
+  REPLACE_STDIO_READ_FUNCS=0;    AC_SUBST([REPLACE_STDIO_READ_FUNCS])
   REPLACE_STDIO_WRITE_FUNCS=0;   AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
   REPLACE_TMPFILE=0;             AC_SUBST([REPLACE_TMPFILE])
   REPLACE_VASPRINTF=0;           AC_SUBST([REPLACE_VASPRINTF])
index 25fdada0de7b23477ffa8b158d52c4ef9be72712..2027ab3c1d0de1cd57a708524301568c55196702 100644 (file)
@@ -1,5 +1,5 @@
-# stdlib_h.m4 serial 37
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# stdlib_h.m4 serial 42
+dnl Copyright (C) 2007-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.
@@ -19,10 +19,11 @@ AC_DEFUN([gl_STDLIB_H],
 #if HAVE_RANDOM_H
 # include <random.h>
 #endif
-    ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp
-    mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r
-    setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt
-    unsetenv])
+    ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
+    initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
+    posix_openpt ptsname ptsname_r random random_r realpath rpmatch
+    secure_getenv setenv setstate setstate_r srandom srandom_r
+    strtod strtoll strtoull unlockpt unsetenv])
 ])
 
 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
@@ -50,12 +51,16 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   GNULIB_MKOSTEMPS=0;     AC_SUBST([GNULIB_MKOSTEMPS])
   GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
   GNULIB_MKSTEMPS=0;      AC_SUBST([GNULIB_MKSTEMPS])
+  GNULIB_POSIX_OPENPT=0;  AC_SUBST([GNULIB_POSIX_OPENPT])
   GNULIB_PTSNAME=0;       AC_SUBST([GNULIB_PTSNAME])
+  GNULIB_PTSNAME_R=0;     AC_SUBST([GNULIB_PTSNAME_R])
   GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+  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])
   GNULIB_REALPATH=0;      AC_SUBST([GNULIB_REALPATH])
   GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
+  GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
   GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
   GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
   GNULIB_STRTOLL=0;       AC_SUBST([GNULIB_STRTOLL])
@@ -76,11 +81,15 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   HAVE_MKOSTEMPS=1;          AC_SUBST([HAVE_MKOSTEMPS])
   HAVE_MKSTEMP=1;            AC_SUBST([HAVE_MKSTEMP])
   HAVE_MKSTEMPS=1;           AC_SUBST([HAVE_MKSTEMPS])
+  HAVE_POSIX_OPENPT=1;       AC_SUBST([HAVE_POSIX_OPENPT])
   HAVE_PTSNAME=1;            AC_SUBST([HAVE_PTSNAME])
+  HAVE_PTSNAME_R=1;          AC_SUBST([HAVE_PTSNAME_R])
+  HAVE_RANDOM=1;             AC_SUBST([HAVE_RANDOM])
   HAVE_RANDOM_H=1;           AC_SUBST([HAVE_RANDOM_H])
   HAVE_RANDOM_R=1;           AC_SUBST([HAVE_RANDOM_R])
   HAVE_REALPATH=1;           AC_SUBST([HAVE_REALPATH])
   HAVE_RPMATCH=1;            AC_SUBST([HAVE_RPMATCH])
+  HAVE_SECURE_GETENV=1;      AC_SUBST([HAVE_SECURE_GETENV])
   HAVE_SETENV=1;             AC_SUBST([HAVE_SETENV])
   HAVE_DECL_SETENV=1;        AC_SUBST([HAVE_DECL_SETENV])
   HAVE_STRTOD=1;             AC_SUBST([HAVE_STRTOD])
@@ -95,7 +104,10 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   REPLACE_MALLOC=0;          AC_SUBST([REPLACE_MALLOC])
   REPLACE_MBTOWC=0;          AC_SUBST([REPLACE_MBTOWC])
   REPLACE_MKSTEMP=0;         AC_SUBST([REPLACE_MKSTEMP])
+  REPLACE_PTSNAME=0;         AC_SUBST([REPLACE_PTSNAME])
+  REPLACE_PTSNAME_R=0;       AC_SUBST([REPLACE_PTSNAME_R])
   REPLACE_PUTENV=0;          AC_SUBST([REPLACE_PUTENV])
+  REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
   REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
   REPLACE_SETENV=0;          AC_SUBST([REPLACE_SETENV])
index c321d496bb134d3c924edcaff2c5b4f49882c2b7..41fcb0e5dbaef49ae22107fa7b0f652e3a7289af 100644 (file)
@@ -1,5 +1,5 @@
-# stpcpy.m4 serial 7
-dnl Copyright (C) 2002, 2007, 2009-2011 Free Software Foundation, Inc.
+# stpcpy.m4 serial 8
+dnl Copyright (C) 2002, 2007, 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.
@@ -13,10 +13,9 @@ AC_DEFUN([gl_FUNC_STPCPY],
   AC_REQUIRE([AC_C_RESTRICT])
 
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_REPLACE_FUNCS([stpcpy])
+  AC_CHECK_FUNCS([stpcpy])
   if test $ac_cv_func_stpcpy = no; then
     HAVE_STPCPY=0
-    gl_PREREQ_STPCPY
   fi
 ])
 
index 1c553ff21090509d8ef52eef4c42987301f053ad..22bf57c95ba43ced985a22daad3cd34e36ba5430 100644 (file)
@@ -1,5 +1,5 @@
-# strcase.m4 serial 10
-dnl Copyright (C) 2002, 2005-2011 Free Software Foundation, Inc.
+# strcase.m4 serial 11
+dnl Copyright (C) 2002, 2005-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.
@@ -13,19 +13,20 @@ AC_DEFUN([gl_STRCASE],
 AC_DEFUN([gl_FUNC_STRCASECMP],
 [
   AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
-  AC_REPLACE_FUNCS([strcasecmp])
+  AC_CHECK_FUNCS([strcasecmp])
   if test $ac_cv_func_strcasecmp = no; then
     HAVE_STRCASECMP=0
-    gl_PREREQ_STRCASECMP
   fi
 ])
 
 AC_DEFUN([gl_FUNC_STRNCASECMP],
 [
   AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
-  AC_REPLACE_FUNCS([strncasecmp])
-  if test $ac_cv_func_strncasecmp = no; then
-    gl_PREREQ_STRNCASECMP
+  AC_CHECK_FUNCS([strncasecmp])
+  if test $ac_cv_func_strncasecmp = yes; then
+    HAVE_STRNCASECMP=1
+  else
+    HAVE_STRNCASECMP=0
   fi
   AC_CHECK_DECLS([strncasecmp])
   if test $ac_cv_have_decl_strncasecmp = no; then
index a64e805bd41d0361d9a220a3932009f25717ae53..b59eda9d72f06a4cd5e840ad8b7a4fb9f3b284cb 100644 (file)
@@ -1,5 +1,5 @@
-# strchrnul.m4 serial 7
-dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
+# strchrnul.m4 serial 9
+dnl Copyright (C) 2003, 2007, 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.
@@ -10,10 +10,39 @@ AC_DEFUN([gl_FUNC_STRCHRNUL],
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_REPLACE_FUNCS([strchrnul])
+  AC_CHECK_FUNCS([strchrnul])
   if test $ac_cv_func_strchrnul = no; then
     HAVE_STRCHRNUL=0
-    gl_PREREQ_STRCHRNUL
+  else
+    AC_CACHE_CHECK([whether strchrnul works],
+      [gl_cv_func_strchrnul_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h> /* for strchrnul */
+]], [[const char *buf = "a";
+      return strchrnul (buf, 'b') != buf + 1;
+    ]])],
+        [gl_cv_func_strchrnul_works=yes],
+        [gl_cv_func_strchrnul_works=no],
+        [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10
+         AC_EGREP_CPP([Lucky user],
+           [
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+           ],
+           [gl_cv_func_strchrnul_works="guessing yes"],
+           [gl_cv_func_strchrnul_works="guessing no"])
+        ])
+      ])
+    case "$gl_cv_func_strchrnul_works" in
+      *yes) ;;
+      *) REPLACE_STRCHRNUL=1 ;;
+    esac
   fi
 ])
 
index 3fb36dd9ae2cfcb5053c74be80d1906ab3498c02..efe2d5719f97258b1fdca9bae8b00c1fe3d9e435 100644 (file)
@@ -1,6 +1,6 @@
-# strdup.m4 serial 12
+# strdup.m4 serial 13
 
-dnl Copyright (C) 2002-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-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,
@@ -10,10 +10,6 @@ AC_DEFUN([gl_FUNC_STRDUP],
 [
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_CHECK_FUNCS_ONCE([strdup])
-  if test $ac_cv_func_strdup != yes; then
-    AC_LIBOBJ([strdup])
-    gl_PREREQ_STRDUP
-  fi
   AC_CHECK_DECLS_ONCE([strdup])
   if test $ac_cv_have_decl_strdup = no; then
     HAVE_DECL_STRDUP=0
@@ -28,12 +24,7 @@ AC_DEFUN([gl_FUNC_STRDUP_POSIX],
   if test $ac_cv_func_strdup = yes; then
     if test $gl_cv_func_malloc_posix != yes; then
       REPLACE_STRDUP=1
-      AC_LIBOBJ([strdup])
-      gl_PREREQ_STRDUP
     fi
-  else
-    AC_LIBOBJ([strdup])
-    gl_PREREQ_STRDUP
   fi
   AC_CHECK_DECLS_ONCE([strdup])
   if test $ac_cv_have_decl_strdup = no; then
index 73d1d54d81e09b73e77071b0288b8dc65cd33fec..3989844b2235472d0d97d40894247bb113e7db90 100644 (file)
@@ -1,68 +1,96 @@
-# strerror.m4 serial 9
-dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc.
+# strerror.m4 serial 17
+dnl Copyright (C) 2002, 2007-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.
 
 AC_DEFUN([gl_FUNC_STRERROR],
-[
-  AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])
-  if test $REPLACE_STRERROR = 1; then
-    AC_LIBOBJ([strerror])
-    AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],
-      [Define this to 1 if strerror is broken.])
-  fi
-])
-
-# Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],
 [
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_REQUIRE([gl_HEADER_ERRNO_H])
-  if test -z "$ERRNO_H"; then
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+    AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+  ])
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
     AC_CACHE_CHECK([for working strerror function],
      [gl_cv_func_working_strerror],
      [AC_RUN_IFELSE(
         [AC_LANG_PROGRAM(
            [[#include <string.h>
            ]],
-           [[return !*strerror (-2);]])],
+           [[if (!*strerror (-2)) return 1;]])],
         [gl_cv_func_working_strerror=yes],
         [gl_cv_func_working_strerror=no],
-        [dnl Assume crossbuild works if it compiles.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[#include <string.h>
-              ]],
-              [[return !*strerror (-2);]])],
-           [gl_cv_func_working_strerror=yes],
-           [gl_cv_func_working_strerror=no])
-      ])
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
+        ])
+    ])
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+        dnl The system's strerror() fails to return a string for out-of-range
+        dnl integers. Replace it.
+        REPLACE_STRERROR=1
+        ;;
+    esac
+    m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+      dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+      dnl buffer, we must replace strerror.
+      case "$gl_cv_func_strerror_r_works" in
+        *no) REPLACE_STRERROR=1 ;;
+      esac
     ])
-    if test $gl_cv_func_working_strerror = no; then
-      dnl The system's strerror() fails to return a string for out-of-range
-      dnl integers. Replace it.
-      REPLACE_STRERROR=1
-    fi
   else
     dnl The system's strerror() cannot know about the new errno values we add
-    dnl to <errno.h>. Replace it.
+    dnl to <errno.h>, or any fix for strerror(0). Replace it.
     REPLACE_STRERROR=1
   fi
-  if test $REPLACE_STRERROR = 1; then
-    gl_PREREQ_STRERROR
-  fi
 ])
 
-# Prerequisites of lib/strerror.c.
-AC_DEFUN([gl_PREREQ_STRERROR], [
-  AC_CHECK_DECLS([strerror])
-  AC_CHECK_HEADERS_ONCE([sys/socket.h])
-  if test $ac_cv_header_sys_socket_h != yes; 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([winsock2.h])
-  fi
+dnl Detect if strerror(0) passes (that is, does not set errno, and does not
+dnl return a string that matches strerror(-1)).
+AC_DEFUN([gl_FUNC_STRERROR_0],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  REPLACE_STRERROR_0=0
+  AC_CACHE_CHECK([whether strerror(0) succeeds],
+   [gl_cv_func_strerror_0_works],
+   [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[#include <string.h>
+           #include <errno.h>
+         ]],
+         [[int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;]])],
+      [gl_cv_func_strerror_0_works=yes],
+      [gl_cv_func_strerror_0_works=no],
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
+      ])
+  ])
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
+      AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+        does not return a message implying success.])
+      ;;
+  esac
 ])
index 30ddfbc3a456f20aba91ab4769208beb1da4f2e3..cc5fbbb32ffde9b6d881e39c05df170ff9620852 100644 (file)
@@ -1,11 +1,11 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2011 Free Software Foundation, Inc.
+# Copyright (C) 2007-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.
 
-# serial 19
+# serial 21
 
 # Written by Paul Eggert.
 
@@ -27,9 +27,9 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
   dnl guaranteed by C89.
   gl_WARN_ON_USE_PREPARE([[#include <string.h>
     ]],
-    [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
-     strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r
-     strsignal strverscmp])
+    [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+     strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+     strerror_r strsignal strverscmp])
 ])
 
 AC_DEFUN([gl_STRING_MODULE_INDICATOR],
@@ -43,6 +43,8 @@ AC_DEFUN([gl_STRING_MODULE_INDICATOR],
 
 AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
 [
+  GNULIB_FFSL=0;        AC_SUBST([GNULIB_FFSL])
+  GNULIB_FFSLL=0;       AC_SUBST([GNULIB_FFSLL])
   GNULIB_MEMCHR=0;      AC_SUBST([GNULIB_MEMCHR])
   GNULIB_MEMMEM=0;      AC_SUBST([GNULIB_MEMMEM])
   GNULIB_MEMPCPY=0;     AC_SUBST([GNULIB_MEMPCPY])
@@ -80,6 +82,8 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
   GNULIB_STRVERSCMP=0;  AC_SUBST([GNULIB_STRVERSCMP])
   HAVE_MBSLEN=0;        AC_SUBST([HAVE_MBSLEN])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_FFSL=1;                  AC_SUBST([HAVE_FFSL])
+  HAVE_FFSLL=1;                 AC_SUBST([HAVE_FFSLL])
   HAVE_MEMCHR=1;                AC_SUBST([HAVE_MEMCHR])
   HAVE_DECL_MEMMEM=1;           AC_SUBST([HAVE_DECL_MEMMEM])
   HAVE_MEMPCPY=1;               AC_SUBST([HAVE_MEMPCPY])
@@ -104,6 +108,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
   REPLACE_STRDUP=0;             AC_SUBST([REPLACE_STRDUP])
   REPLACE_STRSTR=0;             AC_SUBST([REPLACE_STRSTR])
   REPLACE_STRCASESTR=0;         AC_SUBST([REPLACE_STRCASESTR])
+  REPLACE_STRCHRNUL=0;          AC_SUBST([REPLACE_STRCHRNUL])
   REPLACE_STRERROR=0;           AC_SUBST([REPLACE_STRERROR])
   REPLACE_STRERROR_R=0;         AC_SUBST([REPLACE_STRERROR_R])
   REPLACE_STRNCAT=0;            AC_SUBST([REPLACE_STRNCAT])
index 71d284b633fa1578df6d5f34b90e1bf0256952e9..76ef2424e7d6954c6b3de9affee0e49f807442b2 100644 (file)
@@ -1,7 +1,7 @@
-# Configure a replacement for <string.h>.
-# serial 3
+# Configure a replacement for <strings.h>.
+# serial 6
 
-# Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-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.
@@ -16,12 +16,23 @@ AC_DEFUN([gl_HEADER_STRINGS_H],
 AC_DEFUN([gl_HEADER_STRINGS_H_BODY],
 [
   AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+
   gl_CHECK_NEXT_HEADERS([strings.h])
+  if test $ac_cv_header_strings_h = yes; then
+    HAVE_STRINGS_H=1
+  else
+    HAVE_STRINGS_H=0
+  fi
+  AC_SUBST([HAVE_STRINGS_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 <strings.h>
-    ]], [strcasecmp strncasecmp])
+  gl_WARN_ON_USE_PREPARE([[
+    /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+       <strings.h>.  */
+    #include <sys/types.h>
+    #include <strings.h>
+    ]], [ffs strcasecmp strncasecmp])
 ])
 
 AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
@@ -33,7 +44,9 @@ AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
 
 AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS],
 [
+  GNULIB_FFS=0;            AC_SUBST([GNULIB_FFS])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_FFS=1;              AC_SUBST([HAVE_FFS])
   HAVE_STRCASECMP=1;       AC_SUBST([HAVE_STRCASECMP])
   HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP])
 ])
index d8f00caba76406d199d8c1ec8a68d60a0d16258d..a1f82743f31811db96c7c8090210f9a8f4799880 100644 (file)
@@ -1,5 +1,5 @@
-# strndup.m4 serial 18
-dnl Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc.
+# strndup.m4 serial 21
+dnl Copyright (C) 2002-2003, 2005-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.
@@ -18,13 +18,18 @@ AC_DEFUN([gl_FUNC_STRNDUP],
   fi
 
   if test $ac_cv_func_strndup = yes; then
+    HAVE_STRNDUP=1
     # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
     AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works],
       [AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[#include <string.h>
                            #include <stdlib.h>]], [[
-#ifndef HAVE_DECL_STRNDUP
-  extern char *strndup (const char *, size_t);
+#if !HAVE_DECL_STRNDUP
+  extern
+  #ifdef __cplusplus
+  "C"
+  #endif
+  char *strndup (const char *, size_t);
 #endif
   char *s;
   s = strndup ("some longer string", 15);
@@ -42,12 +47,9 @@ changequote(,)dnl
 changequote([,])dnl
          ])])
     case $gl_cv_func_strndup_works in
-      *no)
-        REPLACE_STRNDUP=1
-        AC_LIBOBJ([strndup])
-        ;;
+      *no) REPLACE_STRNDUP=1 ;;
     esac
   else
-    AC_LIBOBJ([strndup])
+    HAVE_STRNDUP=0
   fi
 ])
index a1c59ac644e5e3e1b8c6297ecf8c34250ed1aadc..eae82b77222ac428a063fd37f7ce9e477af0988d 100644 (file)
@@ -1,5 +1,5 @@
-# strnlen.m4 serial 12
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
+# strnlen.m4 serial 13
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 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,
@@ -16,16 +16,14 @@ AC_DEFUN([gl_FUNC_STRNLEN],
   if test $ac_cv_have_decl_strnlen = no; then
     HAVE_DECL_STRNLEN=0
   else
-    AC_FUNC_STRNLEN
+    m4_pushdef([AC_LIBOBJ], [:])
     dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]).
+    AC_FUNC_STRNLEN
+    m4_popdef([AC_LIBOBJ])
     if test $ac_cv_func_strnlen_working = no; then
       REPLACE_STRNLEN=1
     fi
   fi
-  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
-    AC_LIBOBJ([strnlen])
-    gl_PREREQ_STRNLEN
-  fi
 ])
 
 # Prerequisites of lib/strnlen.c.
index 10f0284bec5db7eb1db1c9befe3c21311b8bc8c4..b07a06ce0bf962b8367cd477f5a6683f2962691c 100644 (file)
@@ -1,10 +1,10 @@
-# strtol.m4 serial 5
-dnl Copyright (C) 2002-2003, 2006, 2009-2011 Free Software Foundation, Inc.
+# strtol.m4 serial 6
+dnl Copyright (C) 2002-2003, 2006, 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.
 
 AC_DEFUN([gl_FUNC_STRTOL],
 [
-  AC_REPLACE_FUNCS([strtol])
+  AC_CHECK_FUNCS([strtol])
 ])
index 06979d16cd59252fcd6997090622a06127ba2fca..00934ef2bf1b65ed4888682d91ecc5a37e04c575 100644 (file)
@@ -1,10 +1,10 @@
-# strtoul.m4 serial 4
-dnl Copyright (C) 2002, 2006, 2009-2011 Free Software Foundation, Inc.
+# strtoul.m4 serial 5
+dnl Copyright (C) 2002, 2006, 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.
 
 AC_DEFUN([gl_FUNC_STRTOUL],
 [
-  AC_REPLACE_FUNCS([strtoul])
+  AC_CHECK_FUNCS([strtoul])
 ])
index abf607fd7b1000cd09a0aaaf0b43a9c046f8c932..ad386da6a1ee40cf12bf00b00fe3fac6e3816628 100644 (file)
@@ -1,5 +1,5 @@
-# strtoull.m4 serial 6
-dnl Copyright (C) 2002, 2004, 2006, 2008-2011 Free Software Foundation, Inc.
+# strtoull.m4 serial 7
+dnl Copyright (C) 2002, 2004, 2006, 2008-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.
@@ -11,10 +11,9 @@ AC_DEFUN([gl_FUNC_STRTOULL],
   dnl unless the type 'unsigned long long int' exists.
   AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
   if test "$ac_cv_type_unsigned_long_long_int" = yes; then
-    AC_REPLACE_FUNCS([strtoull])
+    AC_CHECK_FUNCS([strtoull])
     if test $ac_cv_func_strtoull = no; then
       HAVE_STRTOULL=0
-      gl_PREREQ_STRTOULL
     fi
   fi
 ])
index 448c4d9b777eacd5ac2b19ad3335b037c88a471f..6a6aeb5dae18c7e2ca431621c679ac82324fbb36 100644 (file)
@@ -1,25 +1,18 @@
-# strtoumax.m4 serial 8
-dnl Copyright (C) 2002-2004, 2006, 2009-2011 Free Software Foundation, Inc.
+# strtoumax.m4 serial 11
+dnl Copyright (C) 2002-2004, 2006, 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.
 
 AC_DEFUN([gl_FUNC_STRTOUMAX],
 [
-  AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
-    gl_cv_func_strtoumax_macro,
-    [AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
-#ifdef strtoumax
- inttypes_h_defines_strtoumax
-#endif],
-       gl_cv_func_strtoumax_macro=yes,
-       gl_cv_func_strtoumax_macro=no)])
+  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
 
-  if test "$gl_cv_func_strtoumax_macro" != yes; then
-    AC_REPLACE_FUNCS([strtoumax])
-    if test $ac_cv_func_strtoumax = no; then
-      gl_PREREQ_STRTOUMAX
-    fi
+  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
+    HAVE_DECL_STRTOUMAX=0
   fi
 ])
 
index 917d5f0ec2cabba6b6fc0419b93ac0ebe3cd06b2..82ede2a4f7b67a429dd28f4d90631dc5702ee9bb 100644 (file)
@@ -1,7 +1,7 @@
-# serial 4
+# serial 6
 # See if we need to provide symlink replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -11,13 +11,13 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_SYMLINK],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([symlink])
   dnl The best we can do on mingw is provide a dummy that always fails, so
   dnl that compilation can proceed with fewer ifdefs.  On FreeBSD 7.2, AIX 7.1,
   dnl and Solaris 9, we want to fix a bug with trailing slash handling.
   if test $ac_cv_func_symlink = no; then
     HAVE_SYMLINK=0
-    AC_LIBOBJ([symlink])
   else
     AC_CACHE_CHECK([whether symlink handles trailing slash correctly],
       [gl_cv_func_symlink_works],
@@ -35,11 +35,19 @@ AC_DEFUN([gl_FUNC_SYMLINK],
              return result;
            ]])],
          [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no],
-         [gl_cv_func_symlink_works="guessing no"])
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_symlink_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_symlink_works="guessing no" ;;
+          esac
+         ])
       rm -f conftest.f conftest.link conftest.lnk2])
-    if test "$gl_cv_func_symlink_works" != yes; then
-      REPLACE_SYMLINK=1
-      AC_LIBOBJ([symlink])
-    fi
+    case "$gl_cv_func_symlink_works" in
+      *yes) ;;
+      *)
+        REPLACE_SYMLINK=1
+        ;;
+    esac
   fi
 ])
index 48395686d9922d828a53812ad04c300623638ced..779295ff55084a1dc25bf21bc52ff31117b34168 100644 (file)
@@ -1,7 +1,7 @@
-# serial 4
+# serial 5
 # See if we need to provide symlinkat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -16,6 +16,5 @@ AC_DEFUN([gl_FUNC_SYMLINKAT],
   AC_CHECK_FUNCS_ONCE([symlinkat])
   if test $ac_cv_func_symlinkat = no; then
     HAVE_SYMLINKAT=0
-    AC_LIBOBJ([symlinkat])
   fi
 ])
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
new file mode 100644 (file)
index 0000000..9486377
--- /dev/null
@@ -0,0 +1,176 @@
+# sys_socket_h.m4 serial 23
+dnl Copyright (C) 2005-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 From Simon Josefsson.
+
+AC_DEFUN([gl_HEADER_SYS_SOCKET],
+[
+  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
+  dnl old-style declarations (with return type 'int' instead of 'ssize_t')
+  dnl unless _POSIX_PII_SOCKET is defined.
+  case "$host_os" in
+    osf*)
+      AC_DEFINE([_POSIX_PII_SOCKET], [1],
+        [Define to 1 in order to get the POSIX compatible declarations
+         of socket functions.])
+      ;;
+  esac
+
+  AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
+    [gl_cv_header_sys_socket_h_selfcontained],
+    [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
+        [gl_cv_header_sys_socket_h_selfcontained=yes],
+        [gl_cv_header_sys_socket_h_selfcontained=no])
+    ])
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+    dnl If the shutdown function exists, <sys/socket.h> should define
+    dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
+    AC_CHECK_FUNCS([shutdown])
+    if test $ac_cv_func_shutdown = yes; then
+      AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
+        [gl_cv_header_sys_socket_h_shut],
+        [
+          AC_COMPILE_IFELSE(
+            [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
+               [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
+            [gl_cv_header_sys_socket_h_shut=yes],
+            [gl_cv_header_sys_socket_h_shut=no])
+        ])
+      if test $gl_cv_header_sys_socket_h_shut = no; then
+        SYS_SOCKET_H='sys/socket.h'
+      fi
+    fi
+  fi
+  # We need to check for ws2tcpip.h now.
+  gl_PREREQ_SYS_H_SOCKET
+  AC_CHECK_TYPES([struct sockaddr_storage, 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 $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_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
+      [],
+      [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
+      [#include <sys/types.h>
+       #ifdef HAVE_SYS_SOCKET_H
+       #include <sys/socket.h>
+       #endif
+       #ifdef HAVE_WS2TCPIP_H
+       #include <ws2tcpip.h>
+       #endif
+      ])
+  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
+  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>
+#include <sys/socket.h>
+    ]], [socket connect accept bind getpeername getsockname getsockopt
+    listen recv send recvfrom sendto setsockopt shutdown accept4])
+])
+
+AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
+[
+  dnl Check prerequisites of the <sys/socket.h> replacement.
+  AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
+  gl_CHECK_NEXT_HEADERS([sys/socket.h])
+  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
+  AC_SUBST([HAVE_SYS_SOCKET_H])
+  AC_SUBST([HAVE_WS2TCPIP_H])
+])
+
+# Common prerequisites of the <sys/socket.h> replacement and of the
+# <sys/select.h> replacement.
+# Sets and substitutes HAVE_WINSOCK2_H.
+AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
+[
+  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_CHECK_HEADERS_ONCE([sys/socket.h])
+  if test $ac_cv_header_sys_socket_h != yes; 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([winsock2.h])
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+  AC_SUBST([HAVE_WINSOCK2_H])
+])
+
+AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SYS_SOCKET_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_SOCKET_H_DEFAULTS],
+[
+  GNULIB_SOCKET=0;      AC_SUBST([GNULIB_SOCKET])
+  GNULIB_CONNECT=0;     AC_SUBST([GNULIB_CONNECT])
+  GNULIB_ACCEPT=0;      AC_SUBST([GNULIB_ACCEPT])
+  GNULIB_BIND=0;        AC_SUBST([GNULIB_BIND])
+  GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
+  GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
+  GNULIB_GETSOCKOPT=0;  AC_SUBST([GNULIB_GETSOCKOPT])
+  GNULIB_LISTEN=0;      AC_SUBST([GNULIB_LISTEN])
+  GNULIB_RECV=0;        AC_SUBST([GNULIB_RECV])
+  GNULIB_SEND=0;        AC_SUBST([GNULIB_SEND])
+  GNULIB_RECVFROM=0;    AC_SUBST([GNULIB_RECVFROM])
+  GNULIB_SENDTO=0;      AC_SUBST([GNULIB_SENDTO])
+  GNULIB_SETSOCKOPT=0;  AC_SUBST([GNULIB_SETSOCKOPT])
+  GNULIB_SHUTDOWN=0;    AC_SUBST([GNULIB_SHUTDOWN])
+  GNULIB_ACCEPT4=0;     AC_SUBST([GNULIB_ACCEPT4])
+  HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+                        AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
+  HAVE_SA_FAMILY_T=1;   AC_SUBST([HAVE_SA_FAMILY_T])
+  HAVE_ACCEPT4=1;       AC_SUBST([HAVE_ACCEPT4])
+])
index fc419129e985a77db4cdbd64ed0db1dec3a4bccd..6dd3d99b178efa9986912288754859eee59b8ca9 100644 (file)
@@ -1,5 +1,5 @@
-# sys_stat_h.m4 serial 24   -*- Autoconf -*-
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# sys_stat_h.m4 serial 28   -*- Autoconf -*-
+dnl Copyright (C) 2006-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.
@@ -11,14 +11,27 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
 [
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
 
-  dnl For the mkdir substitute.
-  AC_REQUIRE([AC_C_INLINE])
-
   dnl Check for broken stat macros.
   AC_REQUIRE([AC_HEADER_STAT])
 
   gl_CHECK_NEXT_HEADERS([sys/stat.h])
 
+  dnl Ensure the type mode_t gets defined.
+  AC_REQUIRE([AC_TYPE_MODE_T])
+
+  dnl Whether to override 'struct stat'.
+  m4_ifdef([gl_LARGEFILE], [
+    AC_REQUIRE([gl_LARGEFILE])
+  ], [
+    WINDOWS_64_BIT_ST_SIZE=0
+  ])
+  AC_SUBST([WINDOWS_64_BIT_ST_SIZE])
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+    AC_DEFINE([_GL_WINDOWS_64_BIT_ST_SIZE], [1],
+      [Define to 1 if Gnulib overrides 'struct stat' on Windows so that
+       struct stat.st_size becomes 64-bit.])
+  fi
+
   dnl Define types that are supposed to be defined in <sys/types.h> or
   dnl <sys/stat.h>.
   AC_CHECK_TYPE([nlink_t], [],
@@ -30,7 +43,7 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h>
-    ]], [fchmodat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
+    ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
     mknod mknodat stat utimensat])
 ]) # gl_HEADER_SYS_STAT_H
 
@@ -47,6 +60,7 @@ AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
   GNULIB_FCHMODAT=0;    AC_SUBST([GNULIB_FCHMODAT])
+  GNULIB_FSTAT=0;       AC_SUBST([GNULIB_FSTAT])
   GNULIB_FSTATAT=0;     AC_SUBST([GNULIB_FSTATAT])
   GNULIB_FUTIMENS=0;    AC_SUBST([GNULIB_FUTIMENS])
   GNULIB_LCHMOD=0;      AC_SUBST([GNULIB_LCHMOD])
index 3a3adc8c478a4c89c6d07c83acccdaa8e6f2384f..0ac71ac5e9bc72aedc56a9013d2c6e7eb140b317 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <sys/time.h>.
-# serial 6
+# serial 8
 
-# Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-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.
@@ -27,6 +27,9 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
     HAVE_SYS_TIME_H=0
   fi
 
+  dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h>
+  dnl only. So include that header in the list.
+  gl_PREREQ_SYS_H_WINSOCK2
   AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval],
     [AC_COMPILE_IFELSE(
        [AC_LANG_PROGRAM(
@@ -34,12 +37,46 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
              #include <sys/time.h>
             #endif
             #include <time.h>
+            #if HAVE_WINSOCK2_H
+            # include <winsock2.h>
+            #endif
           ]],
           [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
        [gl_cv_sys_struct_timeval=yes],
-       [gl_cv_sys_struct_timeval=no])])
+       [gl_cv_sys_struct_timeval=no])
+    ])
   if test $gl_cv_sys_struct_timeval != yes; then
     HAVE_STRUCT_TIMEVAL=0
+  else
+    dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined
+    dnl (in <sys/time.h> and <winsock2.h> for mingw64, in <winsock2.h> only
+    dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is
+    dnl smaller than the 'time_t' type mandated by POSIX.
+    dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but
+    dnl that is good enough.
+    AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member],
+      [gl_cv_sys_struct_timeval_tv_sec],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#if HAVE_SYS_TIME_H
+               #include <sys/time.h>
+              #endif
+              #include <time.h>
+              #if HAVE_WINSOCK2_H
+              # include <winsock2.h>
+              #endif
+            ]],
+            [[static struct timeval x;
+              typedef int verify_tv_sec_type[
+                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
+              ];
+            ]])],
+         [gl_cv_sys_struct_timeval_tv_sec=yes],
+         [gl_cv_sys_struct_timeval_tv_sec=no])
+      ])
+    if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
+      REPLACE_STRUCT_TIMEVAL=1
+    fi
   fi
 
   dnl Check for declarations of anything we want to poison if the
@@ -69,4 +106,5 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS],
   HAVE_STRUCT_TIMEVAL=1;     AC_SUBST([HAVE_STRUCT_TIMEVAL])
   HAVE_SYS_TIME_H=1;         AC_SUBST([HAVE_SYS_TIME_H])
   REPLACE_GETTIMEOFDAY=0;    AC_SUBST([REPLACE_GETTIMEOFDAY])
+  REPLACE_STRUCT_TIMEVAL=0;  AC_SUBST([REPLACE_STRUCT_TIMEVAL])
 ])
diff --git a/m4/sys_types_h.m4 b/m4/sys_types_h.m4
new file mode 100644 (file)
index 0000000..d15c1b3
--- /dev/null
@@ -0,0 +1,24 @@
+# sys_types_h.m4 serial 5
+dnl Copyright (C) 2011-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.
+
+AC_DEFUN_ONCE([gl_SYS_TYPES_H],
+[
+  AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
+  gl_NEXT_HEADERS([sys/types.h])
+
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Ensure the type mode_t gets defined.
+  AC_REQUIRE([AC_TYPE_MODE_T])
+
+  dnl Whether to override the 'off_t' type.
+  AC_REQUIRE([gl_TYPE_OFF_T])
+])
+
+AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS],
+[
+])
index 4d145722780cc1883dc3955ef9344a8cb0a75c3c..bd8abaa0d448672f698d5afcf5b45d1bd70ec1c8 100644 (file)
@@ -1,5 +1,5 @@
-# sysexits.m4 serial 5
-dnl Copyright (C) 2003, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
+# sysexits.m4 serial 6
+dnl Copyright (C) 2003, 2005, 2007, 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.
@@ -40,4 +40,5 @@ AC_DEFUN([gl_SYSEXITS],
   fi
   AC_SUBST([HAVE_SYSEXITS_H])
   AC_SUBST([SYSEXITS_H])
+  AM_CONDITIONAL([GL_GENERATE_SYSEXITS_H], [test -n "$SYSEXITS_H"])
 ])
index 6bd74ab716a53b55fc104a36276e8e07c15ff371..a6e42dcea81566f5bf91b25f39db74f9feea3917 100644 (file)
@@ -1,6 +1,6 @@
-#serial 3
+#serial 5
 
-# Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-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.
@@ -9,9 +9,6 @@
 # it as a public API, and provide it on systems that are lacking.
 AC_DEFUN([gl_FUNC_GEN_TEMPNAME],
 [
-  AC_REQUIRE([AC_SYS_LARGEFILE])
-
-  AC_LIBOBJ([tempname])
   gl_PREREQ_TEMPNAME
 ])
 
index 615da1cfd3945d3cb71341bc95ea1b1d857e0e46..3b839005346e711202b6f9107f44d8a7d82fe745 100644 (file)
@@ -1,8 +1,8 @@
 # Configure a more-standard replacement for <time.h>.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 
-# serial 4
+# serial 7
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,7 @@ AC_DEFUN([gl_HEADER_TIME_H_BODY],
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
 ])
 
-dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
+dnl Check whether 'struct timespec' is declared
 dnl in time.h, sys/time.h, or pthread.h.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
index 9bb28005fc0021f834ce64a17d5ded2de013608d..c388a8312fbec201db82381a5fcb4604dc7aee40 100644 (file)
@@ -1,6 +1,6 @@
 dnl Reentrant time functions: localtime_r, gmtime_r.
 
-dnl Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-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.
@@ -17,7 +17,7 @@ AC_DEFUN([gl_TIME_R],
 
   dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is
   dnl not defined.
-  AC_CHECK_DECLS_ONCE([localtime_r])
+  AC_CHECK_DECLS([localtime_r], [], [], [[#include <time.h>]])
   if test $ac_cv_have_decl_localtime_r = no; then
     HAVE_DECL_LOCALTIME_R=0
   fi
@@ -50,10 +50,6 @@ AC_DEFUN([gl_TIME_R],
   else
     HAVE_LOCALTIME_R=0
   fi
-  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
-    AC_LIBOBJ([time_r])
-    gl_PREREQ_TIME_R
-  fi
 ])
 
 # Prerequisites of lib/time_r.c.
index 4a1c7adb4d7d3a3a4ccc6150f000a982e1657fea..399404b59b44728a100fc83e825de3d17602344b 100644 (file)
@@ -1,6 +1,6 @@
-#serial 14
+#serial 15
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8,8 +8,4 @@
 
 dnl From Jim Meyering
 
-AC_DEFUN([gl_TIMESPEC],
-[
-  dnl Prerequisites of lib/timespec.h.
-  AC_REQUIRE([AC_C_INLINE])
-])
+AC_DEFUN([gl_TIMESPEC], [:])
index d65ddc013befc170f038a9428dc3124e04b6df18..55e7ea325aad0fcc22ea9e841363e45f09d4a122 100644 (file)
@@ -1,5 +1,5 @@
 # tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 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.
index 00ff1bd4fe31b99dcd819006680dad4e64d4f2e1..e65c3c928c65fd884eeb1a742187c6c2526bfec4 100644 (file)
@@ -1,5 +1,5 @@
-#serial 8
-dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
+#serial 9
+dnl Copyright (C) 2002, 2005-2006, 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.
@@ -7,7 +7,4 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_UNISTD_SAFER],
 [
   AC_CHECK_FUNCS_ONCE([pipe])
-  AC_LIBOBJ([dup-safer])
-  AC_LIBOBJ([fd-safer])
-  AC_LIBOBJ([pipe-safer])
 ])
index c81a1138e92efa713239ae9429cd307d3d097d13..32dcfa5820420706f8c575aca51b4c9c7151f5c9 100644 (file)
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 53
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# unistd_h.m4 serial 66
+dnl Copyright (C) 2006-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.
@@ -11,7 +11,6 @@ AC_DEFUN([gl_UNISTD_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_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([AC_C_INLINE])
 
   gl_CHECK_NEXT_HEADERS([unistd.h])
   if test $ac_cv_header_unistd_h = yes; then
@@ -21,9 +20,18 @@ AC_DEFUN([gl_UNISTD_H],
   fi
   AC_SUBST([HAVE_UNISTD_H])
 
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Determine WINDOWS_64_BIT_OFF_T.
+  AC_REQUIRE([gl_TYPE_OFF_T])
+
   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 <unistd.h>
+  gl_WARN_ON_USE_PREPARE([[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 /* Some systems declare various items in the wrong headers.  */
 #if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <fcntl.h>
@@ -33,12 +41,13 @@ AC_DEFUN([gl_UNISTD_H],
 #  include <io.h>
 # endif
 #endif
-    ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat
-    fsync ftruncate getcwd getdomainname getdtablesize getgroups
-    gethostname getlogin getlogin_r getpagesize getusershell setusershell
-    endusershell lchown link linkat lseek pipe pipe2 pread pwrite readlink
-    readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat
-    usleep])
+    ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
+    fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
+    gethostname getlogin getlogin_r getpagesize
+    getusershell setusershell endusershell
+    group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
+    readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
+    unlink unlinkat usleep])
 ])
 
 AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
@@ -52,47 +61,54 @@ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
 
 AC_DEFUN([gl_UNISTD_H_DEFAULTS],
 [
-  GNULIB_CHOWN=0;            AC_SUBST([GNULIB_CHOWN])
-  GNULIB_CLOSE=0;            AC_SUBST([GNULIB_CLOSE])
-  GNULIB_DUP2=0;             AC_SUBST([GNULIB_DUP2])
-  GNULIB_DUP3=0;             AC_SUBST([GNULIB_DUP3])
-  GNULIB_ENVIRON=0;          AC_SUBST([GNULIB_ENVIRON])
-  GNULIB_EUIDACCESS=0;       AC_SUBST([GNULIB_EUIDACCESS])
-  GNULIB_FACCESSAT=0;        AC_SUBST([GNULIB_FACCESSAT])
-  GNULIB_FCHDIR=0;           AC_SUBST([GNULIB_FCHDIR])
-  GNULIB_FCHOWNAT=0;         AC_SUBST([GNULIB_FCHOWNAT])
-  GNULIB_FSYNC=0;            AC_SUBST([GNULIB_FSYNC])
-  GNULIB_FTRUNCATE=0;        AC_SUBST([GNULIB_FTRUNCATE])
-  GNULIB_GETCWD=0;           AC_SUBST([GNULIB_GETCWD])
-  GNULIB_GETDOMAINNAME=0;    AC_SUBST([GNULIB_GETDOMAINNAME])
-  GNULIB_GETDTABLESIZE=0;    AC_SUBST([GNULIB_GETDTABLESIZE])
-  GNULIB_GETGROUPS=0;        AC_SUBST([GNULIB_GETGROUPS])
-  GNULIB_GETHOSTNAME=0;      AC_SUBST([GNULIB_GETHOSTNAME])
-  GNULIB_GETLOGIN=0;         AC_SUBST([GNULIB_GETLOGIN])
-  GNULIB_GETLOGIN_R=0;       AC_SUBST([GNULIB_GETLOGIN_R])
-  GNULIB_GETPAGESIZE=0;      AC_SUBST([GNULIB_GETPAGESIZE])
-  GNULIB_GETUSERSHELL=0;     AC_SUBST([GNULIB_GETUSERSHELL])
-  GNULIB_LCHOWN=0;           AC_SUBST([GNULIB_LCHOWN])
-  GNULIB_LINK=0;             AC_SUBST([GNULIB_LINK])
-  GNULIB_LINKAT=0;           AC_SUBST([GNULIB_LINKAT])
-  GNULIB_LSEEK=0;            AC_SUBST([GNULIB_LSEEK])
-  GNULIB_PIPE=0;             AC_SUBST([GNULIB_PIPE])
-  GNULIB_PIPE2=0;            AC_SUBST([GNULIB_PIPE2])
-  GNULIB_PREAD=0;            AC_SUBST([GNULIB_PREAD])
-  GNULIB_PWRITE=0;           AC_SUBST([GNULIB_PWRITE])
-  GNULIB_READLINK=0;         AC_SUBST([GNULIB_READLINK])
-  GNULIB_READLINKAT=0;       AC_SUBST([GNULIB_READLINKAT])
-  GNULIB_RMDIR=0;            AC_SUBST([GNULIB_RMDIR])
-  GNULIB_SLEEP=0;            AC_SUBST([GNULIB_SLEEP])
-  GNULIB_SYMLINK=0;          AC_SUBST([GNULIB_SYMLINK])
-  GNULIB_SYMLINKAT=0;        AC_SUBST([GNULIB_SYMLINKAT])
-  GNULIB_TTYNAME_R=0;        AC_SUBST([GNULIB_TTYNAME_R])
-  GNULIB_UNISTD_H_GETOPT=0;  AC_SUBST([GNULIB_UNISTD_H_GETOPT])
-  GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
-  GNULIB_UNLINK=0;           AC_SUBST([GNULIB_UNLINK])
-  GNULIB_UNLINKAT=0;         AC_SUBST([GNULIB_UNLINKAT])
-  GNULIB_USLEEP=0;           AC_SUBST([GNULIB_USLEEP])
-  GNULIB_WRITE=0;            AC_SUBST([GNULIB_WRITE])
+  GNULIB_CHDIR=0;                AC_SUBST([GNULIB_CHDIR])
+  GNULIB_CHOWN=0;                AC_SUBST([GNULIB_CHOWN])
+  GNULIB_CLOSE=0;                AC_SUBST([GNULIB_CLOSE])
+  GNULIB_DUP=0;                  AC_SUBST([GNULIB_DUP])
+  GNULIB_DUP2=0;                 AC_SUBST([GNULIB_DUP2])
+  GNULIB_DUP3=0;                 AC_SUBST([GNULIB_DUP3])
+  GNULIB_ENVIRON=0;              AC_SUBST([GNULIB_ENVIRON])
+  GNULIB_EUIDACCESS=0;           AC_SUBST([GNULIB_EUIDACCESS])
+  GNULIB_FACCESSAT=0;            AC_SUBST([GNULIB_FACCESSAT])
+  GNULIB_FCHDIR=0;               AC_SUBST([GNULIB_FCHDIR])
+  GNULIB_FCHOWNAT=0;             AC_SUBST([GNULIB_FCHOWNAT])
+  GNULIB_FDATASYNC=0;            AC_SUBST([GNULIB_FDATASYNC])
+  GNULIB_FSYNC=0;                AC_SUBST([GNULIB_FSYNC])
+  GNULIB_FTRUNCATE=0;            AC_SUBST([GNULIB_FTRUNCATE])
+  GNULIB_GETCWD=0;               AC_SUBST([GNULIB_GETCWD])
+  GNULIB_GETDOMAINNAME=0;        AC_SUBST([GNULIB_GETDOMAINNAME])
+  GNULIB_GETDTABLESIZE=0;        AC_SUBST([GNULIB_GETDTABLESIZE])
+  GNULIB_GETGROUPS=0;            AC_SUBST([GNULIB_GETGROUPS])
+  GNULIB_GETHOSTNAME=0;          AC_SUBST([GNULIB_GETHOSTNAME])
+  GNULIB_GETLOGIN=0;             AC_SUBST([GNULIB_GETLOGIN])
+  GNULIB_GETLOGIN_R=0;           AC_SUBST([GNULIB_GETLOGIN_R])
+  GNULIB_GETPAGESIZE=0;          AC_SUBST([GNULIB_GETPAGESIZE])
+  GNULIB_GETUSERSHELL=0;         AC_SUBST([GNULIB_GETUSERSHELL])
+  GNULIB_GROUP_MEMBER=0;         AC_SUBST([GNULIB_GROUP_MEMBER])
+  GNULIB_ISATTY=0;               AC_SUBST([GNULIB_ISATTY])
+  GNULIB_LCHOWN=0;               AC_SUBST([GNULIB_LCHOWN])
+  GNULIB_LINK=0;                 AC_SUBST([GNULIB_LINK])
+  GNULIB_LINKAT=0;               AC_SUBST([GNULIB_LINKAT])
+  GNULIB_LSEEK=0;                AC_SUBST([GNULIB_LSEEK])
+  GNULIB_PIPE=0;                 AC_SUBST([GNULIB_PIPE])
+  GNULIB_PIPE2=0;                AC_SUBST([GNULIB_PIPE2])
+  GNULIB_PREAD=0;                AC_SUBST([GNULIB_PREAD])
+  GNULIB_PWRITE=0;               AC_SUBST([GNULIB_PWRITE])
+  GNULIB_READ=0;                 AC_SUBST([GNULIB_READ])
+  GNULIB_READLINK=0;             AC_SUBST([GNULIB_READLINK])
+  GNULIB_READLINKAT=0;           AC_SUBST([GNULIB_READLINKAT])
+  GNULIB_RMDIR=0;                AC_SUBST([GNULIB_RMDIR])
+  GNULIB_SETHOSTNAME=0;          AC_SUBST([GNULIB_SETHOSTNAME])
+  GNULIB_SLEEP=0;                AC_SUBST([GNULIB_SLEEP])
+  GNULIB_SYMLINK=0;              AC_SUBST([GNULIB_SYMLINK])
+  GNULIB_SYMLINKAT=0;            AC_SUBST([GNULIB_SYMLINKAT])
+  GNULIB_TTYNAME_R=0;            AC_SUBST([GNULIB_TTYNAME_R])
+  GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+  GNULIB_UNISTD_H_SIGPIPE=0;     AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
+  GNULIB_UNLINK=0;               AC_SUBST([GNULIB_UNLINK])
+  GNULIB_UNLINKAT=0;             AC_SUBST([GNULIB_UNLINKAT])
+  GNULIB_USLEEP=0;               AC_SUBST([GNULIB_USLEEP])
+  GNULIB_WRITE=0;                AC_SUBST([GNULIB_WRITE])
   dnl Assume proper GNU behavior unless another module says otherwise.
   HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
   HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
@@ -101,6 +117,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_FACCESSAT=1;       AC_SUBST([HAVE_FACCESSAT])
   HAVE_FCHDIR=1;          AC_SUBST([HAVE_FCHDIR])
   HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
+  HAVE_FDATASYNC=1;       AC_SUBST([HAVE_FDATASYNC])
   HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
   HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
@@ -108,6 +125,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
   HAVE_GETLOGIN=1;        AC_SUBST([HAVE_GETLOGIN])
   HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
+  HAVE_GROUP_MEMBER=1;    AC_SUBST([HAVE_GROUP_MEMBER])
   HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
   HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
   HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
@@ -117,6 +135,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
   HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
   HAVE_READLINKAT=1;      AC_SUBST([HAVE_READLINKAT])
+  HAVE_SETHOSTNAME=1;     AC_SUBST([HAVE_SETHOSTNAME])
   HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
   HAVE_SYMLINK=1;         AC_SUBST([HAVE_SYMLINK])
   HAVE_SYMLINKAT=1;       AC_SUBST([HAVE_SYMLINKAT])
@@ -124,10 +143,12 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
   HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
   HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
+  HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
   HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
   HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
   HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
+  HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
   HAVE_DECL_TTYNAME_R=1;  AC_SUBST([HAVE_DECL_TTYNAME_R])
   HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
   HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
@@ -136,17 +157,20 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   REPLACE_DUP=0;          AC_SUBST([REPLACE_DUP])
   REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
   REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
+  REPLACE_FTRUNCATE=0;    AC_SUBST([REPLACE_FTRUNCATE])
   REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
   REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
   REPLACE_GETLOGIN_R=0;   AC_SUBST([REPLACE_GETLOGIN_R])
   REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
   REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
+  REPLACE_ISATTY=0;       AC_SUBST([REPLACE_ISATTY])
   REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
   REPLACE_LINK=0;         AC_SUBST([REPLACE_LINK])
   REPLACE_LINKAT=0;       AC_SUBST([REPLACE_LINKAT])
   REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
   REPLACE_PREAD=0;        AC_SUBST([REPLACE_PREAD])
   REPLACE_PWRITE=0;       AC_SUBST([REPLACE_PWRITE])
+  REPLACE_READ=0;         AC_SUBST([REPLACE_READ])
   REPLACE_READLINK=0;     AC_SUBST([REPLACE_READLINK])
   REPLACE_RMDIR=0;        AC_SUBST([REPLACE_RMDIR])
   REPLACE_SLEEP=0;        AC_SUBST([REPLACE_SLEEP])
index a49a692878d0a844de254bcd43fa1803bdfdbfda..b6b99d1743b4e69be869faf1bdb6a878be5c925a 100644 (file)
@@ -1,5 +1,5 @@
-# unlink.m4 serial 7
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# unlink.m4 serial 11
+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.
@@ -8,6 +8,8 @@ AC_DEFUN([gl_FUNC_UNLINK],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+
   dnl Detect FreeBSD 7.2, AIX 7.1, Solaris 9 bug.
   AC_CACHE_CHECK([whether unlink honors trailing slashes],
     [gl_cv_func_unlink_honors_slashes],
@@ -18,7 +20,11 @@ AC_DEFUN([gl_FUNC_UNLINK],
      fi
      AC_RUN_IFELSE(
        [AC_LANG_PROGRAM(
-         [[#include <unistd.h>
+         [[#if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           #endif
            #include <errno.h>
          ]],
          [[int result = 0;
@@ -36,16 +42,28 @@ AC_DEFUN([gl_FUNC_UNLINK],
          ]])],
       [gl_cv_func_unlink_honors_slashes=yes],
       [gl_cv_func_unlink_honors_slashes=no],
-      [gl_cv_func_unlink_honors_slashes="guessing no"])
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unlink_honors_slashes="guessing no" ;;
+       esac
+      ])
      rm -f conftest.file conftest.lnk])
-  dnl Detect MacOS X 10.5.6 bug: On read-write HFS mounts, unlink("..") or
+  case "$gl_cv_func_unlink_honors_slashes" in
+    *no)
+      REPLACE_UNLINK=1
+      ;;
+  esac
+
+  dnl Detect Mac OS X 10.5.6 bug: On read-write HFS mounts, unlink("..") or
   dnl unlink("../..") succeeds without doing anything.
   AC_CACHE_CHECK([whether unlink of a parent directory fails as it should],
     [gl_cv_func_unlink_parent_fails],
     [case "$host_os" in
        darwin*)
          dnl Try to unlink a subdirectory of /tmp, because /tmp is usually on a
-         dnl HFS mount on MacOS X. Use a subdirectory, owned by the current
+         dnl HFS mount on Mac OS X. Use a subdirectory, owned by the current
          dnl user, because otherwise unlink() may fail due to permissions
          dnl reasons, and because when running as root we don't want to risk
          dnl destroying the entire /tmp.
@@ -70,7 +88,12 @@ AC_DEFUN([gl_FUNC_UNLINK],
            AC_RUN_IFELSE(
              [AC_LANG_SOURCE([[
                 #include <stdlib.h>
-                #include <unistd.h>
+                #if HAVE_UNISTD_H
+                # include <unistd.h>
+                #else /* on Windows with MSVC */
+                # include <direct.h>
+                # include <io.h>
+                #endif
                 int main ()
                 {
                   int result = 0;
@@ -83,7 +106,9 @@ AC_DEFUN([gl_FUNC_UNLINK],
               ]])],
              [gl_cv_func_unlink_parent_fails=yes],
              [gl_cv_func_unlink_parent_fails=no],
-             [gl_cv_func_unlink_parent_fails="guessing no"])
+             [# If we don't know, assume the worst.
+              gl_cv_func_unlink_parent_fails="guessing no"
+             ])
            unset GL_SUBDIR_FOR_UNLINK
            rm -rf "$tmp"
          else
@@ -97,17 +122,9 @@ AC_DEFUN([gl_FUNC_UNLINK],
     ])
   case "$gl_cv_func_unlink_parent_fails" in
     *no)
+      REPLACE_UNLINK=1
       AC_DEFINE([UNLINK_PARENT_BUG], [1],
         [Define to 1 if unlink() on a parent directory may succeed])
       ;;
   esac
-  if test "$gl_cv_func_unlink_honors_slashes" != yes \
-     || { case "$gl_cv_func_unlink_parent_fails" in
-            *yes) false;;
-            *no) true;;
-          esac
-        }; then
-    REPLACE_UNLINK=1
-    AC_LIBOBJ([unlink])
-  fi
 ])
diff --git a/m4/unlinkat.m4 b/m4/unlinkat.m4
new file mode 100644 (file)
index 0000000..32cfbc1
--- /dev/null
@@ -0,0 +1,33 @@
+# unlinkat.m4 serial 2
+dnl Copyright (C) 2004-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.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_UNLINKAT],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([unlinkat])
+  AC_REQUIRE([gl_FUNC_UNLINK])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  if test $ac_cv_func_unlinkat = no; then
+    HAVE_UNLINKAT=0
+  else
+    case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+      *no)
+        # Solaris 9 has *at functions, but uniformly mishandles trailing
+        # slash in all of them.
+        REPLACE_UNLINKAT=1
+        ;;
+      *)
+        # GNU/Hurd has unlinkat, but it has the same bug as unlink.
+        if test $REPLACE_UNLINK = 1; then
+          REPLACE_UNLINKAT=1
+        fi
+        ;;
+    esac
+  fi
+])
index dabe5f40b18584da78a0a1db9d431e7cd331a196..b555fc96d15e302f12392645ca265aa210d33a69 100644 (file)
@@ -1,6 +1,6 @@
-# serial 6
+# serial 7
 
-# Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -13,8 +13,6 @@ AC_DEFUN([gl_UNLINKDIR],
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_CHECK_HEADERS_ONCE([priv.h])
 
-  AC_LIBOBJ([unlinkdir])
-
   # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
   # Cygwin, and mingw never let anyone (even root) unlink directories.
   # If anyone knows of another system for which unlink can never
index be4323c0646fc6495e95719fc75c2bddff07e22d..f146206862c628ed7880c4bf3488f5671d68b61f 100644 (file)
@@ -1,6 +1,6 @@
 # unlocked-io.m4 serial 15
 
-# Copyright (C) 1998-2006, 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 1998-2006, 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 58ead2fd9c630964a52b6bdbedfa2489a5d33a6f..3c9df414a3c95880c79bf2bab63b2049f346cb3c 100644 (file)
@@ -1,6 +1,6 @@
 # serial 9
 
-# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2011 Free Software Foundation,
+# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2013 Free Software Foundation,
 # Inc.
 #
 # This file is free software; the Free Software Foundation
@@ -9,7 +9,7 @@
 
 dnl From Jim Meyering
 
-dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared --
+dnl Define HAVE_STRUCT_UTIMBUF if 'struct utimbuf' is declared --
 dnl usually in <utime.h>.
 dnl Some systems have utime.h but don't declare the struct anywhere.
 
index f2c755e87901f9550ea37122c1b8c2610aece675..10fe2a68ec3a8c0234e977c45df185eeb170cf4e 100644 (file)
@@ -1,18 +1,17 @@
-dnl Copyright (C) 2003-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-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 serial 5
+dnl serial 7
 
 AC_DEFUN([gl_UTIMENS],
 [
-  AC_LIBOBJ([utimens])
-
   dnl Prerequisites of lib/utimens.c.
   AC_REQUIRE([gl_FUNC_UTIMES])
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([futimes futimesat futimens utimensat lutimes])
 
   if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
@@ -32,11 +31,20 @@ AC_DEFUN([gl_UTIMENS],
         ]])],
         [gl_cv_func_futimesat_works=yes],
         [gl_cv_func_futimesat_works=no],
-        [gl_cv_func_futimesat_works="guessing no"])
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_futimesat_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_futimesat_works="guessing no" ;;
+         esac
+        ])
       rm -f conftest.file])
-    if test "$gl_cv_func_futimesat_works" != yes; then
-      AC_DEFINE([FUTIMESAT_NULL_BUG], [1],
-        [Define to 1 if futimesat mishandles a NULL file name.])
-    fi
+    case "$gl_cv_func_futimesat_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([FUTIMESAT_NULL_BUG], [1],
+          [Define to 1 if futimesat mishandles a NULL file name.])
+        ;;
+    esac
   fi
 ])
index 78472a5fbd7edcbfd569161e9c0b7f8753748d21..396b8357d875195063bbad790de6d9cb90f6cd97 100644 (file)
@@ -1,7 +1,7 @@
-# serial 4
+# serial 5
 # See if we need to provide utimensat replacement.
 
-dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
+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.
@@ -15,7 +15,6 @@ AC_DEFUN([gl_FUNC_UTIMENSAT],
   AC_CHECK_FUNCS_ONCE([utimensat])
   if test $ac_cv_func_utimensat = no; then
     HAVE_UTIMENSAT=0
-    AC_LIBOBJ([utimensat])
   else
     AC_CACHE_CHECK([whether utimensat works],
       [gl_cv_func_utimensat_works],
@@ -67,7 +66,6 @@ choke me
          [gl_cv_func_utimensat_works="guessing no"])])
     if test "$gl_cv_func_utimensat_works" != yes; then
       REPLACE_UTIMENSAT=1
-      AC_LIBOBJ([utimensat])
     fi
   fi
 ])
index 593e43d88c8aadbff8fe46c4cca67d7abf6fe05e..f8b19285997bf0dbef6eac9ff9cf40b463fad5eb 100644 (file)
@@ -1,7 +1,7 @@
 # Detect some bugs in glibc's implementation of utimes.
 # serial 3
 
-dnl Copyright (C) 2003-2005, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2005, 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.
index 32ea985b3f44a8dc429bddb431fc0c067b4c56f7..d730e435a9cda23c80ad1bb8edc8122d5b519351 100644 (file)
@@ -1,5 +1,5 @@
-# vasnprintf.m4 serial 32
-dnl Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc.
+# vasnprintf.m4 serial 36
+dnl Copyright (C) 2002-2004, 2006-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.
@@ -29,7 +29,7 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
   gl_PREREQ_ASNPRINTF
 ])
 
-# Prequisites of lib/printf-args.h, lib/printf-args.c.
+# Prerequisites of lib/printf-args.h, lib/printf-args.c.
 AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
 [
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
@@ -37,7 +37,7 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
   AC_REQUIRE([gt_TYPE_WINT_T])
 ])
 
-# Prequisites of lib/printf-parse.h, lib/printf-parse.c.
+# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 [
   AC_REQUIRE([gl_FEATURES_H])
@@ -55,7 +55,6 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 # Prerequisites of lib/vasnprintf.c.
 AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
@@ -63,7 +62,10 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
   AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
   dnl Use the _snprintf function only if it is declared (because on NetBSD it
   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-  AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
+  AC_CHECK_DECLS([_snprintf], , , [[#include <stdio.h>]])
+  dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
+  dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
+  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
   dnl We can avoid a lot of code by assuming that snprintf's return value
   dnl conforms to ISO C99. So check that.
   AC_REQUIRE([gl_SNPRINTF_RETVAL_C99])
index 6db52b18b1fcb2ed9e2059ed67da177e6816ac86..c214ff1120541cff64212d82a2d2ecdbd34ce412 100644 (file)
@@ -1,5 +1,5 @@
 # vasprintf.m4 serial 6
-dnl Copyright (C) 2002-2003, 2006-2007, 2009-2011 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2006-2007, 2009-2013 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 5032bf85533cfa5942aa835493c6b565b66d898d..5dbef8e5bafa82634d8f4536de35b58c8c86164d 100644 (file)
@@ -1,5 +1,5 @@
 # version-etc.m4 serial 1
-# Copyright (C) 2009-2011 Free Software Foundation, Inc.
+# Copyright (C) 2009-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.
index e4725e453f4e20630e8df29f8c2eb919e8e1baf0..4900764eefb7b31fbf54f377629e3a564800f8a4 100644 (file)
@@ -1,9 +1,13 @@
-# vsnprintf.m4 serial 5
-dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
+# vsnprintf.m4 serial 6
+dnl Copyright (C) 2002-2004, 2007-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 Libintl 0.17 will replace vsnprintf only if it does not support %1$s,
+dnl but defers to any gnulib vsnprintf replacements.  Therefore, gnulib
+dnl must guarantee that the decision for replacing vsnprintf is a superset
+dnl of the reasons checked by libintl.
 AC_DEFUN([gl_FUNC_VSNPRINTF],
 [
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
@@ -16,7 +20,12 @@ AC_DEFUN([gl_FUNC_VSNPRINTF],
         gl_SNPRINTF_RETVAL_C99
         case "$gl_cv_func_snprintf_retval_c99" in
           *yes)
-            gl_cv_func_vsnprintf_usable=yes
+            gl_PRINTF_POSITIONS
+            case "$gl_cv_func_printf_positions" in
+              *yes)
+                gl_cv_func_vsnprintf_usable=yes
+                ;;
+            esac
             ;;
         esac
         ;;
index e0d0f276403dbd19132bb6a2a1b0e62b5392fe75..e43beebd9a89903003ec5857affb2f1bb0044b5a 100644 (file)
@@ -1,5 +1,5 @@
-# warn-on-use.m4 serial 2
-dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
+# warn-on-use.m4 serial 5
+dnl Copyright (C) 2010-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.
@@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is preserved.
 # some systems declare functions in the wrong header, then INCLUDES
 # should do likewise.
 #
-# If you assume C89, then it is generally safe to assume declarations
-# for functions declared in that standard (such as gets) without
+# It is generally safe to assume declarations for functions declared
+# in the intersection of C89 and C11 (such as printf) without
 # needing gl_WARN_ON_USE_PREPARE.
 AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [
@@ -27,6 +27,8 @@ AC_DEFUN([gl_WARN_ON_USE_PREPARE],
     [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])),
       [Define to 1 if ]m4_defn([gl_decl])[ is declared even after
        undefining macros.])])dnl
+dnl FIXME: gl_Symbol must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
   for gl_func in m4_flatten([$2]); do
     AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
     AC_CACHE_CHECK([whether $gl_func is declared without a macro],
@@ -35,8 +37,8 @@ AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [@%:@undef $gl_func
   (void) $gl_func;])],
         [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])])
-     AS_VAR_IF(gl_Symbol, [yes],
-       [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
+    AS_VAR_IF(gl_Symbol, [yes],
+      [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
        dnl shortcut - if the raw declaration exists, then set a cache
        dnl variable to allow skipping any later AC_CHECK_DECL efforts
        eval ac_cv_have_decl_$gl_func=yes])
diff --git a/m4/warnings.m4 b/m4/warnings.m4
new file mode 100644 (file)
index 0000000..1848732
--- /dev/null
@@ -0,0 +1,70 @@
+# warnings.m4 serial 8
+dnl Copyright (C) 2008-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 From Simon Josefsson
+
+# gl_AS_VAR_APPEND(VAR, VALUE)
+# ----------------------------
+# Provide the functionality of AS_VAR_APPEND if Autoconf does not have it.
+m4_ifdef([AS_VAR_APPEND],
+[m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])],
+[m4_define([gl_AS_VAR_APPEND],
+[AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])])
+
+
+# gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED],
+#                       [PROGRAM = AC_LANG_PROGRAM()])
+# -----------------------------------------------------------------
+# Check if the compiler supports OPTION when compiling PROGRAM.
+#
+# FIXME: gl_Warn must be used unquoted until we can assume Autoconf
+# 2.64 or newer.
+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
+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]), [" $gl_unknown_warnings_are_errors $1"])
+  AC_COMPILE_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])
+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()])
+# ---------------------------------------------
+# Adds parameter to WARN_CFLAGS if the compiler supports it when
+# compiling PROGRAM.  For example, gl_WARN_ADD([-Wparentheses]).
+#
+# If VARIABLE is a variable name, AC_SUBST it.
+AC_DEFUN([gl_WARN_ADD],
+[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS])
+gl_COMPILER_OPTION_IF([$1],
+  [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])],
+  [],
+  [$3])
+m4_ifval([$2],
+         [AS_LITERAL_IF([$2], [AC_SUBST([$2])])],
+         [AC_SUBST([WARN_CFLAGS])])dnl
+])
+
+# Local Variables:
+# mode: autoconf
+# End:
index 6255ff352dece31a7457778c0011fc3244ecbf59..bedb15a44af81f87a3e52582d2cb66d2052caa0d 100644 (file)
@@ -1,13 +1,13 @@
 dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
 
-dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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 Written by Eric Blake.
 
-# wchar_h.m4 serial 38
+# wchar_h.m4 serial 39
 
 AC_DEFUN([gl_WCHAR_H],
 [
@@ -119,13 +119,6 @@ Configuration aborted.])
   fi
 ])
 
-dnl Unconditionally enables the replacement of <wchar.h>.
-AC_DEFUN([gl_REPLACE_WCHAR_H],
-[
-  dnl This is a no-op, because <wchar.h> is always overridden.
-  :
-])
-
 AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
 [
   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
index d2c03c42d2b4254d4881ecf9a3e974ecf0e05f61..e1e1e699d60738b94fecd8f01c6285faae5a5d42 100644 (file)
@@ -1,5 +1,5 @@
 # wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-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.
index 2905d9ba4de800c278347e38eda6057e693e591a..f56b5bae92e2b83e0379d1638da3a8804eb8dd87 100644 (file)
@@ -1,5 +1,5 @@
-# wcrtomb.m4 serial 8
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# wcrtomb.m4 serial 11
+dnl Copyright (C) 2008-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.
@@ -14,6 +14,22 @@ AC_DEFUN([gl_FUNC_WCRTOMB],
   AC_CHECK_FUNCS_ONCE([wcrtomb])
   if test $ac_cv_func_wcrtomb = no; then
     HAVE_WCRTOMB=0
+    AC_CHECK_DECLS([wcrtomb],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.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 <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_wcrtomb = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_WCRTOMB=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_WCRTOMB=1
@@ -88,11 +104,6 @@ int main ()
       esac
     fi
   fi
-  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([wcrtomb])
-    gl_PREREQ_WCRTOMB
-  fi
 ])
 
 # Prerequisites of lib/wcrtomb.c.
index ef9fb049ce69013c8e4dbf5f3f303bead075d0fa..82ada0eeebab2ff3d3cb2186acb9a4ff371f59ac 100644 (file)
@@ -1,8 +1,8 @@
-# wctype_h.m4 serial 14
+# wctype_h.m4 serial 18
 
 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
 
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
@@ -22,8 +22,6 @@ AC_DEFUN([gl_WCTYPE_H],
   fi
   AC_SUBST([HAVE_ISWCNTRL])
 
-  AC_REQUIRE([AC_C_INLINE])
-
   AC_REQUIRE([gt_TYPE_WINT_T])
   if test $gt_cv_c_wint_t = yes; then
     HAVE_WINT_T=1
@@ -57,7 +55,8 @@ AC_DEFUN([gl_WCTYPE_H],
                           #if __GNU_LIBRARY__ == 1
                           Linux libc5 i18n is broken.
                           #endif]], [])],
-              [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
+              [gl_cv_func_iswcntrl_works="guessing yes"],
+              [gl_cv_func_iswcntrl_works="guessing no"])
             ])
         ])
     fi
@@ -67,15 +66,51 @@ AC_DEFUN([gl_WCTYPE_H],
   fi
   AC_SUBST([HAVE_WCTYPE_H])
 
-  if test "$gl_cv_func_iswcntrl_works" = no; then
-    REPLACE_ISWCNTRL=1
-  else
-    REPLACE_ISWCNTRL=0
-  fi
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
   AC_SUBST([REPLACE_ISWCNTRL])
 
   if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
-    dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+    dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+    :
+  fi
+
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
+  else
+    AC_CHECK_FUNCS([towlower])
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      AC_CHECK_DECLS([towlower],,,
+        [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.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 <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
+        ]])
+      if test $ac_cv_have_decl_towlower = yes; then
+        dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+        dnl towupper() although it does not have the functions. Avoid a
+        dnl collision with gnulib's replacement.
+        REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
+    fi
+  fi
+  AC_SUBST([REPLACE_TOWLOWER])
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+    dnl Redefine towlower, towupper in <wctype.h>.
     :
   fi
 
index bf39d1d238c6fa1ee4b238aba01b32fe5728333a..740f81ee17fee883dbfbbfecb3cad45d51da1afb 100644 (file)
@@ -1,5 +1,5 @@
-# wcwidth.m4 serial 18
-dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
+# wcwidth.m4 serial 23
+dnl Copyright (C) 2006-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.
@@ -18,7 +18,7 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
   AC_CHECK_HEADERS_ONCE([wchar.h])
   AC_CHECK_FUNCS_ONCE([wcwidth])
 
-  AC_CHECK_DECLS([wcwidth], [], [], [
+  AC_CHECK_DECLS([wcwidth], [], [], [[
 /* AIX 3.2.5 declares wcwidth in <string.h>. */
 #include <string.h>
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
@@ -29,13 +29,15 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
 #include <stdio.h>
 #include <time.h>
 #include <wchar.h>
-])
+]])
   if test $ac_cv_have_decl_wcwidth != yes; then
     HAVE_DECL_WCWIDTH=0
   fi
 
   if test $ac_cv_func_wcwidth = yes; then
-    dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+    HAVE_WCWIDTH=1
+    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 This leads to bugs in 'ls' (coreutils).
     AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
@@ -68,8 +70,10 @@ int main ()
     {
       if (wcwidth (0x0301) > 0)
         result |= 1;
-      if (wcwidth (0x200B) > 0)
+      if (wcwidth (0x05B0) > 0)
         result |= 2;
+      if (wcwidth (0x200B) > 0)
+        result |= 4;
     }
   return result;
 }]])],
@@ -89,13 +93,8 @@ changequote([,])dnl
       *yes) ;;
       *no) REPLACE_WCWIDTH=1 ;;
     esac
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1; then
-    AC_LIBOBJ([wcwidth])
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1 \
-     || test $HAVE_DECL_WCWIDTH = 0; then
-    gl_REPLACE_WCHAR_H
+  else
+    HAVE_WCWIDTH=0
   fi
   dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
   dnl have the wcwidth function, then it does not declare it.
index da1ce3df6010175d98eb104e949962d78a660c62..d7cd3db9362a4a1620fd6df980bbae81d35d600a 100644 (file)
@@ -1,5 +1,5 @@
 # wint_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-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.
index 8695c89623f50ca46897f90a504fb7be6f68344e..a79b2cc921791de545faa3e699f1a0c10bd6c5cf 100644 (file)
@@ -1,5 +1,5 @@
-# write.m4 serial 1
-dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
+# write.m4 serial 5
+dnl Copyright (C) 2008-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.
@@ -7,6 +7,10 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_WRITE],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_WRITE=1
+  fi
   dnl This ifdef is just an optimization, to avoid performing a configure
   dnl check whose result is not used. It does not make the test of
   dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant.
@@ -14,7 +18,15 @@ AC_DEFUN([gl_FUNC_WRITE],
     gl_SIGNAL_SIGPIPE
     if test $gl_cv_header_signal_h_SIGPIPE != yes; then
       REPLACE_WRITE=1
-      AC_LIBOBJ([write])
+    fi
+  ])
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_WRITE=1
     fi
   ])
 ])
+
+# Prerequisites of lib/write.c.
+AC_DEFUN([gl_PREREQ_WRITE], [:])
index 49008208b3ddf188ba10b737b9d86c4215e24629..64ca7014189f0459b1dbb697a40128fc4d5d420a 100644 (file)
@@ -1,24 +1,7 @@
-# xalloc.m4 serial 16
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+# xalloc.m4 serial 18
+dnl Copyright (C) 2002-2006, 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.
 
-AC_DEFUN([gl_XALLOC],
-[
-  AC_LIBOBJ([xmalloc])
-
-  gl_PREREQ_XALLOC
-  gl_PREREQ_XMALLOC
-])
-
-# Prerequisites of lib/xalloc.h.
-AC_DEFUN([gl_PREREQ_XALLOC], [
-  AC_REQUIRE([gl_INLINE])
-  :
-])
-
-# Prerequisites of lib/xmalloc.c.
-AC_DEFUN([gl_PREREQ_XMALLOC], [
-  :
-])
+AC_DEFUN([gl_XALLOC], [:])
index 4ad788bb34d59334d16f2503890ed74e2f00a9ca..c972029d8a802a124fbd8704ff7a983ab827078d 100644 (file)
@@ -1,12 +1,10 @@
-#serial 6
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+#serial 8
+dnl Copyright (C) 2002-2006, 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.
 
 AC_DEFUN([gl_XGETCWD],
 [
-  AC_LIBOBJ([xgetcwd])
-
-  AC_REQUIRE([gl_FUNC_GETCWD])
+  :
 ])
index 8c693bc6330fbf0ba9fba614db00f77cda7edc0f..8ea9f2cd30b4d42e83b409ccf307891fe8434735 100644 (file)
@@ -1,5 +1,5 @@
-# xsize.m4 serial 4
-dnl Copyright (C) 2003-2004, 2008-2011 Free Software Foundation, Inc.
+# xsize.m4 serial 5
+dnl Copyright (C) 2003-2004, 2008-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.
@@ -8,6 +8,5 @@ AC_DEFUN([gl_XSIZE],
 [
   dnl Prerequisites of lib/xsize.h.
   AC_REQUIRE([gl_SIZE_MAX])
-  AC_REQUIRE([AC_C_INLINE])
   AC_CHECK_HEADERS([stdint.h])
 ])
index 1400b0f109e3f81987c425dc55604e09778ecd87..4a9330bba4488a8e2e7b656b4fcf0160fe68b35f 100644 (file)
@@ -1,5 +1,5 @@
 # xstrndup.m4 serial 2
-dnl Copyright (C) 2003, 2009-2011 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 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.
index 99b7db42f8625630eb1816050399a837dc4fac4f..d52ee112a87fbfa55d72fc3ce028f0ca98db31a6 100644 (file)
@@ -1,12 +1,10 @@
-#serial 10
-dnl Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc.
+#serial 11
+dnl Copyright (C) 2002-2007, 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.
 
 AC_DEFUN([gl_XSTRTOL],
 [
-  AC_LIBOBJ([xstrtol])
-  AC_LIBOBJ([xstrtoul])
-  AC_LIBOBJ([xstrtol-error])
+  :
 ])
index 7abfaefa97a0ccb7c1288795870a92198f7a20ba..772dcc8647430b505eaaf5d1c9ae4f0a45da0684 100644 (file)
@@ -1,11 +1,8 @@
-# xvasprintf.m4 serial 1
-dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
+# xvasprintf.m4 serial 2
+dnl Copyright (C) 2006, 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.
 
-AC_DEFUN([gl_XVASPRINTF],
-[
-  dnl Prerequisites of lib/xvasprintf.c.
-  AC_REQUIRE([AC_C_INLINE])
-])
+dnl Prerequisites of lib/xvasprintf.c.
+AC_DEFUN([gl_XVASPRINTF], [:])
index b846e7a0554e8c25d805a9a19625ab63a0b883d2..c892523e1901d5ee9ac5f9d071fb3b2d51f70752 100644 (file)
@@ -4,6 +4,7 @@ cs
 da
 de
 el
+eo
 es
 et
 eu
index 94b29b6b9a78fd3336ca14b4c09d4bda1e50ac88..878910d64153c88c87eab8d50607c11eae33cbdf 100644 (file)
@@ -1,22 +1,22 @@
 # List of files which contain translatable strings.
 
-# Copyright (C) 1996, 1999, 2000, 2003, 2004, 2005, 2007 Free Software
+# Copyright 1996, 1999-2000, 2003-2005, 2007, 2013 Free Software
 # Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Library files
 gnu/argmatch.c
index 69fb4c1923ad559f86ef438dcbae913cb2dd17ee..bbcf2e8828dfc27d70175cf7fd544283ca734fd5 100644 (file)
Binary files a/po/bg.gmo and b/po/bg.gmo differ
index 6b566f23849b2a0f4619103e07eff626357bc3b0..73875c919bab941a1841e8f4e4ace2dbc7a14f23 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -9,12 +9,12 @@
 # This file should be sent to translation@iro.umontreal.ca with the
 # following subject line: TP-Robot tar-1.16.bg.po 
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.16\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2006-11-23 22:40+0200\n"
 "Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -35,36 +35,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "двусмислен аргумент %s за %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Допустими аргументи са:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: стойността %s е по-малка или равна на %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: параметърът ARGP_HELP_FMT изисква стойност"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: параметърът ARGP_HELP_FMT трябва да бъде положителен"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: непознат параметър ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Боклук в ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -72,31 +71,31 @@ msgstr ""
 "Аргументите, задължителните или незадължителни за дългите опции, са "
 "съответно задължителни или незадължителни и за кратките опции."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Използване:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  или: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [ОПЦИЯ...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Използвайте „%s --help“ or „%s --usage“ за повече информация.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "Съобщавайте за програмни грешки на %s.\n"
 "За грешки в българския превод на <dict@fsa-bg.org>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Непозната системна грешка"
 
@@ -108,7 +107,7 @@ msgstr "показва тази справка"
 msgid "give a short usage message"
 msgstr "показва кратко съобщение за използването"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "ИМЕ"
@@ -129,17 +128,16 @@ msgstr "спира за СЕК секунди (подразбира се 3600)"
 msgid "print program version"
 msgstr "показва версията на програмата"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Не е известна версията!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Твърде много аргументи\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!?"
 
@@ -147,62 +145,62 @@ msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябва
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: опцията „%s“ е двусмислена\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: опцията „--%s“ не допуска аргумент\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: опцията „%c%s“ не допуска аргумент\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: опцията „%s“ изисква аргумент\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: непозната опция „--%s“\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: непозната опция „%c%s“\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: неправилна опция -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: опцията изисква аргумент -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: опцията „-W %s“ е двусмислена\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: опцията „-W %s“ не допуска аргумент\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: опцията „%s“ изисква аргумент\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "паметта е изчерпана"
 
@@ -218,28 +216,30 @@ msgstr "Не може да се запази работният каталог"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "„"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "“"
 
@@ -249,7 +249,7 @@ msgstr "“"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[дДoOyY]"
 
@@ -259,7 +259,7 @@ msgstr "^[дДoOyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[нНkKnN]"
 
@@ -524,7 +524,12 @@ msgstr "стандартен изход"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Не може да се стартира отдалечена командна обвивка"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Не може да се стартира отдалечена командна обвивка"
@@ -580,8 +585,8 @@ msgstr "Неочакван EOF"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "N"
 
@@ -589,8 +594,8 @@ msgstr "N"
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -605,7 +610,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "Не може да се отвори „%s“"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "твърде много аргументи"
@@ -614,9 +619,9 @@ msgstr "твърде много аргументи"
 msgid "Garbage command"
 msgstr "Непозната команда"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Това не прилича на tar-архив"
 
@@ -654,65 +659,65 @@ msgstr "Не може да се проверяват архиви на стан
 msgid "Archive is compressed. Use %s option"
 msgstr "Архивът е компресиран.  Използвайте опцията %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Не може да се актуализират компресирани архиви"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "В началото на лентата, край на изпълнението"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Твърде много грешки, край на изпълнението"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Размер на записа = %lu блок"
 msgstr[1] "Размер на записа = %lu блока"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Неподравнен блок (%lu байт) в архива"
 msgstr[1] "Неподравнен блок (%lu байта) в архива"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Невъзможно е връщане назад в архивния файл; той може да е нечитаем без опция "
 "-i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek не завърши при граница на запис"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: съдържа неправилен номер на том"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Препълване на номера на том"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Подгответе том №%d за %s и натиснете return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF, когато се очакваше отговор от потребителя"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ВНИМАНИЕ: Архивът е незавършен"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -724,66 +729,66 @@ msgstr ""
 " q             Прекратява tar\n"
 " y или return  Продължава изпълнението\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Поражда вторична командна обвивка\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Извежда този списък\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Няма повече томове; изход.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Не е посочено име на файл.  Опитайте отново.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Неправилна команда.  Използвайте ? за справка.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "командата %s не успя"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s вероятно продължава в този том: заглавният запис съдържа отрязано име"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s не продължава с този том"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s е грешен размер (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Този том е извън поредицата"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Архивът не е етикетиран да отговаря на %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Томът %s не съответства на %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -791,406 +796,431 @@ msgstr ""
 "%s: името на файла е твърде дълго, за да се побере в заглавен запис на "
 "многотомен ГНУ-архив и бе съкратено"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "EOF на архив %s не е на границата на блок"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Само %lu от %lu байт можаха да се прочетат"
 msgstr[1] "Само %lu от %lu байта можаха да се прочетат"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Съдържанието се различава"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Неочакван знак за край (EOF) в архива"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Файловите типове се различават"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Режимите за достъп се различават"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Собствениците се различават"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Групите се различават"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Времената на промяна се различават"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Размерите се различават"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Не е свързан с %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Символните връзки се различават"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Номерата на устройство се различават"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Проверка"
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Непознат файлов тип „%c“, сравнява се като обикновен файл"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Архивът съдържа файлови имена, с отстранени префикси."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Проверката може и да не открие оригиналните файлове."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открита е %d неправилен заглавен запис"
 msgstr[1] "НЕУСПЕШНА ПРОВЕРКА: открити са %d неправилни заглавни записа"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Изолиран блок от нули при %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, fuzzy, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: каталогът е обозначен като кеш; не се архивира"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 "стойността на %s е извън границите %s на диапазона %s..%s; замества се с %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "стойността %s е извън границите %s на диапазона %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Генерират се отрицателни осмични заглавни записи"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: файловото име е твърде дълго (максимум %d); не е архивирано"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: файловото име е твърде дълго (не може да се раздели); не е архивирано"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: името на символната връзка е твърде дълго; не е архивирано"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Файлът намаля с %s байт; допълва се с нула"
 msgstr[1] "%s: Файлът намаля с %s байта; допълва се с нули"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: файлът е в друга файлова система; не се архивира"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Непознат файлов тип; файлът се пренебрегва"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Неархивирани връзки с %s.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: файлът не е променен; не се архивира"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: файлът е архив; не се архивира"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 #, fuzzy
 msgid "directory not dumped"
 msgstr "%s: каталогът е обозначен като кеш; не се архивира"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: файлът бе изменен по време на четене"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: гнездото се пренебрегва"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: пренебрегва се специалният файл тип door"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Пропуска се до следващия заглавен запис"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Изтрива се незаглавен запис от архива"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: записано е невероятно старо време %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: записано е време %s, което е %s сек. в бъдещето"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Неочаквана несъгласуваност при създаване на каталог"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 "%s: каталогът бе преименуван преди да може да се извлече състоянието му"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Продължаващи файлове се извличат като обикновени файлове"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Опитва се извличането на символни връзки като твърди"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Не може да се извлича -- файлът продължава с друг том"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Неочаквано дълъг заглавен запис"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Непознат файлов тип „%c“, извлича се като обикновен файл"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Текущият %s е по-нов или със същата възраст"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Не можа да се направи резервно копие на този файл"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Бе невъзможно %s да се преименува на %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Каталогът бе преименуват от %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Каталогът бе преименуван"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Каталогът е нов"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: файлът е в друга файлова система; не се архивира"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталогът бе преименуван"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Записано е неправилно време"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Неправилно време на промяна (секунди)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Неправилно време на промяна (наносекунди)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Неправилен номер на устройство"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Неправилен номер на i-възел"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Твърде дълго поле при четене на snapshot-файл"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Грешка при четене в snapshot-файл"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Неочакван край на snapshot-файл"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Неочаквана стойност на поле в snapshot-файл"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Липсва завършител на записа"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Грешен инкрементален файлов формат"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Неподдържана версия на инкрементален формат: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Лошо формиран dumpdir: очаква се „%c“, а вместо това има %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Лошо формиран dumpdir: „X“ е дублиран"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Лошо формиран dumpdir: празно име в „R“"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Лошо формиран dumpdir: „T“ не се предхожда от „R“"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Лошо формиран dumpdir: празно име в „T“"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Лошо формиран dumpdir: очаква се „%c“, вместо това данните свършват"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Лошо формиран dumpdir: „X“ никога не се използва"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Не може да се създаде временен каталог, използвайки шаблона %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Каталогът не се изчиства: не може да се достъпи"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: каталогът е на друго устройство: не се изчиства"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Изтрива се %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Не може да се изтрие"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Пропуска се"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "блок %s: ** Блок от знаци NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "блок %s: ** Край на файла **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "блок %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Интервали в заглавен запис вместо числова стойност на %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1198,166 +1228,182 @@ msgstr ""
 "е допълнение до две"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Осмичната стойност %.*s в архива е извън диапазона за %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 "Архивът е подписан с низ по модул 64 %s, който е е извън диапазона за %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Стойността по модул 256 в архива е извън диапазона %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Архивът съдържа %.*s, вместо това се очаква числова стойност на %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Стойността %s в архива е извън допустимия диапазон за %s (%s..%s)"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " връзка към %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " непознат файлов тип %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Дълга връзка--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Дълго име--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Заглавен запис на тома--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Продължава при байт %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Създава се каталог:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Не може да се смени работният каталог"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Преименува се %s на %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Не може да се преименува на %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Преименува се %s обратно на %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Файлът бе изтрит преди да бъде прочетен"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "породен процес"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "междупроцесен канал"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "командата %s не успя"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: файловият списък вече е прочетен"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "не може да се смени времето на „%s“"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: файловото име съдържа нулев байт"
+
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr "Във файловите имена са използвани „*“ и „?“.  Моля,"
 
-#: src/names.c:592
+#: src/names.c:823
 #, fuzzy
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr "използвайте --wildcards, за да позволите съпоставяне с образци,"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Не е открит в архива"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Необходимо срещане не е открито в архива"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Архивът не е етикетиран да отговаря на %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "И двете опции „-%s“ и „-%s“ изискват стандартен вход"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Неправилен архивен формат"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Поискани са ГНУ-възможности при несъвместим архивен формат"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Непознат начин за извеждане на спец. знаци „%s“. Използвайте „%s --quoting-"
 "style=help“, за да получите списък."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1374,9 +1420,10 @@ msgstr ""
 "tar\n"
 "  tar -xf архив.tar            # Извлича от архив.tar всички файлове\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1396,79 +1443,79 @@ msgstr ""
 "иначе\n"
 "  never, simple   винаги да се правят прости резервни копия\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Вид основно действие:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "изрежда съдържанието на архив"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "извлича файлове от архива"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "създава нов архив"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "намира разликите между архива и файловата система"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "добавя файлове в края на архив"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "добавя само файлове, по-нови от копието в архива"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "прибавя tar-файлове към архива"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "трие файлове от архива (не при магнитни ленти!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "проверява етикета на тома и завършва"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Модификатори на действието:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "работи ефективно с разредени файлове"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "ГОЛЯМ[.МАЛЪК]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "определя версията на формата разредени файлове (влече --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "със стар формат ГНУ за инкрементално архивиране"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "с новия формат на ГНУ за инкрем. архивиране"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "при нечитаеми файлове не завършва с грешка"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1480,122 +1527,133 @@ msgstr ""
 "list и когато списъкът от файлове е зададен или на командния ред, или с "
 "опция -T.  Ако не е посочен N, се подразбира 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "архивът е с произволен достъп"
 
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "архивът е с произволен достъп"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Регулиране заместването на файлове:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "след записа опитва да провери архива"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "изтрива файловете след като ги добави в архива"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "при извличане не замества съществуващи файлове"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "при извличане не замества съществуващи файлове"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "не замества съществуващи файлове, ако са по-нови от копията им в архива"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "при извличане замества съществуващи файлове"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "изтрива всеки файл преди да извлича върху него"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "изпразва йерархията преди извличане на каталог"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "запазва метаданните на съществуващи каталози"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "при извличане замества метаданните на съществуващи каталози (подразбира се)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "при извличане замества съществуващи файлове"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Избор на изходен поток:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "извлича файловете на стандартния изход"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "КОМАНДА"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "подава с канал всеки извлечен файл към КОМАНДА"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "игнорира кода на завършване на породени процеси"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "счита за грешка всеки ненулев код на завършване на породен процес"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Подход спрямо файловите атрибути:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "прави ИМЕ да е собственик на добавените файлове"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "прави ИМЕ да бъде групата на добавените файлове"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "ДАТА-ИЛИ-ФАЙЛ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "прави времето на промяна на добавяни файлове като ДАТА-ИЛИ-ФАЙЛ"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ПРОМЕНИ"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "модифицира режима за достъп на добавени файлове"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "МЕТОД"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1605,33 +1663,33 @@ msgstr ""
 "времената след четене (при МЕТОД=„replace“, подразбира се), или не променя "
 "имената изобщо (МЕТОД=„system“)"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "не извлича времето на промяна на файловете"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "опитва да възстановява собствеността на файловете"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "извлича файловете от ваше име"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "използва числа вместо имена за потребител и група"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "възстановява точно (без umask) режима на достъп (подразбира се при "
 "привилегирован потребител)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1639,15 +1697,16 @@ msgstr ""
 "прилага umask на потребителя при извличане на файлове (подразбира се при "
 "обикновен потребител)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "файловете за извличане са сортирани според архива"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "същото като едновременно -p и -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1655,139 +1714,180 @@ msgstr ""
 "забавя настройката на времето на промяна и режима за достъп на извличаните "
 "каталози докато извличането завърши"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "отменя ефекта на --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Подход спрямо файловите атрибути:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Избор на устройство и смяна:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "АРХИВ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "използва архивния файл или устройство АРХИВ"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "архивният файл е локален дори при двуеточие"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "използва посочената КОМАНДА вместо rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "използва посочената КОМАНДА вместо rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "посочва устройство и гъстота"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "създава/извежда/извлича многотомен архив"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "смяна на лентата след запис на 1024 x N байта"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "изпълнява скрипт в края на всяка лента (влече -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "ползва от и обновява във ФАЙЛ номера на тома"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Блокуване на устройството:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "БЛОКОВЕ"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "БЛОКОВЕ x 512 байта в секунда"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "прави N-байтови записи, кратно на 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "пренебрегва блоковете от нули и продължава"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "преформира при четене блоковете (канали 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Избор на архивен формат:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "ФОРМАТ"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "създава архив с посочения формат"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "ФОРМАТ е някой от следните:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "стар формат tar, V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "формат на ГНУ при tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "формат на версия 1.13.x на tar на ГНУ"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "формат POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "формат POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "същото като pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "същото като --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "същото като --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "ключдума[[:]=стойност][,ключдума[[:]=стойност]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "управляващи ключови думи за pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "ТЕКСТ"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1795,176 +1895,178 @@ msgstr ""
 "създава архив с име на том ТЕКСТ; при извеждане или извличане сравнява името "
 "на тома с ТЕКСТ"
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Противоречащи си опции за компресиране"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "Не може да се пише към компресиращата програма"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "Не може да се пише към компресиращата програма"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "ПРОГ"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "прекарва архива през ПРОГ (трябва да приема -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Избор на локален файл:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "добавя посочения ФАЙЛ към архива (полезно е, ако името му започва с минус)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "КАТ"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "работи в каталога КАТ"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "взема имената за извличане или създаване от ФАЙЛ"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T чете имена, завършващи с нулев байт"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "декодира „\\“ във файловите имена на -T (подразб.)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "не декодира „\\“ във файловите имена на -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "ОБРАЗЕЦ"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "без файловете, отговарящи на ОБРАЗЕЦ"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "пропуска файловете, отговарящи на образци в ФАЙЛ"
 
-#: src/tar.c:658
+#: src/tar.c:704
 #, fuzzy
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:661
+#: src/tar.c:707
 #, fuzzy
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:664
+#: src/tar.c:710
 #, fuzzy
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:666
+#: src/tar.c:712
 #, fuzzy
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:669
+#: src/tar.c:715
 #, fuzzy
 msgid "exclude everything under directories containing FILE"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:671
+#: src/tar.c:717
 #, fuzzy
 msgid "exclude directories containing FILE"
 msgstr "без каталози, обозначени като кеширащи"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "без автоматично влизане в подкаталозите"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "работи в рамките на локалната файлова система"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "влиза рекурсивно в подкаталозите (подразбира се)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "не маха „/“ в началото на файлови имена"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "следва симв. връзки; архивира сочените файлове"
 
-#: src/tar.c:687
+#: src/tar.c:733
 #, fuzzy
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "следва симв. връзки; архивира сочените файлове"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "ЧЛЕН-ИМЕ"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "започва от файл с име ЧЛЕН-ИМЕ в архива"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "съхранява само файлове, по-нови от ДАТА-ИЛИ-ФАЙЛ"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "ДАТА"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "сравнява времето само ако данните са променени"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "МЕТОД"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "резервно копира съществуващи файлове с МЕТОД"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "НИЗ"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1973,98 +2075,101 @@ msgstr ""
 "освен ако не е бил сменен с променливата от обкръжението "
 "SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Промени на файловите имена:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "при извличане маха N начални каталози от файловите пътеки"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "ИЗРАЗ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "преобразува файловите имена, използвайки посочения ИЗРАЗ за замяна на sed"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Съпоставяне с файлови имена (влияе и на включващи, и на изключващи образци):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "пренебрегва разликата между големи/малки букви"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "съпоставянето с образците започва от началото на файловото име"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "съпоставянето започва след кой да е „/“ (подразбира се при изключване)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "отчита се разликата между малки и големи букви (подразбира се)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "ползва „*“ и „?“ (подразбира се за изключване)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "дословно низово сравнение"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "„/“ не пасва с „*“ и „?“"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "„/“ пасва с „*“ и „?“ (подразб. за изключване)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Извеждане на информация:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "подробно изрежда обработените файлове"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 #, fuzzy
 msgid "warning control"
 msgstr "Регулиране заместването на файлове:"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "извежда напредъка след всеки N-ти запис (подразбира се 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "съобщава, ако не всички твърди връзки са включени"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "СИГНАЛ"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2075,32 +2180,36 @@ msgstr ""
 "извежда текущите байтове при получаване на СИГНАЛ.  Допустими СИГНАЛи са "
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2; имената без SIG също са позволени"
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "извежда времената по Гринуич"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "изпраща подробния изход във ФАЙЛ"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "показва номера на блок в архива с всяко съобщение"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "изисква потвърждение за всяко действие"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "показва подразбираното от tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2108,32 +2217,32 @@ msgstr ""
 "при извеждане или извличане изрежда всеки каталог, който се пропуска по "
 "някаква причина"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "показва преобразуваните файлови имена в архива"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "НАЧИН"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "начин за цитиране на специални знаци; вж. по-долу за стойностите на НАЧИН"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "работи и със знаците от НИЗ като със специални"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "не работи със знаците от НИЗ като със специални"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Опции за съвместимост:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2141,64 +2250,56 @@ msgstr ""
 "при създаване е същото като --old-archive; при извличане е същото като --no-"
 "same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Други опции:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "забранява някои потенциално опасни опции"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Не може да се използва повече от една опция „-Acdtrux“"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Противоречащи си опции за компресиране"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Непознато име на сигнал: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Не е открит еталлонният файл за дата"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Използва се %s вместо непознатия файлов формат за дата %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Опция %s: Датата „%s“ се разглежда като %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: файловият списък вече е прочетен"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: файловото име съдържа нулев байт"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "прекарва архива през gzip"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 #, fuzzy
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Правилни аргументи за опциите --quoting-style са:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2206,175 +2307,203 @@ msgstr ""
 "\n"
 "*Този* tar подразбира следното:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Неправилен собственик"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Неправилен фактор за блокуване"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Неправилна дължина на лента"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 #, fuzzy
 msgid "Invalid incremental level value"
 msgstr "Грешен инкрементален файлов формат"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Повече от една ограничителна дата"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Неправилна версия на формат разредени файлове"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' не се поддържа на тази платформа"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "стойността на --checkpoint не е цяло число"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Неправилна група"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "На опция е подаден неправилен режим"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Неправилно число"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Неправилен собственик"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Неправилен размер на запис"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Размерът на запис трябва да е кратен на %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Неправилен брой елементи"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Позволява се само една опция --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Лошо образуван аргумент за гъстота: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Непозната гъстота: „%c“"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Опциите „-[0-7][lmh]“ не се поддържат от *този* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[ФАЙЛ]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Старата опция „%c“ изисква аргумент."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "без списък файлове опцията --occurrence е безсмислена"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "не може да се използва --occurrence при пожелания начин на работа"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Използването на много архивни файлове изисква опция „-M“"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Не може да се съчетават --listed-incremental с --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "без списък файлове опцията --occurrence е безсмислена"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Етикетът на тома е твърде дълъг (не повече от %lu байт)"
 msgstr[1] "%s: Етикетът на тома е твърде дълъг (не повече от %lu байта)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Не може да се проверяват многотомни архиви"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Не може да се проверяват компресирани архиви"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Образецът %s не може да се използва"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Не може да се използват многотомни компресирани архиви"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Не може да се съединяват компресирани архиви"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 "опцията --pax-option може да се използва само при архиви във формат POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+"опцията --pax-option може да се използва само при архиви във формат POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+"опцията --pax-option може да се използва само при архиви във формат POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+"опцията --pax-option може да се използва само при архиви във формат POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Образецът %s не може да се използва"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Страхлив отказ да се създава празен архив"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Опциите „-Aru“ са несъвместими с „-f -“"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Трябва да посочите поне една от опциите „-Acdtrux“"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2386,53 +2515,49 @@ msgstr[1] "%s: Файлът намаля с %s байта"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Ключовата дума %s е непозната или все още не е реализирана"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Записано е време извън допустимия диапазон"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Образецът %s не може да се използва"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Ключовата дума %s не може да се отмени"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Лошо формиран разширен заглавен запис: не е посочена дължина"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Дължината %*s на разширен заглавен запис е извън допустимия диапазон"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Лошо формиран разширен заглавен запис: липсва интервал след дължината"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Лошо формиран разширен заглавен запис: липсва знак за равенство"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Лошо формиран разширен заглавен запис: липсва знак за нов ред"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 "Пренебрегва се непознатата ключова дума „%s“ за разширен заглавен запис"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2441,65 +2566,65 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Разширеният заглавен запис %s=%s е извън диапазона %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Неправилно формиран разширен заглавен запис: неправилен %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Неправилно формиран разширен заглавен запис: прекомерен %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Лошо формиран разширен заглавен запис: неправилен %s; очаква се разделител %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 "Лошо формиран разширен заглавен запис: неправилен %s; нечетен брой стойности"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Неправилна група"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Контролна точка при запис %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Контролна точка при четене %u"
@@ -2650,7 +2775,7 @@ msgstr "Номер извън допустимия диапазон: %s"
 msgid "Negative size: %s"
 msgstr "Отрицателен размер: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "не успя stat(%s)"
@@ -2679,8 +2804,8 @@ msgstr "Непознат формат за дата"
 msgid "[ARGS...]"
 msgstr "[АРГУМ...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "Не може да се отвори „%s“"
@@ -2695,68 +2820,101 @@ msgstr "Не може да се изпълни %s"
 msgid "file name contains null character"
 msgstr "името на файла съдържа нулев байт"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "не може да се създават разредени файлове на стандартния изход, използвайте "
 "опцията --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "неправилна маска (до „%s“)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Непознато поле „%s“"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "не може да се смени времето на „%s“"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Не може да се отвори „%s“"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "командата %s не успя"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "Не може да се отвори „%s“"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Командата завърши успешно\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Командата завърши с код %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Командата бе прекратена със сигнал %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Командата бе спряна със сигнал %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Командата генерира core\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Командата бе прекратена\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat изисква файлови имена"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Не може да се смени работният каталог"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "файловете за извличане са сортирани според архива"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Твърде дълго поле при четене на snapshot-файл"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Грешка при четене в snapshot-файл"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Неочаквана стойност на поле в snapshot-файл"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Неправилна група"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Файлът бе изтрит преди да бъде прочетен"
index 312646a31e06766cf2492a1e643199fcb3379da0..f5b6a7a377852d90e5279c3df9241105d763fdbe 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index ef527b7b978823d84ec0989329801b523f98b16d..4fd42d73d0c96f0b41cb29bf4156e0c3c425be13 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -3,20 +3,20 @@
 # This file is distributed under the same license as the tar package.
 # Àngel Mompó <mecatxis@gmail.com>, 2010, 2011.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar-1.25\n"
+"Project-Id-Version: tar-1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2011-01-15 11:54+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-19 11:52+0100\n"
 "Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
 "Language: ca\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"
+"Plural-Forms: nplurals=2; plural=n !=1\n"
 
 #: gnu/argmatch.c:135
 #, c-format
@@ -29,36 +29,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "el paràmetre %s és ambigu per %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Els paràmetres vàlids són:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: el valor de %s és més petit o igual que %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: El paràmetre ARGP_HELP_FMT necessita un valor"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: El paràmetre ARGP_HELP_FMT ha de ser positiu"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Paràmetre ARGP_HELP_FMT desconegut"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Hi ha brossa a ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -66,29 +65,29 @@ msgstr ""
 "Els paràmetres obligatoris o opcionals per les opcions llargues també ho són "
 "per les corresponents opcions curtes."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Ús:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  o: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPCIÓ...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Proveu «%s --help» o «%s --usage» per més informació.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Informeu dels errors de programació a %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Error de sistema desconegut"
 
@@ -100,7 +99,7 @@ msgstr "dóna aquesta llista d'ajuda"
 msgid "give a short usage message"
 msgstr "dóna un missatge curt sobre utilització"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NOM"
@@ -121,17 +120,16 @@ msgstr "es penja durant SECS segons (per defecte 3600)"
 msgid "print program version"
 msgstr "mostra la versió del programa"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ERROR DE PROGRAMA) Versió desconeguda!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Massa paràmetres\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ERROR DE PROGRAMA) Hauria de conèixer l'opció!?"
 
@@ -139,62 +137,62 @@ msgstr "(ERROR DE PROGRAMA) Hauria de conèixer l'opció!?"
 msgid "write error"
 msgstr "error d'escriptura"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: l'opció «%s» és ambigua\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: l'opció «--%s» no permet cap paràmetre\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: l'opció «%c%s» no permet cap paràmetre\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: l'opció «--%s» necessita un paràmetre\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opció no reconeguda «--%s»\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opció no reconeguda «%c%s»\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opció invàlida -- «%c»\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: l'opció necessita un paràmetre -- «%c»\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: l'opció «-W %s» és ambigua\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opció «-W %s» no permet cap paràmetre\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: l'opció «-W %s» necessita un paràmetre\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memòria exhaurida"
 
@@ -210,28 +208,30 @@ msgstr "No es pot tornar al directori de treball inicial"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "«"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "»"
 
@@ -241,7 +241,7 @@ msgstr "»"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[sS]"
 
@@ -251,7 +251,7 @@ msgstr "^[sS]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -537,7 +537,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "No es pot connectar amb %s: no s'ha pogut resoldre"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "No es pot executar un interpret d'ordres remot"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "No es pot executar un interpret d'ordres remot"
@@ -586,8 +591,8 @@ msgstr "Arguments inesperats"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Manipula una unitat de cinta, acceptant comandes d'un procés remot"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NÚMERO"
 
@@ -595,8 +600,8 @@ msgstr "NÚMERO"
 msgid "set debug level"
 msgstr "estableix el nivell de depuració"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -611,7 +616,7 @@ msgstr "estableix el nom del fitxer de sortida de la depuració"
 msgid "cannot open %s"
 msgstr "no es pot obrir %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "massa arguments"
@@ -620,9 +625,9 @@ msgstr "massa arguments"
 msgid "Garbage command"
 msgstr "Ordre escombraria"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "No sembla un arxiu tar"
 
@@ -660,64 +665,64 @@ msgstr "No es pot verificar l'arxiu stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "L'arxiu està comprimit. Feu servir l'opció %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "No es poden actualitzar els arxius comprimits"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Al principi de la cinta, se surt"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Massa errors, se surt"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Mida del registre = %lu bloc"
 msgstr[1] "Mida del registre = %lu blocs"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloc desalineat(byte %lu) a l'arxiu"
 msgstr[1] "Bloc desalineat(bytes %lu) a l'arxiu"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "No es pot tornar enrere al fitxer d'arxiu; potser no es pot llegir sense -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek no s'ha aturat als límits d'un registre "
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: conté un número de volum invàlid"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Desbordament del número de volum"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Prepareu el volum #%d per %s i premeu retorn: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Final del fitxer on s'esperava una resposta de l'usuari"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AVÍS: L'arxiu és incomplet"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -729,66 +734,66 @@ msgstr ""
 " q            Interromp tar\n"
 " y            Continua l'operació\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Engendra un interpret d'ordres\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Mostra aquesta ajuda\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "No hi ha cap volum nou; se surt.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "No s'ha especificat cap nom de fitxer. Torneu-ho a provar.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Entrada invàlida. Tecleja ? per mostrar l'ajuda.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "L'ordre %s ha fallat"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s possiblement continua en aquest volum: la capçalera conté un nom truncat"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s no continua a aquest volum"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s té una mida equivocada (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Aquest volum és fora de la seqüència (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "L'arxiu no està etiquetat per coincidir amb %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "El Volum %s no coincideix amb %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -796,406 +801,430 @@ msgstr ""
 "%s: El nom del fitxer és massa llarg per ser desat en una capçalera "
 "multivolum GNU. S'ha truncat"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "l'escriptura no ha acabat al límit d'un bloc"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Només es pot llegir %lu de %lu byte"
 msgstr[1] "Només es poden llegir %lu de %lu bytes"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "El contingut no coincideix"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Final de l'arxiu inesperat"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "El tipus de fitxer no coincideix"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "El mode no coincideix"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "L'identificador d'usuari no coincideix"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "L'identificador de grup d'usuaris no coincideix"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "La data de modificació no coincideix"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "La mida no coincideix"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "No s'ha enllaçat amb %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "L'enllaç tou no coincideix"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "El número de dispositiu no coincideix"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifiqueu "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s: Tipus de fitxer desconegut `%c', s'usa diff com si es tractés d'un "
 "fitxer normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "L'arxiu conté noms de fitxers amb els prefixes inicials esborrats."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "L'arxiu conté capçaleres amb base 64 que estan esdevenint obsoletes"
+msgstr "L'arxiu conté noms de fitxers transformats."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Pot ser que la verificació no pugui trobar els fitxers originals."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "HA FALLAT LA VERIFICACIÓ: %d s'ha detectat una capçalera invàlida"
 msgstr[1] "HA FALLAT LA VERIFICACIÓ: %d s'han detectat capçaleres invàlides"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Un sol bloc zero a %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: conté una etiqueta de directori de memòria cau %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "el valor %s està fora del rang%s %s..%s; es substitueix per %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "el valor %s està fora del rang %s %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "S'estan generant les capçaleres octals negatives"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: el nom del fitxer és massa llarg (màx %d); no s'aboca"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: el nom del fitxer és massa llarg (no es pot dividir); no s'aboca"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: el nom de l'enllaç és massa llarg; no s'aboca"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: El fitxer s'encongeix %s byte; s'omple amb zero"
 msgstr[1] "%s: El fitxer s'encongeix %s bytes; s'omple amb zeros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: el fitxer es troba a un sistema de fitxers diferent; no s'aboca"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "els continguts no s'aboquen"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipus de fitxer desconegut; el fitxer s'ignora"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Falten els enllaços a %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: el fitxer no ha canviat; no s'aboca"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: el fitxer és l'arxiu; no s'aboca"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "el directori no s'aboca"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: el fitxer ha canviat mentre es llegia"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: sòcol ignorat"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: porta ignorada"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Es salta fins a la propera capçalera"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "S'esborra la no-capçalera de l'arxiu"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: marca horària inversemblantment antiga %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: la marca horària %s pertany %s s al futur"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inconsistència inesperada en crear el directori"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 "%s: S'ha canviat el nom del directori abans de poder extreure'n l'estat"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Els fitxers contigus s'extreuen com fitxers normals"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Es prova d'extreure els enllaços simbòlics com enllaços durs"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: No espot extreure -- el fitxer continua des d'un altre volum"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Nom de la capçalera inesperadament llarg"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tipus de fitxer «%c» desconegut, s'extreu com un fitxer normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "L'actual %s és igual d'antic o més nou"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: No es pot fer la còpia de seguretat d'aquest fitxer"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "No es pot canviar el nom de %s a %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: El directori ha canviat de nom a partir de %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: El directori ha canviat de nom"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: El directori és nou"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: el fitxer es troba a un sistema de fitxers diferent; no s'aboca"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directori ha canviat de nom"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Marca horària invàlida"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Modificació invalida del temps (segons)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Modificació invàlida del temps (nanosegons)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Número de dispositiu invàlid"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Número de node d'identificació invàlid"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Camp massa llarg en llegir el fitxer d'instantània"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Error de lectura del fitxer d'instantània"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Final de l'arxiu d'instantània inesperat"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Valor de camp inesperat del fitxer d'instantània"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Falta el terminador del registre"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Format del fitxer incremental erroni"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "No se suporta la versió del format incremental: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Directori d'abocament mal format: s'esperava «%c» i s'ha trobat %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Directori d'abocament mal format: «X» duplicada"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Directori d'abocament mal format: nom buit a «R»"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Directori d'abocament mal format: «T» no està  precedit de «R»"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Directori d'abocament mal format: nom buit a «T»"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Directori d'abocament mal format: s'esperava «%c» però s'ha trobat el final "
 "de les dades"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Directori d'abocament mal format: no s'ha fet servir «X»"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "No es pot crear el directori temporal fent servir la plantilla %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: No es purga el directori: no se'n pot saber l'estat"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: el directori és en un dispositiu diferent: no es purga"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: S'elimina %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: No es pot esborrar"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: S'ometen"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloc %s: ** Bloc de NULs **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloc %s: ** Final del Fitxer **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloc %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Capçalera amb blancs on hi hauria d'haver un valor numèric %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1203,109 +1232,125 @@ msgstr ""
 "complement a dos"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "El valor octal de l'arxiu %.*s està fora del rang %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "L'arxiu conté capçaleres amb base 64 que estan esdevenint obsoletes"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "La cadena de signatura %s amb base 64 de l'arxiu està fora del rang %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "El valor amb base 256 de l'arxiu està fora del rang %s "
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "L'arxiu conté %.*s on hi hauria d'haver un valor numèric de tipus %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "El valor %s de l'arxiu està fora del rang %s %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " enllaç cap a %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tipus de fitxer desconegut %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Enllaç llarg--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nom Llarg--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Capçalera del volum--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continua al byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Es crea el directori:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "No es pot trobar el directori de treball"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Es canvia el nom %s per %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: No es pot canviar el nom a %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Es torna a canviar el nom %s a %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: El fitxer s'ha esborrat abans de poder-lo llegir"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "procés descendent"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canal d'intercomunicació"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "L'ordre %s ha fallat"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: la llista de fitxers ja s'ha llegit"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "no es pot definir el temps de «%s»"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: la lectura del nom del fixter conté un caràcter nul"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 "Caràcters de patró de coincidència que es fan servir en noms de fitxers"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1313,58 +1358,59 @@ msgstr ""
 "Feu servir --wildcards per habilitar els patrons de coincidència, o --no-"
 "wildcars per eliminar aquest avís."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: No s'ha trobat a l'arxiu"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: No s'ha trobat cap coincidència a l'arxiu"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "L'etiqueta de l'arxiu no coincideix"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "No podeu fer servir la opció -C als llistats de fitxer amb --listed-"
 "incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Només podeu fer servit una opció -C amb --listed-incemental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Ambdues opcions «-%s» i «-%s» necessiten la sortida estàndard"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Format de fitxer invàlid"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 "El format de l'arxiu és incompatible perquè requereix característiques de GNU"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Estil de citació desconegut «%s». Feu servir «%s --quoting-style=help» per "
 "obtenir-ne una llista."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1381,9 +1427,10 @@ msgstr ""
 "ha a l'arxiu.tar.\n"
 "  tar -xf arxiu.tar          # Extreu tots els fitxers de l'arxiu.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1403,82 +1450,82 @@ msgstr ""
 "no simples\n"
 "  never, simple   fes sempre còpies de seguretat simples\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Mode d'operació principal:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "Llista els continguts d'un arxiu"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "extreu fitxers d'un arxiu"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "crea un arxiu nou"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "cerca diferències entre un arxiu i el sistema de fitxers"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "afegeix fitxers al final d'un arxiu"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "només afegeix els fitxers més nous que les còpies dins l'arxiu"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "afegeix fitxers tar a un arxiu"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "esborra de l'arxiu (excepte en cintes magnètiques!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "prova l'etiqueta de volum de l'arxiu i surt"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modificadors d'operació:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "tracta fitxers dispersos de manera eficient"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MENOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "estableix la versió del format de dispersió que cal fer servir (implica --"
 "sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "tracta l'antic format incremental GNU de còpies de seguretat"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "tracta el nou format de còpies de seguretat incrementals de GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "nivell de bolcat per l'arxiu llistat-incremental creat"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 "no surtis si l'estat és diferent de zero quan trobis fitxers il·legibles "
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1490,126 +1537,137 @@ msgstr ""
 "extract o --list i quan es dona una llista de fitxers ja sigui a la línia de "
 "comandes com amb l'opció -T; ENA val 1 per defecte"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "l'arxiu pot buscar-se"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "L'arxiu no pot buscar-se"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "no comprovis el número de dispositiu quan creis arxius incrementals"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "comprova el número de dispositiu quan creis arxius incrementals (per defecte)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Control de sobreescriptura:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "intenta verificar l'arxiu després d'escriure'l"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "eliminar els fitxers després d'afegir-los a l'arxiu"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "no reemplacis els fitxers existents quan els extreguis"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "no reemplacis els fitxers existents quan els extreguis"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "no reemplacis els fitxers existents que siguin més nous que les còpies de "
 "l'arxiu"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "sobreescriu els fitxers existents quan els extreguis"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "elimina cada fitxer abans d'extreure-hi a sobre"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "buida les jerarquies abans d'extreure el directori"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "conserva les metadades dels directoris existents"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "sobreescriu les metadades dels directoris existents quan s'extreguin (per "
 "defecte)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "sobreescriu els fitxers existents quan els extreguis"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Selecciona la sortida del flux de dades:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "extreu els fitxers a la sortida estàndard"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMANDA"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "condueix els fitxers extrets a un altre programa"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ignora els codis de sortida dels processos fill"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 "tracta els codis de sortida dels processos fills diferents de zero com a "
 "error"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Gestió dels atributs del fitxer:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "força NOM coma propietari dels fitxers afegits"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "força NOM com a grup pels fitxers afegits"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATA-O-FITXER"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "estableix mtime pels fitxers afegits des de DATA-O-FITXER"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CANVIS"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "força CANVIS de mode (simbòlic) als fitxers que s'afegeixin"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MÈTODE"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1619,11 +1677,11 @@ msgstr ""
 "hores després de llegir-los (MÈTODE='replace'; per defecte) o no posant "
 "primer les hores(MÈTODE='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "no extreguis la data de modificació dels fitxers"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1631,23 +1689,23 @@ msgstr ""
 "intenta extreure els fitxers amb el mateix propietari que existeix a l'arxiu "
 "(per defecte pel superusuari)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "extreu el fitxer com a tu mateix com a propietari (per defecte pels usuaris "
 "ordinaris"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "fes servir sempre números pels noms de usuari/grup"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "extreu la informació dels permisos del fitxer (per defecte per al "
 "superusuari)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1655,15 +1713,16 @@ msgstr ""
 "fes servir els permisos especificats per l'usuari qua s'extreguin permisos "
 "de l'arxiu (per defecte per usuaris normals)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "ordena els noms a extreure per que coincideixin amb els de l'arxiu"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "el mateix que per -p i -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1671,139 +1730,180 @@ msgstr ""
 "no modifiquis els temps i els permisos dels directoris extrets fins que "
 "s'acabi l'extracció"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "cancel·la l'efecte de l'opció --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Gestió dels atributs del fitxer:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Selecció i canvi de dispositiu:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARXIU"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "fes servir el fitxer o dispositiu ARXIU"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "l'arxiu és local encara que tingui dos punts"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "fes servir la COMANDA rmt en comtes de rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "fes servir la COMANDA remota en comptes de rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "especifica la unitat i la densitat"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "crea/llista/extreu arxius de múltiples volums"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "canvia la cinta després d'escriure NÚMERO x 1024 bytes"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "executa seqüència al final de cada cinta (implica -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "fes servir/actualitza el número de volum del FITXER"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blocs als dispositius:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCS"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOCS x 512 bytes per registre"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "NÚMERO de bytes per registre, múltiple de 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignora els blocs posats a zero de l'arxiu (volen dir fi del fitxer)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "refés els blocs mentre els llegeixes (per conductes de 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Selecció del format de l'arxiu: "
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "crea un arxiu del format especificat"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "El FORMAT és un dels següents"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "format tar de l'antiga versió 7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "format GNU tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "format GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "format POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "format POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "el mateix que pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "el mateix que --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "el mateix que --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "paraula clau[[:]=valor][,paraula clau[[:]=valor]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "controla les paraules clau de pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1811,76 +1911,76 @@ msgstr ""
 "crea l'arxiu amb el nom de volum TEXT. Quan es llista/s'extreu, utilitza "
 "TEXT com a patró global de noms de volum"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Opcions de compressió:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "utilitza el sufix de l'arxiu per determinar el programa de compressió"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "no fa servir el sufix de l'arxiu per determinar el programa de compressió"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROGRAMA"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtra mitjançant PROGRAMA (ha d'acceptar -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Selecció de fixter local:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "afegeix el FITXER a l'arxiu (útil si el nom comença per un guió)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIRECTORI"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "Canvia al directori DIRECTORI"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "obté els noms que cal extreure u crear del FITXER"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T llegeix els noms acabats en nul, desactivar-ho amb -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "deshabilita l'efecte del la opció --null prèvia"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "treu les cometes dels noms dels fitxers llegits amb -T (per defecte)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "no treguis les cometes dels noms dels fitxers llegits amb -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATRÓ"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "exclou els fitxers que es donen com un PATRÓ"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "exclou els patrons que es llisten al FITXER"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1888,96 +1988,98 @@ msgstr ""
 "exclou el contingut dels directoris que continguin CACHEDIR.TAG, excepte el "
 "propi fitxer d'etiquetes"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "exclou tot el que estigui als directoris que continguin CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "exclou els directoris que continguin CACHEDIR.TAG "
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "exclou el contingut dels directoris que contenen el FITXER, excepte el "
 "FITXER mateix"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "exclou tot el que hi hagi al directori que contingui el FITXER"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "exclou els directoris que continguin el FITXER"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "exclou els directoris del sistema de control de versions"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "exclou els fitxers de còpia de seguretat i de blocat"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "no baixa automàticament als directoris"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "queda't al sistema de fitxers local quan creïs l'arxiu"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "incloure els subdirectoris (per defecte)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "no treguis les primeres «/» dels noms dels fitxers"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "segueix els enllaços simbòlics; arxiva i aboca els fitxers als quals apunten"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "segueix els enllaços durs; arxiva i aboca els fitxers als quals es refereix"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NOM-DEL-MEMBRE"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "comença al membre NOM-DEL MEMBRE de l'arxiu"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "desa només els fitxers més nous que DATA-O-FITXER"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "compara la data i l'hora només quan les dades hagin canviat"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 "fes una còpia de seguretat abans d'esborrar, tria el CONTROL de versions"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "CADENA"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1985,101 +2087,104 @@ msgstr ""
 "fa una còpia de seguretat abans d'esborrar, substitueix el sufix usual («~» "
 "si no s'ha definit la variable d'entorn SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Transformacions del nom del fitxer:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "treu NÚMERO components de la capçalera dels noms dels fitxers quan extreu"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EXPRESSIÓ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "fes servir l'EXPRESSIÓ de substitució sed per transformar els noms dels "
 "fitxers"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "opcions de concordança de nom de fitxer (afecta tant als patrons de inclusió "
 "com als d'exclusió):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "ignora diferències majúscules/minúscules"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "comprova els patrons del començament del nom del fitxer"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "comprova els patrons després de qualsevol «/» (per defecte a les exclusions) "
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "comprova diferències majúscules/minúscules (per defecte)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "fa servir comodins (per defecte a les exclusions)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "concordància exacte a les cadenes"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "els comodins no han de concordar amb «/»"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "els comodins han de concordar amb «/» (per defecte a les exclusions)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Sortida informativa:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "llista els fitxers processats detalladament"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "PARAULA CLAU"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "control d'avisos"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "mostra els missatges de progres cada NÚMERO registres (per defecte 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ACCIÓ"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "executa ACCIÓ a cada punt de comprovació"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "mostra un missatge si no s'aboquen tots els enllaços"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SENYAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2091,31 +2196,35 @@ msgstr ""
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2. També s'accepta els noms sense "
 "el prefix SIG"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "mostra l'hora de modificació del fitxer en UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "Mostra l'hora del fitxer amb alta precisió"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "envia la sortida detallada al FITXER"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "mostra el número de bloc de dins l'arxiu a cada missatge"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "demana la confirmació per cada acció"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "mostra els valors per defecte de tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2123,33 +2232,33 @@ msgstr ""
 "quan es llisti o s'extregui, llista tots els directoris que no es "
 "corresponguin amb el criteri de cerca"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "mostra el nom del fitxer o de l'arxiu després de la transformació"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "ESTIL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "estableix el nom de l'estil de citació; vegeu més avall una llista de valors "
 "vàlids per ESTIL"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "més caràcters de cometes des de CADENA"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "deshabilita els caràcters de cometa de la CADENA"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Opcions de compatibilitat:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2157,62 +2266,55 @@ msgstr ""
 "quan es crea, el mateix que --old-archive; quan s'extreu, el mateix que --no-"
 "same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Altres opcions:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "desactiva l'ús de certes opcions potencialment perjudicials"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "No podeu especificar més d'un «-Acdtrux» o d'opció «--test-label»"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opcions de compressió conflictives"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Nom del senyal desconegut: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "No s'ha trobat el fitxer de mostra de la data"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "S'està substituint %s pel format de data desconegut %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Opció %s: S'està tractant la data «%s» com a %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: la llista de fitxers ja s'ha llegit"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: la lectura del nom del fixter conté un caràcter nul"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtra l'arxiu a mitjançant %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Les opcions vàlides per la opció --quoting-style són:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2220,51 +2322,48 @@ msgstr ""
 "\n"
 "*Aquest* tar va per defecte en:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Propietari invàlid"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Factor de blocs invàlid"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Longitud de la cinta invàlida"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "valor invàlid del nivell d'increment"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Més d'una data del llindar"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "valor de la versió de la opció de dispersió invalid"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "No es permet l'ús de --atime-preserve=«system» en aquesta plataforma"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "El valor --checkpoint no és un enter"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Grup invàlid"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mode invàlid donat a les opcions"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Número invàlid"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Propietari invàlid"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2272,120 +2371,150 @@ msgstr ""
 "La opció --preserve es obsoleta, en comptes d'això feu servir --preserve-"
 "permissions --preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Mida del registre invàlida"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "La mida del registre ha de ser múltiple de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Nombre d'elements invàlid"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Només es permet una opció --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Argument de densitat mal format: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Densitat desconeguda: «%c»"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opcions «-[0-7][lmh]» no suportades per *aquest* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FITXER]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "L'opció antiga «%c» requereix un argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence no te sentit sense una llista de fitxers"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence no es pot utilitzar en el mode d'operació que ha requerit"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Per a múltiples arxius de fitxers es requereix l'opció «-M»"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "No es pot combinar --listed-incremental amb --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level no té sentit sense --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: l'etiqueta del volum és massa llarga (el limit és %lu byte)"
 msgstr[1] "%s: l'etiqueta del volum és massa llarga (el limit és %lu bytes)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "No es poden verificar els arxius multi-volum"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "No es poden verificar els arxius comprimits"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "No s'ha pogut utilitzar el patró %s "
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "No es poden utilitzar arxius comprimits multi-volum"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "No es poden concatenar arxius comprimits"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option només es pot utilitzar en arxius POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option només es pot utilitzar en arxius POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option només es pot utilitzar en arxius POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option només es pot utilitzar en arxius POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "No s'ha pogut utilitzar el patró %s "
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "La llargada del volum no pot ser inferior que la mida del registre"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order no és compatible amb --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "S'està refusant covardament crear un arxiu buit"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Les opcions «-Aru» son incompatibles amb «-f -»"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Heu d'especificar una opció «-Acdtrux» o «--test-label»"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Se surt amb estat de fallida degut a errors prèvis"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2397,51 +2526,47 @@ msgstr[1] "%s: El fitxer s'encongeix %s bytes"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "La paraula clau %s és desconeguda o encara no s'ha implementat"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "La marca horària està fora del rang permés"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "No s'ha pogut utilitzar el patró %s "
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "No s'ha pogut sobreescriure la paraula clau %s"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Capçalera estesa mal formada: falta la longitud"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Longitud de la capçalera estesa està fora del rang permès"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "La longitud de la capçalera estesa %*s està fora de rang"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Capçalera estesa mal formada: falta l'espai després de la longitud"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Capçalera estesa mal formada: falta el signe igual"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Capçalera estesa mal formada: falta el salt de línia"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "S'ignora la paraula clau desconeguda de la capçalera estesa «%s»"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2450,63 +2575,63 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "La capçalera estesa %s=%s està fora del rang %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Capçalera estesa mal formada: %s=%s invàlid"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Capçalera estesa mal formada: excedeix %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Capçalera estesa mal formada: %s invàlid, delimitador %c inesperat"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Capçalera estesa mal formada: %s invàlid: nombre de valors incorrecte"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: no és un temps d'espera vàlid"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: acció del punt de comprovació desconegut"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "escriu"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "llegeix"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Punt de comprovació d'escriptura %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Punt de comprovació de lectura %u"
@@ -2657,7 +2782,7 @@ msgstr "Número fora de l'abast permés: %s"
 msgid "Negative size: %s"
 msgstr "Mida negativa: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "Ha fallat la petició d'stat(%s)"
@@ -2686,8 +2811,8 @@ msgstr "Format de data desconegut"
 msgid "[ARGS...]"
 msgstr "[ARGS...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "no es pot obrir «%s»"
@@ -2701,68 +2826,99 @@ msgstr "no es pot cercar"
 msgid "file name contains null character"
 msgstr "el nom del fitxer conté un caràcter nul"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "no es pot generar fitxers dispersos a la sortida estàndard, empreu la opció "
 "--file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "màscara incorrecta (prop de «%s»)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Camp desconegut «%s»"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "no es pot definir el temps de «%s»"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "no es pot desfer l'enllaç «%s»"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "L'ordre %s ha fallat"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "no es pot desfer l'enllaç «%s»"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "La comanda ha finalitzat amb èxit\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "La comanda ha fallat amb estat %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "La comanda ha finalitzat amb la senyal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "La comanda ha parat amb la senyal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "La comanda ha abocat l'ànima\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Comanda finalitzada\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat requereix noms de fitxers"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "No es pot trobar el directori de treball"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "ordena els noms a extreure per que coincideixin amb els de l'arxiu"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Camp massa llarg en llegir el fitxer d'instantània"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Error de lectura del fitxer d'instantània"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Valor de camp inesperat del fitxer d'instantània"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Longitud de la capçalera estesa està fora del rang permès"
+
+#~ msgid "Invalid group"
+#~ msgstr "Grup invàlid"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: El directori s'ha esborrat abans de poder-lo llegir"
 
index d9dc46fadc8f5476d0101182f086baa4841a7c64..2a12a54f11a773ca20ce2f81ec741725402c0c24 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index 6ef7c977d3fb6564b35e2a74c948e65e6c109096..69571a71dbcb13cbbe51cff0f771e6e97908d26a 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -2,7 +2,7 @@
 # Copyright (C) 1997 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 # Vladimir Michl <Vladimir.Michl@seznam.cz>, 1997.
-# Petr Pisar <petr.pisar@atlas.cz>, 2009, 2010.
+# Petr Pisar <petr.pisar@atlas.cz>, 2009, 2010, 2011.
 #
 # Pozor: program sám zalamuje dlouhé řádky, ale místo (širokých) znaků počítá
 # bajty. Proto je nutné dodržovat nezlomitelné mezery, které program rovněž
 # tape → páska (rod ženský, vzor žena; ne pásek)
 # seek offset → pozice posunu (pásky)
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.24\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-10-25 10:05+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-13 19:24+0100\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -38,36 +38,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argument %s není pro %s jednoznačný"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Platné argumenty jsou:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: parametr ARGP_HELP_FMT vyžaduje hodnotu"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: parametr ARGP_HELP_FMT musí být kladný"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Nepořádek v ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -75,31 +74,31 @@ msgstr ""
 "Povinné nebo volitelné argumenty dlouhých přepínačů jsou rovněž povinné\n"
 "nebo volitelné u odpovídajících krátkých přepínačů."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Použití:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "nebo: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [PŘEPÍNAČ…]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Více informací získáte pomocí „%s --help“ nebo „%s --usage“.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "Chyby v programu oznamujte na adrese %s (anglicky), připomínky k překladu na "
 "adrese <translation-team-cs@lists.sourceforge.net> (česky).\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Neznámá systémová chyba"
 
@@ -112,7 +111,7 @@ msgid "give a short usage message"
 msgstr "vypíše stručný návod na použití"
 
 # JMÉNO jako v příslušné položce nápovědy
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "JMÉNO"
@@ -133,17 +132,16 @@ msgstr "zastaví se na SEKUNDY sekund (implicitně 3600)"
 msgid "print program version"
 msgstr "vypíše verzi programu"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(CHYBA PROGRAMU) Verze není známa!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Příliš mnoho argumentů\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(CHYBA PROGRAMU) Přepínač by měl být znám!?"
 
@@ -151,62 +149,62 @@ msgstr "(CHYBA PROGRAMU) Přepínač by měl být znám!?"
 msgid "write error"
 msgstr "chyba zápisu"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: přepínač „%s“ není jednoznačný\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, 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"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, 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"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: přepínač „--%s“ vyžaduje argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: nerozpoznaný přepínač „--%s“\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: nerozpoznaný přepínač „%c%s“\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: neplatný přepínač -- „%c“\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: přepínač vyžaduje argument -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, 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"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: přepínač „-W %s“ vyžaduje argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "paměť vyčerpána"
 
@@ -222,28 +220,30 @@ msgstr "do původního pracovního adresáře se nelze vrátit"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "„"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "“"
 
@@ -253,7 +253,7 @@ msgstr "“"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[aAyY].*"
 
@@ -263,7 +263,7 @@ msgstr "^[aAyY].*"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN].*"
 
@@ -559,7 +559,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "K %s se nelze připojit: selhal překlad"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Vzdálený shell není možné spustit"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Vzdálený shell není možné spustit"
@@ -608,8 +613,8 @@ msgstr "Neočekávané argumenty"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Ovládá páskovou jednotku přijímaje příkazy ze vzdáleného procesu"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "ČÍSLO"
 
@@ -617,8 +622,8 @@ msgstr "ČÍSLO"
 msgid "set debug level"
 msgstr "nastaví úroveň ladění"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -633,7 +638,7 @@ msgstr "nastaví název souboru pro výstup ladění"
 msgid "cannot open %s"
 msgstr "„%s“ nelze otevřít"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "příliš mnoho argumentů"
@@ -642,9 +647,9 @@ msgstr "příliš mnoho argumentů"
 msgid "Garbage command"
 msgstr "Neznámý příkaz"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Toto pravděpodobně není tar archiv"
 
@@ -682,19 +687,19 @@ msgstr "Stdin/Stdout archiv nelze ověřit"
 msgid "Archive is compressed. Use %s option"
 msgstr "Archiv je komprimován. Použijte přepínač %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Komprimovaný archiv nelze aktualizovat"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Páska na začátku, končím"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Příliš mnoho chyb, končím"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -702,7 +707,7 @@ msgstr[0] "Velikost záznamu = %'lu blok"
 msgstr[1] "Velikost záznamu = %'lu bloky"
 msgstr[2] "Velikost záznamu = %'lu bloků"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -710,37 +715,37 @@ msgstr[0] "Nezarovnaný blok (%'lu bajt) v archivu"
 msgstr[1] "Nezarovnaný blok (%'lu bajty) v archivu"
 msgstr[2] "Nezarovnaný blok (%'lu bajtů) v archivu"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "V archivu se nelze vrátit, bez -i může být nečitelný"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek se nezastavil na hranici záznamu"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: obsahuje neplatné číslo svazku"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "U čísla svazku nastalo přetečení"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Připravte svazek #%d pro archiv %s a stiskněte return:"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Místo uživatelské odpovědi byl zadán konec souboru"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "VAROVÁNÍ: Archiv je nekompletní"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -751,65 +756,65 @@ msgstr ""
 " q                   Ukončit program tar\n"
 " y nebo odřádkování  Pokračovat v operaci\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !                   Vytvořit podshell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?                   Vypsat tuto nápovědu\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Není nový svazek; končím.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Název souboru nebyl zadán. Zkuste to znovu.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Neplatný vstup. Nápovědu obdržíte napsáním „?“ (otazníku).\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "příkaz %s selhal"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s možná pokračuje na tomto svazku: hlavička obsahuje zkrácený název"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s nepokračuje na tomto svazku"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s je špatné délky (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Tento svazek není je mimo pořadí (%s − %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Pro vyhodnocení vzorku %s musí být archiv pojmenován"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Svazek %s neodpovídá vzorku %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -817,11 +822,11 @@ msgstr ""
 "%s: název souboru je příliš dlouhý, aby byl uložen do vícesvazkové hlavičky "
 "GNU, bude zkrácen"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "zápis neskončil na konci hranice bloku"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -829,76 +834,75 @@ msgstr[0] "Bylo možné načíst pouze %'lu z %'lu bajtu"
 msgstr[1] "Bylo možné načíst pouze %'lu z %'lu bajtů"
 msgstr[2] "Bylo možné načíst pouze %'lu z %'lu bajtů"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Obsahy se liší"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Neočekávaný konec archivu"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Typ souboru se liší"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Práva se liší"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "UID se liší"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "GID se liší"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Čas poslední modifikace se liší"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Velikost se liší"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Není odkazem na %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolický odkaz se liší"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Číslo zařízení se liší"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Ověřuji "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Neznámý typ souboru „%c“, porovnáván jako normální soubor"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Archiv obsahuje názvy souborů, kterým byly odstraněny předpony."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Archiv obsahuje zastaralé base-64 hlavičky"
+msgstr "Archiv obsahuje transformované názvy souborů."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Při kontrole může selhat nalezení původních souborů."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -906,46 +910,46 @@ msgstr[0] "SELHÁNÍ KONTROLY: zjištěna %d chybná hlavička"
 msgstr[1] "SELHÁNÍ KONTROLY: zjištěny %d chybné hlavičky"
 msgstr[2] "SELHÁNÍ KONTROLY: zjištěno %d chybných hlaviček"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Osiřelý nulový blok na pozici %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: obsahuje značku keše adresáře %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "hodnota %s typu %s je mimo rozsah %s..%s; nahrazuji za %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Generuji záporné osmičkové hlavičky"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: název souboru je příliš dlouhý (max. %d); nezpracován"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: název souboru je příliš dlouhý (nelze jej rozdělit); nezpracován"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: název odkazu je příliš dlouhý; nezpracován"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -953,376 +957,417 @@ msgstr[0] "%s: Soubor je kratší o %s bajt; Doplňuji nulami."
 msgstr[1] "%s: Soubor je kratší o %s bajty; Doplňuji nulami."
 msgstr[2] "%s: Soubor je kratší o %s bajtů; Doplňuji nulami."
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: soubor je na jiném souborovém systému; nearchivován"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "obsah nezpracován"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Neznámý typ souboru; soubor ignorován"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Chybí odkazy na %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: soubor není změněn; neaktualizován"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: soubor je archiv; nearchivován"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "adresář nezpracován"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: soubor byl během čtení změněn"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: soket ignorován"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: dveře ignorovány"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Přeskakuji na další hlavičku"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Z archivu je mazáno to, co není hlavička"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: nemožně stará časová značka %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: časová značka %s je %s s v budoucnosti"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Neočekávaná inkonzistence, při vytváření adresáře"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Adresář byl přejmenován dříve, než bylo možné získat jeho stav"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Souvisle uložené soubory rozbaluji jako obyčejné soubory"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Zkouším rozbalit symbolické odkazy jako pevné odkazy"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Nelze rozbalit – soubor je pokračováním jiného svazku"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Neočekávaná hlavička dlouhého názvu"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Neznámý typ souboru „%c“, rozbalen jako normální soubor"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Současný soubor %s je novější nebo stejně starý"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Tento soubor nebylo možné zálohovat"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s nelze přejmenovat na %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Adresář byl přejmenován z %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Adresář byl přejmenován"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Adresář je nový"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: soubor je na jiném souborovém systému; nearchivován"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresář byl přejmenován"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Neplatný čas souboru"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Neplatný čas změny obsahu souboru (sekundy)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Neplatný čas změny obsahu souboru (nanosekundy)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Neplatné číslo zařízení"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Neplatné číslo i-uzlu"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Při čtení souboru snímku: položka je příliš dlouhá"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Chyba čtení uvnitř souboru snímku"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Neočekávaný konec souboru snímku"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Neočekávaná hodnota položky v souboru snímku"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Chybí uzávěr záznamu"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Chybný formát přírůstkového souboru"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Nepodporovaná verze přírůstkového formátu: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Poškozený dumpdir: očekáváno „%c“, ale nalezeno %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Poškozený dumpdir: „X“ duplikováno"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Poškozený dumpdir: prázdný název v „R“"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Poškozený dumpdir: „R“ není před „T“"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Poškozený dumpdir: prázdný název v „T“"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Poškozený dumpdir: očekáváno „%c“, ale zjištěn konec dat"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Poškozený dumpdir: „X“ nebylo nikdy použito"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Podle šablony %s nelze vytvořit dočasný adresář"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Adresář nebude vyčištěn: nelze provést stat()"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: adresář je na jiném zařízení: nebude vyčištěn"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Mažu %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Nelze smazat"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Vynechávám"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Konec souboru **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Mezery v hlavičce na místě, kde je očekávána číselná hodnota typu %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 "Osmičková hodnota %.*s typu %s je mimo rozsah; přiřazuji dvojkový complement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Osmičková hodnota %.*s typu %s je mimo rozsah"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Archiv obsahuje zastaralé base-64 hlavičky"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Base-64 řetězec %s je mimo rozsah typu %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Hodnota base-256 je mimo rozsah typu %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Archiv obsahuje %.*s tam, kde je očekávána číselná hodnota typu %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Hodnota %s typu %s je mimo rozsah %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " odkaz na %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " neznámý souborový typ %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Dlouhý odkaz--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Dlouhý název--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Hlavička svazku--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Pokračováno od %s bajtu--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Vytvářím adresář:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Nelze zjistit pracovní adresář"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Přejmenovávám %s na %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: nelze přejmenovat na %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Přejmenovávám %s zpět na %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Soubor smazán dříve než mohl být přečten"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "potomek"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "meziprocesový kanál"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "příkaz %s selhal"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: seznam souborů již načten"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Souboru „%s“ nelze nastavit čas"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: načtený název souboru obsahuje nulový znak"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "V názvech souborů se nachází žolíkové znaky"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1330,57 +1375,58 @@ msgstr ""
 "Porovnávání proti žolíkových znaků zapněte pomocí --wildcards, nebo varování "
 "potlačte prostřednictvím --no-wildcards"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: V archivu nenalezen"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Požadovaný výskyt nebyl v archivu nalezen"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Název archivu se neodpovídá"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Použití přepínače -C uvnitř seznamu souborů není spolu s --listed-"
 "incremental dovoleno"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "S --listed-incremental je dovolen pouze jediný přepínač -C"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Přepínače „-%s“ a „-%s“ oba dva chtějí standardní vstup"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Neplatný formát archivu"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU rozšíření požadovány na nekompatibilním formátu archivu"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Neznámý styl citování „%s“. Seznam stylů lze získat příkazem „%s --quoting-"
 "style=help“."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1397,9 +1443,10 @@ msgstr ""
 "tar.\n"
 "  tar -xf archiv.tar           # Rozbalí všechny soubory z archiv.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1419,79 +1466,79 @@ msgstr ""
 "                  existují, jinak tvoří jednoduché\n"
 "  never, simple   tvoří vždy jednoduché záložní kopie souborů\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Hlavní operační režim:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "vypíše obsah archivu"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "vybalí soubory z archivu"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "vytvoří nový archiv"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "hledá rozdíly mezi archivem a systémem souborů"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "připojí soubory na konec archivu"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "připojí jen takové soubory, které jsou novější nežli kopie v archivu"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "připojí k archivu tarové soubory"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "smaže z archivu (ne na magnetických páskách!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "otestuje jmenovku archivního svazku a skončí"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Operační modifikátory:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "zachází s řídkými soubory efektivně"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "HLAVNÍ[.VEDLEJŠÍ]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "nastaví verzi řídkého formátu (implikuje --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "zpracuje přírůstkové zálohy starého formátu GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "zpracuje přírůstkové zálohy nového formátu GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "úroveň výpisu pro vytvářený archiv s přírůstkovým seznamem"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "neskoční nenulovým kódem při nečitelných souborech"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1503,121 +1550,132 @@ msgstr ""
 "--list a jen když je zadán seznam souborů na příkazovém řádku nebo přes "
 "přepínač -T; implicitní ČÍSLO je 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "v archivu se lze posunovat"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "v archivu se lze posunovat"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "při vytváření přírůstkových archivů se nekontrolují čísla zařízení"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "při vytváření přírůstkových archivů se kontrolují čísla zařízení (implicitní)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Ovládání přepisování:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "pokusí se zkontrolovat archiv po té, co bude zapsán"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "odstraní soubory po té, co budou přidány do archivu"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "při rozbalovaní nenahrazuje existující soubory"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "při rozbalovaní nenahrazuje existující soubory"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "nenahrazuje existující soubory, které jsou novější než jejich archivní kopie"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "při rozbalování existující soubory přepisuje"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "před vybalením každého souboru jej odstraní"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "před vybalením adresáře vytvoří prázdnou hierarchii"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "zachovává metadata existujících adresářů"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "při rozbalování přepisuje metadata existujících adresářů (implicitní)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "při rozbalování existující soubory přepisuje"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Výběr výstupního proudu:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "soubory vybaluje na standardní výstup"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "PŘÍKAZ"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "vybalené soubory pošle rourou jinému programu"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ignoruje návratový kód potomků"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "nenulový návratový kód potomků považuje za chybu"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Zacházení s atributy souborů:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "vynutí JMÉNO jako vlastníka vkládaných souborů"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "vynutí JMÉNO jako skupinu vkládaných souborů"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATUM_NEBO_SOUBOR"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "nastaví čas změny obsahu vkládaných souborů podle DATA_NEBO_SOUBORU"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ZMĚNY"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "vynutí (symbolický) mód ZMĚN (přístupová práva) vkládaným souborům"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODA"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1627,11 +1685,11 @@ msgstr ""
 "(METODA=„REPLACE“; implicitní), nebo nenastavením časů v prvním pořadí "
 "(METODA=„system“)"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "nevybaluje čas změny obsahu souboru"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1639,19 +1697,19 @@ msgstr ""
 "pokusí se vybalit soubory se stejným vlastníkem jako je uveden v archivu "
 "(výchozí pro superuživatele)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "rozbaluje soubory pod vaší identitou (výchozí pro běžného uživatele)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "pro jména uživatel/skupin vždy použije čísla"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "vybaluje informace o právech souborů (implicitní pro superuživatele)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1659,15 +1717,16 @@ msgstr ""
 "při vybalování práv z archivu použije uživatelovu umask (implicitní pro "
 "běžné uživatele)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "při rozbalování seřadí názvy tak, aby odpovídaly pořadí v archivu"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "stejné jako -p -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1675,139 +1734,180 @@ msgstr ""
 "pozdrží nastavení časů modifikace a práv rozbalovaných adresářů až do "
 "dokončení rozbalování"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "zruší účinek přepínače --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Zacházení s atributy souborů:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Výběr a přepínání zařízení:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "pro archiv požije soubor zařízení ARCHIV"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "soubor archivu je místní, i když obsahuje dvojtečku"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "namísto příkazu rmt použije PŘÍKAZ"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "namísto rsh použije PŘÍKAZ"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "určuje mechaniku a hustotu"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "vytvoří/vypíše/rozbalí vícesvazkový archiv"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "po zapsaní ČÍSLO × 1024 bajtů vymění pásku"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "na konci každé pásky spustí skript (implikuje -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "použije/aktualizuje číslo svazku v SOUBORU"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Bloky zařízení:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKY"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOKŮ × 512 bajtů na záznam"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "ČÍSLO bajtů na záznam, násobek 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "v archivu ignoruje vynulované bloky (znamená EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "předělat bloky v průběhu čtení (pro roury na BSD 4.2)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Výběr formátu archivu:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMÁT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "vytvoří archiv daného formátu"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMÁT je jeden z následujících:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "starý formát taru V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "formát taru GNU <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "formát taru GNU 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "formát POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "formát POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "stejné jako pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "stejné jako --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "stejné jako --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "klíčové_slovo[[:]=hodnota][,klíčové_slovo[[:]=hodnota]]…"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "řídicí klíčová slova paxu"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1815,77 +1915,77 @@ msgstr ""
 "vytvoří archiv s názvem svazku TEXT; při výpisu/rozbalení použije TEXT jako "
 "vzor se zástupnými symboly pro název svazku"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Přepínače komprese:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "kompresní program určí podle přípony archivu"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "kompresní program neurčí podle přípony archivu"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROGRAM"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "archiv protáhne PROGRAMEM (musí znát -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Výběr místního souboru:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "zadaný SOUBOR přidá do archivu (užitečné, začíná-li jeho název spojovníkem)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "ADRESÁŘ"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "změní adresář na ADRESÁŘ"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "seznam jmen souborů na rozbalení nebo zabalení získá ze SOUBORU"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T čte názvy zakončené nulovým znakem, vypne -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "zruší účinek předchozího přepínače --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "odčiní citování (escapování) názvů souboru načtených přes -T (implicitní)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "nezruší citování (escapování) názvů souboru načtených přes -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "VZOR"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "vynechá soubory, které odpovídají VZORU"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "vynechá soubory vyjmenované v SOUBORU"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1893,95 +1993,97 @@ msgstr ""
 "vynechá obsah adresářů obsahujících CACHEADR.ZNAČKA, kromě souboru značky "
 "samotného"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "vynechá vše pod adresáři obsahujícími CACHEADR.ZNAČKA"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "vynechá adresáře obsahující CACHEADR.ZNAČKA"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "vynechá obsah adresářů obsahujících SOUBOR, vyjma SOUBORU samotného"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "vynechá vše pod adresáři obsahujícími SOUBOR"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "vynechá adresáře obsahující SOUBOR"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "vynechá adresáře systému správy verzí"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "vynechá soubory záloh a zámků"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "zabrání automatickému sestupu do adresářů"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "při tvorbě archivu se zdrží v místním systému souborů"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "sestupuje rekurzivně do adresářů (implicitní)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "neodstraní z názvů souborů úvodní „/“"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "následuje symbolické odkazy; archivuje a vybaluje soubory, na které je "
 "odkazováno"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "následuje pevné odkazy; archivuje a vybaluje soubory, na které je odkazováno"
 
 # část cesty (adresář)
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "SLOŽKA_NÁZVU"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "začne v archivu na složce SLOŽKA_NÁZVU"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "ukládá jen soubory novější než DATUM_NEBO_SOUBOR"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "při změně dat porovná datum i čas"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "STRATEGIE"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "před odstraněním vytvoří záložní kopii za použití STRATEGIE"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "ŘETĚZEC"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1989,97 +2091,100 @@ msgstr ""
 "před odstraněním vytvoří záložní kopii, potlačí obvyklou příponu („~“, není-"
 "li uvedeno jinak v proměnné prostředí SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Transformace názvů souborů:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "při rozbalování odřízne ČÍSLO úvodních složek z názvů souborů"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "VÝRAZ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "názvy souborů transformuje pomocí nahrazovacího VÝRAZU sedu"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Přepínače řídicí výběr souborů podle názvu (ovlivňuje vzory jak pro "
 "vyloučení, tak pro zahrnutí)"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "ignoruje velikost písmen"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "vzory se testují název souboru od začátku"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "vzory se testují po každém „/“ (implicitní u vyloučení)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "testování je citlivé na velikost (implicitní)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "použije žolíkové znaky (implicitní u vyloučení)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "testuje se přesný řetězec"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "žolíkové znaky nezahrnují „/“"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "žolíkové znaky zahrnují „/“ (implicitní u vyloučení)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informativní výstup:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "vypisuje zpracovávané soubory"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KLÍČOVÉ_SLOVO"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "řídí varování"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "zobrazuje zprávy o postupu každých ČÍSLO. záznam (implicitně 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "AKCE"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "v každém kontrolním bodu vykoná AKCI"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "hlásí, že nebyly zpracovány všechny odkazy"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNÁL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2090,31 +2195,35 @@ msgstr ""
 "hlášení, až bude doručen SIGNÁL; Povolené signály jsou SIGHUP, SIGQUIT, "
 "SIGINT, SIGUSR1 a SIGUSR2; názvy bez předpony SIG jsou rovněž přípustné"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "časy změn obsahu souborů vypisuje v UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "časy souborů vypisuje v plném znění"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "informativní výstup pošle do SOUBORU"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "každou zprávu opatří číslem bloku uvnitř archivu"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "na každou akcí žádá potvrzení"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "zobrazí implicitní argumenty taru"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2122,31 +2231,31 @@ msgstr ""
 "při vypisování nebo rozbalování zobrazí každý adresář, který neodpovídá "
 "vyhledávacím podmínkám"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "zobrazuje názvy souborů a archivů po transformaci"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STYL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "nastaví styl citování názvů; platné hodnoty STYLŮ nalezte níže"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "cituje navíc znaky z ŘETĚZCE"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "zakáže citování znaků z ŘETĚZCE"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Přepínače pro kompatibilitu"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2154,63 +2263,56 @@ msgstr ""
 "při vytváření archivu má stejný význam jako --old-archive, při rozbalování "
 "jako --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Další přepínače:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "zakáže použití některých potenciálně nebezpečných přepínačů"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Nemůže být zadán více jak jeden přepínač z „-Acdtrux“ nebo „--test-label“"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Odporující si kompresní přepínače"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Neznámý název signálu: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Soubor, ze kterého se má vzít datum a čas, nebyl nalezen"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Datum neznámého formátu %2$s nahrazuji %1$s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Přepínač %s: S datem „%s“ bude zacházeno jako s %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: seznam souborů již načten"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: načtený název souboru obsahuje nulový znak"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "archiv protáhne skrze filtr %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Pro přepínač --quoting-style jsou platné argumenty:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2218,51 +2320,48 @@ msgstr ""
 "\n"
 "Implicitní přepínače *tohoto* taru:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Neplatný vlastník"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Neplatný počet bajtů na záznam"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Neplatná délka pásky"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Chybná hodnota úrovně přírůstku"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Více než jedeno počáteční datum"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Neplatná hodnota verze řídkého formátu"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' není na této platformě podporován"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "hodnota --checkpoint není celé číslo"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Neplatná skupina"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Zadána chybná práva"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Neplatné číslo"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Neplatný vlastník"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2270,68 +2369,70 @@ msgstr ""
 "Přepínač --preserve je zastaralý, místo něj používejte --preserve-"
 "permissions --preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Chybná velikost záznamu"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Velikost záznamu musí být násobek %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Neplatný počet prvků"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Povolen je jen jeden přepínač --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Neplatný argument hustoty: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Neznámá hustota: „%c“"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Přepínače „-[0-7][lmh]“ nejsou *tímto* tarem podporovány"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[SOUBOR]…"
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Přepínač „%c“ vyžaduje argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "bez seznamu souborů nemá --occurrence smysl"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence nelze v požadovaném režimu operace použít"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Více archivačních souborů vyžaduje přepínač „-M“"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental a --newer nelze kombinovat"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level bez --listed-incremental postrádá smysl"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2339,52 +2440,80 @@ msgstr[0] "%s: Název svazku je příliš dlouhý (limit je %'lu bajt)"
 msgstr[1] "%s: Název svazku je příliš dlouhý (limit je %'lu bajty)"
 msgstr[2] "%s: Název svazku je příliš dlouhý (limit je %'lu bajtů)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Vícesvazkový archiv není možné ověřit"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Komprimovaný archiv nelze ověřit"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Vzor %s nelze použít"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Vícesvazkový komprimovaný archiv nelze vytvořit"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Komprimované archivy nelze zřetězit"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Vzor %s nelze použít"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Délka svazku nemůže být kratší než délka záznamu"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order není slučitelný s --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Vytvoření prázdného archivu odmítnuto."
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Přepínače „-Aru“ jsou neslučitelné s přepínačem „-f -“"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Musíte zadat jeden z přepínačů „-Acdtrux“ nebo „--test-label“"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Končí se chybovým kódem, protože byly zaznamenány chyby"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2397,51 +2526,47 @@ msgstr[2] "%s: Soubor zkrácen o %s bajtů"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Klíčové slovo %s není známo nebo ještě nebylo implementováno"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Časový údaj je mimo povolený rozsah"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Vzor %s nelze použít"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Klíčové slovo %s nelze přebít"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Chybná rozšířená hlavička: chybí délka"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Délka rozšířené hlavičky je mimo povolený rozsah"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Délka rozšířené hlavičky %*s je mimo rozsah"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Chybná rozšířená hlavička: po délce chybí bílé místo"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Chybná rozšířená hlavička: chybí znak rovná se"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Chybná rozšířená hlavička: chybí odřádkování"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ignoruje se neznámé klíčové slovo „%s“ rozšířené hlavičky"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2450,63 +2575,63 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "%s=%s v rozšířené hlavičce je mimo rozsah %s–%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Chybná rozšířená hlavička: %s=%s není platné"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Chybná rozšířená hlavička: nadbytečná %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Chybná rozšířená hlavička: neplatný %s: neočekávaný oddělovač %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Chybná rozšířená hlavička: neplatný %s: lichý počet hodnot"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: neplatný časový limit"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: neznámá akce kontrolního bodu"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "zápis"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "čtení"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Kontrolní bod zápisu %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Kontrolní bod čtení %u"
@@ -2650,7 +2775,7 @@ msgstr "Číslo je mimo povolený rozsah: %s"
 msgid "Negative size: %s"
 msgstr "Záporná velikost: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) selhalo"
@@ -2679,8 +2804,8 @@ msgstr "Neznámý formát data"
 msgid "[ARGS...]"
 msgstr "[ARGUMENT…]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "„%s“ nelze otevřít"
@@ -2694,67 +2819,98 @@ msgstr "v souboru se nelze pohybovat"
 msgid "file name contains null character"
 msgstr "název souboru obsahuje nulový znak"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "na standardní výstup nelze generovat řídké soubory, použijte přepínač --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "nesprávná maska (poblíž „%s“)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Neznámá položka „%s“"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "Souboru „%s“ nelze nastavit čas"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "„%s“ nelze odstranit (unlink)"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "příkaz %s selhal"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "„%s“ nelze odstranit (unlink)"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Příkaz skončil úspěšně\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Příkaz selhal s kódem %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Příkaz skončil signálem %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Příkaz pozastaven signálem %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Příkaz skončil výpisem obrazu paměti\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Příkaz ukončen\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat potřebuje název souboru"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Nelze zjistit pracovní adresář"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "při rozbalování seřadí názvy tak, aby odpovídaly pořadí v archivu"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Při čtení souboru snímku: položka je příliš dlouhá"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Chyba čtení uvnitř souboru snímku"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Neočekávaná hodnota položky v souboru snímku"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Délka rozšířené hlavičky je mimo povolený rozsah"
+
+#~ msgid "Invalid group"
+#~ msgstr "Neplatná skupina"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Adresář smazán dříve než mohl být přečten"
 
index 2c05765bf0f9cc41a159e7b24544d16aa98e3de9..4ff91020e94b4745f7081240b1ad7c78cc2d97df 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index df1d2fdf5c1fe4cc358013900c01a00bbc101a6e..886af04383b195686d2a434c5cb851e94dece814 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -5,13 +5,13 @@
 # Claus Hindsgaul <claus_h@image.dk>, 2001.
 # Keld Jørn Simonsen <keld@keldix.com>, 2000-2001,2009,2010.
 # Keld Simonsen <keld@keldix.com>, 2010-2011.
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU tar 1.25\n"
+"Project-Id-Version: GNU tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2011-01-07 09:18+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-04-12 10:18+0100\n"
 "Last-Translator: Keld Simonsen <keld@keldix.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -32,36 +32,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "flertydigt argument '%s' for %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Gyldige argumenter er:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s værdi er mindre eller lig med %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Parameter for ARGP_HELP_FMT kræver en værdi"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Parameter fra ARGP_HELP_FMT skal være positiv."
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Ukendt ARGP_HELP_FMT-parameter"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Skidt i ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -69,29 +68,29 @@ msgstr ""
 "Obligatoriske eller valgfri argumenter til lange flag er også obligatoriske "
 "eller valgfri for alle tilsvarende korte flag."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Brug:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  eller: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [FLAG...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Prøv '%s --help' eller '%s --usage' for mere information.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Rapportér fejl til %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Ukendt systemfejl"
 
@@ -103,7 +102,7 @@ msgstr "vis denne hj
 msgid "give a short usage message"
 msgstr "vis en kort hjælpemeddelelse"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAVN"
@@ -124,17 +123,16 @@ msgstr "vent i SEK sekunder (standardv
 msgid "print program version"
 msgstr "vis programversion"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMFEJL) Ingen version kendt!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: For mange argumenter\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMFEJL) Flag burde være genkendt!?"
 
@@ -142,62 +140,62 @@ msgstr "(PROGRAMFEJL) Flag burde v
 msgid "write error"
 msgstr "skrivefejl"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: flag '%s' er flertydigt\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: flag '--%s' tillader ikke et argument\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: flag '%c%s' tillader ikke et argument\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: flag '--%s' kræver et argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: ukendt flag '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: ukendt flag '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ugyldigt flag -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: flag kræver et argument -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: flag '-W %s' er flertydigt\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: flag '-W %s' tillader ikke et argument\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: flag '-W %s' kræver et argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "hovedlager opbrugt"
 
@@ -213,28 +211,30 @@ msgstr "Kan ikke g
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "'"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -244,7 +244,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[jJyY]"
 
@@ -254,7 +254,7 @@ msgstr "^[jJyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -538,7 +538,12 @@ msgstr "standard-ud"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Kan ikke opkoble til %s: navneopslag mislykkedes"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Kan ikke eksekvere fjern skál"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Kan ikke eksekvere fjern skál"
@@ -587,8 +592,8 @@ msgstr "Uventede argumenter"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Styr en båndstation via accept af kommandoer fra en fjernproces"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMMER"
 
@@ -596,8 +601,8 @@ msgstr "NUMMER"
 msgid "set debug level"
 msgstr "sæt fejlsøgningsniveau"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -612,7 +617,7 @@ msgstr "s
 msgid "cannot open %s"
 msgstr "kan ikke åbne %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "for mange argumenter"
@@ -621,9 +626,9 @@ msgstr "for mange argumenter"
 msgid "Garbage command"
 msgstr "Ugyldig kommando"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Dette ligner ikke et tar-arkiv"
 
@@ -661,63 +666,63 @@ msgstr "Kan ikke verificere standard-ind/standard-ud arkiver"
 msgid "Archive is compressed. Use %s option"
 msgstr "Arkivet er komprimeret. Brug flaget %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Kan ikke opdatere komprimerede arkiver"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Ved begyndelsen af båndet, afslutter nu"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "For mange fejl, afslutter"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Poststørrelse = %lu blok"
 msgstr[1] "Poststørrelse = %lu blokke"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Ikke-justeret blok (%lu byte) i arkiv"
 msgstr[1] "Ikke-justerede blokke (%lu byte) i arkiv"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Kunne ikke gå tilbage i arkivfilen. Den kan være ulæselig uden -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek stoppede ikke på en postgrænse"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: indeholder ugyldigt delarkivs-nummer"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Overløb på delarkiv-nummer"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Klargør delarkiv nummer %d for %s og tryk retur: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Filafslutning hvor svar fra bruger var forventet"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ADVARSEL: Arkivet er ufuldstændigt"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -729,66 +734,66 @@ msgstr ""
 " q                   Afbryd tar\n"
 " y eller ny linje    Fortsæt handling\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !            Start en ny skál\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?            Udskriv denne liste\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Intet nyt delarkiv; afslutter.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Filnavn ikke angivet, prøv igen.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Ugyldigt inddata. Skriv ? for at få hjælp.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "'%s'-kommando mislykkedes"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s fortsættes muligvis i dette delarkiv: hoved indeholder afkortet navn"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s fortsætter ikke i dette delarkiv"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s har forkert størrelse (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Dette delarkiv er ude af rækkefølge (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arkivet er ikke navngivet til at passe med %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Delarkivet '%s' stemmer ikke overens med %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -796,510 +801,550 @@ msgstr ""
 "%s: filnavnet er for langt til at gemmes i hovedet på et GNU-flerdelarkiv, "
 "afkortes"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "skrivning stoppede ikke på en blokgrænse"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Kunne kun læse %lu af %lu byte"
 msgstr[1] "Kunne kun læse %lu af %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Indhold er forskelligt"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Uventet filslutning i arkivet"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Filtype er forskellig"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modus er forskellig"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Bruger-ID er forskellig"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gruppe-ID er forskellig"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Modificeringstid er forskellig"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Størrelse er forskellig"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ikke lænket til %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolsk lænke er forskellig"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Enhedsnummer er forskellig"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificér "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Ukendt filtype '%c', diff'et som en almindelig fil"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arkivet indeholder filnavne med indledende prefixer borttaget."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arkiv indeholder forældede base-64 hoveder"
+msgstr "Arkiv indeholder transformerede filnavne."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Verificering kan mislykkes med at finde originalfiler."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "VERIFICERINGSFEJL: %d ukendt hoved fundet"
 msgstr[1] "VERIFICERINGSFEJL: %d ukendte hoveder fundet"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "En enkeltstående nulblok ved %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: indeholder et cachekatalog-mærke %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "værdi %s ud af %s interval %s..%s; erstatter %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "værdi %s ud af %s interval %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Genererer negative oktale hoveder"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: filnavnet er for langt (max %d); ikke arkiveret"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: filnavnet er for langt (kan ikke opdeles); ikke arkiveret"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: lænkenavn er for langt; ikke arkiveret"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Filen formindsket med %s byte, fylder ud med nul"
 msgstr[1] "%s: Filen formindsket med %s byte, fylder ud med nuller"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: fil er på et andet filesystem; ikke arkiveret"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "indholdet ikke arkiveret"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Ukendt filtype; filen blev ignoreret"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Mangler lænke til %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: fil er uændret; ikke arkiveret"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: fil er det samme som arkivet; ikke arkiveret"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "katalog ikke arkiveret"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: Fil ændredes mens vi læste den"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: sokkel ignoreret"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: dør ignoreret"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Hopper til næste hoved"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Sletter ikke-hoved fra arkivet"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: usandsynligt gammelt tidsstempel %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: tidsstempel %s er %s sekunder ud i fremtiden"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Uventet uoverensstemmelse ved oprettelse af katalog"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Katalog omdøbt før dets status kunne blive udpakket"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Udpakker sammenhængende filer som almindelige filer"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Forsøger at udpakke symbolske lænker som hårde lænker"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Kan ikke udpakke -- filen er fortsat fra et andet delarkiv"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Uventet langt filnavnshoved"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Ukendt filtype '%c', udpakket som en almindelig fil"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Nuværende %s er nyere eller lige så gammel"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Kunne ikke sikkerhedskopiere denne fil"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Kan ikke omdøbe %s til %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Kataloget er blevet omdøbt fra %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Kataloget er blevet omdøbt"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Kataloget er nyt"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: fil er på et andet filesystem; ikke arkiveret"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloget er blevet omdøbt"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Ugyldigt tidsstempel"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Ugyldig modifikationstid (sekunder)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Ugyldig modifikationstid (nanosekunder)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Ugyldigt enhedsnummer"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Ugyldigt inode-nummer"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Felt for langt da øjebliksfil læstes"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Læsefejl i øjebliksfil"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Uventet filslutning i øjebliksfil"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Uventet feltværdi i øjebliksfil"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Postafslutning mangler"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Fejlagtigt inkrementelt filformat"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 "Formatversion for inkrementel sikkerhedskopiering understøttes ikke: "
 "%<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Fejlagtigt dumpkatalog: \"X\" duplikeret"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Fejlagtigt dumpkatalog: tomt navn i \"R\""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Fejlagtigt dumpkatalog: \"T\" foregås ikke af \"R\""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Fejlagtigt dumpkatalog: tomt navn i \"T\""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt slut på data"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Fejlagtigt dumpkatalog: \"X\" bruges aldrig"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "kan ikke oprette midlertidigt katalog ved brug af skabelonen %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Renser ikke katalog: kunne ikke tage status"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: fil er på et andet filesystem: sletter ikke"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Sletter %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "Kan ikke slette %s"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Udelader"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok med NULler **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Slut på fil **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Blank-tegn i hovedet hvor numerisk %s værdi var forventet"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "Oktal værdi %.*s i arkiv er udenfor %s interval; antager to-komplement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Oktal værdi %.*s i arkiv er udenfor %s interval"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arkiv indeholder forældede base-64 hoveder"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Base-64 streng med fortegn %s i arkiv er udenfor %s interval"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Base-256 værdi i arkiv er udenfor %s interval"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arkiv indeholder %.*s hvor numerisk %s-værdi var forventet"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Arkiv værdi %s er udenfor %s interval %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " lænke til %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " ukendt filtype %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Lang lænke--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Langt navn--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Delarkivhoved--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Fortsat ved byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Opretter katalog:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Kan ikke finde arbejdskatalog"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Omdøber %s til %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Kan ikke omdøbe til %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Omdøber %s tilbage til %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fil fjernet før vi læste den"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "underproces"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "mellemproces-kanal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "'%s'-kommando mislykkedes"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: filliste allerede læst"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "kan ikke sætte tid på \"%s\""
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnavnet som læstes indeholder nultegn"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Mønstermatchningstegn bruges i filnavne"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1307,56 +1352,57 @@ msgstr ""
 "Brug --wildcards for at aktivere mønstermatchning, eller --no-wildcards for "
 "at undertrykke denne advarsel"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Ikke fundet i arkivet"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Krævet forekomst blev ikke fundet i arkivet"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Arkivetiket stemmer ikke overrens"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "At bruge -C-flaget i en filliste er ikke tilladt med --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Kun ét -C-flag er tilladt med --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Flagene '-%s' and '-%s' vil begge have standard inddata"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: ugyldigt arkivformat"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU-funktioner forsøgt på inkompatibelt arkiv-format"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Ukendt citeringsstíl \"%s\". Prøv \"%s --quoting-style=help for at få en "
 "liste."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1372,9 +1418,10 @@ msgstr ""
 "  tar -tvf arkiv.tar         # Vís alle filer i arkiv.tar udførligt.\n"
 "  tar -xf arkiv.tar          # Udpak alle filer fra arkiv.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1396,81 +1443,81 @@ msgstr ""
 "                  ellers simple\n"
 "  never, simple   lav altid simple sikkerhedskopier\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Hovedoperationstilstand:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "vis indholdet af et arkiv"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "udpak filer fra et arkiv"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "opret et nyt arkiv"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "find forskelle mellem filsystemet og arkivet"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "tilføj filer til slutningen af et arkiv"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "tilføj kun filer som er nyere end dem i arkivet"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tilføj indholdet i tar-arkivfiler til et arkiv"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "fjern fra arkivet (ikke på magnetbånd!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "verificér arkivets delarkivnavn og afslut derefter."
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Ændringer til handling:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "håndtér filer med huller effektivt"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "ØVRE[.NEDRE]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "angiv hvilken formatversion som skal håndtere filer med huller (implicerer --"
 "sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "håndtér det gamle GNU-format for inkrementel sikkerhedskopiering"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "håndtér det nye GNU-format for inkrementel sikkerhedskopiering"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "dumpniveau for \"listed-incremental\" arkiv"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "afslut ikke med fejlslutstatus p.g.a. filer, der ikke kan læses"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1482,122 +1529,133 @@ msgstr ""
 "og når en liste af filer angives enten på kommandolinjen eller med flaget -"
 "T. Standardværdi for NUMMER er 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "arkivet er søgbart"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "arkivet er ikke søgbart"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "kontrollér ikke enhedsnumre når inkrementelle arkiver oprettes"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "kontrollér enhedsnumre når inkrementelle arkiver oprettes (standardværdi)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Kontrollér overskrivning:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "forsøg at verificere arkivet efter det blev skrevet"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "fjern filer efter de blev tilføjet til arkivet"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "erstat ikke eksisterende filer ved udpakning"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "erstat ikke eksisterende filer ved udpakning"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "erstat ikke eksisterende filer som er nyere end de, som findes i arkivet"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "overskriv eksisterende filer ved udpakning"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "fjern hver eksisterende fil inden en ny udpakkes oven i den"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "tøm kataloghierarkier før udpakning af katalog"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "bevar eksisterende katalogers metadata"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "overskriv metadata for eksisterende kataloger ved udpakning (standardværdi)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "overskriv eksisterende filer ved udpakning"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Vælg uddatastrøm:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "udpak filer til standard-ud"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KOMMANDO"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "udpak filer til standard input til et andet program"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ignorér barneprocessers slutstatus"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "behandl slutstatus fra barneprocesser bortset fra 0 som fejl"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Håndtering af filattributter:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "sæt NAVN som ejer for tilføjede filer"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "sæt NAVN som gruppe for tilføjede filer"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATO-ELLER-FIL"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "sæt modificeringstid på tilføjede filer fra DATO-ELLER-FIL"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "RETTIGHEDER"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "sæt (symbolske) RETTIGHEDER for tilføjede filer"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODE"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1607,11 +1665,11 @@ msgstr ""
 "læsning (METODE=\"replace\", standardværdi) eller ved at ikke sætte tiderne "
 "overhovedet (METODE=\"system\")"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "udpak ikke filers modificeringstid"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1619,20 +1677,20 @@ msgstr ""
 "forsøg at udpakke filer til samme ejere som i arkivet (standardværdi for "
 "superbrugeren)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "udpak filer med dig selv som ejer (standardværdi for almindelige brugere)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "brug altid tal for bruger- og gruppnavn"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "udpak information om filrettigheder (standardværdi for superbrugeren)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1640,15 +1698,16 @@ msgstr ""
 "anvend brugerens umask når rettigheder udpakkes fra arkivet (standardværdi "
 "for almindelige brugere)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "sortér navne som skal udpakkes så de passer med arkivet"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "samme som både -p og -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1656,139 +1715,180 @@ msgstr ""
 "udsæt sætning af modifikationstider og rettigheder på udpakkede kataloger "
 "til slutningen på arkivudpakningen."
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "fjern effekten af flaget --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Håndtering af filattributter:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Enhedsvalg og enhedsskift:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARKIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "brug arkivfil eller enhed ARKIV"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "arkivfilen er lokal selv om navnet har et kolon"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "brug KOMMANDO i stedet for rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "brug ekstern KOMMANDO i stedet for rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "angiv enhed og densitet"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "opret/vis/udpak et flerdelarkiv"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "skift bånd efter at NUMMER x 1024 byte er skrevet"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "kør kommandofil ved slutningen af hvert bånd (flaget -M sættes også)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "brug/opdatér delarkivnummer i FIL"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blokhåndtering:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOK"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOK x 512 byte per post"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "ANTAL byte per post, deleligt med 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignorér blok med kun nultegn (betyder filslut)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "lav nye blokke ved læsning (for 4.2BSD-datakanaler)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Valg af arkivformat:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "opret et arkiv med det angivne format"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT er et af følgende:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "gammelt V7-format"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU-format for tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "Format fra GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) format"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) format"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "samme som pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "samme som --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "samme som --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "nøgleord[[:]=værdi][,nøgleord[[:]=værdi]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "angiv nøgleord for pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKST"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1796,75 +1896,75 @@ msgstr ""
 "opret et arkiv med delarkivnavnet TEKST. Ved visning/udpakning er TEKST et "
 "skálmønster (\"globbing\") for delarkivnavn"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Komprimeringsflag:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "brug arkivsuffix til at bestemme komprimeringsprogrammet"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "brug ikke arkivsuffix til at bestemme komprimeringsprogrammet"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtrér med PROG (skal acceptere -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Lokalt filvalg:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "tilføj angivet FIL til arkivet (brugbart hvis FIL begynder med \"-\")"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "KATALOG"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "gå til arbejdskatalog KATALOG"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "hent navne at udpakke eller oprette fra FIL"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T læser navne adskilt med nultegn, deaktivér -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "fjern effekten af foregående --null-flag"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "afcitér filnavne som blev læst med -T (standardværdi)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "afcitér ikke filnavne som blev læst med -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MØNSTER"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "udelad filer som matcher MØNSTER"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "udelad filer som matcher mønster listet i FIL"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1872,91 +1972,93 @@ msgstr ""
 "udelad indholdet i kataloger som indeholder CACHEDIR.TAG, undtagen "
 "mærkefilen CACHEDIR.TAG selv"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "udelad alt i kataloger som indeholder CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "udelad kataloger som indeholder CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "udelad indholdet i kataloger som indeholder FIL, undtagen FIL selv"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "udelad alting i kataloger som indeholder FIL"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "udelad kataloger som indeholder FIL"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "udelad kataloger fra versionshåndteringssystemer"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "udelad sikkerhedskopier og låsefiler"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "gå ikke ned i kataloger automatisk"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "skift ikke filsystem når arkivet oprettes"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "gå rekursivt ned i kataloger (standardværdi)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "fjern ikke indledende '/' fra filnavne"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "følg symbolske lænker, arkivér filerne de peger på"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "følg hårde lænker, arkivér filerne de peger på"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "MEDLEMSNAVN"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "begynd med medlem MEDLEMSNAVN i arkivet"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "arkivér kun filer nyere end DATO-ELLER-FIL"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATO"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "sammenlign kun dato og tid for dataændringer"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "lav sikkerhedskopier før fjernelse, vælg type af versionshåndtering"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRENG"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1964,99 +2066,102 @@ msgstr ""
 "lav sikkerhedskopier før fjernelse, erstat den normale sikkerhedskopiendelse "
 "(\"~\" hvis ikke ændret med miljøvariablen SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Filnavnstransformationer:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "fjern ANTAL indledende komponenter fra filnavne ved udpakning"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "UDTRYK"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "brug sed's erstatnings-UDTRYK for at transformere filnavne"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Flag for match af filnavne (påvirker både ekskluderings- og "
 "inkluderingsmønstre):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "ingen forskel på store og små bogstaver"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "mønstre skal matche med begyndelsen på filnavne"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "mønstre matches efter \"/\" i filnavne (standardværdi ved ekskludering)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "match store og små bogstaver forskelligt (standardværdi)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "brug jokertegn (standardværdi for ekskludering)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "ordret strengsammenligning"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "jokertegn matcher ikke \"/\""
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "jokertegn matcher \"/\" (standardværdi for ekskludering)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informativ udskrift:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "vís navne på alle filer som bliver behandlet"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "NØGLEORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "advarselskontrol"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "vis forløbsmeddelelser efter hver gruppe af ANTAL poster (standardværdi 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "HANDLING"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "udfør HANDLING ved hvert kontrolpunkt"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "vis en meddelelse hvis ikke alle lænker bliver arkiveret"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2068,31 +2173,35 @@ msgstr ""
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Navne uden SIG-præfix "
 "accepteres også."
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "vis filers modificeringstid i UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "vis fuld opløsning på filtider"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "send informative meddelelser til FIL"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "vis bloknummer i arkivet for hver meddelelse"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "bed om bekræftelse for hver handling"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "vis standardværdier for \"tar\""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2100,31 +2209,31 @@ msgstr ""
 "ved visning eller udpakning vises hvert katalog som ikke matcher "
 "søgekriterium"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "vis fil- eller arkivnavne efter transformering"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STÍL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "sæt citatstíl for navne. Se nedenfor for gyldige værdier på STÍL."
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "citér også tegn i STRENG"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "citér ikke tegn fra STRENG"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Kompatibilitetsflag:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2132,63 +2241,56 @@ msgstr ""
 "ved oprettelse det samme som --old-archive; ved udpakning det samme som --no-"
 "same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Andre flag:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "begræns brugen af potentielt farlige flag"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Du kan ikke angive mere end et af '-Acdtrux' eller `--test-label' flagene"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Konflikt i komprimeringsflag"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Ukendt signalnavn: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Tidsfil blev ikke fundet"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Erstatter %s for ukendt dato-format %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Flag %s: Behandler tidsangivelse \"%s\" som %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: filliste allerede læst"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: filnavnet som læstes indeholder nultegn"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtrér arkivet igennem %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Gyldige argumenter til flaget --quoting-style er:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2196,51 +2298,48 @@ msgstr ""
 "\n"
 "*Denne* tar har standardværdierne:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ugyldig ejer"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Ugyldig blokfaktor"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Ugyldig båndlængde"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Fejlagtig værdi for inkrementelt niveau"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mere end én grænse-dato"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Ugyldig version for filer med huller"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve=\"system\" understøttes ikke på denne platform"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint-værdien er ikke et heltal"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Ugyldig gruppe"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Ugyldig modus angivet i flag"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Ugyldigt nummer"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Ugyldig ejer"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2248,121 +2347,151 @@ msgstr ""
 "Flaget --preserve er forældet, brug --preserve-permissions --preserve-order "
 "i stedet"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Ugyldig poststørrelse"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Poststørrelse skal være deleligt med %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Ugyldigt antal elementer"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Kun ét --to-command flag tilladt"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Ugyldig densitetsangivelse: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Ukendt densitet: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr ""
 "Flagene '-[0-7][lmh]' understøttes ikke af *denne* implementering af tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FIL]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Gammelt flag '%c' behøver et argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence er meningsløs uden en filliste"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence kan ikke bruges i den ønskede operationstilstand."
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Ved flere arkivfiler kræves '-M'-flaget"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Kan ikke kombinere --listed-incremental med --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level er meningsløs uden --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: etiket på delarkiv er for lang (grænse er %lu byte)"
 msgstr[1] "%s: etiket på delarkiv er for lang (grænse er %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Kan ikke verificere arkiv som går over flere delarkiver"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Kan ikke verificere komprimerede arkiver"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Mønster %s kan ikke bruges"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Kan ikke bruge komprimerede arkiver som går over flere delarkiver"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Kan ikke sammenlægge (konkatenere) komprimerede arkiver"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option kan kun bruges på POSIX-arkiver"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option kan kun bruges på POSIX-arkiver"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option kan kun bruges på POSIX-arkiver"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option kan kun bruges på POSIX-arkiver"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Mønster %s kan ikke bruges"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Delarkivlængden kan ikke være mindre end poststørrelsen"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order er ikke kompatibel med --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Nægter stædigt at oprette et tomt arkiv"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Flagene '-Aru' er inkompatible med '-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Du skal angive et af '-Acdtrux' eller '--test-label' flagene"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Afslutter med fejlstatus på grund af tidligere fejl"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2374,114 +2503,110 @@ msgstr[1] "%s: Filen formindskedes med %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Nøgleordet %s er ukendt eller ikke implementeret endnu"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Tidsstempel udenfor tilladt interval"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Mønster %s kan ikke bruges"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Nøgleord %s kan ikke erstattes"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Fejlagtigt udvidet hoved: længden mangles"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Længde på udvidet hoved er udenfor gyldigt interval"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Længde %*s på udvidet hoved er udenfor gyldigt interval"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Fejlagtigt udvidet hoved: blanktegn efter længdangivelse mangles"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Fejlagtigt udvidet hoved: ligmedtegn mangles"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Fejlagtigt udvidet hoved: nylinje mangles"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ignorerer nøgleord \"%s\" i udvidet hoved"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Genereret nøgle/værdi-par er for langt (nøgle=%s, længde=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Udvidet hoved %s=%s er udenfor intervallet %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Fejlagtigt udvidet hoved: ugyldig %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Fejlagtigt udvidet hoved: for mange %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: uventet skilletegn %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: ulige antal værdier"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: ugyldig tidsudløb"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: ukendt kontrolpunktshandling"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "skrive"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "læse"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Skrivekontrolpunkt %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Læsekontrolpunkt %u"
@@ -2625,7 +2750,7 @@ msgstr "Nummer udenfor tilladt interval: %s"
 msgid "Negative size: %s"
 msgstr "Negativ størrelse: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "status (stat) kunne ikke tages på %s"
@@ -2654,8 +2779,8 @@ msgstr "Ukendt datoformat"
 msgid "[ARGS...]"
 msgstr "[ARGUMENTER...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "kan ikke åbne '%s'"
@@ -2669,66 +2794,97 @@ msgstr "Kan ikke s
 msgid "file name contains null character"
 msgstr "filnavnet indeholder nultegn"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr "kan ikke oprette filer med huller til standard-ud, brug flaget --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "fejlagtig maske (nær \"%s\")"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Ukendt felt '%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "kan ikke sætte tid på \"%s\""
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "kan ikke fjerne (unlink) \"%s\""
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "'%s'-kommando mislykkedes"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "kan ikke fjerne (unlink) \"%s\""
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Kommandoen afsluttedes uden fejl\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Kommandoen mislykkedes med slutstatus %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Kommandoen termineredes af signal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Kommandoen stoppedes af signal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Kommandoen dumpede hukommelsen\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Kommandoen afsluttedes\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat kræver filnavne"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Kan ikke finde arbejdskatalog"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "sortér navne som skal udpakkes så de passer med arkivet"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Felt for langt da øjebliksfil læstes"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Læsefejl i øjebliksfil"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Uventet feltværdi i øjebliksfil"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Længde på udvidet hoved er udenfor gyldigt interval"
+
+#~ msgid "Invalid group"
+#~ msgstr "Ugyldig gruppe"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Katalog fjernet før vi læste det"
 
index aac9e352fe7912744e2b8e74338fbc0f651e41f0..d32c51a631de802aa9e41282245556ba58c0ab25 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 1e482237ec64264a40896e0fe80d6983d58af975..412fa782eac4d7ba56aa4d2d3b5579272ed8704e 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -4,15 +4,15 @@
 # Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995?
 # Karl Eichwalder <ke@ke.central.de>, 1996
 # Christian Kirsch <ck@held.mind.de>, 1996, 2001
-# Michael Piefel <piefel@informatik.hu-berlin.de>, 2003, 2006, 2007, 2008, 2009, 2010
+# Michael Piefel <piefel@informatik.hu-berlin.de>, 2003, 2006, 2007, 2008, 2009, 2010, 2011
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.24\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-10-26 21:35+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-14 21:35+0100\n"
 "Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -32,36 +32,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "mehrdeutiges Argument %s für %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Zulässige Argumente sind:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s-Wert ist kleiner oder gleich %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT-Parameter benötigt einen Wert"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT-Parameter muss positiv sein"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: unbekannter ARGP_HELP_FMT-Parameter"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Müll in ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -69,29 +68,29 @@ msgstr ""
 "Erforderliche oder optionale Argumente für lange Optionen sind ebenso "
 "erforderlich bzw. optional für die entsprechenden Kurzoptionen."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Aufruf:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " oder: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPTION...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "„%s --help“ oder „%s --usage“ gibt weitere Informationen.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Unbekannter Systemfehler."
 
@@ -103,7 +102,7 @@ msgstr "diese Hilfe ausgeben"
 msgid "give a short usage message"
 msgstr "eine kurze Benutzungsübersicht ausgeben"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAME"
@@ -124,17 +123,16 @@ msgstr "für SEK Sekunden hängenbleiben (Voreinst.: 3600)"
 msgid "print program version"
 msgstr "Programmversion ausgeben"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Zu viele Argumente\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?"
 
@@ -142,62 +140,62 @@ msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?"
 msgid "write error"
 msgstr "Schreibfehler"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: Option „%s“ ist mehrdeutig\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: Option „--%s“ erlaubt keinen Parameter\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: Option „%c%s“ erlaubt keinen Parameter\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: Option „--%s“ benötigt einen Parameter\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: Unbekannte Option „--%s“\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: Unbekannte Option „%c%s“\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: Ungültige Option -- „%c“\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: Option benötigt einen Parameter -- „%c“.\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: Option „-W %s“ erlaubt keinen Parameter\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: Option „-W %s“ benötigt einen Parameter\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "Kein Speicher mehr"
 
@@ -213,28 +211,30 @@ msgstr "Konnte nicht zu ursprünglichem Arbeitsverzeichnis zurückkehren."
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "„"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "“"
 
@@ -244,7 +244,7 @@ msgstr "“"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yYjJ]"
 
@@ -254,7 +254,7 @@ msgstr "^[yYjJ]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -438,7 +438,7 @@ msgstr "Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>\n"
 #: lib/paxerror.c:58 lib/paxerror.c:71
 #, c-format
 msgid "%s: Cannot %s"
-msgstr "%s: Kann %s nicht ausführen"
+msgstr "%s: Funktion %s fehlgeschlagen"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -447,7 +447,7 @@ msgstr "%s: Kann %s nicht ausführen"
 #: lib/paxerror.c:84
 #, c-format
 msgid "%s: Warning: Cannot %s"
-msgstr "%s: Warnung: Kann %s nicht ausführen"
+msgstr "%s: Warnung: Funktion %s fehlgeschlagen"
 
 #: lib/paxerror.c:93
 #, c-format
@@ -538,7 +538,12 @@ msgstr "Standardausgabe"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Kann nicht mit %s verbinden: Auflösung fehlgeschlagen"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Kann Remote-Shell nicht ausführen."
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Kann Remote-Shell nicht ausführen."
@@ -588,8 +593,8 @@ msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 "Ein Bandlaufwerk bearbeiten, dabei Befehle von entferntem Prozess annehmen"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "ZAHL"
 
@@ -597,8 +602,8 @@ msgstr "ZAHL"
 msgid "set debug level"
 msgstr "Debug-Level setzen"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -613,7 +618,7 @@ msgstr "Dateinamen für Debug-Ausschriften setzen"
 msgid "cannot open %s"
 msgstr "kann „%s“ nicht öffnen"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "zu viele Argumente"
@@ -622,9 +627,9 @@ msgstr "zu viele Argumente"
 msgid "Garbage command"
 msgstr "Ungültiger Befehl"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Das sieht nicht wie ein „tar“-Archiv aus."
 
@@ -662,63 +667,63 @@ msgstr "Kann Archive auf Standard-Ein-/Ausgabe nicht prüfen."
 msgid "Archive is compressed. Use %s option"
 msgstr "Archiv ist komprimiert. Benutzen Sie die Option %s."
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Kann komprimierte Archive nicht aktualisieren"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Am Anfang des Mediums, beende jetzt."
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Zu viele Fehler, beende."
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Recordgröße = %lu Block"
 msgstr[1] "Recordgröße = %lu Blöcke"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Falsch ausgerichteter Block (ein Byte) im Archiv."
 msgstr[1] "Falsch ausgerichteter Block (%lu Bytes) im Archiv."
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Kann Archiv-Datei nicht zurücksetzen; könnte ohne „-i“ unlesbar sein."
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "„rmtlseek“ nicht an Recordgrenze angehalten"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: enthält ungültige Teil-Nummer."
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Teil-Nummer zu groß."
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Medium #%d für %s einlegen und Eingabetaste drücken: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Dateiende gefunden, Benutzereingabe erwartet"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "WARNUNG: Archiv unvollständig"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -730,67 +735,67 @@ msgstr ""
 " q             „tar“ abbrechen\n"
 " j oder Enter  fortfahren\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Shell in einem Unterprozess starten\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             diese Liste ausgeben\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Kein neues Medium; halte an.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Dateiname nicht angegeben. Versuchen Sie es noch einmal.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Ungültige Eingabe. Geben Sie „?“ für Hilfe ein.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "„%s“-Befehl gescheitert."
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s wird möglicherweise auf diesem Teil fortgesetzt: Kopf enthält "
 "abgeschnittenen Namen."
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "Dieser Teil ist keine Fortsetzung von %s."
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s hat die falsche Größe (%s != %s + %s)."
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Dieser Teil ist nicht an der Reihe (%s - %s != %s)."
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Kennzeichnung des Archivs passt nicht zu „%s“."
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Teil „%s“ passt nicht zu „%s“."
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -798,458 +803,482 @@ msgstr ""
 "%s: Dateiname zu lang, um in einem GNU-Mehrteil-Kopf abgelegt werden zu "
 "können, abgeschnitten"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "Schreiben endete nicht an Blockgrenze"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Konnte nur %lu von %lu Byte lesen"
 msgstr[1] "Konnte nur %lu von %lu Bytes lesen"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Unterschiedliche Inhalte"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Unerwartetes Dateiende im Archiv."
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Unterschiedliche Dateitypen "
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modus ist unterschiedlich"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Benutzerkennung ist unterschiedlich"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gruppenkennung ist unterschiedlich"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Änderungszeit ist unterschiedlich"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Größe ist unterschiedlich"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Nicht mit „%s“ verknüpft"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolische Verknüpfung ist unterschiedlich"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Unterschiedliche Gerätenummern"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Prüfe "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Unbekannter Dateityp „%c“, Differenz wie für eine normale Datei."
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Archiv enthält Dateinamen, deren Präfixe entfernt wurden."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Archiv enthält veraltete Base64-Kopfteile"
+msgstr "Archiv enthält transformierte Dateinamen."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Die Überprüfung findet möglicherweise die Originaldateien nicht."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "FEHLER BEI PRÜFUNG: %d ungültiger Kopfteil erkannt."
 msgstr[1] "FEHLER BEI PRÜFUNG: %d ungültige Kopfteile erkannt."
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Ein einzelner Nullblock bei %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: enthält eine „Cache-Verzeichnis“-Markierung %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "Wert %s außerhalb des %s-Bereich %s..%s; ersetze durch %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "Wert %s außerhalb des %s-Bereichs %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Erzeuge negative oktale Kopfteile"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: Dateiname ist zu lang (max. %d); nicht gesichert."
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: Dateiname ist zu lang (kann nicht aufgeteilt werden); nicht gesichert."
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: Verknüpfungsname ist zu lang; nicht gesichert."
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "Datei %s ist um ein Byte geschrumpft, fülle mit Null auf."
 msgstr[1] "Datei %s ist um %s Bytes geschrumpft, fülle mit Nullen auf."
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "Datei %s liegt auf einem anderen Dateisystem; nicht gesichert."
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "Inhalt nicht gesichert"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Unbekannter Dateityp; Datei ignoriert."
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Fehlende Verknüpfungen zu %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "Datei %s ist unverändert; nicht gesichert."
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s ist das Archiv; nicht gesichert."
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "Verzeichnis nicht gesichert"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: Datei hat sich beim Lesen geändert."
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: Socket ignoriert"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: Klappe ignoriert"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Springe zum nächsten Kopfteil."
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Lösche nicht-Kopfteil aus dem Archiv"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: unplausibel alter Zeitstempel %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: Zeitstempel %s liegt %s Sekunden in der Zukunft."
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Unerwarteter Inkonsitenz beim Erstellen des Verzeichnisses."
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Verzeichnis umbenannt bevor sein Status ermittelt werden konnte"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extrahiere zusammenhängende Dateien („contiguous files“) als reguläre."
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 "Versuche symbolische Verknüpfungen als harte Verknüpfungen herauszuholen."
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr ""
 "Kann „%s“ nicht herausholen – Datei ist Fortsetzung eines anderen Teils."
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Unerwarteter Kopfteil mit langem Namen"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Unbekannter Dateityp „%c“, wie normale Datei extrahiert."
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Aktuelles %s ist neuer oder hat dasselbe Alter."
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Konnte keine Sicherheitskopie von dieser Datei erstellen"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Kann %s nicht in %s umbenennen."
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Verzeichnis wurde von „%s“ umbenannt."
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Verzeichnis wurde umbenannt."
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "Verzeichnis „%s“ ist neu."
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "Datei %s liegt auf einem anderen Dateisystem; nicht gesichert."
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Verzeichnis wurde umbenannt."
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Ungültiger Zeitstempel"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Ungültige Änderungszeit (Sekunden)."
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Ungültige Änderungszeit (Nanosekunden)."
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Ungültige Gerätenummer"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Ungültige Inode-Nummer"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Feld zu lang beim Lesen der Schnappschussdatei"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Lesefehler in Schnappschussdatei"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Unerwartetes Dateiende im Schnappschussdatei."
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Unerwarteter Feldwert in Schnappschussdatei"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Fehlender Record-Abschluss"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "unzulässiges inkrementelles Dateiformat"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Nicht unterstützte Version des inkrementellen Formats: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber %#3o gefunden"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ dupliziert"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „R“"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Fehlgeformtes Verzeichnis für Dump: „T“ folgt nicht „R“"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „T“"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber Ende der Daten "
 "gefunden"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ nie benutzt"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Kann kein temporäres Verzeichnis mit der Schablone %s anlegen"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Entferne Verzeichnis nicht: kann nicht zugreifen"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: Verzeichnis liegt auf einem anderen Dateisystem: entferne nicht."
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Lösche %s.\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Kann nicht entfernen."
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Ausgelassen"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "Block %s: ** Block aus NULlen **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "Block %s: ** Ende der Datei **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "Block %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Leerzeichen im Kopfteil, wo numerische %s-Werte stehen sollten."
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs, nehme Zweierkomplement an?"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Archiv enthält veraltete Base64-Kopfteile"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Base64-Text %s außerhalb des %s-Bereichs."
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Base-256-Wert ist außerhalb des %s-Bereichs."
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Archiv enthält „%.*s“ wo numerische %s-Werte stehen sollten."
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Wert %s außerhalb des %s-Bereichs %s..%s."
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " Verknüpfung zu %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " unbekannter Dateityp %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "––Lange Verknüpfung––\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "––Langer Name––\n"
@@ -1257,57 +1286,73 @@ msgstr "––Langer Name––\n"
 # Alte Üs: Band Kopfteil.  Kann diese Meldung auch bei Disketten
 # ausgegeben werden?  Dann kann man ja nicht "Band" sagen; am besten
 # einfach "Volume" lassen. ke.
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "––Vorspann des Teils––\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "––Fortgesetzt bei Byte %s––\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Erzeuge Verzeichnis:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Kann Arbeitsverzeichnis nicht ermitteln."
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Benenne „%s“ in „%s“ um.\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Kann nicht in %s umbenennen"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Benenne „%s“ zurück in „%s“.\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Datei gelöscht, bevor sie gelesen wurde."
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "Kindprozess"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "Interprocess-Kanal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "„%s“-Befehl gescheitert."
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: Dateiliste schon gelesen"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "kann an „%s“ keine Zeit setzen"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Zeichen für Musterüberdeckung im Dateinamen benutzt"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1315,55 +1360,56 @@ msgstr ""
 "Benutzen Sie --wildcards, um Musterüberdeckung zu ermöglichen oder\n"
 "--no-wildcards, um diese Warnung zu unterdrücken."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Nicht im Archiv gefunden."
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Erforderliches Auftreten nicht im Archiv gefunden."
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Kennzeichnung des Archivs passt nicht"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr "Option -C in Dateiliste ist nicht erlaubt mit --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "In --listed-incremental ist nur eine Option -C erlaubt"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Die beiden Optionen „-%s“ und „-%s“ verlangen Standard-Eingabe."
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Ungültiges Archivformat"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU-Erweiterungen bei einem inkompatiblen Archiv-Format verlangt."
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Unbekannter Zitatstil „%s“. Versuchen Sie „%s --quoting-style=help“ für eine "
 "Liste."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1380,9 +1426,10 @@ msgstr ""
 "  tar -tvf archiv.tar         # Inhalt von archiv.tar ausführlich anzeigen\n"
 "  tar -xf archiv.tar          # alle Dateien aus archiv.tar extrahieren\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1404,79 +1451,79 @@ msgstr ""
 "                    vorhanden sind, sonst einfache\n"
 "  never, simple   immer einfache Sicherheitskopien\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Hauptsächlicher Arbeitsmodus:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "den Inhalt eines Archivs auflisten"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "Dateien aus einem Archiv extrahieren"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "ein neues Archiv anlegen"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "Unterschiede zwischen Archiv und Dateisystem suchen"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "Dateien hinten an das Archiv anfügen"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "nur Dateien anfügen, die neuer als die Kopie im Archiv sind"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tar-Dateien an ein Archiv anfügen"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "aus dem Archiv löschen (nicht auf Magnetband!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "den Archiv-Teil-Namen überprüfen und beenden"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Feineinstellungen:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "löchrige Dateien („sparse files“) effizient behandeln"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "zu benutzende Version des Sparse-Formats setzen (impliziert --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "inkrementelle Sicherung im alten GNU-Format"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "inkrementelle Sicherung im neuen GNU-Format"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "Niveau für erzeugte Archive mit --listed-incremental ausgeben"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "kein Abbruch mit Existatus!=0 bei unlesbaren Dateien"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1488,125 +1535,136 @@ msgstr ""
 "list und wenn eine Dateiliste entweder auf der Kommandozeile oder mittels "
 "der Option -T angegeben wurde benutzt werden; Zahl ist standardmäßig 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "im Archiv kann positioniert werden"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "im Archiv kann nicht positioniert werden"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "Gerätenummer bei Erstellung inkrementeller Archive nicht prüfen"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "Gerätenummer bei Erstellung inkrementeller Archive prüfen (Voreinstellung)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Steuerung des Überschreibens:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "Archiv nach dem Schreiben prüfen"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "Dateien nach dem Hinzufügen zum Archiv löschen"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "vorhandene Dateien beim Extrahieren nicht überschreiben"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "vorhandene Dateien beim Extrahieren nicht überschreiben"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "vorhandene Dateien, die neuer als die Archivkopie sind, nicht überschreiben"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "vorhandene Dateien beim Extrahieren überschreiben"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "zu überschreibende Dateien vor dem Extrahieren löschen"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 "Verzeichnishierarchien rekursiv vor dem Extrahieren eines Verzeichnisses "
 "löschen"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "Metadaten existierender Verzeichnisse erhalten"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "Metadaten existierender Verzeichnisse beim Extrahieren überschreiben "
 "(Voreinstellung)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "vorhandene Dateien beim Extrahieren überschreiben"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Wahl des Ausgabestroms:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "Dateien auf die Standardausgabe extrahieren"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "BEFEHL"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "extrahierte Dateien an ein anderes Programm weiterreichen"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "Exitstatus der Kinder ignorieren"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "Exitstatus!=0 von Kindern als Fehler ansehen"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Behandlung der Datei-Attribute:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "Eigentümer für hinzugefügte Dateien auf NAME setzen"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "Gruppe für hinzugefügte Dateien auf NAME setzen"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATUM-ODER-DATEI"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "Änderungszeit für hinzugefügte Datei aus DATUM-ODER-DATEI beziehen"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ÄNDERUNGEN"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "den (symbolischen) Modus ÄNDERUNGEN für hinzugefügte Dateien erzwingen"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METHODE"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1617,11 +1675,11 @@ msgstr ""
 "oder dadurch, dass die Zeiten gar nicht erst neu gesetzt werden (METHODE="
 "„system“)"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "die geänderte Zeit nicht extrahieren"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1629,23 +1687,23 @@ msgstr ""
 "versuchen, die Dateien mit denselben Eigentumsverhältnisse zu extrahieren "
 "(für den Admin ist dies die Voreinstellung)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "Dateien als aktueller Nutzer extrahieren (für normale Nutzer die "
 "Voreinstellung)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "immer Zahlen für Nutzer-/Gruppennamen verwenden"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "Informationen über Dateizugriffsrechte mit extrahieren (Voreinstellung für "
 "Root)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1653,15 +1711,16 @@ msgstr ""
 "die Umask des Nutzers anwenden beim Extrahieren von Dateizugriffsrechte aus "
 "dem Archiv (Voreinstellung für normale Nutzer)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "zu entpackende Dateinamen wie im Archiv sortieren"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "wie -p und -s zusammen"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1669,139 +1728,180 @@ msgstr ""
 "das Setzen von Zugriffszeiten und Rechten von extrahierten Verzeichnissen "
 "verschieben bis zum Ende des Entpackens"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "den Effekt von --delay-directory-restore aufheben"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Behandlung der Datei-Attribute:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Geräteauswahl und -umschaltung:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "Archivdatei oder Gerät ARCHIV benutzen"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "Archivdatei ist lokal, auch wenn der Name einen Doppelpunkt enthält"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "statt „rmt“ den gegebenen BEFEHL benutzen"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "statt „rsh“ den entfernten BEFEHL benutzen"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "Laufwerk und Schreibdichte angeben"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "mehrteiliges Archiv anlegen/listen/extrahieren"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "Medium wechseln, wenn ZAHL × 1024 Bytes geschrieben wurden"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "am Ende jedes Mediums das Skript ausführen (impliziert -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "Teil-Nummer in DATEI benutzen/aktualisieren"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blockung des Gerätes:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLÖCKE"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLÖCKE × 512 Bytes pro Record"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "ZAHL Bytes pro Record, Vielfaches von 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "Blöcke mit Nullen im Archiv ignorieren (heißt EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "erneut Blocken beim Lesen (für 4.2BSD‐Pipes)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Auswahl des Archiv-Formats:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "Archiv mit dem gegebenen Format anlegen"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT ist eines der folgenden:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "altes V7-tar-Format"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU-Format wie mit tar <=1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU-tar-1.13.x-Format"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "Format von POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "Format von POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "wie pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "wie --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "wie --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "Schlüsselwort[[:]=Wert][,Schlüsselwort[[:]=Wert]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "Pax-Schlüsselwörter steuern"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1809,78 +1909,78 @@ msgstr ""
 "Archiv mit dem Teilnamen TEXT anlegen; beim Listen/Extrahieren, TEXT als "
 "Muster für den Teilnamen benutzen"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Kompressionsoptionen:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "Archiverweiterung nehmen, um Kompressionsprogramm zu bestimmen"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "Archiverweiterung nicht nehmen, um Kompressionsprogramm zu bestimmen"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "durch PROG filten (muss -d akzeptieren)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Auswahl der lokalen Dateien:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "angegebene Datei zum Archiv hinzufügen (nützlich, wenn Datei mit einem "
 "Strich beginnt)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "VERZEICHNIS"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "zu VERZEICHNIS wechseln"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "Namen der zu bearbeitenden Dateien aus DATEI lesen"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T liest null-terminierte Namen, verbiete -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "die Wirkung der vorangehenden Option --null aufheben"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "Dateinamen, die mit -T gelesen werden, von Zitat befreien (Voreinstellung)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "Dateinamen, die mit -T gelesen werden, nicht von Zitat befreien"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MUSTER"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "Dateien auslassen, auf die MUSTER passt"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "Dateien auslassen, auf die in DATEI angegebene Muster passen"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1888,97 +1988,99 @@ msgstr ""
 "Inhalt von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten, außer der "
 "Markierungsdatei selbst"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 "alles unterhalb von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "Verzeichnisse auslassen, die CACHEDIR.TAG enthalten"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "Inhalt von Verzeichnissen auslassen, die DATEI enthalten, außer DATEI selbst"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "alles unterhalb von Verzeichnissen auslassen, die DATEI enthalten"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "Verzeichnisse auslassen, die DATEI enthalten"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "Verzeichnisse von Versionskontrollsystemen auslassen"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "Backup- und Lock-Dateien ausschließen"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "automatischen Abstieg in Vezeichnisse vermeiden"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "beim Anlegen eines Archivs im lokalen Dateisystem bleiben"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "in Verzeichnisse absteigen (Voreinstellung)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "führende „/“-Zeichen in den Dateinamen erhalten"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "symbolischen Verknüpfungen folgen; die Dateien archivieren und abspeichern, "
 "auf die sie zeigen"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "harten Verknüpfungen folgen; die Dateien archivieren und abspeichern, auf "
 "die sie sich beziehen"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "ELEMENT-NAME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "mit ELEMENT-NAME im Archiv beginnen"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "nur Dateien ablegen, die neuer als DATUM-ODER-DATEI sind"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "Datum und Zeit nur überprüfen, wenn Daten geändert wurden"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROLLE"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "Sicherung vor dem Entfernen, wähle Versions-KONTROLLE"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "ZEICHENKETTE"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1986,98 +2088,101 @@ msgstr ""
 "Sicherung vor dem Entfernen, übliches Suffix ersetzen („~“, wenn nicht durch "
 "Umgebungsvariable SIMPLE_BACKUP_SUFFIX anders gesetzt)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Dateinamentransformationen:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "ZAHL führende Komponenten beim Extrahieren von Dateinamen entfernen"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "AUSDRUCK"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "den sed-AUSDRUCK zur Dateinamentransformation benutzen"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Dateinamenauswahloptionen (sowohl für ein- als auch ausschließende Muster):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "Groß-/Kleinschreibung ignorieren"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "Muster am Dateinamensanfang ausrichten"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "Muster passen nach jedem „/“ (Voreinstellung beim Ausschluss)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "Groß-/Kleinschreibung beachten (Voreinstellung)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "Muster benutzen (Voreinstellung für Ausschluss)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "Zeichenketten sind buchstabengetreu"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "Jokerzeichen passen nicht auf „/“"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "Jokerzeichen passen auf „/“ (Voreinstellung für Ausschluss)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informationen:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "bearbeitete Dateien ausführlich listen"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "SCHLÜSSELWORT"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "Warnungssteuerung"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "Fortschrittsnachrichten bei jedem ZAHLten Record (Voreinstellung 10) anzeigen"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "AKTION"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "AKTION bei jedem Kontrollpunkt ausführen"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 "eine Nachricht ausgeben, wenn nicht alle Verknüpfungen abgespeichert werden"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2089,31 +2194,35 @@ msgstr ""
 "wird; erlaubte Signale sind: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 und SIGUSR2; "
 "die Namen ohne das Präfix SIG sind auch erlaubt"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "Dateiänderungszeiten in UTC anzeigen"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "Dateizeit in voller Auflösung anzeigen"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "ausführliche Ausgabe in DATEI schreiben"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "bei jeder Nachricht die Blocknummer innerhalb des Archivs mit anzeigen"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "für jede Aktion um Bestätigung bitten"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "Voreinstellungen von tar anzeigen"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2121,93 +2230,86 @@ msgstr ""
 "beim Listen oder Extrahieren jedes Verzeichnis auflisten, dass nicht den "
 "Suchkriterien entspricht"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "Datei- oder Archivnamen nach der Transformation anzeigen"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STIL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "Zitatstil setzen; siehe unten für gültige STIL-Werte"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "zusätzliche Zeichen aus ZEICHENKETTE zitieren"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "Zeichen aus ZEICHENKETTE nicht zitieren"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Kompatibilitätsoptionen:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "beim Anlegen wie --old-archive; beim Extrahieren wie --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Weitere Optionen:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "möglicherweise schädliche Optionen deaktivieren"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Von den Optionen „-Acdtrux“ oder „--test-label“ ist jeweils nur eine erlaubt"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Kompressionsoptionen schließen sich gegenseitig aus."
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Unbekannter Signalname: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Datumsdatei nicht gefunden"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Ersetze %s für unbekanntes Datumsformat %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Option %s: Behandle Datum „%s“ als %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: Dateiliste schon gelesen"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "Archiv durch %s filtern"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Gültige Argumente für die Option --quoting-style sind:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2215,51 +2317,48 @@ msgstr ""
 "\n"
 "*Dieses* „tar“ hat als Voreinstellung:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ungültiger Benutzer"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Ungültige Blockgröße"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Ungültige Bandlänge"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "unzulässiger Wert für inkrementelles Niveau"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mehr als ein Datum angegeben."
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Ungültiger Wert für Sparse-Version (für löchrige Dateien)"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' wird auf dieser Plattform nicht unterstützt"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "Wert für --checkpoint ist keine ganze Zahl"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Ungültige Gruppe"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Ungültige Zugriffsrechte angegeben."
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Ungültige Zahl"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Ungültiger Benutzer"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2267,121 +2366,151 @@ msgstr ""
 "Die Option --preserve ist veraltet, benutzen Sie stattdessen --preserve-"
 "permissions --preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Ungültiger Wert für Recordgröße."
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Die Recordgröße muss ein Vielfaches von %d sein."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Ungültige Elementanzahl"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Nur eine Option --to-command erlaubt"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Fehlgeformtes Dichteargument: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Unbekannte Dicht: „%c“"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Die Optionen „-[0-7][lmh]“ unterstützt *dieses* „tar“ nicht."
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[DATEI]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Die alte Option „%c“ benötigt einen Parameter."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence ist ohne Dateiliste bedeutungslos"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 "--occurrence kann im angeforderten Operationsmodus nicht benutzt werden"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Mehrere Archivdateien verlangen die Option „-M“."
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental kann nicht mit --newer benutzt werden"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level ist ohne --listed-incremental bedeutungslos"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Band-Nummer ist zu lang (Maximum ist ein Byte)."
 msgstr[1] "%s: Band-Nummer ist zu lang (Maximum ist %lu Bytes)."
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Kann mehrteilige Archive nicht prüfen."
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Kann komprimierte Archive nicht prüfen"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Muster %s kann nicht benutzt werden"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Kann keine mehrteiligen komprimierten Archive verwenden."
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Kann komprimierte Archive nicht aneinanderhängen"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Muster %s kann nicht benutzt werden"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Teillänge kann nicht unter der Recordgröße liegen"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Anlegen eines leeren Archivs wird feige verweigert."
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Die Optionen „-Aru“ sind nicht kompatibel mit „-f -“."
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Eine der Optionen „-Acdtrux“ oder „--test-label“ ist notwendig."
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Beende mit Fehlerstatus aufgrund vorheriger Fehler"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2393,51 +2522,47 @@ msgstr[1] "%s: Datei ist um %s Bytes geschrumpft."
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Schlüsselwort %s ist unbekannt oder noch nicht implementiert"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Zeitstempel außerhalb des zulässigen Bereichs"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Muster %s kann nicht benutzt werden"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Schlüsselwort %s kann nicht überschrieben werden"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Fehlgeformter erweiterter Kopfteil: fehlende Länge"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Länge des erweiterten Kopfteils ist außerhalb des erlaubten Bereichs"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Länge %*s des erweiterten Kopfteils ist außerhalb des Bereichs"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Leerraum nach der Länge"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Fehlgeformter erweiterter Kopfteil: fehlendes Gleichheitszeichen"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Zeilenvorschub"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ignoriere unbekanntes Schlüsselwort „%s“ für erweiterten Kopfteil"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2445,67 +2570,67 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Erweiterter Kopfteil %s=%s ist außerhalb des Bereichs %s..%s."
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Fehlgeformter erweiterter Kopfteil: überzähliges %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Fehlgeformter erweiterter Kopfteil: ungültiges %s: unerwarteter Trenner %c"
 
 # Ist „odd“ hier ungerade oder merkwürdig?
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 "Fehlgeformter erweiterter Kopfteil: ungültiges %s: ungewöhnliche Anzahl von "
 "Werten"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: kein gültiger Zeitüberschreitungswert"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: unbekannte Kontrollpunkt-Aktion"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "lesen"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "schreiben"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Schreib-Kontrollpunkt %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Lese-Kontrollpunkt %u"
@@ -2655,7 +2780,7 @@ msgstr "Zahl außerhalb des zulässigen Bereichs: %s"
 msgid "Negative size: %s"
 msgstr "Negative Größe: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) fehlgeschlagen"
@@ -2684,8 +2809,8 @@ msgstr "Unbekanntes Datumsformat"
 msgid "[ARGS...]"
 msgstr "[ARGUMENTE...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "kann „%s“ nicht öffnen"
@@ -2699,68 +2824,100 @@ msgstr "kann nicht positionieren"
 msgid "file name contains null character"
 msgstr "Dateiname enthält Null-Zeichen"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "kann auf der Standardausgabe keine löchrige Datei erstellen, benutzen Sie "
 "die Option --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "inkorrekte Maske (nahe „%s“)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "unbekannte Feld „%s“"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "kann an „%s“ keine Zeit setzen"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "kann „%s“ nicht entfernen (unlink)"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "„%s“-Befehl gescheitert."
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "kann „%s“ nicht entfernen (unlink)"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Befehl erfolgreich ausgeführt\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Befehl schlug mit Beendigungsstatus %d fehl.\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Befehl beendete sich bei Signal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Befehl hieltb bei Signal %d an\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Befehl erzeugte einen Core-Dump\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Befehl beendet\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat erfordert Dateinamen"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Kann Arbeitsverzeichnis nicht ermitteln."
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "zu entpackende Dateinamen wie im Archiv sortieren"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Feld zu lang beim Lesen der Schnappschussdatei"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Lesefehler in Schnappschussdatei"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Unerwarteter Feldwert in Schnappschussdatei"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr ""
+#~ "Länge des erweiterten Kopfteils ist außerhalb des erlaubten Bereichs"
+
+#~ msgid "Invalid group"
+#~ msgstr "Ungültige Gruppe"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Verzeichnis gelöscht, bevor es gelesen wurde."
 
index f1860aac4340895aa5edbc243a18d781e00de036..1f4e0e14b786b0bd2464da7079a0043874a00d5b 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index db286c88137d5bdaebc8a0a123269fd4ee6f5d2d..8801d26200dd4105e5e06ef88ffddecdd680c01a 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -3,12 +3,12 @@
 # Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs.teiath.gr>, 2004.
 # Simos Xenitellis <simos74@gmx.net>, 2004.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.13.25 \n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2004-03-08 14:44+0200\n"
 "Last-Translator: Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs."
 "teiath.gr>\n"
@@ -30,69 +30,68 @@ msgid "ambiguous argument %s for %s"
 msgstr "αμφιλεγόμενο όρισμα %s για %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Έγκυρα ορίσματα είναι:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Χρήση: %s [ΕΠΙΛΟΓΉ]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, fuzzy, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "\n"
 "Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Άγνωστο σφάλμα συστήματος"
 
@@ -104,7 +103,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -125,17 +124,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -143,62 +141,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: η επιλογή`%s' είναι αμφιλεγόμενη\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή `--%s' δεν επιτρέπει όρισμα\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει όρισμα\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: άκυρη επιλογή -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: η επιλογή `-W %s' είναι αμφιλεγόμενη\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει όρισμα\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "η μνήμη εξαντλήθηκε"
 
@@ -214,28 +212,30 @@ msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχο
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -245,7 +245,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -255,7 +255,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -527,7 +527,12 @@ msgstr "κανονική έξοδος"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)"
@@ -583,8 +588,8 @@ msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην α
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -592,8 +597,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -608,7 +613,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -617,9 +622,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Εντολή απορριμμάτων"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Αυτό δεν φαίνεται ως αρχειοθήκη tar"
 
@@ -659,63 +664,63 @@ msgstr ""
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Στην αρχή της ταινίας, τερματισμός τώρα"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Πάρα πολλά σφάλματα, τερματισμός"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Μέγεθος εγγραφής = %lu block"
 msgstr[1] "Μέγεθος εγγραφής = %lu block"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, fuzzy, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη"
 msgstr[1] "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: περιέχει άκυρο αριθμό τόμου"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Υπερχήλιση αριθμού τόμου"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Προετοίμασε τον τόμο #%d για %s και πάτα το πλήκτρο επιστροφής γραμμής"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF (Τέλος Αρχείου) ενώ η απάντηση του χρήστη αναμενότανε"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η αρχειοθήκη είναι ημιτελής"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -727,468 +732,492 @@ msgstr ""
 " !          Παραγωγή νέου υπό-φλοιού\n"
 " ?          Εκτύπωση αυτής της λίστας\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Κανένας νέος τόμος; έξοδος\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "`%s' η εντολή απέτυχε"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s είναι το εσφαλμένο μέγεθος (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Αυτός ο τόμος είναι εκτός συνέχειας"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Ο τόμος %s δεν ταιριάζει %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr ""
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Δυνατή μόνο η ανάγνωση %lu από %lu byte"
 msgstr[1] "Δυνατή μόνο η ανάγνωση %lu από %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Τα περιεχόμενα διαφέρουν"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Οι τύποι αρχείων διαφέρουν"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Οι καταστάσεις διαφέρουν"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Ταυτότητες χρήστη διαφέρουν"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Ταυτότητες ομάδας διαφέρουν"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Ώρες τροποποίησης διαφέρουν"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Τα μεγέθη διαφέρουν"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Δεν είναι συνδεδεμένο με %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Οι σύνδεσμοι διαφέρουν"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Οι αριθμοί των συσκευών διαφέρουν"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Επαλήθευση "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Άγνωστος τύπος αρχείου '%c', εκτέλεση της diff ως κανονικό αρχείο"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)"
 msgstr[1] "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "η τιμή %s είναι εκτός του %s εύρος %s..%s; αντικαταστήθηκε από %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "η τιμή %s είναι εκτός του %s εύρους %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Παράχθηκαν αρνητικές οκταδικές επικεφαλίδες"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
 
-#: src/create.c:622
+#: src/create.c:611
 #, fuzzy, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά"
 msgstr[1] "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Άγνωστος τύπος αρχείου; το αρχείο αγνοήθηκε"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " σύνδεσμος σε %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: αρχείο τροποποιήθηκε κατά την ανάγνωση"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: η υποδοχή αγνοήθηκε"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: η πόρτα αγνοήθηκε"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Παραλείποντας στην επόμενη επικεφαλίδα"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Διαγραφή μη-επικεφαλίδων από την αρχειοθήκη"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: η ένδειξη χρόνου %s είναι %lu s στο μέλλον"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Μη αναμενόμενη ανακολουθία κατά την δημιουργία του καταλόγου"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Ο κατάλογος μετονομάστηκε πριν η κατάστασή του γίνει μη εξαγώγιμη"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Εξαγωγή συνεχόμενων αρχείων ως κανονικών αρχείων"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Προσπάθεια εξαγωγής των συμβολικών συνδέσμων ως σθεναρών συνδέσμων"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Δεν είναι δυνατή η εξαγωγή -- το αρχείο συνεχίζεται σε άλλο τόμο"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Άγνωστος τύπος αρχείου '%c', εξαγωγή ως κανονικό αρχείο"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Δεν είναι δυνατή η αποθήκευση αυτού του αρχείου"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Ο κατάλογος έχει μετονομαστεί"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Ο κατάλογος έχει μετονομαστεί"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Ο κατάλογος είναι καινούριος"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Ο κατάλογος έχει μετονομαστεί"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Άκυρη ένδειξη χρόνου"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Άκυρος αριθμός συσκευής"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Άκυρος αριθμός i-κόμβου"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Δεν είναι δυνατή η δέσμευση μνήμης για τον συντελεστή ομαδοποίησης %d"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, fuzzy, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Διαγραφή %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Δεν είναι δυνατή η απομάκρυνση"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Παράλειψη"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "μπλοκ %s: ** Μπλοκ με χαρακτήρες NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "μπλοκ %s: ** Τέλος Αρχείου **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "μπλοκ %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Κενά στην επικεφαλίδα ενώ αναμενόταν αριθμητική τιμή %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1196,164 +1225,179 @@ msgstr ""
 "συμπληρώματα"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του "
 "%s εύρους"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Η αρχειοθήκη με base-256 τιμές είναι εκτός του %s εύρους"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Η αρχειοθήκη περιέχει %.*s όπου αριθμητικές %s τιμές αναμένονται"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " σύνδεσμος σε %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " άγνωστος τύπος αρχείου %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Επικεφαλίδα Τόμου--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Συνέχιση στο byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Δημιουργία καταλόγου:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Μετονομασία %s σε %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Μετονομασία %s πίσω στο %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "θυγατρική διεργασία"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "κανάλι μεταξύ διεργασιών"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "`%s' η εντολή απέτυχε"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Οι επιλογές `-%s' και `-%s' απαιτούν κανονική είσοδο"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Άκυρη ομάδα"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Τα χαρακτηριστικά GNU απαιτούν μη συμβατή διαμόρφωση αρχειοθήκης"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1371,10 +1415,10 @@ msgstr ""
 "archive.tar με λεπτομέρειες.\n"
 "  %s -xf archive.tar          # Εξάγει όλα τα αρχεία από το archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1394,80 +1438,80 @@ msgstr ""
 "διαφορετικά\n"
 "  never, simple   πάντα κάνε απλά αντίγραφα\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1475,565 +1519,614 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr ""
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 #, fuzzy
 msgid "extract files to standard output"
 msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Συγκρουόμενες επιλογές διαμόρφωσης αρχειοθήκης"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Συγκρουόμενες επιλογές συμπίεσης"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "Ο τόμος %s δεν ταιριάζει %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2041,301 +2134,318 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr ""
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Ίσως δεν καθορίσατε παραπάνω από μία επιλογή `-Acdtrux'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Συγκρουόμενες επιλογές συμπίεσης"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " άγνωστος τύπος αρχείου %s\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Το αρχείο ημερομηνίας δεν βρέθηκε"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Αντικατάσταση %s για άγνωστη διαμόρφωση ημερομηνίας %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
-
-#: src/tar.c:1201
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file name read contains nul character"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Άκυρος ιδιοκτήτης"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Άκυρος συντελεστής ομαδοποίησης"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Άκυρο μέγεθος ταινίας"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Παραπάνω από ένα όριο ημερομηνίας"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Άκυρη ομάδα"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 #, fuzzy
 msgid "Invalid number"
 msgstr "Άκυρος αριθμός i-κόμβου"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Άκυρος ιδιοκτήτης"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Άκυρο μέγεθος εγγραφής"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Το μέγεθος της εγγραφής πρέπει να είναι πολλαπλάσιο του %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 #, fuzzy
 msgid "Invalid number of elements"
 msgstr "Άκυρο μέγεθος ταινίας"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr ""
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr " άγνωστος τύπος αρχείου %s\n"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr ""
 "Οι επιλογές `-[0-7][lmh]' δεν υποστηρίζονται από *αυτήν* την εντολή tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Παλιά επιλογή `%c' απαιτεί όρισμα."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Πολλαπλά αρχεία αρχειοθηκών απαιτούν την επιλογή `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Δεν είναι δυνατός ο συνδυασμός --listed-incremental με --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, fuzzy, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)"
 msgstr[1] "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Δεν είναι δυνατή η επαλήθευση των συμπιεσμένων αρχειοθηκών"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Δεν είναι δυνατή η χρήση πολλαπλών συμπιεσμένων αρχειοθηκών"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Αρνούμαι δειλά στη δημιουργία μίας κενής αρχειοθήκης"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Οι επιλογές `-Aru' δεν είναι συμβατές με  `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Πρέπει να καθορίσεις μία από τις επιλογές `-Acdtrux'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2347,117 +2457,113 @@ msgstr[1] "%s: Το αρχείο συρρικνώθηκε κάτα %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Η ένδειξη χρόνου είναι εκτός εύρους"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του "
 "%s εύρους"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Άκυρη ομάδα"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Εγγραφή σημείου ελέγχου %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Ανάγνωση σημείου ελέγχου %d"
@@ -2595,7 +2701,7 @@ msgstr "Ο αριθμός του i-κόμβου είναι εκτός εύρου
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2624,8 +2730,8 @@ msgstr "Άγνωστο σφάλμα συστήματος"
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2640,66 +2746,84 @@ msgstr "Δεν είναι δυνατό το κλείσιμο"
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr " άγνωστος τύπος αρχείου %s\n"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "`%s' η εντολή απέτυχε"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "Η θυγατρική διεργασία τερματίστηκε με το σήμα %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Κατακερματισμένα ονόματα αρχείων--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Άκυρη ομάδα"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε"
diff --git a/po/eo.gmo b/po/eo.gmo
new file mode 100644 (file)
index 0000000..76463cb
Binary files /dev/null and b/po/eo.gmo differ
diff --git a/po/eo.po b/po/eo.po
new file mode 100644 (file)
index 0000000..227081c
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,2885 @@
+# Esperanto translation.
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Felipe Castro <fefcas@gmail.com>, 2013.
+#
+#: src/create.c:1572
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2013-05-27 08:08-0300\n"
+"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: \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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "malvalida argumento %s por %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "plursenca argumento %s por %s"
+
+#: gnu/argmatch.c:155
+msgid "Valid arguments are:"
+msgstr "Validaj argumentoj estas:"
+
+#: gnu/argp-help.c:150
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr "ARGP_HELP_FMT: %s valoro estas malpli aŭ egala al %s"
+
+#: gnu/argp-help.c:223
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: parametro en ARGP_HELP_FMT postulas valoron"
+
+#: gnu/argp-help.c:229
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: parametro en ARGP_HELP_FMT devas esti pozitiva"
+
+#: gnu/argp-help.c:238
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Nekonata parametro en ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:250
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Rubaĵo en ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1250
+msgid ""
+"Mandatory or optional arguments to long options are also mandatory or "
+"optional for any corresponding short options."
+msgstr ""
+"Devigaj aŭ nedevigaj argumentoj por longaj modifiloj ankaŭ estas devigaj aŭ "
+"nedevigaj por iu ajn korespondanta mallonga modifilo."
+
+#: gnu/argp-help.c:1643
+msgid "Usage:"
+msgstr "Uzmaniero:"
+
+#: gnu/argp-help.c:1647
+msgid "  or: "
+msgstr "  aŭ: "
+
+#: gnu/argp-help.c:1659
+msgid " [OPTION...]"
+msgstr " [MODIFILO...]"
+
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
+msgstr "Provu '%s --help' aŭ '%s --usage' por pli da informo.\n"
+
+#: gnu/argp-help.c:1714
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Raportu program-misojn al %s.\n"
+
+#: gnu/argp-help.c:1933 gnu/error.c:190
+msgid "Unknown system error"
+msgstr "Nekonata sistem-eraro"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "montri tiun ĉi help-liston"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "montri mallongan mesaĝon pri la uzmaniero"
+
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOMO"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "difini la program-nomon"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "halti dum SEK sekundoj (apriore 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "montri program-version"
+
+#: gnu/argp-parse.c:161
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAM-ERARO) Neniu versio estas konata!?"
+
+#: gnu/argp-parse.c:614
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: tro da argumentoj\n"
+
+#: gnu/argp-parse.c:757
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAM-ERARO) Modifiloj devus esti rekonitaj!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "skrib-eraro"
+
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: modifilo '%s' estas plursenca\n"
+
+#: gnu/getopt.c:626 gnu/getopt.c:630
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: modifilo '--%s' ne permesas argumenton\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:644
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: modifilo '%c%s' ne permesas argumenton\n"
+
+#: gnu/getopt.c:687 gnu/getopt.c:706
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: modifilo '--%s' postulas argumenton\n"
+
+#: gnu/getopt.c:744 gnu/getopt.c:747
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nerekonata modifilo '--%s'\n"
+
+#: gnu/getopt.c:755 gnu/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nerekonata modifilo '%c%s'\n"
+
+#: gnu/getopt.c:807 gnu/getopt.c:810
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: malvalida modifilo -- '%c'\n"
+
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: modifilo postulas argumenton -- '%c'\n"
+
+#: gnu/getopt.c:936 gnu/getopt.c:952
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: modifilo '-W %s' estas plursenca\n"
+
+#: gnu/getopt.c:976 gnu/getopt.c:994
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: modifilo '-W %s' ne permesas argumenton\n"
+
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: modifilo '-W %s' postulas argumenton\n"
+
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "la memoro plenplenas"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ne eblas registri nunan labor-dosierujon"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "ni fiaskis reveni al komenca labordosierujo"
+
+#. 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.
+#: gnu/quotearg.c:314
+msgid "`"
+msgstr "‘"
+
+#: gnu/quotearg.c:315
+msgid "'"
+msgstr "’"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes").  Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:152
+msgid "^[yY]"
+msgstr "^[jJyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no").  Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:165
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakigita de %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+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"
+"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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Verkita de %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Verkita de %s kaj %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Verkita de %s, %s, kaj %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"kaj %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, kaj %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, kaj %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, kaj %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"kaj %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, kaj %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.
+#: gnu/version-etc.c:169
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, kaj aliaj.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Raportu program-misojn al: %s\n"
+"Raportu traduk-misojn al: <translation-team-eo@lists.sourceforge.net>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Raportu program-misojn de %s al: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s hejm-paĝo: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s hejm-paĝo: <http://www.gnu.org/software/%s/>\n"
+
+#: gnu/version-etc.c:258
+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"
+
+#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
+#. Directly translating this to another language will not work, first because
+#. %s itself is not translated.
+#. Translate it as `%s: Function %s failed'.
+#: lib/paxerror.c:58 lib/paxerror.c:71
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: funkcio %s fiaskis"
+
+#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
+#. Directly translating this to another language will not work, first because
+#. %s itself is not translated.
+#. Translate it as `%s: Function %s failed'.
+#: lib/paxerror.c:84
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Averto: funkcio %s fiaskis"
+
+#: lib/paxerror.c:93
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: ne eblas ŝanĝi reĝimon al %s"
+
+#: lib/paxerror.c:101
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: ne eblas ŝanĝi posedon al UID %lu, GID %lu"
+
+#: lib/paxerror.c:127
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: ne eblas rekt-ligi al %s"
+
+#: lib/paxerror.c:179 lib/paxerror.c:211
+#, c-format
+msgid "%s: Read error at byte %s, while reading %lu byte"
+msgid_plural "%s: Read error at byte %s, while reading %lu bytes"
+msgstr[0] "%s: leg-eraro ĉe bajto %s, dum lego de %lu bajto"
+msgstr[1] "%s: leg-eraro ĉe bajto %s, dum lego de %lu bajtoj"
+
+#: lib/paxerror.c:192
+#, c-format
+msgid "%s: Warning: Read error at byte %s, while reading %lu byte"
+msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes"
+msgstr[0] "%s: Averto: leg-eraro ĉe bajto %s, dum lego de %lu bajto"
+msgstr[1] "%s: Averto: leg-eraro ĉe bajto %s, dum lego de %lu bajtoj"
+
+#: lib/paxerror.c:259
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: ne eblas apliki 'seek' al %s"
+
+#: lib/paxerror.c:275
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Averto: ne eblas apliki 'seek' al %s"
+
+#: lib/paxerror.c:284
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: ne eblas krei simbol-ligon al %s"
+
+#: lib/paxerror.c:349
+#, c-format
+msgid "%s: Wrote only %lu of %lu byte"
+msgid_plural "%s: Wrote only %lu of %lu bytes"
+msgstr[0] "%s: skribita nur %lu el %lu bajto"
+msgstr[1] "%s: skribita nur %lu el %lu bajtoj"
+
+#: lib/paxnames.c:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Forigo de antaŭira '%s' el membro-nomoj"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Forigo de antaŭira '%s' el rekt-ligaj celoj"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Anstataŭigo de '.' por malplena membro-nomo"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Anstataŭigo de '.' por malplena rekt-liga celo"
+
+#: lib/rtapelib.c:299
+#, c-format
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: servo ne disponeblas"
+
+#: lib/rtapelib.c:303
+#, c-format
+msgid "stdin"
+msgstr "ĉefenigujo"
+
+#: lib/rtapelib.c:306
+#, c-format
+msgid "stdout"
+msgstr "ĉefeligujo"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Ne eblas konekti al %s: adres-trovo fiaskis"
+
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ne eblas lanĉi foran ŝelon"
+
+#: lib/rtapelib.c:516
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ne eblas lanĉi foran ŝelon"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Serĉ-direkto estas for de intervalo"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Malvalida serĉ-direkto"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Malvalida serĉ-deŝovo"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Serĉ-deŝovo estas for de intervalo"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Malvalida bajt-nombro"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Bajt-nombro estas for de intervalo"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Trofrua EOF"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Malvalida operacia kodo"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operacio ne estas subtenata"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Neatenditaj argumentoj"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipuli bendolegilon, akceptante komandojn el fora procezo"
+
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMERO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "difini rafinigan nivelon"
+
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "DOSIERO"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "difini rafinigan eliran dosiernomon"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "ne eblas malfermi %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
+#, c-format
+msgid "too many arguments"
+msgstr "tro da argumentoj"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ruba komando"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
+msgid "This does not look like a tar archive"
+msgstr "Tio ĉi ne ŝajnas esti arĥivo tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Bajtoj entute skribitaj"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Bajtoj entute legitaj"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Bajtoj entute forigitaj: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(dukto)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Malvalida valoro por 'record_size'"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Neniu arĥiv-nomo estas indikita"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ne eblas kontroli arĥivon de ĉefa en/eligujo"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arĥivo estas densigita. Uzu modifilon %s"
+
+#: src/buffer.c:761 src/tar.c:2459
+msgid "Cannot update compressed archives"
+msgstr "Ne eblas ĝisdatigi densigitajn arĥivojn"
+
+#: src/buffer.c:854
+msgid "At beginning of tape, quitting now"
+msgstr "Ĉe komenco de bendo, ni ĉesas nun"
+
+#: src/buffer.c:860
+msgid "Too many errors, quitting"
+msgstr "Tro multaj eraroj, ni ĉesas"
+
+#: src/buffer.c:893
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Rikord-grando = %lu bloko"
+msgstr[1] "Rikord-grando = %lu blokoj"
+
+#: src/buffer.c:914
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Malrektigita bloko (%lu bajto) en arĥivo"
+msgstr[1] "Malrektigita bloko (%lu bajtoj) en arĥivo"
+
+#: src/buffer.c:991
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Ne eblas retropaŝi arĥivan dosieron; ĝi eble ne legeblos sen -i"
+
+#: src/buffer.c:1023
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "'rmtlseek' ne haltis ĉe rikord-limo"
+
+#: src/buffer.c:1074
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: enhavas malvalidan volum-numeron"
+
+#: src/buffer.c:1109
+msgid "Volume number overflow"
+msgstr "Datumvolum-numero troigas"
+
+#: src/buffer.c:1124
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Preparu datumvolumon #%d por %s kaj premu enig-klavon: "
+
+#: src/buffer.c:1130
+msgid "EOF where user reply was expected"
+msgstr "EOF kie respondo de uzanto estis atendata"
+
+#: src/buffer.c:1135 src/buffer.c:1167
+msgid "WARNING: Archive is incomplete"
+msgstr "AVERTO: arĥivo estas malkompleta"
+
+#: src/buffer.c:1149
+#, c-format
+msgid ""
+" n name        Give a new file name for the next (and subsequent) volume(s)\n"
+" q             Abort tar\n"
+" y or newline  Continue operation\n"
+msgstr ""
+" n nomo        Indiki novan nomon por la venonta (kaj sekva) datumvolumo(j)\n"
+" q             Ĉesigi tar\n"
+" y aŭ novlinio Daŭrigi operacion\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " !             Spawn a subshell\n"
+msgstr " !             Generi subŝelon\n"
+
+#: src/buffer.c:1155
+#, c-format
+msgid " ?             Print this list\n"
+msgstr " ?             Montri tiun ĉi liston\n"
+
+#: src/buffer.c:1162
+msgid "No new volume; exiting.\n"
+msgstr "Neniu nova datumvolumo: ni eliras.\n"
+
+#: src/buffer.c:1195
+msgid "File name not specified. Try again.\n"
+msgstr "Dosiernomo ne estis indikata. Reprovu.\n"
+
+#: src/buffer.c:1208
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Malvalida enigo. Tajpu ? por helpo.\n"
+
+#: src/buffer.c:1259
+#, c-format
+msgid "%s command failed"
+msgstr "La komando %s fiaskis"
+
+#: src/buffer.c:1440
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr ""
+"%s eble estas daŭrigata en tiu ĉi datumvolumo: la kapo enhavas tranĉitan "
+"nomon"
+
+#: src/buffer.c:1444
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ne estas daŭrigata en tiu ĉi datumvolumo"
+
+#: src/buffer.c:1458
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s estas malkorekta grando (%s != %s + %s)"
+
+#: src/buffer.c:1473
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Tiu ĉi datumvolumo estas for de sekvo (%s - %s != %s)"
+
+#: src/buffer.c:1551 src/buffer.c:1577
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "La arĥivo ne estas markita por kongrui al %s"
+
+#: src/buffer.c:1581
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "La datumvolumo %s ne kongruas al %s"
+
+#: src/buffer.c:1675
+#, c-format
+msgid ""
+"%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr ""
+"%s: dosiernomo tro longas por esti konservata en GNU-plurvoluma kapo, ni "
+"tranĉis"
+
+#: src/buffer.c:1866
+msgid "write did not end on a block boundary"
+msgstr "skribo ne finiĝis ĉe bloko-limo"
+
+#: src/compare.c:96
+#, c-format
+msgid "Could only read %lu of %lu byte"
+msgid_plural "Could only read %lu of %lu bytes"
+msgstr[0] "Eblis legi %lu el %lu bajto"
+msgstr[1] "Eblis legi %lu el %lu bajtoj"
+
+#: src/compare.c:106 src/compare.c:388
+msgid "Contents differ"
+msgstr "Enhavo malsamas"
+
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
+msgid "Unexpected EOF in archive"
+msgstr "Neatendita EOF en arĥivo"
+
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
+msgid "File type differs"
+msgstr "Dosiertipo malsamas"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
+msgid "Mode differs"
+msgstr "Reĝimo malsamas"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "UID malsamas"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "GID malsamas"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Modif-tempo malsamas"
+
+#: src/compare.c:216 src/compare.c:422
+msgid "Size differs"
+msgstr "Grando malsamas"
+
+#: src/compare.c:265
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ne ligita al %s"
+
+#: src/compare.c:289
+msgid "Symlink differs"
+msgstr "Simbol-ligo malsamas"
+
+#: src/compare.c:318
+msgid "Device number differs"
+msgstr "Aparatnumero malsamas"
+
+#: src/compare.c:464
+#, c-format
+msgid "Verify "
+msgstr "Kontroli "
+
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: nekonata dosiertipo '%c', komparita kiel normala dosiero"
+
+#: src/compare.c:527
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arĥivo enhavas dosiernomojn kun forigitaj antaŭiraj prefiksoj."
+
+#: src/compare.c:533
+msgid "Archive contains transformed file names."
+msgstr "Arĥivo enhavas transformitajn dosiernomojn."
+
+#: src/compare.c:538
+msgid "Verification may fail to locate original files."
+msgstr "Kontrolo povas malsukcesi lokigi originalajn dosierojn."
+
+#: src/compare.c:612
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "KONTROLA MALSUKCESO: %d malvalida kapo detektita"
+msgstr[1] "KONTROLA MALSUKCESO: %d malvalidaj kapoj detektitaj"
+
+#: src/compare.c:630 src/list.c:221
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Izolita nul-bloko ĉe %s"
+
+#: src/create.c:73
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: enhavas kaŝmemoran dosierujan markon %s; %s"
+
+#: src/create.c:262
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "valoro %s estas for de intervalo %s %s..%s; ni anstataŭigas %s"
+
+#: src/create.c:268
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valoro %s estas for de intervalo %s %s..%s"
+
+#: src/create.c:328
+msgid "Generating negative octal headers"
+msgstr "Generado de negativaj okumaj kapoj"
+
+#: src/create.c:601 src/create.c:664
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s dosiernomo tro longas (maks %d); ne ŝutita"
+
+#: src/create.c:611
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s dosiernomo tro longas (ne povas esti apartigita); ne ŝutita"
+
+#: src/create.c:638
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: lignomo tro longas; ne ŝutita"
+
+#: src/create.c:1084
+#, c-format
+msgid "%s: File shrank by %s byte; padding with zeros"
+msgid_plural "%s: File shrank by %s bytes; padding with zeros"
+msgstr[0] "%s: dosiero malpligrandiĝis je %s bajto; ni ŝtopas per nulo"
+msgstr[1] "%s: dosiero malpligrandiĝis je %s bajtoj; ni ŝtopas per nuloj"
+
+#: src/create.c:1180
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: dosiero estas en malsama dosiersistemo; ne ŝutita"
+
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
+msgid "contents not dumped"
+msgstr "enhavo ne estas ŝutita"
+
+#: src/create.c:1438
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: nekonata dosiertipo; dosiero estas preteratentita"
+
+#: src/create.c:1549
+#, c-format
+msgid "Missing links to %s."
+msgstr "Mankas ligoj al %s."
+
+#: src/create.c:1710
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: dosiero estas nemodifita; ne ŝutita"
+
+#: src/create.c:1719
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: dosiero estas la arĥivo; ne ŝutita"
+
+#: src/create.c:1747 src/incremen.c:603
+msgid "directory not dumped"
+msgstr "dosierujo ne estas ŝutita"
+
+#: src/create.c:1819
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: dosiero ŝanĝis dum ni legas ĝin"
+
+#: src/create.c:1900
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: konektilo estis preteratentata"
+
+#: src/create.c:1906
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: pordo estis preteratentata"
+
+#: src/delete.c:218 src/list.c:258 src/update.c:193
+msgid "Skipping to next header"
+msgstr "Ni saltas al sekva kapo"
+
+#: src/delete.c:284
+msgid "Deleting non-header from archive"
+msgstr "Ni forigas ne-kapon el arĥivo"
+
+#: src/extract.c:302
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: malprobable malnova temp-indiko %s"
+
+#: src/extract.c:320
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: temp-indiko %s estas %s s estontece"
+
+#: src/extract.c:536
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: neatendita malkohero dum kreo de dosierujo"
+
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: dosierujo estis renomigata antaŭ ol ĝia stato povis esti prenata"
+
+#: src/extract.c:1010
+msgid "Extracting contiguous files as regular files"
+msgstr "Ni elprenas daŭrigajn dosierojn kiel ordinarajn dosierojn"
+
+#: src/extract.c:1365
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Ni provas elpreni simbolajn ligojn kiel rektajn ligojn"
+
+#: src/extract.c:1528
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: ne eblas eltiri -- dosiero daŭriĝas el alia datumvolumo"
+
+#: src/extract.c:1535 src/list.c:1135
+msgid "Unexpected long name header"
+msgstr "Neatendita long-noma kapo"
+
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: nekonata dosiertipo '%c', ni eltiras kiel normalan dosieron"
+
+#: src/extract.c:1568
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nuna %s estas pli nova aŭ sam-aĝa"
+
+#: src/extract.c:1620
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: ne eblis savkopii tiun ĉi dosieron"
+
+#: src/extract.c:1767
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Ne eblas renomigi %s al %s"
+
+#: src/incremen.c:494 src/incremen.c:536
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: dosierujo estas renomigita el %s"
+
+#: src/incremen.c:549
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: dosierujo estas nova"
+
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: dosiero estas en malsama dosiersistemo; ne ŝutita"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: dosierujo estas renomigita"
+
+#: src/incremen.c:1001 src/incremen.c:1016
+msgid "Invalid time stamp"
+msgstr "Malvalida temp-indiko"
+
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
+msgstr "Malvalida modif-tempo (sekundoj)"
+
+#: src/incremen.c:1055
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Malvalida modif-tempo (nanosekundoj)"
+
+#: src/incremen.c:1071
+msgid "Invalid device number"
+msgstr "Malvalida aparatnumero"
+
+#: src/incremen.c:1079
+msgid "Invalid inode number"
+msgstr "Malvalida numero 'inode'"
+
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
+
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
+msgid "Unexpected EOF in snapshot file"
+msgstr "Neatendita EOF en specimena dosiero"
+
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
+msgid "Missing record terminator"
+msgstr "Mankas rikord-finiganto"
+
+#: src/incremen.c:1366 src/incremen.c:1369
+msgid "Bad incremental file format"
+msgstr "Malĝusta aldona dosier-formo"
+
+#: src/incremen.c:1388
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nesubtenata versio de aldona formo: %<PRIuMAX>"
+
+#: src/incremen.c:1543
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Fuŝa 'dumpdir': ni atendis '%c' sed trovis %#3o"
+
+#: src/incremen.c:1553
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Fuŝa 'dumpdir': duobligita 'X'"
+
+#: src/incremen.c:1566
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Fuŝa 'dumpdir': malplena nomo en 'R'"
+
+#: src/incremen.c:1579
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Fuŝa 'dumpdir': 'T' ne antaŭsekvata de 'R'"
+
+#: src/incremen.c:1585
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Fuŝa 'dumpdir': malplena nomo en 'T'"
+
+#: src/incremen.c:1605
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Fuŝa 'dumpdir': ni atendis '%c' sed trovis finon de datumaro"
+
+#: src/incremen.c:1612
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Fuŝa 'dumpdir': neniam uzata 'X'"
+
+#: src/incremen.c:1656
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Ne eblas krei provizoran dosierujon uzante la ŝablonon %s"
+
+#: src/incremen.c:1717
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: ni ne netigas dosierujon: ne eblas apliki 'stat'"
+
+#: src/incremen.c:1730
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: dosierujo estas en malsama aparato: ni ne netigas"
+
+#: src/incremen.c:1738
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: forigo de %s\n"
+
+#: src/incremen.c:1743
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: ne eblas forigi"
+
+#: src/list.c:189
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: ni malinkluzivigas"
+
+#: src/list.c:206
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloko %s: ** Bloko de NULOj **\n"
+
+#: src/list.c:232
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloko %s: ** Fino de dosiero **\n"
+
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
+#, c-format
+msgid "block %s: "
+msgstr "bloko %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:722
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Vakoj en kapo kie numera valoro %s estas atendata"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:777
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"Arĥiva okuma valoro %.*s estas for de intervalo %s; ni konsideras "
+"komplementon de du"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:788
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Arĥiva okuma valoro %.*s estas for de intervalo %s"
+
+#: src/list.c:809
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arĥivo enhavas malaktualajn kapojn 'base-64'"
+
+#: src/list.c:823
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Signita ĉeno 'base-64' de arĥivo (%s) estas for de intervalo %s"
+
+#: src/list.c:854
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Valoro 'base-256' de arĥivo estas for de intervalo %s"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:883
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arĥivo enhavas %.*s kie estas atendata numera valoro %s"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:905
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Arĥiva valoro %s estas for de intervalo %s: %s..%s"
+
+#: src/list.c:1262
+#, c-format
+msgid " link to %s\n"
+msgstr " kunligo al %s\n"
+
+#: src/list.c:1270
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " nekonata dosiertipo %s\n"
+
+#: src/list.c:1288
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Longa ligo--\n"
+
+#: src/list.c:1292
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Longa nomo--\n"
+
+#: src/list.c:1296
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Voluma kapo--\n"
+
+#: src/list.c:1304
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Daŭrigita ĉe bajto %s--\n"
+
+#: src/list.c:1367
+msgid "Creating directory:"
+msgstr "Kreado de dosierujo:"
+
+#: src/misc.c:721
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Alinomigo de %s al %s\n"
+
+#: src/misc.c:730 src/misc.c:749
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: ne eblas renomigi al %s"
+
+#: src/misc.c:754
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Renomigo de %s reen al %s\n"
+
+#: src/misc.c:1093
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: dosiero estis forigata antaŭ ol ni legis ĝin"
+
+#: src/misc.c:1114
+msgid "child process"
+msgstr "ida procezo"
+
+#: src/misc.c:1123
+msgid "interprocess channel"
+msgstr "interproceza kanalo"
+
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "La komando %s fiaskis"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: dosierlisto jam estas legita"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ne eblas difini horon por '%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: lego de dosiernomo enhavas nul-signon"
+
+#: src/names.c:821
+msgid "Pattern matching characters used in file names"
+msgstr "Ŝablon-kongruaj signoj uzataj en dosiernomoj"
+
+#: src/names.c:823
+msgid ""
+"Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
+"this warning"
+msgstr ""
+"Uzu --wildcards por ebligi ŝablon-kongruon, aŭ --no-wildcards por eviti tiun "
+"ĉi averton"
+
+#: src/names.c:841 src/names.c:857
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: ne trovita en arĥivo"
+
+#: src/names.c:842
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: postulata apero ne estis trovata en arĥivo"
+
+#: src/names.c:876
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Miskongruo de arĥiva etikedo"
+
+#: src/names.c:1180
+msgid ""
+"Using -C option inside file list is not allowed with --listed-incremental"
+msgstr ""
+"Uzo de la modifilo -C ene de dosierlisto ne estas permesata kun --listed-"
+"incremental"
+
+#: src/names.c:1186
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Nur unu modifilo -C estas permesata kun --listed-incremental"
+
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
+msgstr "Ambaŭ modifiloj '-%s' kaj '-%s' postulas ĉefenigujon"
+
+#: src/tar.c:163
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: malvalida arĥiv-formo"
+
+#: src/tar.c:187
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-trajtoj estas dezirataj en neakordigebla arĥiv-formo"
+
+#: src/tar.c:255
+#, fuzzy, c-format
+msgid ""
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
+msgstr ""
+"Nekonata citila stilo '%s'. Provu '%s --quoting-stile=help' por havigi "
+"liston."
+
+#: src/tar.c:364
+#, fuzzy
+msgid ""
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
+"can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+"  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.\n"
+"  tar -tvf archive.tar         # List all files in archive.tar verbosely.\n"
+"  tar -xf archive.tar          # Extract all files from archive.tar.\n"
+msgstr ""
+"GNU-a 'tar' konservas multajn dosierojn kune en unuopa benda aŭ diska "
+"arĥivo, kaj ĝi restarigas apartajn dosierojn el la arĥivo.\n"
+"\n"
+"Ekzemploj:\n"
+"  tar -cf archive.tar foo bar  # Kreas archive.tar el dosieroj foo kaj bar.\n"
+"  tar -tvf archive.tar         # Listigas detale ĉiujn dosierojn el archive."
+"tar.\n"
+"  tar -xf archive.tar          # Eltiras ĉiujn dosierojn el archive.tar.\n"
+
+#: src/tar.c:373
+#, fuzzy
+msgid ""
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The version control may be set with --backup or VERSION_CONTROL, values "
+"are:\n"
+"\n"
+"  none, off       never make backups\n"
+"  t, numbered     make numbered backups\n"
+"  nil, existing   numbered if numbered backups exist, simple otherwise\n"
+"  never, simple   always make simple backups\n"
+msgstr ""
+"La savkopia sufikso estas '~', krom se difinita per --suffix aŭ per "
+"SIMPLE_BACKUP_SUFFIX.\n"
+"La versi-administrado povas esti difinita per --backup aŭ VERSION_CONTROL, "
+"valoroj estas:\n"
+"\n"
+"  none, off       neniam generi savkopiojn\n"
+"  t, numbered     generi numeritajn savkopiojn\n"
+"  nil, existing   numerigi se numeritaj jam ekzistas, alie generi simplajn\n"
+"  never, simple   ĉiam generi simplajn savkopiojn\n"
+
+#: src/tar.c:403
+msgid "Main operation mode:"
+msgstr "Ĉefa operacia reĝimo:"
+
+#: src/tar.c:406
+msgid "list the contents of an archive"
+msgstr "listigi la enhavon de arĥivo"
+
+#: src/tar.c:408
+msgid "extract files from an archive"
+msgstr "eltiri dosierojn el arĥivo"
+
+#: src/tar.c:411
+msgid "create a new archive"
+msgstr "krei novan arĥivon"
+
+#: src/tar.c:413
+msgid "find differences between archive and file system"
+msgstr "trovi malsamojn inter la arĥivo kaj la dosiersistemo"
+
+#: src/tar.c:416
+msgid "append files to the end of an archive"
+msgstr "postmeti dosierojn al la fino de arĥivo"
+
+#: src/tar.c:418
+msgid "only append files newer than copy in archive"
+msgstr "nur postmeti dosierojn pli novajn ol la kopio en arĥivo"
+
+#: src/tar.c:420
+msgid "append tar files to an archive"
+msgstr "postmeti tar-dosierojn al arĥivo"
+
+#: src/tar.c:423
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "forigi el la arĥivo (ne en magnet-bendoj!)"
+
+#: src/tar.c:425
+msgid "test the archive volume label and exit"
+msgstr "testi la arĥivan volum-etikedon kaj eliri"
+
+#: src/tar.c:430
+msgid "Operation modifiers:"
+msgstr "Operaciaj modifiloj:"
+
+#: src/tar.c:433
+msgid "handle sparse files efficiently"
+msgstr "trakti disajn dosierojn ŝpareme"
+
+#: src/tar.c:434
+msgid "MAJOR[.MINOR]"
+msgstr "ĈEFA[.KROMA]"
+
+#: src/tar.c:435
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "difini version de la uzota disa formo (implicas --sparse)"
+
+#: src/tar.c:437
+msgid "handle old GNU-format incremental backup"
+msgstr "trakti malnovan GNU-forman aldonan savkopion"
+
+#: src/tar.c:439
+msgid "handle new GNU-format incremental backup"
+msgstr "trakti novan GNU-forman aldonan savkopion"
+
+#: src/tar.c:441
+msgid "dump level for created listed-incremental archive"
+msgstr "ŝut-nivelo por kreita listita-aldona arĥivo"
+
+#: src/tar.c:443
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ne eliri kun nenulo pro nelegeblaj dosieroj"
+
+#: src/tar.c:445
+msgid ""
+"process only the NUMBERth occurrence of each file in the archive; this "
+"option is valid only in conjunction with one of the subcommands --delete, --"
+"diff, --extract or --list and when a list of files is given either on the "
+"command line or via the -T option; NUMBER defaults to 1"
+msgstr ""
+"procezi nur la NUMERO-an aperon de ĉiu dosiero en la arĥivo; tiu ĉi modifilo "
+"validas nur kune kun unu el la subkomandoj --delete, --diff, --extract aŭ --"
+"list kaj kiam listo de dosieroj estas indikita en la komandlinio aŭ per la "
+"modifilo -T; NUMERO apriore estas 1"
+
+#: src/tar.c:451
+msgid "archive is seekable"
+msgstr "arĥivo estas serĉebla"
+
+#: src/tar.c:453
+msgid "archive is not seekable"
+msgstr "arĥivo ne estas serĉebla"
+
+#: src/tar.c:455
+msgid "do not check device numbers when creating incremental archives"
+msgstr "ne kontroli aparat-numerojn dum kreo de aldonaj arĥivoj"
+
+#: src/tar.c:458
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "kontroli aparat-numerojn dum kreo de aldonaj arĥivoj (aprioras)"
+
+#: src/tar.c:464
+msgid "Overwrite control:"
+msgstr "Anstataŭiga administro:"
+
+#: src/tar.c:467
+msgid "attempt to verify the archive after writing it"
+msgstr "provi kontroli la arĥivon post skribi ĝin"
+
+#: src/tar.c:469
+msgid "remove files after adding them to the archive"
+msgstr "forigi dosierojn post aldoni ilin al la arĥivo"
+
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "ne anstataŭigi ekzistantajn dosierojn dum eltiro"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "ne anstataŭigi ekzistantajn dosierojn dum eltiro"
+
+#: src/tar.c:477
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr ""
+"ne anstataŭigi ekzistantajn dosierojn kiuj pli novas ol iliaj arĥivaj kopioj"
+
+#: src/tar.c:479
+msgid "overwrite existing files when extracting"
+msgstr "anstataŭigi ekzistantajn dosierojn dum eltiro"
+
+#: src/tar.c:481
+msgid "remove each file prior to extracting over it"
+msgstr "forigi ĉiun dosieron antaŭ ol eltiri sur ĝi"
+
+#: src/tar.c:483
+msgid "empty hierarchies prior to extracting directory"
+msgstr "malplenigi hierarkiojn antaŭ ol eltiri dosierujon"
+
+#: src/tar.c:485
+msgid "preserve metadata of existing directories"
+msgstr "teni metadatumaron pri ekzistantaj dosierujoj"
+
+#: src/tar.c:487
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr ""
+"anstataŭigi metadatumaron pri ekzistantaj dosierujoj dum eltiro (aprioras)"
+
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "anstataŭigi ekzistantajn dosierojn dum eltiro"
+
+#: src/tar.c:496
+msgid "Select output stream:"
+msgstr "Elekti eligfluon:"
+
+#: src/tar.c:499
+msgid "extract files to standard output"
+msgstr "eltiri dosierojn al ĉefeligujo"
+
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMANDO"
+
+#: src/tar.c:501
+msgid "pipe extracted files to another program"
+msgstr "dukti eltiritajn dosierojn al alia programo"
+
+#: src/tar.c:503
+msgid "ignore exit codes of children"
+msgstr "preteratenti elir-kodojn de idoj"
+
+#: src/tar.c:505
+msgid "treat non-zero exit codes of children as error"
+msgstr "trakti ne-nulajn elir-kodojn de idoj kiel erarojn"
+
+#: src/tar.c:510
+msgid "Handling of file attributes:"
+msgstr "Traktado de dosier-atributoj:"
+
+#: src/tar.c:513
+msgid "force NAME as owner for added files"
+msgstr "devigi NOMOn kiel posedanton por aldonataj dosieroj"
+
+#: src/tar.c:515
+msgid "force NAME as group for added files"
+msgstr "devigi NOMOn kiel grupon por aldonataj dosieroj"
+
+#: src/tar.c:516 src/tar.c:736
+msgid "DATE-OR-FILE"
+msgstr "DATO-AŬ-DOSIERO"
+
+#: src/tar.c:517
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "difini 'mtime' por aldonataj dosieroj el DATO-AŬ-DOSIERO"
+
+#: src/tar.c:518
+msgid "CHANGES"
+msgstr "ŜANĜOJ"
+
+#: src/tar.c:519
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "devigi (simbolajn) reĝimajn ŜANĜOJn por aldonataj dosieroj"
+
+#: src/tar.c:521
+msgid "METHOD"
+msgstr "METODO"
+
+#: src/tar.c:522
+msgid ""
+"preserve access times on dumped files, either by restoring the times after "
+"reading (METHOD='replace'; default) or by not setting the times in the first "
+"place (METHOD='system')"
+msgstr ""
+"konservi alir-horojn en ŝutitaj dosieroj, aŭ per restarigo de la horoj post "
+"lego (METODO='replace'; aprioras) aŭ per ne-difino de la horoj en la unua "
+"loko (METODO='system')"
+
+#: src/tar.c:526
+msgid "don't extract file modified time"
+msgstr "ne eltiri dosieran modif-horon"
+
+#: src/tar.c:528
+msgid ""
+"try extracting files with the same ownership as exists in the archive "
+"(default for superuser)"
+msgstr ""
+"provi eltiri dosierojn kun la sama posedanteco kiel ekzistanta en la arĥivo "
+"(aprioras por ĉefuzanto)"
+
+#: src/tar.c:530
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "eltiri dosierojn kiel vi mem (aprioras por ordinaraj uzantoj)"
+
+#: src/tar.c:532
+msgid "always use numbers for user/group names"
+msgstr "ĉiam uzi numerojn por uzant/grup-nomoj"
+
+#: src/tar.c:534
+msgid "extract information about file permissions (default for superuser)"
+msgstr "eltiri informon pri dosier-permesoj (aprioras por ĉefuzanto)"
+
+#: src/tar.c:538
+msgid ""
+"apply the user's umask when extracting permissions from the archive (default "
+"for ordinary users)"
+msgstr ""
+"apliki 'umask' de uzanto dum eltiro de permesoj por la arĥivo (aprioras por "
+"ordinaraj uzantoj)"
+
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
+
+#: src/tar.c:544
+msgid "same as both -p and -s"
+msgstr "same ol uzi kaj -p kaj -s"
+
+#: src/tar.c:546
+msgid ""
+"delay setting modification times and permissions of extracted directories "
+"until the end of extraction"
+msgstr ""
+"prokrastigi difinon de modif-horoj kaj permesoj de eltiritaj dosierujoj ĝis "
+"la fino de la eltirado"
+
+#: src/tar.c:549
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "nuligi la efikon de la modifilo --delay-directory-restore"
+
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Traktado de dosier-atributoj:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
+msgid "Device selection and switching:"
+msgstr "Aktivigo kaj elekto de aparato:"
+
+#: src/tar.c:578
+msgid "ARCHIVE"
+msgstr "ARĤIVO"
+
+#: src/tar.c:579
+msgid "use archive file or device ARCHIVE"
+msgstr "uzi arĥivan dosieron aŭ aparaton ARĤIVO"
+
+#: src/tar.c:581
+msgid "archive file is local even if it has a colon"
+msgstr "arĥiva dosiero estas loka eĉ se ĝi havas dupunkton"
+
+#: src/tar.c:583
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "uzi indikitan KOMANDOn rmt anstataŭ rmt"
+
+#: src/tar.c:585
+msgid "use remote COMMAND instead of rsh"
+msgstr "uzi deforan KOMANDOn anstataŭ rsh"
+
+#: src/tar.c:589
+msgid "specify drive and density"
+msgstr "indiki diskon kaj denson"
+
+#: src/tar.c:603
+msgid "create/list/extract multi-volume archive"
+msgstr "krei/listigi/eltiri plur-voluman arĥivon"
+
+#: src/tar.c:605
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "ŝanĝi bend-aparaton post skribi NUMERO x 1024 bajtojn"
+
+#: src/tar.c:607
+msgid "run script at end of each tape (implies -M)"
+msgstr "lanĉi skripton je fino de ĉiu bend-aparato (implicas -M)"
+
+#: src/tar.c:610
+msgid "use/update the volume number in FILE"
+msgstr "uzi/ĝisdatigi la volum-numeron en DOSIERO"
+
+#: src/tar.c:615
+msgid "Device blocking:"
+msgstr "Aparat-blokoj:"
+
+#: src/tar.c:617
+msgid "BLOCKS"
+msgstr "BLOKOJ"
+
+#: src/tar.c:618
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKOJ x 512 bajtoj por rikordo"
+
+#: src/tar.c:620
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMERO da bajtoj por rikordo, oblo de 512"
+
+#: src/tar.c:622
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "preteratenti nuligitajn blokojn en arĥivo (signifas EOF)"
+
+#: src/tar.c:624
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "reblokigi dum ni legas (por duktoj 4.2BSD)"
+
+#: src/tar.c:629
+msgid "Archive format selection:"
+msgstr "Elekto de arĥiv-formo:"
+
+#: src/tar.c:631 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMO"
+
+#: src/tar.c:632
+msgid "create archive of the given format"
+msgstr "krei arĥivon el indikita formo"
+
+#: src/tar.c:634
+msgid "FORMAT is one of the following:"
+msgstr "FORMO estas unu el la jenaj:"
+
+#: src/tar.c:635
+msgid "old V7 tar format"
+msgstr "malnova formo V7 tar"
+
+#: src/tar.c:638
+msgid "GNU format as per tar <= 1.12"
+msgstr "Formo GNU kiel en tar <= 1.12"
+
+#: src/tar.c:640
+msgid "GNU tar 1.13.x format"
+msgstr "Formo de GNU-tar 1.13.5"
+
+#: src/tar.c:642
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Formo POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:644
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Formo POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:645
+msgid "same as pax"
+msgstr "same ol pax"
+
+#: src/tar.c:648
+msgid "same as --format=v7"
+msgstr "same ol --format=v7"
+
+#: src/tar.c:651
+msgid "same as --format=posix"
+msgstr "same ol --format=posix"
+
+#: src/tar.c:652
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ŝlosilo[[:]=valoro][,ŝlosilo[[:]=valoro]]..."
+
+#: src/tar.c:653
+msgid "control pax keywords"
+msgstr "kontroli pax-ŝlosilojn"
+
+#: src/tar.c:654
+msgid "TEXT"
+msgstr "TEKSTO"
+
+#: src/tar.c:655
+msgid ""
+"create archive with volume name TEXT; at list/extract time, use TEXT as a "
+"globbing pattern for volume name"
+msgstr ""
+"krei arĥivon kun volum-nomo TEKSTO; dum listigo/eltiro, uzi TEKSTOn kiel "
+"ĵokeran ŝablonon por volum-nomo"
+
+#: src/tar.c:660
+msgid "Compression options:"
+msgstr "Densigaj modifiloj:"
+
+#: src/tar.c:662
+msgid "use archive suffix to determine the compression program"
+msgstr "uzi arĥivan sufikson por determini la densigan programon"
+
+#: src/tar.c:664
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ne uzi la arĥivan sufikson por determini la densigan programon"
+
+#: src/tar.c:666
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:667
+msgid "filter through PROG (must accept -d)"
+msgstr "filtri tra PROG (devas akcepti -d)"
+
+#: src/tar.c:683
+msgid "Local file selection:"
+msgstr "Loka dosier-elekto:"
+
+#: src/tar.c:686
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr ""
+"aldoni la indikitan DOSIEROn al la arĥivo (utilas se ĝia nomo komencas per "
+"streketo)"
+
+#: src/tar.c:687
+msgid "DIR"
+msgstr "UJO"
+
+#: src/tar.c:688
+msgid "change to directory DIR"
+msgstr "ŝanĝi al la dosierujo UJO"
+
+#: src/tar.c:690
+msgid "get names to extract or create from FILE"
+msgstr "havigi nomojn por eltiri aŭ krei el DOSIERO"
+
+#: src/tar.c:692
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T legas nul-finigitajn nomojn, malebligas -C"
+
+#: src/tar.c:694
+msgid "disable the effect of the previous --null option"
+msgstr "malebligi la efikon de la antaŭa modifilo --null"
+
+#: src/tar.c:696
+msgid "unquote filenames read with -T (default)"
+msgstr "malcitigi dosiernomojn legitajn per -T (aprioras)"
+
+#: src/tar.c:698
+msgid "do not unquote filenames read with -T"
+msgstr "ne malcitigi dosiernomojn legitajn per -T"
+
+#: src/tar.c:699 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ŜABLONO"
+
+#: src/tar.c:700
+msgid "exclude files, given as a PATTERN"
+msgstr "ekskluzivi dosierojn, indikitaj kiel ŜABLONO"
+
+#: src/tar.c:702
+msgid "exclude patterns listed in FILE"
+msgstr "ekskluzivi ŝablonojn listigitajn en DOSIERO"
+
+#: src/tar.c:704
+msgid ""
+"exclude contents of directories containing CACHEDIR.TAG, except for the tag "
+"file itself"
+msgstr ""
+"ekskluzivi enhavojn de dosierujoj enhavantaj CACHEDIR.TAG, krom por la "
+"markdosiero mem"
+
+#: src/tar.c:707
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "ekskluzivi ĉion sub dosierujoj enhavantaj CACHEDIR.TAG"
+
+#: src/tar.c:710
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "ekskluzivi dosierujojn enhavantajn CACHEDIR.TAG"
+
+#: src/tar.c:712
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr ""
+"ekskluzivi enhavojn de dosierujoj enhavantaj DOSIEROn, krom por DOSIERO mem"
+
+#: src/tar.c:715
+msgid "exclude everything under directories containing FILE"
+msgstr "ekskluzivi ĉion sub dosierujoj enhavantaj DOSIERO"
+
+#: src/tar.c:717
+msgid "exclude directories containing FILE"
+msgstr "ekskluzivi dosierujojn enhavantajn DOSIEROn"
+
+#: src/tar.c:719
+msgid "exclude version control system directories"
+msgstr "ekskluzivi versikontrol-sistemajn dosierujojn"
+
+#: src/tar.c:721
+msgid "exclude backup and lock files"
+msgstr "ekskluzivi savkopiajn kaj ŝlosajn dosierojn"
+
+#: src/tar.c:723
+msgid "avoid descending automatically in directories"
+msgstr "eviti malsupreniri aŭtomate en dosierujoj"
+
+#: src/tar.c:725
+msgid "stay in local file system when creating archive"
+msgstr "resti en loka dosiersistemo dum kreo de arĥivo"
+
+#: src/tar.c:727
+msgid "recurse into directories (default)"
+msgstr "rekursigi en dosierujojn (aprioras)"
+
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
+msgstr "ne demeti antaŭirajn '/'-oj el dosiernomoj"
+
+#: src/tar.c:731
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "sekvi simbol-ligojn; arĥivi kaj ŝuti la dosierojn, kiujn ili indikas"
+
+#: src/tar.c:733
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr ""
+"sekvi rekt-ligojn; arĥivi kaj ŝuti la dosierojn, kiujn ili referencigas"
+
+#: src/tar.c:734
+msgid "MEMBER-NAME"
+msgstr "MEMBRO-NOMO"
+
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
+msgstr "komenci per la membro MEMBRO-NOMO en la arĥivo"
+
+#: src/tar.c:737
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "nur konservi dosierojn pli novajn ol DATO-AŬ-DOSIERO"
+
+#: src/tar.c:739
+msgid "DATE"
+msgstr "DATO"
+
+#: src/tar.c:740
+msgid "compare date and time when data changed only"
+msgstr "kompari daton kaj horon nur kiam datumaro ŝanĝis"
+
+#: src/tar.c:741
+msgid "CONTROL"
+msgstr "KONTROLO"
+
+#: src/tar.c:742
+msgid "backup before removal, choose version CONTROL"
+msgstr "savkopii antaŭ ol forigi, elekti versi-KONTROLOn"
+
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
+msgid "STRING"
+msgstr "ĈENO"
+
+#: src/tar.c:744
+msgid ""
+"backup before removal, override usual suffix ('~' unless overridden by "
+"environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr ""
+"savkopii antaŭ ol forigi, anstataŭigi ordinaran sufikson ('~' krom se "
+"anstataŭigita de medi-variablo SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:749
+msgid "File name transformations:"
+msgstr "Dosiernomaj transformigoj:"
+
+#: src/tar.c:751
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "demeti NUMERO antaŭirajn komponantojn el dosiernomoj dum eltiro"
+
+#: src/tar.c:753
+msgid "EXPRESSION"
+msgstr "ESPRIMO"
+
+#: src/tar.c:754
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "uzi sed-anstataŭigan ESPRIMOn por transformigi dosiernomojn"
+
+#: src/tar.c:760
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr ""
+"Dosiernom-kongruaj modifiloj (influas kaj ekskluzivajn kaj inkluzivajn "
+"ŝablonojn):"
+
+#: src/tar.c:763
+msgid "ignore case"
+msgstr "preteratenti usklecon"
+
+#: src/tar.c:765
+msgid "patterns match file name start"
+msgstr "ŝablonoj kongruas al komenco de dosiernomo"
+
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
+msgstr "ŝablonoj kongruas post iu ajn '/' (aprioras por ekskluzivo)"
+
+#: src/tar.c:769
+msgid "case sensitive matching (default)"
+msgstr "uskleca kongruo (aprioras)"
+
+#: src/tar.c:771
+msgid "use wildcards (default for exclusion)"
+msgstr "uzi ĵokerojn (aprioras por ekskluzivo)"
+
+#: src/tar.c:773
+msgid "verbatim string matching"
+msgstr "laŭvorta ĉena kongruo"
+
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
+msgstr "ĵokeroj ne kongruas kun '/'"
+
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
+msgstr "ĵokeroj kongruas kun '/' (aprioras por ekskluzivo)"
+
+#: src/tar.c:782
+msgid "Informative output:"
+msgstr "Informa eligo:"
+
+#: src/tar.c:785
+msgid "verbosely list files processed"
+msgstr "detale listigi procezitajn dosierojn"
+
+#: src/tar.c:786
+msgid "KEYWORD"
+msgstr "ŜLOSILVORTO"
+
+#: src/tar.c:787
+msgid "warning control"
+msgstr "avert-kontrolo"
+
+#: src/tar.c:789
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "montri progres-mesaĝojn je ĉiu NUMERa rikordo (aprioras 10)"
+
+#: src/tar.c:791
+msgid "ACTION"
+msgstr "AGO"
+
+#: src/tar.c:792
+msgid "execute ACTION on each checkpoint"
+msgstr "plenumigi AGOn je ĉiu kontrolpunkto"
+
+#: src/tar.c:795
+msgid "print a message if not all links are dumped"
+msgstr "montri mesaĝon se ne ĉiuj ligoj estos ŝutitaj"
+
+#: src/tar.c:796
+msgid "SIGNAL"
+msgstr "SIGNALO"
+
+#: src/tar.c:797
+msgid ""
+"print total bytes after processing the archive; with an argument - print "
+"total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
+"SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also "
+"accepted"
+msgstr ""
+"montri kiom da bajtoj post la procezado de la arĥivo; kun argumento - montri "
+"kiom da bajtoj, kiam tiu ĉi SIGNALO estos liverata; permesataj signaloj "
+"estas: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 kaj SIGUSR2; la nomoj sen prefikso "
+"SIG ankaŭ akcepteblas"
+
+#: src/tar.c:802
+msgid "print file modification times in UTC"
+msgstr "montri dosierajn modif-horojn laŭ UTC"
+
+#: src/tar.c:804
+msgid "print file time to its full resolution"
+msgstr "montri dosieran horon per ĝia tuta distingivo"
+
+#: src/tar.c:806
+msgid "send verbose output to FILE"
+msgstr "sendi detalan eligon al DOSIERO"
+
+#: src/tar.c:808
+msgid "show block number within archive with each message"
+msgstr "montri bloknumeron ene de arĥivo je ĉiu mesaĝo"
+
+#: src/tar.c:810
+msgid "ask for confirmation for every action"
+msgstr "peti konfirmon por ĉiu ago"
+
+#: src/tar.c:813
+msgid "show tar defaults"
+msgstr "montri apriorojn de tar"
+
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
+msgid ""
+"when listing or extracting, list each directory that does not match search "
+"criteria"
+msgstr ""
+"dum listigo aŭ eltiro, listigi ĉiun dosierujon kiu ne kongruas al serĉ-"
+"kriterio"
+
+#: src/tar.c:819
+msgid "show file or archive names after transformation"
+msgstr "montri dosieron aŭ arĥivajn nomojn post transformigo"
+
+#: src/tar.c:822
+msgid "STYLE"
+msgstr "STILO"
+
+#: src/tar.c:823
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "difini nom-citigan stilon; vidu sube por validaj valoroj de STILO"
+
+#: src/tar.c:825
+msgid "additionally quote characters from STRING"
+msgstr "krome citigi signojn el ĈENO"
+
+#: src/tar.c:827
+msgid "disable quoting for characters from STRING"
+msgstr "malebligi citigon por signoj el ĈENO"
+
+#: src/tar.c:832
+msgid "Compatibility options:"
+msgstr "Akordigeblaj modifiloj:"
+
+#: src/tar.c:835
+msgid ""
+"when creating, same as --old-archive; when extracting, same as --no-same-"
+"owner"
+msgstr "dum kreo, same ol --old-archive; dum eltiro, same ol --no-same-owner"
+
+#: src/tar.c:840
+msgid "Other options:"
+msgstr "Aliaj modifiloj:"
+
+#: src/tar.c:843
+msgid "disable use of some potentially harmful options"
+msgstr "malebligi uzon de kelkaj eble damaĝaj modifiloj"
+
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
+msgstr ""
+"Vi ne devas indiki pli ol unu el la modifiloj '-Acdtrux' aŭ '--test-label'"
+
+#: src/tar.c:988
+msgid "Conflicting compression options"
+msgstr "Konfliktantaj densigaj modifiloj"
+
+#: src/tar.c:1047
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nekonata signal-nomo: %s"
+
+#: src/tar.c:1071
+msgid "Date sample file not found"
+msgstr "Data specimen-dosiero ne estis trovata"
+
+#: src/tar.c:1079
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Ni anstataŭigas %s por la nekonata dato-formo %s"
+
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
+msgstr "Modifilo %s: ni traktas daton '%s' kiel %s"
+
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtri la arĥivon tra %s"
+
+#: src/tar.c:1179
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Validaj argumentoj por la modifilo --quoting-style estas:"
+
+#: src/tar.c:1183
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Tiu ĉi* tar apriorigas tion:\n"
+
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Malvalida posedanto"
+
+#: src/tar.c:1339
+msgid "Invalid blocking factor"
+msgstr "Malvalida blok-faktoro"
+
+#: src/tar.c:1452
+msgid "Invalid tape length"
+msgstr "Malvalida benda longo"
+
+#: src/tar.c:1466
+msgid "Invalid incremental level value"
+msgstr "Malvalida aldon-nivela valoro"
+
+#: src/tar.c:1512
+msgid "More than one threshold date"
+msgstr "Pli ol unu lim-dato"
+
+#: src/tar.c:1571 src/tar.c:1574
+msgid "Invalid sparse version value"
+msgstr "Malvalida disa versi-valoro"
+
+#: src/tar.c:1659
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ne estas subtenata en tiu ĉi platformo"
+
+#: src/tar.c:1684
+msgid "--checkpoint value is not an integer"
+msgstr "valoro de --checkpoint ne estas entjero"
+
+#: src/tar.c:1801
+msgid "Invalid mode given on option"
+msgstr "Malvalida reĝimo indikita en modifilo"
+
+#: src/tar.c:1858
+msgid "Invalid number"
+msgstr "Malvalida numero"
+
+#: src/tar.c:1915
+msgid ""
+"The --preserve option is deprecated, use --preserve-permissions --preserve-"
+"order instead"
+msgstr ""
+"La modifilo --preserve estas malrekomendinda, uzu --preserve-permissions --"
+"preserve-order anstataŭe"
+
+#: src/tar.c:1926
+msgid "Invalid record size"
+msgstr "Malvalida rikord-grando"
+
+#: src/tar.c:1929
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Rikord-grando devas esti oblo de %d."
+
+#: src/tar.c:1975
+msgid "Invalid number of elements"
+msgstr "Malvalida nombro da elementoj"
+
+#: src/tar.c:1995
+msgid "Only one --to-command option allowed"
+msgstr "Nur unu modifilo --to-command estas permesata"
+
+#: src/tar.c:2107
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Fuŝa densiga argumento: %s"
+
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "Nekonata densigo: '%c'"
+
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
+msgstr "Modifiloj '-[0-7][lmh]' ne estas subtenata de *tiu ĉi* tar"
+
+#: src/tar.c:2163
+msgid "[FILE]..."
+msgstr "[DOSIERO]..."
+
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
+msgstr "La malnova modifilo '%c' postulas argumenton."
+
+#: src/tar.c:2386
+msgid "--occurrence is meaningless without a file list"
+msgstr "Sen dosierlisto, --occurrence estas sensignifa"
+
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
+msgstr "--occurrence ne povas esti uzata en la petita operaci-reĝimo"
+
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
+msgstr "Multoblaj arĥiv-dosieroj postulas modifilon '-M'"
+
+#: src/tar.c:2413
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ne eblas kombini --listed-incremental kun --newer"
+
+#: src/tar.c:2416
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Sen --listed-incremental, --level estas sensignifa"
+
+#: src/tar.c:2433
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu byte)"
+msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
+msgstr[0] "%s: volum-etikedo tro longas (limo estas %lu bajto)"
+msgstr[1] "%s: volum-etikedo tro longas (limo estas %lu bajtoj)"
+
+#: src/tar.c:2446
+msgid "Cannot verify multi-volume archives"
+msgstr "Ne eblas kontroli plur-volumajn arĥivojn"
+
+#: src/tar.c:2448
+msgid "Cannot verify compressed archives"
+msgstr "Ne eblas kontroli densigitajn arĥivojn"
+
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Ŝablono %s ne povas esti uzata"
+
+#: src/tar.c:2457
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ne eblas uzi plur-volumajn densigitajn arĥivojn"
+
+#: src/tar.c:2461
+msgid "Cannot concatenate compressed archives"
+msgstr "Ne eblas kunmeti densigitajn arĥivojn"
+
+#: src/tar.c:2471
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option nur uzeblas en arĥivoj POSIX"
+
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option nur uzeblas en arĥivoj POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option nur uzeblas en arĥivoj POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option nur uzeblas en arĥivoj POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Ŝablono %s ne povas esti uzata"
+
+#: src/tar.c:2525
+msgid "Volume length cannot be less than record size"
+msgstr "Datum-voluma longo ne povas esti malpli ol rikord-grando"
+
+#: src/tar.c:2528
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order ne akordigeblas kun --listed-incremental"
+
+#: src/tar.c:2539
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Malkuraĝe ni rifuzas krei malplenan arĥivon"
+
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
+msgstr "Modifiloj '-Aru' ne akordigeblas kun '-f -'"
+
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
+msgstr "Vi devas indiki unu el la modifiloj '-Acdtrux' aŭ '--test-label'"
+
+#: src/tar.c:2715
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Ni eliras kun malsukcesa stato pro antaŭaj eraroj"
+
+#: src/update.c:87
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: dosiero malkreskiĝis per %s bajto"
+msgstr[1] "%s: dosiero malkreskiĝis per %s bajtoj"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ŝlosilo %s estas nekonata aŭ ankoraŭ ne realigita"
+
+#: src/xheader.c:173
+msgid "Time stamp is out of allowed range"
+msgstr "Temp-indiko estas for de permesata intervalo"
+
+#: src/xheader.c:204
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Ŝablono %s ne povas esti uzata"
+
+#: src/xheader.c:218
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ŝablono %s ne povas esti anstataŭigata"
+
+#: src/xheader.c:667
+msgid "Malformed extended header: missing length"
+msgstr "Fuŝa etendita kapo: mankas longo"
+
+#: src/xheader.c:676
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Longo de etendita kapo %*s estas for de intervalo"
+
+#: src/xheader.c:688
+msgid "Malformed extended header: missing blank after length"
+msgstr "Fuŝa etendita kapo: mankas blankspaco post longo"
+
+#: src/xheader.c:696
+msgid "Malformed extended header: missing equal sign"
+msgstr "Fuŝa etendita kapo: mankas egal-signo"
+
+#: src/xheader.c:702
+msgid "Malformed extended header: missing newline"
+msgstr "Fuŝa etendita kapo: mankas nov-linio"
+
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
+msgstr "Ni preteratentas nekonatan etenditan kapan ŝlosilon '%s'"
+
+#: src/xheader.c:1012
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Generita paro ŝlosilo/valoro tro longas (ŝlosilo=%s, longo=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:1042
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "La etendita kapo %s=%s estas for de la intervalo %s..%s"
+
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Fuŝa etendita kapo: malvalida %s=%s"
+
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Fuŝa etendita kapo: troiga %s=%s"
+
+#: src/xheader.c:1501
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Fuŝa etendita kapo: malvalida %s: neatendita apartigilo %c"
+
+#: src/xheader.c:1511
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Fuŝa etendita kapo: malvalida %s: malpara nombro da valoroj"
+
+#: src/checkpoint.c:109
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ne estas valida templimo"
+
+#: src/checkpoint.c:114
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: nekonata kontrolpunkta ago"
+
+#: src/checkpoint.c:134
+msgid "write"
+msgstr "skribi"
+
+#: src/checkpoint.c:134
+msgid "read"
+msgstr "legi"
+
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Skriba kontrol-punkto %u"
+
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lega kontrol-punkto %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"'genfile' manipulas datumarajn dosierojn por la test-programaro 'paxutils' "
+"de GNU.\n"
+"MODIFILOJ estas:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Dosier-kreaj modifiloj:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "GRANDO"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Krei dosieron el indikita GRANDO"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Skribi al dosiero NOMO, anstataŭ al ĉefeligujo"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Legi dosiernomojn el DOSIERO"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T legas nul-finigitajn nomojn"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr ""
+"Kompletigi la dosieron per la indikita ŜABLONO. ŜABLONO estas 'default' aŭ "
+"'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Grando de bloko por disa dosiero"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr ""
+"Generi disan dosieron. Cetero de la komandlinio indikas la dosiermapon."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "DEŜOVO"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Moviĝi al la indikita deŝovo antaŭ ol skribi datumaron"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Dosier-statistikaj modifiloj:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr ""
+"Montri enhavon de 'struct stat' por ĉiu indikita dosiero. Apriora FORMO "
+"estas: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Sinkronaj plenumaj modifiloj:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "MODIFILO"
+
+#: tests/genfile.c:164
+msgid ""
+"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, "
+"--unlink"
+msgstr ""
+"Plenumi ARGj. Utilas kun --checkpoint kaj unu el --cut, --append, --touch, --"
+"unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Plenumi indikitan agon (vidu sube), kiam atingi kontrolpunkton NUMERO"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Difini daton por la modifilo --touch kiu sekvas"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Montri plenumitajn kontrolpunktojn kaj elir-staton de KOMANDO"
+
+#: tests/genfile.c:178
+msgid ""
+"Synchronous execution actions. These are executed when checkpoint number "
+"given by --checkpoint option is reached."
+msgstr ""
+"Sinkronaj plenumaj agoj. Tiuj ĉi estas plenumataj kiam oni atingas "
+"kontrolpunktan numeron indikitan de modifilo --checkpoint."
+
+#: tests/genfile.c:181
+msgid ""
+"Truncate FILE to the size specified by previous --length option (or 0, if it "
+"is not given)"
+msgstr ""
+"Tranĉi DOSIEROn al la grando indikita de antaŭa modifilo --length (aŭ 0, se "
+"ne indikita)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr ""
+"Postmeti GRANDO bajtojn al DOSIERO. GRANDO estas indikita de antaŭa modifilo "
+"--length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Ĝisdatigi la alirajn kaj modifajn horojn de DOSIERO"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Lanĉi KOMANDOn"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Malligi DOSIEROn"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Malvalida grando: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Numero estas for de permesata intervalo: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativa grando: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:569
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) fiaskis"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "petita dosier-longo: %lu, fakta: %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "kreita dosiero ne estas disa"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Eraro dum analizo de numero proksime de '%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Nekonata dat-formo"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGj...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
+#, c-format
+msgid "cannot open `%s'"
+msgstr "ne eblas malfermi '%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "ne eblas apliki 'seek'"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "dosiernomo enhavas nul-signon"
+
+#: tests/genfile.c:518
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr ""
+"ne eblas generi disajn dosierojn por la ĉefeligujo, uzu la modifilon --file"
+
+#: tests/genfile.c:596
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "malĝusta masko (proksime de '%s')"
+
+#: tests/genfile.c:602 tests/genfile.c:635
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Nekonata kampo '%s'"
+
+#: tests/genfile.c:662
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ne eblas difini horon por '%s'"
+
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "ne eblas apliki 'unlink' al '%s'"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "La komando %s fiaskis"
+
+#: tests/genfile.c:706
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "ne eblas apliki 'unlink' al '%s'"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komando eliris sukcese\n"
+
+#: tests/genfile.c:835
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Komando fiaskis kun stato %d\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komando estis ĉesigata de signalo %d\n"
+
+#: tests/genfile.c:841
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komando haltis pro signalo %d\n"
+
+#: tests/genfile.c:844
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Komando ŝutis nukleon\n"
+
+#: tests/genfile.c:847
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komando estas ĉesigita\n"
+
+#: tests/genfile.c:879
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat postulas dosiernomojn"
+
+#~ msgid "Cannot get working directory"
+#~ msgstr "Ne eblas scii la laboran dosierujon"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "ordigi eltirotajn nomojn por kongrui al la arĥivo"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Kampo tro longa dum lego de specimena dosiero"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Leg-eraro en specimena dosiero"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Neatendita kamp-valoro en specimena dosiero"
+
+#~ msgid "Invalid group"
+#~ msgstr "Malvalida grupo"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Longo de etendita kapo estas for de permesata intervalo"
index 4c8274e1959d872fae7decc35e4f7fdf610e98bb..db119d7bdfa9e1cbbab68024f56080da4894ac87 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 77c7fd6ba955bf3feaa16517da82537162c2dba9..837eef933748f2fa3bb15ef999eabbc5bd27aabe 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -4,12 +4,12 @@
 # Enrique Melero <melero@iprolink.ch>, 1997.
 # Santiago Vila Doncel <sanvila@unex.es>, 1998, 1999, 2000, 2001, 2002, 2004.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU tar 1.15.1\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2004-12-27 20:45+0100\n"
 "Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -30,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argumento %s ambiguo para %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Los argumentos válidos son:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: El parámetro ARGP_HELP_FMT necesita un valor"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, fuzzy, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: El parámetro ARGP_HELP_FMT necesita un valor"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Parámetro ARGP_HELP_FMT desconocido"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Incongruencia en ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -68,21 +67,21 @@ msgstr ""
 "también\n"
 "obligatorios u opcionales para las opciones cortas correspondientes."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Modo de empleo:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " o bien: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPCIÓN...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Pruebe `%s --help' o `%s --usage' para más información.\n"
 
 # Por favor, no me digáis cómo se traduce bug.
@@ -101,12 +100,12 @@ msgstr "Pruebe `%s --help' o `%s --usage' para m
 # ¿No tendría sentido catalogarlos entonces?
 #
 # Véase "A Bug's life".
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Comunicar bichos a %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Error del sistema desconocido"
 
@@ -120,7 +119,7 @@ msgstr "Da esta lista de ayuda"
 msgid "give a short usage message"
 msgstr "Da un mensaje de uso corto"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NOMBRE"
@@ -142,17 +141,16 @@ msgstr ""
 msgid "print program version"
 msgstr "Muestra la versión del programa"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: la opción `%s' requiere un argumento\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -160,62 +158,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: la opción `%s' es ambigua\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: la opción `--%s' no admite ningún argumento\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, 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"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: la opción `%s' requiere un argumento\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opción no reconocida `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opción no reconocida `%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opción inválida -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: la opción requiere un argumento -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: la opción `-W %s' es ambigua\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, 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"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: la opción `%s' requiere un argumento\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memoria agotada"
 
@@ -231,28 +229,30 @@ msgstr "No se puede determinar el directorio de trabajo inicial"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -262,7 +262,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -272,7 +272,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -571,7 +571,12 @@ msgstr "salida est
 msgid "Cannot connect to %s: resolve failed"
 msgstr "No se puede acceder a la posición %s en el fichero %s"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "No se puede ejecutar un shell remoto"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "No se puede ejecutar un shell remoto"
@@ -628,8 +633,8 @@ msgstr "Fin de fichero inesperado en el archivo"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NÚMERO"
 
@@ -637,8 +642,8 @@ msgstr "N
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -653,7 +658,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "No se puede abrir %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -662,9 +667,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Orden ininteligible"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Esto no parece un archivo tar"
 
@@ -744,60 +749,60 @@ msgstr "No se puede verificar la entrada/salida est
 msgid "Archive is compressed. Use %s option"
 msgstr "El archivo está comprimido. Utilice la opción %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "No se pueden actualizar archivos comprimidos"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Al principio de la cinta, se terminará ahora"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Demasiados errores, abandono"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Tamaño del registro = %lu bloque"
 msgstr[1] "Tamaño del registro = %lu bloques"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloque no alineado (%lu byte) dentro del archivo"
 msgstr[1] "Bloque no alineado (%lu bytes) dentro del archivo"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "No se puede ir hacia atrás en el archivo; puede ser ilegible sin -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek no paró en los límites de un registro"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: contiene un número de volumen inválido"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Desbordamiento en el número de volumen"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Prepare el volumen #%d para %s y pulse intro: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr ""
 "Se encontró un final de fichero mientras se esperaba respuesta del usuario"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ATENCIÓN: El archivo está incompleto"
 
@@ -829,7 +834,7 @@ msgstr "ATENCI
 # A mí aquí me da igual lista que ayuda, de las dos formas se entiende. Manda
 # el traductor original. gerardo
 # ¿A alguien más le parece mal que ponga ayuda en vez de lista? sv
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -842,12 +847,12 @@ msgstr ""
 " !          Lanza un subshell\n"
 " ?          Muestra esta ayuda\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
@@ -858,35 +863,35 @@ msgstr ""
 # Uno se sale del programa, y éste acaba. En realidad, también da igual, de
 # cualquier forma se entiende, pero mejor acabar o terminar que finalizar,
 # total, son sinónimos. gerardo
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "No hay volumen nuevo; finalizando.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "La orden `%s' falló"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s no continúa en este volumen"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s no continúa en este volumen"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s tiene un tamaño erróneo (%s != %s + %s)"
@@ -906,7 +911,7 @@ msgstr "%s tiene un tama
 # él solito.
 # Todavía espero una solución mágica que sea mejor que las dos
 # que tenemos hasta ahora.
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Este volumen está fuera de secuencia"
@@ -917,17 +922,17 @@ msgstr "Este volumen est
 # Si no se sabe eso, se podría dejar de forma más neutra como
 # "Archivo no etiquetado para concordancia con `%s'" - gerardo (gag)
 # FIXME: Preguntar.
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "El archivo no está etiquetado para que coincida con %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "El volumen %s no coincide con %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, fuzzy, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -939,28 +944,28 @@ msgstr ""
 # Según gag y jmg, hay que decir: "no está en un límite de bloque", pues
 # no estamos hablando de un bloque concreto (el bloque) sino de uno cualquiera.
 # FIXME: Entonces tal vez el original debería decir "on a block boundary". sv
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "El fin del archivo %s no está en un límite de bloque"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Sólo se pudieron leer %lu de %lu byte"
 msgstr[1] "Sólo se pudieron leer %lu de %lu bytes"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "El contenido es distinto"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Fin de fichero inesperado en el archivo"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "El tipo de fichero es distinto"
 
@@ -970,46 +975,46 @@ msgstr "El tipo de fichero es distinto"
 # corresponder siempre una frase corta española, el resultado sonará a indio
 # completamente (me refiero a los indios esos de las películas del oeste,
 # que solamente hablan con sustantivos, verbos y adjetivos). sv
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "El modo es distinto"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "El uid es distinto"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "El gid es distinto"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "La fecha de modificación es distinta"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "El tamaño es distinto"
 
 # Creo que este enlace se efectúa al descomprimir un archivo tar.
 # No es que nos diga si está enlazado o no lo está, sino si él hace
 # el enlace o no lo hace. sv
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "No se enlaza a %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "El enlace simbólico es distinto"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "El número de dispositivo es distinto"
 
 # "Verifica ". Supongo que depende de si se concatena en algún
 # mensaje. jmg
 # FUZZY. Es verdad, habrá que verlo.
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificar "
@@ -1022,71 +1027,71 @@ msgstr "Verificar "
 # Realmente, dice lo que hace y no lo que ha hecho. sv
 # FIXME. Decirle al autor que estandarice las comillas: ¿'%c' o `%c'?
 # De momento lo estandarizo en la traducción.
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s: Tipo de fichero `%c' desconocido, se toma la diferencia\n"
 "como fichero normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 "El archivo contiene nombres de fichero con los prefijos iniciales eliminados."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "El archivo contiene la marca de tiempo en el futuro %s"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Puede que la verificación no encuentre los ficheros originales."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "FALLO DE VERIFICACIÓN: %d cabecera inválida detectada"
 msgstr[1] "FALLO DE VERIFICACIÓN: %d cabeceras inválidas detectadas"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Un bloque de ceros aislado en %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, fuzzy, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: contiene una marca de directorio caché; no se vuelca"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "valor %s fuera del rango %s %s..%s; se sustituye %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "valor %s fuera del rango %s %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Generando cabeceras octales negativas"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: el nombre del fichero es demasiado largo (máx %d); no se vuelca"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: el nombre del fichero es demasiado largo (no se puede dividir); no se "
 "vuelca"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca"
@@ -1099,7 +1104,7 @@ msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca"
 # Que sí, reconozco que la traducción es un poco libre.
 # Pero mi intención es que el programa diga lo que va haciendo, no lo que ya
 # ha hecho. Ni siquiera el original es consistente en los modos verbales. sv
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -1108,13 +1113,13 @@ msgstr[0] ""
 msgstr[1] ""
 "%s: El tamaño del fichero ha disminuido en %s bytes, se rellena con ceros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: el fichero está en un sistema de ficheros distinto; no se vuelca"
 
 # Se vuelca la *memoria* del proceso en un fichero llamado `core'.
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 #, fuzzy
 msgid "contents not dumped"
 msgstr " (memoria volcada)"
@@ -1135,71 +1140,76 @@ msgstr " (memoria volcada)"
 # Seguiremos en la ortodoxia, pero aún así, no puedo creerme que venga
 # en el DRAE. ¿Estás seguro? sv
 # No, no me compré el DRAE. Pregúntalo a spanglish (si te atreves ;-) gerardo
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipo de fichero desconocido; no se tendrá en cuenta"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Faltan enlaces a '%s'.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: el fichero no ha cambiado; no se vuelca"
 
 # FIXME: Decir al autor que ponga el "itself". sv
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: el fichero es el propio archivo; no se vuelca"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 #, fuzzy
 msgid "directory not dumped"
 msgstr "%s: contiene una marca de directorio caché; no se vuelca"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: el fichero cambió mientras se estaba leyendo"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: el `socket' no se tendrá en cuenta"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: no se tendrá en cuenta la puerta"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Saltando a la siguiente cabecera"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Borrando no-cabecera del archivo"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: marca de fecha sospechosamente antigua %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: la marca de tiempo %s está %lu s en el futuro"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inconsistencia inesperada al crear el directorio"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
@@ -1209,7 +1219,7 @@ msgstr ""
 # ni un dispositivo (de bloques o de caracteres) ni un fifo, etc.
 # Uno puede pensar que son los ficheros "normales", pero eso depende,
 # pues un directorio es de lo más "normal"...
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extrayendo ficheros contiguos como ficheros regulares"
 
@@ -1218,198 +1228,216 @@ msgstr "Extrayendo ficheros contiguos como ficheros regulares"
 # Es una cuestión todavía no dirimida.
 # ¿Tienes algún dato más? ¿Qué dicen los libros? sv
 # Enlaces duros. Lo acabo de mirar en un libro. gag
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Intentando la extracción de enlaces simbólicos como enlaces duros"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: No se puede extraer -- el fichero es continuación de otro volumen"
 
 # ¿No se referirá al autor a "mangled filenames"?... jmg
 # FIXME. Preguntárselo.
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Fin de fichero inesperado en los nombres modificados"
 
 # FIXME. Lo de las comillas '%c'.
 # Como antes, lo estandarizo en la traducción a pesar de todo.
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tipo de fichero `%c' desconocido, se extrae como fichero normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, fuzzy, c-format
 msgid "Current %s is newer or same age"
 msgstr "El `%s' actual es más reciente"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: No se pudo hacer copia de seguridad de este fichero"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: No se puede renombrar a %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: El directorio ha sido renombrado"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: El directorio ha sido renombrado"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: El directorio es nuevo"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: el fichero está en un sistema de ficheros distinto; no se vuelca"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directorio ha sido renombrado"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Marca de tiempo inválida"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Se ha especificado un modo no válido en la opción"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Número de dispositivo inválido"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Número de nodo-i inválido"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "Error de lectura en %s"
-
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Fin de fichero inesperado en el archivo"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, fuzzy, c-format
+msgid "%s: byte %s: %s %s"
+msgstr "%s: No se puede crear el enlace simbólico %s %s"
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Argumento de densidad mal formado: '%s'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Argumento de densidad mal formado: '%s'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr ""
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: No se purga el directorio: no se puede efectuar `stat'"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: el directorio está en un dispositivo distinto: no se purga"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Borrando %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: No se puede borrar"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Se omite"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloque %s: ** Bloque de NULos **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloque %s: ** Fin de Fichero **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloque %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Hay blancos en la cabecera cuando se esperaba el valor numérico %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1417,122 +1445,144 @@ msgstr ""
 "se supone complemento a dos"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "El valor octal %.*s del archivo está fuera del rango %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "El archivo contiene cabeceras base 64 obsoletas"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "La cadena firmada en base 64 %s del archivo está fuera del rango %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "El valor en base 256 del archivo está fuera del rango %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "El archivo contiene %.*s donde se esperaba el valor numérico %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, fuzzy, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "El valor del archivo %s está fuera del rango %s %s.%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " enlace a %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tipo de fichero desconocido %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Enlace largo--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nombre largo--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Cabecera de Volumen--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continúa en el byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Creando el directorio:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "No se puede cambiar el directorio de trabajo"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Se renombra %s como %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: No se puede renombrar a %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Se vuelve a renombrar %s como %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: El fichero fue borrado antes de leerlo"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proceso hijo"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canal de interproceso"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "La orden `%s' falló"
+
+# FIXME: Decir al autor que ponga el "itself". sv
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: el fichero es el propio archivo; no se vuelca"
+
+# Uff, a lo mejor se asusta el usuario si ponemos 'no se pudo leer con stat()
+# el estado del fichero em+
+# stat() es una primitiva Unix que acaba de fallar; también podría
+# ser: "No se puede hacer stat() del fichero %s", o "stat() ha fallado..."
+# Aunque tal como está es más descriptivo para el neófito, desde
+# luego. gag
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "No se puede leer el estado del fichero %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr ""
 "los patrones de exclusión encajan con el comienzo del nombre del fichero"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: No se encuentra en el archivo"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: El elemento solicitado no se encuentra en el archivo"
@@ -1543,38 +1593,38 @@ msgstr "%s: El elemento solicitado no se encuentra en el archivo"
 # Si no se sabe eso, se podría dejar de forma más neutra como
 # "Archivo no etiquetado para concordancia con `%s'" - gerardo (gag)
 # FIXME: Preguntar.
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "El archivo no está etiquetado para que coincida con %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Las opciones `-%s' y `-%s' requieren entrada estándar"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Formato de archivo inválido"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Se requieren características de GNU en formato de archivo incompatible"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
 # Yo usaría "recuperar", en vez de "restablecer". Lo de repetir "archivo"
@@ -1592,10 +1642,10 @@ msgstr ""
 # # nil: numeradas... simples... (en plural)
 # # never, simPle (falta una pe): backup -> copia de seguridad. gag
 # Estoy de acuerdo con lo de gag (más arriba usas eso mismo). jmg
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1637,10 +1687,10 @@ msgstr ""
 # # nil: numeradas... simples... (en plural)
 # # never, simPle (falta una pe): backup -> copia de seguridad. gag
 # Estoy de acuerdo con lo de gag (más arriba usas eso mismo). jmg
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1668,71 +1718,71 @@ msgstr ""
 "                  en otro caso\n"
 "  never, simple   siempre hace copias de seguridad simples\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Modo principal de operación:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "lista el contenido de un archivo"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "extrae ficheros de un archivo"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "crea un nuevo archivo"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "encuentra las diferencias entre un archivo y el sistema de ficheros"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "añade ficheros al final de un archivo"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "solamente añade ficheros más recientes que la copia del archivo"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "añade ficheros tar a un archivo"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "borra del archivo (¡no en cintas magnéticas!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modificadores de operación:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "maneja ficheros dispersos de forma eficiente"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "maneja el formato GNU antiguo de respaldo incremental"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "maneja el nuevo formato GNU de respaldo incremental"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
@@ -1743,11 +1793,11 @@ msgstr ""
 # # encuentre ficheros ilegibles. (¡Uf! Ahora a ver cómo se pone esto en
 # # media línea.) gag
 #
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "no sale con estado distinto de cero cuando hay ficheros ilegibles"
 
-#: src/tar.c:429
+#: src/tar.c:445
 #, fuzzy
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
@@ -1761,211 +1811,264 @@ msgstr ""
 "órdenes o con la opción -T. El valor predeterminado de NUM es 1."
 
 # Mejor eso que inventarse un palabro, digo yo. sv
-#: src/tar.c:435
+#: src/tar.c:451
 #, fuzzy
 msgid "archive is seekable"
 msgstr "El archivo admite `seek'"
 
 # Mejor eso que inventarse un palabro, digo yo. sv
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "El archivo admite `seek'"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "intenta verificar el archivo después de escribirlo"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "borra los ficheros después de añadirlos al archivo"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "no reemplaza ficheros que existan al extraer"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "no reemplaza ficheros que existan al extraer"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "no reemplaza los ficheros que existan que sean más recientes que sus copias "
 "en el archivo"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "sobreescribe los ficheros que existan al extraer"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "borra cada fichero antes de extraer sobre él"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "vacía jerarquías antes de extraer directorios"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "conserva los metadatos de los directorios que existan"
 
-#: src/tar.c:467
+#: src/tar.c:487
 #, fuzzy
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "sobreescribe los ficheros que existan al extraer"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "sobreescribe los ficheros que existan al extraer"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "extrae los ficheros a la salida estándar"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "ORDEN"
 
-#: src/tar.c:478
+#: src/tar.c:501
 #, fuzzy
 msgid "pipe extracted files to another program"
 msgstr "extrae los ficheros a la salida estándar"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Manejo de los atributos del fichero:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "fuerza NOMBRE como propietario de los ficheros que se añaden"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "fuerza NOMBRE como grupo para los ficheros que se añaden"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "FECHA-O-FICHERO"
 
-#: src/tar.c:494
+#: src/tar.c:517
 #, fuzzy
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "almacena solamente ficheros más recientes que FECHA-O-FICHERO"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CAMBIOS"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "fuerza CAMBIOS (simbólicos) de modo para los ficheros que se añaden"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "no extrae la fecha de modificación del fichero"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "intenta extraer los ficheros con el mismo propietario"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "extrae los ficheros como usted mismo"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "utiliza siempre números para los nombres de usuarios/grupos"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "ordena los nombres que se extraen para que coincidan con el archivo"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "lo mismo que -p y -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Manejo de los atributos del fichero:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Selección de dispositivo y opciones:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVO"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "utiliza un archivo o el dispositivo ARCHIVO"
 
-#: src/tar.c:535
+#: src/tar.c:581
 #, fuzzy
 msgid "archive file is local even if it has a colon"
 msgstr "el archivo es local incluso si tiene dos puntos"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "utiliza la ORDEN rmt dada en vez de rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "utiliza la ORDEN remota en vez de rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "especifica la unidad y la densidad"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "crea/lista/extrae un archivo multivolumen"
 
@@ -1979,38 +2082,38 @@ msgstr "crea/lista/extrae un archivo multivolumen"
 # x × - gerardo
 # Efectivamente, pero no es transportable, el que use tar bajo DJGPP
 # le saldría un churro pues el aspa no existe en la tabla 850. sv
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "cambia la cinta después de escribir NÚMERO x 1024 bytes"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "ejecuta un script al final de cada cinta (implica -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "usa/actualiza el número de volumen en FICHERO"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Bloques en los dispositivos:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOQUES"
 
 # Sigo en mis 13 y en esto no hay quien me baje del burro: BLOQUES x 512 bytes
 # debe ser BLOQUES × 512 bytes. gerardo
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOQUES x 512 bytes por registro"
 
-#: src/tar.c:574
+#: src/tar.c:620
 #, fuzzy
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "TAMAÑO bytes por registro, múltiplo de 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 "no tiene en cuenta los bloques convertidos en ceros dentro de un archivo "
@@ -2025,7 +2128,7 @@ msgstr ""
 # # requetequetequete... (longitud infinita). Pelín ssagerao, ¿no? gag
 #
 # Bueno, al final he puesto lo que se ve, un poco menos raro que rebloquear. sv
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "rehace los bloques conforme se lee (para tuberías de 4.2BSD)"
 
@@ -2034,70 +2137,70 @@ msgstr "rehace los bloques conforme se lee (para tuber
 # salida estándar' no pega mucho. Está en otros mensajes, como el
 # siguiente; no lo entiendo. - gerardo
 # FIXME. Tienes razón. Es muy raro.
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Selección del formato de archivo:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMATO"
 
-#: src/tar.c:586
+#: src/tar.c:632
 #, fuzzy
 msgid "create archive of the given format"
 msgstr "crea un archivo en el formato dado."
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMATO es uno de los siguientes:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "formato tar V7 antiguo"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "formato GNU de tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "formato GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "formato POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "formato POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 #, fuzzy
 msgid "same as pax"
 msgstr "Lo mismo que pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "lo mismo que --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "lo mismo que --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 #, fuzzy
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "palabra[[:]=valor][,palabra[[:]=valor], ...]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "palabras clave de control de pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXTO"
 
-#: src/tar.c:609
+#: src/tar.c:655
 #, fuzzy
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
@@ -2106,63 +2209,63 @@ msgstr ""
 "crea un archivo con nombre de volumen NOMBRE. En el momento de listar/"
 "extraer, utiliza TEXTO como patrón expandible"
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Opciones de compresión en conflicto"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "No se puede escribir al programa de compresión"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "No se puede escribir al programa de compresión"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtra a través de PROG (debe aceptar -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Selección del fichero local:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "cambia al directorio DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 #, fuzzy
 msgid "get names to extract or create from FILE"
 msgstr "obtiene los nombres que se van a extraer o crear del fichero NOMBRE"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T lee nombres terminados en nulo, desactiva -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
@@ -2171,115 +2274,117 @@ msgstr ""
 # de expansión de nombres de ficheros, como * y ?, mientras que
 # el segundo se refiere a expresiones regulares como las de grep,
 # es decir, ^, $, ., *, etc.
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATRÓN"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "excluye ficheros, dados como un PATRÓN"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "excluye los patrones listados en FICHERO"
 
-#: src/tar.c:658
+#: src/tar.c:704
 #, fuzzy
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:661
+#: src/tar.c:707
 #, fuzzy
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:664
+#: src/tar.c:710
 #, fuzzy
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:666
+#: src/tar.c:712
 #, fuzzy
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:669
+#: src/tar.c:715
 #, fuzzy
 msgid "exclude everything under directories containing FILE"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:671
+#: src/tar.c:717
 #, fuzzy
 msgid "exclude directories containing FILE"
 msgstr "excluye los directorios que contienen una marca de caché"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "evita descender automáticamente en los directorios"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "permanece en el sistema de ficheros locales al crear el archivo"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "opera recursivamente sobre los directorios (por omisión)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "no elimina la `/' inicial de los nombres de ficheros"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NOMBRE-DE-MIEMBRO"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "comienza por el miembro NOMBRE-DE-MIEMBRO dentro del archivo"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "almacena solamente ficheros más recientes que FECHA-O-FICHERO"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "FECHA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "compara la fecha y hora solamente cuando cambian los datos"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "se hace un respaldo antes de borrar, escoja el CONTROL de versión"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "CADENA"
 
-#: src/tar.c:698
+#: src/tar.c:744
 #, fuzzy
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
@@ -2289,105 +2394,105 @@ msgstr ""
 "que se\n"
 "cambie con la variable de entorno SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 #, fuzzy
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "elimina NÚMERO componentes iniciales de los nombres de ficheros"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 #, fuzzy
 msgid "ignore case"
 msgstr "la exclusión no distingue mayúsculas de minúsculas"
 
-#: src/tar.c:719
+#: src/tar.c:765
 #, fuzzy
 msgid "patterns match file name start"
 msgstr ""
 "los patrones de exclusión encajan con el comienzo del nombre del fichero"
 
-#: src/tar.c:721
+#: src/tar.c:767
 #, fuzzy
-msgid "patterns match after any `/' (default for exclusion)"
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "los patrones de exclusión encajan después de cualquier / (por omisión)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 #, fuzzy
 msgid "case sensitive matching (default)"
 msgstr "la exclusión distingue mayúsculas de minúsculas (por omisión)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "los comodines de patrones de exclusión no encajan con '/'"
 
-#: src/tar.c:731
+#: src/tar.c:777
 #, fuzzy
-msgid "wildcards match `/' (default for exclusion)"
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 "los comodines de los patrones de exclusión encajan con '/' (por omisión)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Salida informativa:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "lista los ficheros procesados detalladamente"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 #, fuzzy
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "muestra mensajes de progreso cada 10 registros"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "muestra un mensaje si no se vuelcan todos los enlaces"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2395,33 +2500,37 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "muestra las fechas de modificación de los ficheros en UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "envía la salida detallada a FICHERO"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "muestra el número de bloque dentro del archivo con cada mensaje"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "pide confirmación para cada acción"
 
-#: src/tar.c:767
+#: src/tar.c:813
 #, fuzzy
 msgid "show tar defaults"
 msgstr "Muestra los valores predeterminados de tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 #, fuzzy
 msgid ""
 "when listing or extracting, list each directory that does not match search "
@@ -2430,31 +2539,31 @@ msgstr ""
 "Cuando se lista o extrae, lista cada directorio que no coincida con el "
 "criterio de búsqueda"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Opciones de compatibilidad:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 #, fuzzy
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
@@ -2463,66 +2572,57 @@ msgstr ""
 "al crear, lo mismo que --old-archive. Al extraer, lo mismo que --no-same-"
 "owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Otras opciones:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "No se puede especificar más de una opción `-Acdtrux'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opciones de compresión en conflicto"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " tipo de fichero desconocido %s\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "No se encontró la fecha del fichero"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Sustituyendo %s por el formato de fecha desconocido %s"
 
-#: src/tar.c:1057
+#: src/tar.c:1108
 #, fuzzy, c-format
-msgid "Option %s: Treating date `%s' as %s"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Se trata la fecha `%s' como %s + %ld nanosegundo"
 
 # FIXME: Decir al autor que ponga el "itself". sv
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: el fichero es el propio archivo; no se vuelca"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-# FIXME: Decir al autor que ponga el "itself". sv
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "filtra el arhivo a través de gzip"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2530,15 +2630,20 @@ msgstr ""
 "\n"
 "Las opciones predeterminadas de *esta* versión de tar son:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Propietario inválido"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Factor de bloqueo inválido"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Longitud de cinta inválida"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
@@ -2548,109 +2653,102 @@ msgstr ""
 # Es "umbral", pero no sé qué c$%&# es la fecha umbral. :-( gag
 # A ver si te vale así. sv
 # ¿Qué tal os suena "fecha límite"?. jmg
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Se ha especificado más de una fecha tope"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Grupo inválido"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Se ha especificado un modo no válido en la opción"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Número inválido"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Propietario inválido"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "El tamaño del registro es inválido"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "El tamaño del registro debe ser múltiplo de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Número inválido de elementos"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, fuzzy, c-format
 msgid "Malformed density argument: %s"
 msgstr "Argumento de densidad mal formado: '%s'"
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "Densidad desconocida: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "*Esta* versión de tar no admite las opciones `-[0-7][lmh]'"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FICHERO]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "La opción antigua `%c' requiere un argumento"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence no tiene sentido sin una lista de ficheros"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "no se puede usar --occurrence en el modo de operación solicitado"
 
 # requieren -> necesitan. gerardo
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Los archivos múltiples requieren la opción `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "No se puede combinar --listed-incremental con --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--occurrence no tiene sentido sin una lista de ficheros"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2659,50 +2757,77 @@ msgstr[0] ""
 msgstr[1] ""
 "%s: La etiqueta de volumen es demasiado larga (el límite es %lu bytes)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "No se pueden verificar archivos multivolumen"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "No se pueden verificar archivos comprimidos"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "No se puede usar el patrón %s"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "No se pueden utilizar archivos multivolumen comprimidos"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "No se pueden actualizar archivos comprimidos"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option solamente se puede usar en archivos POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option solamente se puede usar en archivos POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option solamente se puede usar en archivos POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option solamente se puede usar en archivos POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "No se puede usar el patrón %s"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
 # Me gusta más al verrés: cobarde rechazo [de la pradera] a... gerardo
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Rechazo cobarde a crear un archivo vacío"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Las opciones `-Aru' son incompatibles con `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Debe especificar una de las opciones `-Acdtrux'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
@@ -2721,7 +2846,7 @@ msgstr ""
 # y cursis, para que no se enfade nadie? Aunque para cursis: `cáspita',
 # `caracoles', `cónchales'; no diréis que no os doy opciones.) Por cierto,
 # creo que la coma sobra (incluso en el original). gerardo
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2734,119 +2859,115 @@ msgstr[1] "%s: El tama
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "La palabra clave %s es desconocida o no está implementada todavía"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Marca de tiempo fuera de rango"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "No se puede usar el patrón %s"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "La palabra clave %s no se puede sustituir"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 #, fuzzy
 msgid "Malformed extended header: missing length"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "La cadena firmada en base 64 %s del archivo está fuera del rango %s"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 #, fuzzy
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 "Cabecera extendida errónea: falta un espacio en blanco después de la longitud"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 #, fuzzy
 msgid "Malformed extended header: missing newline"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "El valor del archivo %s está fuera del rango %s %s.%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, fuzzy, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Cabecera extendida errónea: falta un signo igual"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Grupo inválido"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Punto de comprobación de escritura %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Punto de comprobación de lectura %d"
@@ -2991,7 +3112,7 @@ msgstr "N
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -3020,8 +3141,8 @@ msgstr "Error del sistema desconocido"
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, fuzzy, c-format
 msgid "cannot open `%s'"
 msgstr "No se puede abrir %s"
@@ -3036,17 +3157,17 @@ msgstr "No se puede cerrar"
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr " tipo de fichero desconocido %s\n"
@@ -3057,51 +3178,76 @@ msgstr " tipo de fichero desconocido %s\n"
 # ser: "No se puede hacer stat() del fichero %s", o "stat() ha fallado..."
 # Aunque tal como está es más descriptivo para el neófito, desde
 # luego. gag
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "No se puede leer el estado del fichero %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "No se puede abrir %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "La orden `%s' falló"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "No se puede abrir %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "El proceso hijo terminó con la señal %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Nombres de fichero modificados--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "No se puede cambiar el directorio de trabajo"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "ordena los nombres que se extraen para que coincidan con el archivo"
+
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Error de lectura en %s"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Grupo inválido"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: El fichero fue borrado antes de leerlo"
@@ -3751,9 +3897,6 @@ msgstr "--Nombres de fichero modificados--\n"
 #~ msgid "Removing `%.*s' prefix from member names"
 #~ msgstr "Eliminando el prefijo `%.*s' de los nombres"
 
-#~ msgid "%s: Cannot symlink %s %s"
-#~ msgstr "%s: No se puede crear el enlace simbólico %s %s"
-
 #~ msgid "Invalid group given on option"
 #~ msgstr "Se ha especificado un grupo no válido en la opción"
 
index 5cd146ca4f0695be7714e533e7fe7d877ea08026..243195fdc2cc844842791de207e68c37b1ae4262 100644 (file)
Binary files a/po/et.gmo and b/po/et.gmo differ
index e5554b47b4a93f84ed9c5bc4f344ac0e9b0ec30e..0c59b8e37b759e5f9f933bbd7a05711db35c7dee 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -1,15 +1,15 @@
 # This file is distributed under the same license as the tar package.
 # Estonian translations for GNU tar.
 # Copyright (C) 2001 Free Software Foundation, Inc.
-# Toomas Soome <Toomas.Soome@microlink.ee>, 2010.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 2011.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU tar 1.25\n"
+"Project-Id-Version: GNU tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-11 11:26+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-12 18:29+0200\n"
 "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
 "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
 "Language: et\n"
@@ -29,36 +29,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "segane argument %s (`%s')"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Lubatud argumendid on:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s väärtus on väiksem või võrdne kui %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT parameeter nõuab väärtust"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT parameeter peab olema positiivne"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Prügi ARGP_HELP_FMT parameetrites: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -66,29 +65,29 @@ msgstr ""
 "Kohustuslikud või mittekohustuslikud argumendid pikkadele võtmetele on ka "
 "kohustuslikud või mittekohustuslikud vastavatele lühikestele võtmetele."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Kasutamine:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " või: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [VÕTI...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "`%s --help' või `%s --usage' annab rohkem infot.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Teated vigadest saatke palun aadressil %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Tundmatu süsteemi viga"
 
@@ -100,7 +99,7 @@ msgstr "n
 msgid "give a short usage message"
 msgstr "näita lühikest kasutamise õpetust"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NIMI"
@@ -121,17 +120,16 @@ msgstr "oota SEK sekundeid (vaikimisi 3600)"
 msgid "print program version"
 msgstr "esita programmi versioon"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMMI VIGA) Versioon pole teada!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Liiga palju argumente\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMMI VIGA) Võti peaks olema ära tuntud!?"
 
@@ -139,62 +137,62 @@ msgstr "(PROGRAMMI VIGA) V
 msgid "write error"
 msgstr "viga kirjutamisel"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: võti '%s' on segane\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: võtmel '--%s' pole argumente\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: võtmel '%c%s' pole argumente\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: võti '--%s' nõuab argumenti\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: tundmatu võti '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: tundmatu võti '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: vigane võti -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: võti nõuab argumenti -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: võti '-W %s' on segane\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: võti '-W %s' ei luba argumenti\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: võti '-W %s' nõuab argumenti\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "mälu on otsas"
 
@@ -210,28 +208,30 @@ msgstr "algsesse t
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -241,7 +241,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[jJ]"
 
@@ -251,7 +251,7 @@ msgstr "^[jJ]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[eE]"
 
@@ -536,7 +536,12 @@ msgstr "standard v
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Ei õnnestu luua ühendust masinaga %s: nimelahendus ebaõnnestus"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ei saa käivitada kaug käsuinterpretaatorit"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Ei saa käivitada kaug käsuinterpretaatorit"
@@ -585,8 +590,8 @@ msgstr "Ootamatud argumendid"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Opereeri lindiseadet, aktsepteerib käske mittelokaalselt protsessilt"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "N"
 
@@ -594,8 +599,8 @@ msgstr "N"
 msgid "set debug level"
 msgstr "määra silumise tase"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -610,7 +615,7 @@ msgstr "sea silumisteadete faili nimi"
 msgid "cannot open %s"
 msgstr "%s ei saa avada"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "liiga palju argumente"
@@ -619,9 +624,9 @@ msgstr "liiga palju argumente"
 msgid "Garbage command"
 msgstr "Rämpskäsk"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Hmm.... see ei tundu olema tar arhiiv"
 
@@ -659,65 +664,65 @@ msgstr "Ei saa kontrollida sisend/v
 msgid "Archive is compressed. Use %s option"
 msgstr "Arhiiv on tihendatud. Kasutage võtit %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Ei saa uuendada pakitud arhiive"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Lindi alguses, lõpetan töö"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Liig palju vigu, jätan töö pooleli"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Kirje suurus = %lu blokki"
 msgstr[1] "Kirje suurus = %lu blokki"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Joondamata blokk (%lu baiti) arhiivis"
 msgstr[1] "Joondamata blokk (%lu baiti) arhiivis"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Arhiivi ei õnnestu tagasi kerida; lugemiseks võib olla vajalik kasutada "
 "võtit -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek ei peatunud kirje piiril"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: sisaldab vigast volüümi numbrit"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Volüümi number on liiga suur"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Otsi volüüm #%d %s'le ja vajuta return klahvi: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF kasutaja vastuse asemel"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "HOIATUS: Arhiiv pole täielik"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -728,65 +733,65 @@ msgstr ""
 " q             Katkesta tar\n"
 " y või reavahetus Jätka\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Loo alamshell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Väljasta see info\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Pole uus volüüm; lõpetan töö.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Puudub faili nimi. Proovige uuesti.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Vigane sisend. ? annab abiinfot.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s käsklus sai vea"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "võimalik et %s jätkub sellel volüümil: päises on lühendatud nimi"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s ei jätku sellel volüümil"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s on vale suurusega (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "See volüüm on väljaspoolt järjekorda (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arhiivi märgend ei sobi %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volüüm %s ei sobi volüümiga %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -794,509 +799,549 @@ msgstr ""
 "%s: faili nimi on GNU mitmevolüümi päisesse salvestamiseks liiga pikk, "
 "lühendan"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "kirjutamine ei peatunud bloki piiril"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Sain lugeda ainult %lu baiti (sooviti %lu)"
 msgstr[1] "Sain lugeda ainult %lu baiti (sooviti %lu)"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Sisu on erinev"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Ootamatu arhiivi lõpp"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Failitüübid on erinevad"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Moodid erinevad"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "UID on erinevad"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "GID on erinevad"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Muutmise ajad erinevad"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Suurused erinevad"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "ei viita %s-le"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Nimeviited erinevad"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Seadme numbrid on erinevad"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Kontroll "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Tundmatu failitüüp '%c', võrdlen tavalise failina"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arhiiv sisaldab eemaldatud prefiksitega failinimesid."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arhiiv sisaldab aegunuid base-64 päiseid"
+msgstr "Arhiiv sisaldab teisendatud faili nimesid."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Kontrollimine ei pruugi leida algseid faile."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "VIGA KONTROLLIMISEL: leiti %d vigast päist"
 msgstr[1] "VIGA KONTROLLIMISEL: leiti %d vigast päist"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Üksik null blokk kohal %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: sisaldab vahemälu kataloogi lipikut %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "väärtus %s on %s piiridest %s..%s väljas; asendan %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "väärtus %s on %s piiridest %s..%s väljas"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Genereerin negatiivsed kaheksand päised"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: faili nimi on liiga pikk (maks. %d); ei salvesta"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: faili nimi on liiga pikk (ei saa poolitada); ei salvesta"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: viite nimi on liiga pikk; ei salvesta"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Fail lühenes %s baiti; täidan nullidega"
 msgstr[1] "%s: Fail lühenes %s baiti; täidan nullidega"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: fail on teises failisüsteemis; ei salvesta"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "sisu ei salestata"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tundmatu failitüüp; ignoreerin seda faili"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "%s-le puudub viiteid."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: pole muutunud; ei salvesta"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s on arhiiv; ei salvesta"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "kataloogi ei salvestatud"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: fail muutus lugemisel"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: ignoreerin pesa"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: ignoreerin ust"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Hüppan järgmise päiseni"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Kustutan arhiivist mitte-päise"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: ebatõenäoliselt vana ajatempel %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: ajatempel %s on %s sekundit tulevikus"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Ootamatu kooskõlalisuse probleem kataloogi loomisel"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Kataloog nimetati ümber, enne kui sai loetud tema olek"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Taastan jätkuvad failid kui tavalised"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Üritan taastada nimeviiteid viidetena"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Ei saa taastada -- fail jätkub teisel volüümil"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Ootamatu pika nime päis"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tundmatu failitüüp `%c', taastan tavalise failina"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Olemasolev %s on uuem või sama kuupäevaga"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Selle faili varundamine ebaõnnestus"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s ei õnnestu ümber nimetada %s-ks"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Kataloog %s on ümber nimetatud"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Kataloog on ümber nimetatud"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Kataloog on uus"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: fail on teises failisüsteemis; ei salvesta"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloog on ümber nimetatud"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Vigane ajatempel"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Vigane muutmise aeg (sekundid)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Vigane muutmise aeg (nanosekundid)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Vigane seadmenumber"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Vigane i-kirje number"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Snapshoti faili lugemisel leiti liiga pikk väli"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Snapshoti failist lugemise viga"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Ootamatu snapshoti faili lõpp"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Snapshoti failis on väljal ootamatu väärtus"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Puudub kirje lõpetaja"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Inkrementaalse faili vorming on vigane"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Mittetoetatud inkrementaalse vormingu versioon: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Vigane taastamise kataloog: eeldasin '%c', sain %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Vigane taastamise kataloog: dubleeritud 'X'"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Vigane taastamise kataloog: tühi nimi 'R' väljal"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Vigane taastamise kataloog: 'R' ei ole 'T' ees"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Vigane taastamise kataloog: tühi nimi 'T' väljal"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Vigane taastamise kataloog: ootasin '%c', aga andmed said otsa"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Vigane taastamise kataloog: 'X' ei kasutata"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Vormiga %s ei saa ajutist kataloogi luua"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Ei puhasta kataloogi: stat ebaõnnestus"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: kataloog on teisel seadmel; ei puhasta"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Kustutan %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Ei saa eemaldada"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Jätan vahele"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blokk %s: ** NULlide blokk **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blokk %s: ** Faili lõpp **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blokk %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Tühjad väljad päises kohtadel, kus eeldati numbrit %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 "Arhiivi kaheksandväärtus %.*s on %s piiridest väljas; eeldan kahe täiendit"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Arhiivi kaheksandväärtus %.*s on %s piiridest väljas"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arhiiv sisaldab aegunuid base-64 päiseid"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Arhiivi märgiga base-64 sõne %s on %s piiridest väljas"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Arhiivi base-256 väärtus on %s piiridest väljas"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arhiiv sisaldab %.*s, eeldati numbrit %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Arhiivi väärtus %s on %s piiridest %s..%s väljas"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " viide %s-le\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tundmatu failitüüp %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Pikk viide--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Pikk nimi--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Volüümi päis--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Jätkub baidilt %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Loon kataloogi:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Ei õnnestu lugeda töökataloogi"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Annan %s uueks nimeks %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: ei õnnestu ümber nimetada %s-ks"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Nimetan `%s' tagasi `%s'\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fail kustutati enne lugemist"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "alamprotsess"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "protsessidevaheline kanal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s käsklus sai vea"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: failide nimekiri on juba loetud"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ei õnnestu seada `%s' aega"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: loetud faili nimi sisaldab sümbolit nul"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Failide nimedes on jokkersümbolid"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1304,54 +1349,55 @@ msgstr ""
 "Jokkerite lubamiseks kasutage --wildcars või --no-wildcards selle teate "
 "blokeerimiseks"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Puudub arhiivis"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Nõutud eksemplar puudub arhiivis"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Arhiivi märgend ei sobi"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr "--listed-incremental ei luba faili loendis võtit -C kasutada"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Võti --listed-incremental lubab ainult ühte -C kasutamist"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Mõlemad võtmed - `-%s' ja `-%s' eeldavad standard sisendit"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Vigane arhiivi vorming"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Arhiivi formaat ei toeta GNU laiendusi"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Tundmatu kvootimise stiil `%s'. Loendi saate käsuga `%s --quoting-style=help'"
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1367,9 +1413,10 @@ msgstr ""
 "  tar -tvf arhiiv.tar         # Anna arhiiv.tar sisust täielik ülevaade.\n"
 "  tar -xf arhiiv.tar          # Taasta kõik failid arhiivist arhiiv.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1387,79 +1434,79 @@ msgstr ""
 "  nil, existing   nummerdatud kui koopiad on nummerdatud, muidu lihtne\n"
 "  never, simple   tee ainult lihtne koopia\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Põhiline töö:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "näita arhiivi sisukorda"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "taasta failid arhiivist"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "loo uus arhiiv"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "otsi arhiivi ja failisüsteemi erinevusi"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "lisa failid arhiivi lõppu"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "lisa arhiivi ainult failid uuemad kui arhiivis"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "lisa tar failid arhiivi"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "kustuta arhiivist (mitte magnetlindilt!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "testi arhiivi volüümi märgendit ja lõpeta töö"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Töö täpsustamine:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "tööta aukudega failidega efektiivsemalt"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "PÕHI[.ALAM]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "määra aukudega faili vormingu versioon (eeldab võtit --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "käsitle vana GNU vormingus inkrementaalset koopiat"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "käsitle uue GNU vormingu inkrementaalset koopiat"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "loodud listed-incremental arhiivi dump tase"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "ära lõpeta loetamatute failide korral veakoodiga"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1472,120 +1519,131 @@ msgstr ""
 "antud\n"
 "käsureal või võtmega -T. Vaikimisi N on 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "arhiiv on positsioneeritav"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "arhiiv ei ole positsioneeritav"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "inkrementaalsete arhiivide loomisel ära kontrolli seadmete numbreid"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "inkrementaalsete arhiivide loomisel kontrolli seadmete numbreid (vaikimisi)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Ülekirjutamise juhtimine:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "kontrolli arhiivi peale arhiivi kirjutamist"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "kustuta failid peale arhiveerimist"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "olemasolevaid faile taastamisel üle ei kirjuta"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "olemasolevaid faile taastamisel üle ei kirjuta"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "ära kirjuta üle olemasolevaid faile, mis on uuemad kui arhiveeritud"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "kirjuta olemasolevad failid üle"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "kustuta fail enne taastamist"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "kustuta hierarhia enne kataloogi taastamist"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "säilita olemasolevate kataloogide metainfo"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "taastamisel kirjuta olemasolevate kataloogide metainfo üle (vaikimisi)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "kirjuta olemasolevad failid üle"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Vali väljundvoog:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "taasta failid standardväljundisse"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KÄSK"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "taasta failid läbi toru teise programmi"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ignoreeri alamprotsesside lõpetamise koode"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "käsitle alamprotsesside nullist erinevaid lõpetamise koode veana"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Faili atribuutide käsitlemine:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "kasuta NIMEe kui lisatud failide omanikku"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "kasuta NIMEe kui lisatud failide gruppi"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "KUUP-VÕI-FAIL"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "sea lisatud failide muutmise ajaks KUUP-VÕI-FAIL"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "MUUTUSED"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "kasuta lisatud failidel sümbol moodi MUUTUSED"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MEETOD"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1595,11 +1653,11 @@ msgstr ""
 "lugemist (METHOD='replace'; vaikimisi) või ei muuda kasutamise aega üldse "
 "(METHOD='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "ära taasta faili muutmise aega"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1607,19 +1665,19 @@ msgstr ""
 "ürita failide taastamisel säilitada failide omanikud arhiivis (root "
 "kasutajal vaikimisi)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "taasta failid enda õigustes (tavakasutajatel vaikimisi)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "kasuta kasutaja/grupp numbreid"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "taasta ka info failide õigustest (vaikimisi superkasutaja korral)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1627,153 +1685,195 @@ msgstr ""
 "õiguste taastamisel kasuta kasutaja umask väärtust (vaikimisi "
 "tavakasutajatel)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "taasta failid arhiveerimis järjekorras"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "sama, kui -p ja -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr "oota muutmise aegade ja õiguste taastamisega taastamise lõpuni"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "katkesta --delay-directory-restore võtme mõju"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Faili atribuutide käsitlemine:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Seadme valik ja vahetamine:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARHIIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "kasuta arhiivi faili või seadet ARHIIV"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "arhiivi fail on lokaalne isegi kui sisaldab koolonit"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "kasuta rmt asemel antud käsku"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "kasuta rsh asemel antud käsku"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "määra seade ja tihedus"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "loo/näita/taasta mitme volüümilisi arhiive"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "vaheta peale NUMBER x 1024 baidi kirjutamist linti"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "käivita iga lindi lõpus skript (eeldab võtit -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "kasuta/uuenda volüümi numbrit failis FAIL"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Seadme blokkimine:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKKE"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOKKE x 512 baiti kirjele"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "NUMBER baiti kirjele, 512 kordne"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignoreeri null blokke arhiivis (tähistab EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "bloki lugemisel uuesti (4.2BSD torude jaoks)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Arhiivi vormingu valikud:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "VORMING"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "loo arhiiv antud vormingus"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "VORMING on üks järgnevaist:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "vana V7 tar vorming"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU vorming tar <= 1.12 korral"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x vorming"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) vorming"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) vorming"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "sama, kui pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "sama, kui --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "sama, kui --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "võtmesõna[[:]=väärtus][,võtmesõna[[:]=väärtus]...]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "pax võtmesõnade kasutamine"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKST"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1781,75 +1881,75 @@ msgstr ""
 "loo arhiivi volüümi nimega NIMI. Listingu/taastamise ajal kasuta TEKSTi "
 "otsingumustrina"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Tihendamise võtmed:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "tihendamisprogrammi tuvastamiseks kasuta arhiivi sufiksit"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "tihendamisprogrammi tuvastamiseks ära kasuta arhiivi sufiksit"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtreeri läbi programmi (peab lubama võtit -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Lokaalse faili valik:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "lisa antud FAIL arhiivi (kasulik, kui faili nimi algab kriipsuga)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "KAT"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "mine kataloogi KAT"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "loe taastatavate või varundatavate failide nimed failist NIMI"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T loeb nullidega lõpetatud nimesid, blokeeri -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "blokeeri eelmise --null võtme mõju"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "eemalda -T võtmega loetud failinimedest kvootimissümbolid (vaikimisi)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "ära eemalda -T võtmega loetud failinimedest kvootimissümboleid"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MUSTER"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "MUSTRI järgi välistatud failid"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "välistavad mustrid on FAILIS"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1857,92 +1957,94 @@ msgstr ""
 "välista kataloogide, mis sisaldavad CACHEDIR.TAG, sisu, välja arvatud "
 "märgendi fail ise"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "välista kõik kataloogis, mis sisaldab CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "välista kataloogid, mis sisaldavad CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "välista kataloogide, mis sisaldavad faili FAIL, sisu, välja arvatud FAIL ise"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "välista kataloogid, mis sisaldavad faili FAIL"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "välista kataloogid, mis sisaldavad faili FAIL"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "välista versiooni kontrolli süsteemi kataloogid"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "välista varukoopiad ja lukufailid"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "ära sisene kataloogidesse"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "püsi arhiivi loomise ajal kohalikus failisüsteemis"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "sisene kataloogidesse (vaikimisi)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "ära eemalda faili nimedelt prefiksit `/'"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "järgi nimeviiteid; arhiveeri ja taasta viidatavad failid"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "järgi viiteid; arhiveeri ja taasta viidatavad failid"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "KOMPONENT"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "alusta arhiivi liikmest KOMPONENT"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "salvesta ainult failid mis on uuemad kui KUUP-VÕI-FAIL"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "KUUPÄEV"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "võrdle kuupäevi ainult kui andmed on muutunud"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROLL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "loo enne eemaldamist varukoopia, vali versioonikontroll"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "SÕNE"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1950,95 +2052,98 @@ msgstr ""
 "varunda enne kustutamist, kasuta uut lõppu (vaikimisi '~', kui pole üle "
 "määratud keskkonnamuutujaga SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Failide nimede muutmine:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "eemalda taastamisel failide nimede algusest NUMBER komponenti"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "AVALDIS"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "kasuta failide nimede muutmiseks sed asendus avaldist"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr "Failinimede otsimine (mõjutab nii kaasamist, kui välistamist):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "tõstutundetu"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "mustrid alustavad faili nime algusest"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "mustrid toimivad iga / järel (välistamise korral vaikimisi)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "tõstutundlik otsimine (vaikimisi)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "kasuta jokkersümboleid (välistamise korral vaikimisi)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "täht-täheline sõne otsimine"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "jokkerid ei leia '/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "jokkersümbolid leiavad '/' (välistamise korral vaikimisi)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informatsioon:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "väljasta töödeldavate failide kohta infot"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "VÕTMESÕNA"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "hoiatuste juhtimine"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "anna töö kohta infot iga NUMBER kirje järel (vaikimisi 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "TEGEVUS"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "käivita tegevus igas kontrollpunktis"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "väljasta teade, kui kõike viiteid pole salvestatud"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2049,31 +2154,35 @@ msgstr ""
 "väljasta see info, kui saadetakse antud signaal. Lubatud signaalid on: "
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 ja SIGUSR2; SIG prefiksi võib ära jätta"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "väljasta failide muutmise ajad UTC esituses"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "väljasta faili aeg täielikult"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "salvesta täiendav info FAILi"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "näita iga teatega ka arhiivi bloki numbrit"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "küsi iga tegevuse kohta kinnitust"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "näita tar vaikeseadeid"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2081,93 +2190,86 @@ msgstr ""
 "listingu või taastamise ajal, näita igat kataloogi mis ei vasta "
 "otsingutingimustele"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "peale teisendamist näita faili või arhiivi nime"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STIIL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "määra nimede kvootimise stiil; lubatud väärtused on toodud allpool"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "lisaks kvoodi sõnes näidatud sümbolid"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "keela sõnes toodud sümbolite kvootimine"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Ühilduvuse võtmed:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "loomisel sama kui --old-archive. Taastamisel sama kui --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Muud võtmed:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "blokeeri potentsiaalselt ohtlikud võtmed"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Korraga võib kasutada ainult ühte võtmetest `-Acdtrux' või `--test-label'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Konfliktsed pakkimisvõtmed"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Tundmatu signaali nimi: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Kuupäeva fail puudub"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Kasutan %s tundmatu ajaformaadi %s asemel"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Võti %s: Käsitlen aega `%s' kui %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: failide nimekiri on juba loetud"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: loetud faili nimi sisaldab sümbolit nul"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtreeri arhiiv läbi %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Võtmega --quoting-style on lubatud järgnevad argumendid:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2175,51 +2277,48 @@ msgstr ""
 "\n"
 "*See* tar kasutab vaikimisi:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Vigane omanik"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Vigane blokkimisfaktor"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Vigane lindi pikkus"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Inkrementaalse varunduse taseme väärtus on vigane"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Rohkem kui üks etteantud aeg"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Vigane aukudega faili versiooni väärtus"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' ei ole sellel platvormil toetatud"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint väärtus ei ole täisarv"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Vigane grupp"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Võtmega anti vigane mood"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Vigane number"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Vigane omanik"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2227,120 +2326,150 @@ msgstr ""
 "Võti --preserve on mittesoovitatav, kasutage --preserve-permissions --"
 "preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Vigane kirje suurus"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Kirje suurus peab olema %d kordne."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Vigane elementide arv"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Lubatud on ainult üks --to-command võti"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Vigane tiheduse argument: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Tundmatu tihedus: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "*See* tar ei toeta võtmeid `-[0-7][lmh]'"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FAIL]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Vana võti `%c' nõuab argumenti."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence ei oma failide nimekirjata mõtet"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence ei saa valitud tööre¸iimil kasutada"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Mitme arhiivifaili kasutamine nõuab võtit `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental ja --newer ei saa koos kasutada"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level ei oma võtmeta --listed-incremental mõtet"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Volüümi märgend on liiga pikk (piirang on %lu baiti)"
 msgstr[1] "%s: Volüümi märgend on liiga pikk (piirang on %lu baiti)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Ei suuda kontrollida mitme volüümilisi arhiive"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Ei saa kontrollida pakitud arhiive"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Mustrit %s ei saa kasutada"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Ei saa kasutada mitme volüümilisi pakitud arhiive"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Tihendatud arhiive ei saa ühendada"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Mustrit %s ei saa kasutada"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Volüümi suurus ei saa olla väiksem kirje suurusest"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order ei ole ühilduv võtmega --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Ega ikka ei tee küll tühja arhiivi"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Võtmeid `-Aru' ei saa kasutada võtmega `-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Peab kasutama üht võtmetest `-Acdtrux' või `--test-label'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Kuna eelnevalt oli vigu, siis lõpetan veakoodiga"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2352,114 +2481,110 @@ msgstr[1] "%s: Fail on %s baiti l
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Võtmesõna %s on tundmatu või pole veel realiseeritud"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Ajatempel on piiridest väljas"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Mustrit %s ei saa kasutada"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Võtmesõna %s ei saa ümber määrata"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Vigane laiendatud päis: puudub pikkus"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Laiendatud päise pikkus on piiridest väljas"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Laiendatud päise pikkus %*s on piiridest väljas"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Vigane laiendatud päis: pikkuse järel puudub tühik"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Vigane laiendatud päis: puudub võrdusmärk"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Vigane laiendatud päis: puudub reavahetus"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ignoreerin tundmatud laiendatud päise võtmesõna `%s'"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Genereeritud võti/väärtus paar on liiga pikk (võti=%s, pikkus=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Laiendatud päis %s=%s on piiridest %s..%s väljas"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Vigane laiendatud päis: %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Vigane laiendatud päis: liigne %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Vigane laiendatud päis: vigane %s: ootamatu eraldaja %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Vigane laiendatud päis: vigane %s: veider arv väärtuseid"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: ei ole korrektne taimout"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: tundmatu kontrollpunkti tegevus"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "kirjutamine"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "lugemine"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Kirjutamise kontrollpunkt %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Lugemise kontrollpunkt %u"
@@ -2598,7 +2723,7 @@ msgstr "Number on piiridest v
 msgid "Negative size: %s"
 msgstr "Negatiivne suurus: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) ebaõnnestus"
@@ -2627,8 +2752,8 @@ msgstr "Tundmatu kuup
 msgid "[ARGS...]"
 msgstr "[ARGUMENDID...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "`%s' ei saa avada"
@@ -2642,65 +2767,93 @@ msgstr "seek eba
 msgid "file name contains null character"
 msgstr "faili nimi sisaldab null sümbolit"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr "standard väljundis ei saa aukudega faili luua, kasutage võtit --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "vigane mask (`%s' lähedal)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Tundmatu väli `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "ei õnnestu seada `%s' aega"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "`%s' ei saa kustutada"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s käsklus sai vea"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "`%s' ei saa kustutada"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Käsk lõpetas töö edukalt\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Käsk lõpetas veakoodiga %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Käsk katkestati signaaliga %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Käsk peatati signaaliga %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Käsk salvestas mälupildi\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Käsk katkestas\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat nõuab failinimesid"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Kataloog kustutati enne lugemist"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Ei õnnestu lugeda töökataloogi"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "taasta failid arhiveerimis järjekorras"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Snapshoti faili lugemisel leiti liiga pikk väli"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Snapshoti failist lugemise viga"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Snapshoti failis on väljal ootamatu väärtus"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Laiendatud päise pikkus on piiridest väljas"
+
+#~ msgid "Invalid group"
+#~ msgstr "Vigane grupp"
index b08f4dae4efb596fe2fa45655aa8945e02b707ff..343e9eef2a2bb7832bb8b9822dc15545f1955789 100644 (file)
Binary files a/po/eu.gmo and b/po/eu.gmo differ
index cea5af3c3dddb37cf347e15bceaeeb91334f2024..12543b7f2b496f12c1e47e51415f1f427aa92617 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -5,12 +5,12 @@
 # This file is distributed under the same license as the tar package.
 #
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar-1.15.91-eu\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2006-12-13 19:52+0100\n"
 "Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -31,36 +31,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "%s argumentu anbiguoa %s-rentzat"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Argumentu erabilgarriak:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s balioa %s-ren berdina edo txikiagoa da"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT parametroak balio bat behar du"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT parametroa positibo izan behar da"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: ARGP_HELP_FMT parametro ezezaguna"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Zaborra ARGP_HELP_FMT-en: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -68,29 +67,29 @@ msgstr ""
 "Aukera luzeentzat beharrezko edo aukerako argumentuak modu berdinean "
 "beharrezko edo aukerakoak izango dira aukera luzeentzat ere."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Erabilera:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  edo: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [AUKERA...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "`%s --help' edo `%s --usage' saiatu argibide gehiagorako.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Arazoen berri %s-en eman.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Sistema errore ezezaguna"
 
@@ -102,7 +101,7 @@ msgstr "laguntza zerrenda hau eman"
 msgid "give a short usage message"
 msgstr "erabilera mezu labur bat eman"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "IZENA"
@@ -123,17 +122,16 @@ msgstr "SEG segundu gelditu (lehenetsia 3600)"
 msgid "print program version"
 msgstr "programa bertsioa bistarazi"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMA ERROREA) Ez da bertsioa ezagutzen!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Argumentu gehiegi\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMA ERROREA) Aukera ezaguna izan beharko zen!?"
 
@@ -141,62 +139,62 @@ msgstr "(PROGRAMA ERROREA) Aukera ezaguna izan beharko zen!?"
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: `%s' aukera anbiguoa da\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: `--%s' aukerak ez du argumenturik onartzen\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: `%c%s' aukerak ez du argumenturik onartzen\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: `%s' aukerak argumentu bat behar du\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: `--%s' aukera ezezaguna\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: `%c%s' aukera ezezaguna\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: -- %c ekintza baliogabea\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: aukerak -- %c argumentu bat behar du.\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: `-W %s' aukera anbiguoa da\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: `-W %s' aukerak ez du argumenturik onartzen\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: `%s' aukerak argumentu bat behar du\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memoria askieza"
 
@@ -212,28 +210,30 @@ msgstr "Ezin da lan direktorioa gorde"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -243,7 +243,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[bB]"
 
@@ -253,7 +253,7 @@ msgstr "^[bB]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[eE]"
 
@@ -514,7 +514,12 @@ msgstr "irteera estandarra"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ezin da urruneko shell-a abiarazi"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Ezin da urruneko shell-a abiarazi"
@@ -570,8 +575,8 @@ msgstr "Fitxategi Amaiera Esperogabea"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "ZENBAKIA"
 
@@ -579,8 +584,8 @@ msgstr "ZENBAKIA"
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -595,7 +600,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "Ezin da `%s' ireki"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "argumentu gehiegi"
@@ -604,9 +609,9 @@ msgstr "argumentu gehiegi"
 msgid "Garbage command"
 msgstr "Zabor komandoa"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Honek ez dirudi tar pakete bat"
 
@@ -644,63 +649,63 @@ msgstr "Ezin da sarrera/irteera estandar fitxategia egiaztatu"
 msgid "Archive is compressed. Use %s option"
 msgstr "Fitxategia konprimiturik dago. %s aukera erabili"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Ezin dira konprimituriko fitxategiak eguneratu"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Zintaren hasieran, uzten"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Errore gehiegi, uzten"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Grabazio tamaina = bloke %lu"
 msgstr[1] "Grabazio tamaina = %lu bloke"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Alineatu gabeko blokea (byte %lu) paketean"
 msgstr[1] "Alineatu gabeko blokea (%lu byte) paketean"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: bolumen zenbaki baliogabea du"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Bolumen zenbaki gainezkatzea"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "#%d bolumena %s -rako prestatu eta enter sakatu: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Fitxategi amaiera erabiltzaile erantzuna espero zenean"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "Oharra: Paketea ez dago osaturik"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -711,473 +716,497 @@ msgstr ""
 " q             tar utzi\n"
 " y edo intro  Ekintza jarraitu\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Azpishell bat sortu\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Zerrenda hau inprimatu\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Ez dago bolumen berririk; uzten.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Ez da fitxategi izenik ezarri. Berriz saiatu.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "SArrera baliogabea. ? idatzi laguntzarako.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s komandoak huts egin du"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s posibleki bolumen honen jarraipena da: buruak mozturiko izena du"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s ez da bolumen honen jarraipena"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s okerreko tamaina da (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Bolumen hau sekuentziatik kanpo dago"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr ""
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "%s bolumena ez da %s-ren pareko"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 "%s: fitxategi izen luzeegia GNU bolumen anitzeko buruan gordetzeko, mozturik"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr ""
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "%lu byte bakarrik irakurri daiteke %lu byte-tatik"
 msgstr[1] "%lu byte bakarrik irakurri daiteke %lu byte-tatik"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Eduki ezberdintasunak"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Esperogabeko Fitxategi amaiaera paketean"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Fixtategi mota ezberdinak"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modu ezberdinak"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid ezberdinak"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid ezberdinak"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Eraldaketa data ezberdinak"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Tamaina ezberdinak"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ez dago %s-ra loturik"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Lotura sinboliko ezberdinak"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Gailu zenbaki ezberdinak"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Egiaztatu "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: `%c' fitxategi mota ezezaguna, fitxategi arrunt batez ezberdina"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Paketeak zaharkituriko base-64 buruak ditu"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Egiaztapenak huts egin dezake jatorrizko fitxategiak kokatzerakoan."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "EGIAZTAPEN AKATSA: buru baliogabe %d aurkitu da"
 msgstr[1] "EGIAZTAPEN AKATSA: %d buru baliogabe aurkitu dira"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, fuzzy, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: katxe direktorioa marka bat du; ez da irauliko"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "%s eremua %s eremutik %s..%s kanpo: %s aldatzen"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "%s balioa %s eremutik %s..%s kanpo dago"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Zortzitar buru negatiboak sortzen"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: fitxategi izena luzeegia da (gehi. %d); ez da irauliko"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: fitxategi izena luzeegia da (ezin da moztu); ez da irauliko"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: lotura izena luzeegia da; ez da irauliko"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: fitxategia fitxategi sistema ezberdin batetan dago, ez da irauliko"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Fitxategi mota ezezaguna; fitxategia alde batetara utziko da"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "%s-ra lotura falta da.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: fitxategia ez da aldatu, ez da irauliko"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: fitxategia paketea da, ez da irauliko"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 #, fuzzy
 msgid "directory not dumped"
 msgstr "%s: katxe direktorioa marka bat du; ez da irauliko"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: fitxategia aldatu egin da irakurtzen ari zenean"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socket-a alde batetara utzi da"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: atea alde batetara utzia"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Hurrengoa burura salto egiten"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "paketetik burugabea ezabatzen"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: Sinesgarri izateko zaharregia den denbora marka %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: %s denbora marka %s etorkizunean da"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Esperogabeko inkonsistentziak direktorioa sortzerakoan"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Direktorioa bere egoera atera aurretik berrizendatua izan da"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Alboko fitxategiak fitxategi erregularrak bezala ateratzen"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Lotura sinbolikoak lotura gogor bezala ateratzen saiatzen"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Ezin da atera -- paketea beste bolumen baten jarraipena da"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Buru izen luzera esperogabea"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr ""
 "%s: `%c' fitxategi mota ezezaguna, fitxategi arrunt bat bezala ateratzen"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Unekoa %s berriagoa edo data berdinekoa da"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Ez da gai fitxategi honen babeskopia egiteko"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Ezin da %s %s-ra berrizendatu"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Direktorioa %s-tik berrizendatua izan da"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Direktorioa berrizendatua izan da"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Direktorioa berria da"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: fitxategia fitxategi sistema ezberdin batetan dago, ez da irauliko"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktorioa berrizendatua izan da"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "denbora marka baliogabea"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Eraldaketa denbora (segundu) baliogabea"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Eraldaketa denbora (nanosegundu) baliogabea"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "gailu zenbaki baliogabea"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Inodo zenbaki baliogabea"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Eremu luzeegia snapshot fitxategia irakurtzerakoan"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "Eremu balio esperogabea snapshot fitxategian"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Eremu balio esperogabea snapshot fitxategian"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Eremu balio esperogabea snapshot fitxategian"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Gordetze amaiera falta da"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Fitxategi inkremental formatu okerra"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, fuzzy, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Onartugabeko inkremental formatu bertsioa: %d"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 "Gaizki eratutako iraulketa direktorioa: '%c'espero zen baina %#3o aurkitu da"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Gaizki eratutako iraulketa direktorioa: 'X' bikoizturik"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'R'-en"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Gaizki eratutako iraulketa direktorioa: 'T' ez doa 'R' atzean"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'T'-en"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Gaizki eratutako iraulketa direktorioa: '%c' espero zen baina data amaiera "
 "aurkitu da"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Gaizki eratutako iraulketa direktorioa: 'X' ez da inoiz erabili"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Ezin da aldiroko direktorioa sortu %s txantiloia erabiliaz"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Ez da direktorioa garbituko: ezin da egoera eskuratu"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: direktorioa gailu ezberdin batetan dago: ez da garbituko"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s ezabatzen\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Ezin da ezabatu"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Alde batetara uzten"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr ""
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "%s blokea: ** Fitxategi Amaiera **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "%s blokea: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Zuriunea buruan zenbakizko %s balioa espero zenean"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1185,164 +1214,179 @@ msgstr ""
 "direla pentsatuko da"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Paketeak zaharkituriko base-64 buruak ditu"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Paketeak %.*s du zenbakizko %s balioa espero zenean "
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Pakete %s balioa %s eremutik kanpo dago %s.. %s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " %s-ra lotu\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " %s fitxategi mota ezezaguna\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Lotura Luzea--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Izen Luzea--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Bolumen Burua--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--%s byte-an jarraitzen du--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Direktorioa sortzen:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Ezin da lan direktorioa aldatu"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s %s-ra berrizendatzen\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Ezin da %s-ra berrizendatu"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s %s-ra atzera berrizendatzen\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fitxategia irakurri baino lehen ezabaturik"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "ume prozesua"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "prozesu arteko kanala"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s komandoak huts egin du"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: fitxategi zerrenda irakurria dagoeneko"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ezin da `%s'-ren denbora ezarri"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Ez da paketean aurkitu"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr ""
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr ""
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "`-%s' eta `-%s' aukerek sarrera estandarra behar dute"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Pakete formatu baliogabea"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU ezaugarriak behar dira pakete formatu bateraezinean"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "`%s' markatze estilo ezezaguna. Saiatu `%s --quoting-style=help' zerrenda "
 "eskuratzeko."
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1370,10 +1414,10 @@ msgstr ""
 "erabili\n"
 "  never, simple   beti babeskopia sinpleak egin\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1402,80 +1446,80 @@ msgstr ""
 "erabili\n"
 "  never, simple   beti babeskopia sinpleak egin\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Ekintza nagusi modua:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "pakete baten edukiak zerrendatu"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "pakete batetako fitxategiak atera"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "pakete berri bat sortu"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "paketea eta fitxategi sistema arteko ezberdintasunak bilatu"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "fitxategiak paketearen amaieran gehitu"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 "paketean dauden kopiak baino berriagoak diren fitxategiak bakarrik gehitu"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "gehitu tar fitxategiak pakete batetara"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "paketetik ezabatu (ez mag zintetan!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "pakete bolumen etiketa egiaztatu eta irten"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Ekintza aldagaiak:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "sakabanatutako fitxategiak egoki kudeatu"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "GNU basbeskopia inkremenetal formatu zaharra kudeatu"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "GNU basbeskopia inkremenetal formatu berria kudeatu"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1483,156 +1527,167 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "paketeak `seek' onartzen du"
 
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "paketeak `seek' onartzen du"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 #, fuzzy
 msgid "Overwrite control:"
 msgstr "Gainidazketa kontrola:\n"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "fitxategia egiaztatzen saiatu idatzi aurretik"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "ezabatu fitxategiak paketera gehitu aurretik"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "ez ordezkatu dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "ez ordezkatu dauden fitxategiak ateratzerakoan"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "ez ordezkatu ateratzerakoan dauden fitxategiak paketeko kopiak baino "
 "berriagoak badira"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "gainidatzi dauden fitxategiak ateratzerakoan"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "dauden direktorioen metadata mantendu"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "dauden direktorioen metadata gainidatzi ateratzerakoan (lehenetsia)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "gainidatzi dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Irteera korrontea hautatu:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "fitxategiak irteera estandarrera atera"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KOMANDOA"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "bideratu ateratako fitxategiak beste programa batetara"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "alde batetara utzi semeen irteera kodeak"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "zero ez diren semeen irteera kodeekin errore bat bezala jokatu"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Fitxategi atributu kudeaketa:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "indartu IZENA jabe bezala gehituriko fitxategientzat"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "indartu IZENA talde bezala gehituriko fitxategientzat"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATA-EDO-FITXATEGIA"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ALDAKETAK"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "indartu (sinbolikoa) modu ALDAKETAK gehituriko lerroentzat"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODOA"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "ez atera fitxategi eraldaketa data"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "jabe berdinaren fitxategiak ateratzen saiatu"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "atera fitxategiak zure kabuz"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "beti erabili zenbakiak erabiltzaile/talde izenen ordez"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "fitxategi baimenei buruzko argibideak atera (lehenetsia root "
 "erabiltzailearentzat)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1640,430 +1695,474 @@ msgstr ""
 "erabiltzailearen umask-a erabili paketetik baimenak ateratzerakoan "
 "(lehenetsia erabiltzaile arruntentzat)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "-p eta -s bikotearen berdina"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "--delay-directory-restore aukeraren eragina ezeztatu"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Fitxategi atributu kudeaketa:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 #, fuzzy
 msgid "Device selection and switching:"
 msgstr "Gailu hautapen eta aldaketa:\n"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "PAKETEA"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "pakete fitxategia edo gailu PAKETEA erabili"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "pakete fitxategi lokala da nahiz bi puntu izan"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "Emandako rmt KOMANDOA erabili rmt ordez"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "Urruneko KOMANDOA erabili rsh ordez"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "Gailu eta dentsitatea ezarri"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "sortu/zerrendatu/atera bolumen-anitzeko paketea"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "zinta aldatu ZENBAKIA x 1024 byte idatzi ondoren"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "scipt-a abiarazi zinta bakoitzaren amaieran (-M behar du)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "erabili/eguneratu FITXATEGI bolumen zenbakia"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Gailu blokeak:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKE"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOKE x 512 byte grabazio bakoitzeko"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "grabazio bakoitzeko byte ZENBAKIA, 512-ren multiploa"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "paketean zeroz betetako blokeak alde batetara utzi"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "irakurri ahala berriz bloke egin (4.2BSD tutuentzat)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Pakete formatu hautapena:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMATUA"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "emandako formatuko pakete bat sortu"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMATUA hauetako bat da:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "V7 tar formatu zaharra"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU formatua tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x formatua"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) formatua"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) formatua"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "pax-en berdina"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "--format=v7-ren berdina"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "--format=posix-ren berdina"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "gakoa[[:]=balioavalue][,gakoa[[:]=balioa]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TESTUA"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Elkarjotzen duten konpresio aukerak"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "PROG bidez iragazi (-d onartu behar du)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Fixtategi lokal hautapena:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "Emandako FITXATEGIA paketera gehitu /Erabilgarri izena asaterisko batez "
 "asten bada)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "DIR direktoriora aldatu"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "ateratzeko edo sortzeko izenak FITXATEGIA-tik eskuratu"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATROIA"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "fixtategiak utzi, PATROIA bezala emandakoak"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "FITXATEGIAN zerrendaturiko patroiak alde batetara utzi"
 
-#: src/tar.c:658
+#: src/tar.c:704
 #, fuzzy
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:661
+#: src/tar.c:707
 #, fuzzy
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:664
+#: src/tar.c:710
 #, fuzzy
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:666
+#: src/tar.c:712
 #, fuzzy
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:669
+#: src/tar.c:715
 #, fuzzy
 msgid "exclude everything under directories containing FILE"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:671
+#: src/tar.c:717
 #, fuzzy
 msgid "exclude directories containing FILE"
 msgstr "katxe marka duten direktorioak alde batetara utzi"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "sahiestu automatikoki direktorioetan zehar jeistea"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "fitxategi sistema lokalean egon paketea sortzerakoan"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "direktorioetan barrena (lehenetsia)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "Ez kendu hasierako  `/' fitxategi izenetatik"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "lotura sinbolikoak jarraitu; lotzen dituzten fitxategiak irauli eta paketean "
 "sartu"
 
-#: src/tar.c:687
+#: src/tar.c:733
 #, fuzzy
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "lotura sinbolikoak jarraitu; lotzen dituzten fitxategiak irauli eta paketean "
 "sartu"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "PARTAIDE IZEN"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "data eta ordua parekatu data bakarrik aldatzen denean"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "babeskopia egin ezabatu aurretik, KONTROL bertsioa hautatu"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "KATEA"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Fitxategi izen eraldaketak:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "ESPRESIOA"
 
-#: src/tar.c:708
+#: src/tar.c:754
 #, fuzzy
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "Sed-en ordezko EXPRESIOA erabili fitxategi izenak eraldatzeko"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "kasua alde batetara utzi"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "verbatim kate parekatzea"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
-msgstr ""
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
+msgstr "%s bolumena ez da %s-ren pareko"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "irteera informatiboa:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 #, fuzzy
 msgid "warning control"
 msgstr "Gainidazketa kontrola:\n"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "Aurrerapen mezuak bistarazi grabaketa ZENBAKI bakiotzagatik (lehenetsia 10 "
 "da)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "mezu bat inprimatu lotura guztiak ez badira iraultzen"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SEINALEA"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2071,297 +2170,318 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "eraldaketa datak UTC orduan bistarazi"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "irteera luzea FITXATEGIRA bidali"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "Bloke zenbakia bistarazu pakete bakoitzeko mezu bakoitzagatik"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "berrespena eskatu ekintza bakoitzean"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "tar lehenespenak bistarazi"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "fixtategi edo pakete izenak bistarazi eraldaketaren aurretik"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "ESTILOA"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "Gako karaktere gehigarriak KATE-tik"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "gakoak kendu karaktereentzat KATE-tik"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Bateragarritasun aukerak:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Beste aukerak:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "ezgaitu arriskutsu izan daitezken zenbait aukera"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Ezin duzu `-Acdtrux' aukera bat baino gehiago ezarri"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Elkarjotzen duten konpresio aukerak"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Seinale izen ezezaguna: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Data adibide fitxategia ez da aurkitu"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "%s %s data formatu ezezagunagatik aldatzen"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: fitxategi zerrenda irakurria dagoeneko"
-
-#: src/tar.c:1201
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file name read contains nul character"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "fitxategia gzip bidez iragazi"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 #, fuzzy
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "--quoting-style-entzat balio erabilgarriak:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Jabe baliogabea"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Blokeo faktore baliogabea"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Zinta luzera baliogabea"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 #, fuzzy
 msgid "Invalid incremental level value"
 msgstr "Fitxategi inkremental formatu okerra"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Atari data bat baino gehiago"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' ez da onartzen plataforma honetan"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint balioa ez da zenbaki oso bat"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Talde baliogabea"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Modu baliogabea eman da aukeran"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Zenbaki baliogabea"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Jabe baliogabea"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Grabazio tamaina baliogabea"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Grabaszio tamaina %d-ren multiplo bat izan behar da."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Elementu kopuru baliogabea"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "--to-command aukera bat bakarrik onartzen da"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Gaizki eratutako dentsitate argumentua: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Dentsitate Ezezaguna: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr " `-[0-7][lmh]' aukerak ez dira onartzen tar *honetan*"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FITXATEGIA]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "`%c' zaharkituriko aukerak argumentu bat behar du"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Pakete fitxategi anitzentzat `-M' aukera erabili behar da"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Ezin dira --listed-incremental eta --newer batera erabili"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Bolumen etiketa luzeegia da (muga %lu byte da)"
 msgstr[1] "%s: Bolumen etiketa luzeegia da (muga %lu byte da)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Ezin dira bolumen-anitzeko paketeak egiaztatu"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Ezin dira konprimituriko fitxategiak egiaztatu"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "%s patroia ezin da erabili"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Ezin dira bolumen anitzeko konprimituriko paketeak erabaili"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Ezin dira konprimituriko paketeak kateatu"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "%s patroia ezin da erabili"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr ""
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr " `-Aru' aukerak bateraezinak dira `-f -' rekin"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Behintzat `-Acdtrux' aukeretako bat ezarri behar duzu"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2373,117 +2493,112 @@ msgstr[1] ""
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "%s gakoa ezezaguna da edo ez dago inplementaturik oraindik"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Denbora marka eremuz kanpo dago"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "%s patroia ezin da erabili"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "%s gakoa ezin da gainidatzi"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Gaizki eratutako buru luzapena: luzera falta da"
 
-#: src/xheader.c:550
-#, fuzzy
-msgid "Extended header length is out of allowed range"
-msgstr " %*s buru luzapen luzera eremuz kanpo dago"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr " %*s buru luzapen luzera eremuz kanpo dago"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Gaizki eratutako buru luzapena: luzera ondoren hutsunea falta da"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Gaizki eratutako buru luzapena: berdin ikurra falta da"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Gaizki eratutako buru luzapena: lerro berria falta da"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "alde batetara utzi gako buru luzapen ezezaguna `%s'"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "buru luzapena %s=%s eremuz kanpo dago %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Gaizki eratutako buru luzapena: baliogabea %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Gaizki eratutako buru luzapena: gehiegizkoa %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Gaizki eratutako buru luzapena: %s baliogabea: %c mugatzaile esperodageba"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Gaizki eratutako buru luzapena: %s baliogabea: balio kopuru bitxia"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Talde baliogabea"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Idazketa %u egiaztapen puntua"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Irakurketa %u egiaztapen puntua"
@@ -2623,7 +2738,7 @@ msgstr "Inodo zenbakia eremuz kanpo dago"
 msgid "Negative size: %s"
 msgstr "Tamaina baliogabea: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) -ek huts egin du"
@@ -2652,8 +2767,8 @@ msgstr "Data formatu ezezaguna"
 msgid "[ARGS...]"
 msgstr "[ARG...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "Ezin da `%s' ireki"
@@ -2668,68 +2783,100 @@ msgstr "%s: Ezin da %s-ra seek egin"
 msgid "file name contains null character"
 msgstr "fitxategia izenak karaktere baliogabea du"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "ezin dira sakabanaturiko fitxategiaksortu irteera estandarrean. --file "
 "erabili"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "maskara baliogabea (`%s'-etik gertu)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "`%s' eremu ezezaguna"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "ezin da `%s'-ren denbora ezarri"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Ezin da `%s' ireki"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s komandoak huts egin du"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "Ezin da `%s' ireki"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Komandoa behar bezala irten da\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Komandoa %d egoerarekin huts egin du\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Komandoa %d seinalearekin amaitu da\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Komandoa %d seinalearekin geratu da\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Komando iraulketa nagusia\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Komandoa amaitua\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat -ek fitxategi izenak behar ditu"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Ezin da lan direktorioa aldatu"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Eremu luzeegia snapshot fitxategia irakurtzerakoan"
+
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Eremu balio esperogabea snapshot fitxategian"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Eremu balio esperogabea snapshot fitxategian"
+
+#, fuzzy
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr " %*s buru luzapen luzera eremuz kanpo dago"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Talde baliogabea"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Fitxategia irakurri baino lehen ezabaturik"
index 16dbca2fa99402414ef86d2d22cba902787de74a..2154b144780b537e06074867f2aab6968eda6222 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index 9d9c2b6223b6d9177d775ca38bb8d4a8efa8b2e8..30863776ae2e778c75394a04edc0c57176987c04 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -2,12 +2,12 @@
 # Copyright © 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
 # Lauri Nurmi <lanurmi@iki.fi>, 2002-2006.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.16.1\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2006-12-09 18:58+0200\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -28,36 +28,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argumentti %s on moniselitteinen %s:lle"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Kelvolliset argumentit ovat:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT-parametri vaatii arvon"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT-parametrin on oltava positiivinen"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Roskaa ARGP_HELP_FMT:ssä: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -65,29 +64,29 @@ msgstr ""
 "Pitkien valitsinten pakolliset tai valinnaiset argumentit ovat pakollisia "
 "tai valinnaisia myös vastaaville lyhyille."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Käyttö:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  tai: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [VALITSIN...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Komennot ”%s --help” ja ”%s --usage” antavat lisää tietoa.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Tuntematon järjestelmävirhe"
 
@@ -99,7 +98,7 @@ msgstr "näytä tämä ohje"
 msgid "give a short usage message"
 msgstr "näytä lyhyt käyttöohje"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NIMI"
@@ -120,17 +119,16 @@ msgstr ""
 msgid "print program version"
 msgstr "näytä ohjelman versio"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -138,62 +136,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: valitsin ”%s” on moniselitteinen\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: valitsin ”--%s” ei salli argumenttia\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: valitsin ”%c%s” ei salli argumenttia\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: valitsin ”%s” vaatii argumentin\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: tunnistamaton valitsin ”--%s”\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: tunnistamaton valitsin ”%c%s”\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: virheellinen valitsin -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: valitsin vaatii argumentin -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: valitsin ”-W %s” on moniselitteinen\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: valitsin ”-W %s” ei salli argumenttia\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: valitsin ”%s” vaatii argumentin\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "muisti lopussa"
 
@@ -209,28 +207,30 @@ msgstr "Työhakemistoa ei voi tallentaa"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "”"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "”"
 
@@ -240,7 +240,7 @@ msgstr "”"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[kKyY]"
 
@@ -250,7 +250,7 @@ msgstr "^[kKyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[eEnN]"
 
@@ -515,7 +515,12 @@ msgstr "vakiotuloste"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Etäkuorta ei voi käynnistää"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Etäkuorta ei voi käynnistää"
@@ -571,8 +576,8 @@ msgstr "Odottamaton tiedoston loppu arkistossa"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "MÄÄRÄ"
 
@@ -580,8 +585,8 @@ msgstr "MÄÄRÄ"
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -596,7 +601,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "liian monta argumenttia"
@@ -605,9 +610,9 @@ msgstr "liian monta argumenttia"
 msgid "Garbage command"
 msgstr "Roskakomento"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Tämä ei näytä tar-arkistolta"
 
@@ -645,65 +650,65 @@ msgstr "Vakiosyötteessä/tulosteessa olevaa arkistoa ei voi varmistaa"
 msgid "Archive is compressed. Use %s option"
 msgstr "Arkisto on tiivistetty. Käytä valitsinta %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Pakattuja arkistoja ei voi päivittää"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Nauhan alussa, lopetetaan"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Liian monta virhettä, lopetetaan"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Tietueen koko = %lu lohko"
 msgstr[1] "Tietueen koko = %lu lohkoa"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Kohdistamaton lohko (%lu tavu) arkistossa"
 msgstr[1] "Kohdistamaton lohko (%lu tavua) arkistossa"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Arkistossa ei voi siirtyä taaksepäin; sitä ei ehkä voi lukea ilman "
 "valitsinta -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek ei pysähtynyt tietueen rajalle"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: sisältää virheellisen arkiston osan järjestysnumeron"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Arkisto-osan järjestysnumeron ylivuoto"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Valmistele osa #%d arkistolle %s ja paina return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Tiedoston loppu odotetun käyttäjän syötteen sijaan"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "VAROITUS: Arkisto on epätäydellinen"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -715,67 +720,67 @@ msgstr ""
 " q             Keskeytä tar\n"
 " y tai rivinv. Jatka suoritusta\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Käynnistä alikuori\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Näytä tämä lista\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Ei uutta arkiston osaa, poistutaan.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Tiedostonimeä ei annettu. Yritä uudelleen.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Komento %s epäonnistui"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s jatkuu mahdollisesti tällä arkiston osalla: otsake sisältää typistetyn "
 "nimen"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s ei jatku tällä arkiston osalla"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s on väärän kokoinen (%s ≠ %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Tämä arkiston osa ei ole järjestyksessä"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Arkiston osa %s ei täsmää nimiöön %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -783,408 +788,433 @@ msgstr ""
 "%s: tiedostonimi on liian pitkä tallennettavaksi moniosaisen GNU-arkiston "
 "otsakkeeseen; nimi typistetty"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "rmtlseek ei pysähtynyt tietueen rajalle"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Voitiin lukea vain %lu tavua %lu tavusta"
 msgstr[1] "Voitiin lukea vain %lu tavua %lu tavusta"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Sisällöt eroavat"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Odottamaton tiedoston loppu arkistossa"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Tiedoston tyyppi eroaa"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Tila eroaa"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "UID eroaa"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "GID eroaa"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Muutosaika eroaa"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Koko eroaa"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ei ole linkitetty tiedostoon %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symlinkki eroaa"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Laitenumero eroaa"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Tarkasta "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Tuntematon tiedostotyyppi ”%c”, vertailtu normaalina tiedostona"
 
 # Mitäh?
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arkisto sisältää tiedostonimiä, joiden etuliitteet on poistettu."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Tarkastus ei ehkä löydä alkuperäisiä tiedostoja."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "TARKASTUSVIRHE: havaittu %d virheellinen otsake"
 msgstr[1] "TARKASTUSVIRHE: havaittu %d virheellistä otsaketta"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Yksinäinen nollalohko kohdassa %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, fuzzy, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "arvo %s on sallitun %s-välin %s..%s ulkopuolella, korvataan arvolla %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "arvo %s on sallitun %s-välin %s..%s ulkopuolella"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Luodaan otsakkeet negatiivisilla oktaaleilla"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: tiedostonimi on liian pitkä (maksimi %d), ei lisätä"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: tiedostonimi on liian pitkä (ei voida jakaa), ei lisätä"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: linkin nimi on liian pitkä, ei lisätä"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Tiedosto kutistui %s tavun verran, tasataan nollilla"
 msgstr[1] "%s: Tiedosto kutistui %s tavun verran, tasataan nollilla"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: tiedosto ei ole samalla tiedostojärjestelmällä, ei lisätä"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tuntematon tiedostotyyppi, tiedostoa ei huomioida"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Puuttuvat linkit tiedostoon %s.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: tiedosto on muuttumaton, ei lisätä"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: tiedosto on arkistossa, ei lisätä"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 #, fuzzy
 msgid "directory not dumped"
 msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: tiedosto muuttui lukemisen aikana"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: pistoketta ei huomioida"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: ovea ei huomioida"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Siirrytään seuraavaan otsakkeeseen"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Poistetaan epäotsake arkistosta"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: epätodennäköisen vanha aikaleima %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: aikaleima %s on %s sekuntia tulevaisuudessa"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Odottamaton ristiriita luotaessa hakemistoa"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Hakemisto nimettiin uudelleen ennen kuin sen tilaa voitiin purkaa"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Puretaan jatkuvat tiedostot normaaleiksi tiedostoiksi"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Yritetään purkaa symboliset linkit koviksi linkeiksi"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Ei voi purkaa -- tiedosto on jatkoa toisesta arkiston osasta"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tuntematon tiedostotyyppi ”%c”, purettiin normaaliksi tiedostoksi"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Nykyinen %s on uudempi tai yhtä vanha"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Hakemisto %s on nimetty uudelleen"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Hakemisto on nimetty uudelleen"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Hakemisto on uusi"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: tiedosto ei ole samalla tiedostojärjestelmällä, ei lisätä"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Hakemisto on nimetty uudelleen"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Virheellinen aikaleima"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Virheellinen muutosaika (sekunnit)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Virheellinen muutosaika (nanosekunnit)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Virheellinen laitenumero"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Virheellinen i-solmun numero"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Odottamaton tiedoston loppu arkistossa"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Kelvoton tiheysargumentti: ”%s”"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Kelvoton tiheysargumentti: ”%s”"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Väliaikaishakemiston luominen %s-mallia käyttäen ei onnistu"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Ei poisteta hakemistoa: stat ei onnistu"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: hakemisto on eri laitteella, ei poisteta"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Poistetaan %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Ei voi poistaa"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Jätetään pois"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "lohko %s: ** NUL-lohko **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "lohko %s: ** Tiedoston loppu **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "lohko %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Tyhjiä merkkejä otsakkeessa, odotettiin numeerista %s-arvoa"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1192,167 +1222,183 @@ msgstr ""
 "kahden komplementiksi"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Arkiston oktaaliarvo %.*s on sallitun %s-välin ulkopuolella"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin "
 "ulkopuolella"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Arkiston base-256-arvo on sallitun %s-välin ulkopuolella"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arkisto sisältää merkkijonon %.*s, odotettiin numeerista %s-arvoa"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Arkiston arvo %s on sallitun %s-välin %s..%s ulkopuolella"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " linkki tiedostoon %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tuntematon tiedostotyyppi %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Pitkä linkki--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Pitkä nimi--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Arkiston osan otsake--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Jatkuu tavusta %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Luodaan hakemisto:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Työhakemistoa ei voi vaihtaa"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Nimetään uudelleen %s -> %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Nimetään %s takaisin nimelle %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Tiedosto oli poistettu ennen sen lukemista"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "lapsiprosessi"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "prosessienvälinen kanava"
 
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Komento %s epäonnistui"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: tiedosto on arkistossa, ei lisätä"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: tiedostonimi sisältää nul-merkin"
+
 # ... ja sen pitää päätyä kääntäjien ongelmaksi?
-#: src/names.c:590
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr "Tiedostonimissä on käytetty jokerimerkkejä. Käytä"
 
-#: src/names.c:592
+#: src/names.c:823
 #, fuzzy
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr "valitsinta --wildcards täsmäyksen käyttöön ottamiseksi, tai"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Ei löytynyt arkistosta"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Vaadittua esiintymää ei löytynyt arkistosta"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Kumpikin valitsimista ”-%s” ja ”-%s” käyttää vakiosyötettä"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Virheellinen arkistomuoto"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 "Haluttiin käyttää GNU-ominaisuuksia yhteensopimattoman arkistomuodon kanssa"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1368,9 +1414,10 @@ msgstr ""
 "  %s -tvf arkisto.tar          # Listaa kaikki arkisto.tar:in tiedostot.\n"
 "  %s -xf arkisto.tar           # Pura kaikki tiedostot arkisto.tar:ista.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1389,79 +1436,79 @@ msgstr ""
 "                  muuten yksinkertaisia\n"
 "  never, simple   tee aina yksinkertaisia varmuuskopioita\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Päätoimintatila:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "listaa arkiston sisältö"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "pura tiedostoja arkistosta"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "luo uusi arkisto"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "etsi arkiston ja tiedostojärjestelmän väliset erot"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "lisää tiedostoja arkiston loppuun"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "lisää vain arkistokopiota uudemmat tiedostot"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "lisää tar-tiedostoja arkistoon"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "poista tiedostoja arkistosta (ei toimi magneettinauhoilla!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Toimintovalinnat:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "käsittele harvat tiedostot tehokkaasti"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "käsittele vanha GNU-muotoinen lisääntyvä varmuuskopio"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "käsittele uusi GNU-muotoinen lisääntyvä varmuuskopio"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "jatka lukukelvottomista tiedostoista huolimatta"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1474,308 +1521,361 @@ msgstr ""
 "annettu komentirivillä tai -T-valitsimella; oletusMÄÄRÄ on 1"
 
 # Muualla seek on siirtymistä...
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "arkisto on selattava"
 
 # Muualla seek on siirtymistä...
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "arkisto on selattava"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "poista tiedostot arkistoon lisäämisen jälkeen"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "älä korvaa olemassaolevia tiedostoja purettaessa"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "älä korvaa olemassaolevia tiedostoja purettaessa"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "älä korvaa olemassaolevia tiedostoja, jotka ovat arkistokopioitaan uudempia"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "poista jokainen tiedosto ennen sen päälle purkamista"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "tyhjennä rakenne ennen hakemiston purkamista"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "säilytä olemassaolevien hakemistojen metatiedot"
 
-#: src/tar.c:467
+#: src/tar.c:487
 #, fuzzy
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Valitse tulostusvirta:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "pura tiedostot vakiotulosteeseen"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KOMENTO"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "putkita puretut tiedostot toiselle ohjelmalle"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "jätä lapsiprosessien paluuarvot huomiotta"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "käsittele lapsiprosessien nollasta poikkeavat paluuarvot virheinä"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Tiedostojen ominaisuuksien käsittely:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "pakota NIMI lisättyjen tiedostojen omistajaksi"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "pakota NIMI lisättyjen tiedostojen ryhmäksi"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "PÄIVÄYS-TAI-TIED"
 
-#: src/tar.c:494
+#: src/tar.c:517
 #, fuzzy
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "MUUTOS"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "pakota (symbolinen) tila MUUTOS lisätyille"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "älä pura tiedoston muutosaikaa"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "yritä purkaa tiedostot samalla omistajuudella"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "pura tiedostot itsenäsi"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "käytä aina numeroita käyttäjän/ryhmän nimissä"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "lajittele purettavat tiedostonimet täsmäämään arkistoon"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "sama kuin -p ja -s yhdessä"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Tiedostojen ominaisuuksien käsittely:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 #, fuzzy
 msgid "Device selection and switching:"
 msgstr "Laitteen valinta ja vaihtaminen:\n"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARKISTO"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "käytä arkistotiedostoa tai -laitetta ARKISTO"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "arkisto on paikallinen vaikka nimessä olisi kaksoispiste"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "käytä rmt-KOMENTOA rmt:n sijaan"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "käytä etäKOMENTOa rsh:n sijaan"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "anna asema ja tiheys"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "luo/listaa/pura moniosainen arkisto"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun jälkeen"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "aja skripti joka nauhan lopussa (valitsin -M tulee käyttöön)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "käytä/päivitä arkiston osan numero TIEDostossa"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Laitteen lohkot:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "LOHKOT"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "LOHKOT × 512 tavua tietuetta kohti"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "MÄÄRÄ tavua tietuetta kohti, 512:n monikerta"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "älä huomioi nollattuja lohkoja arkistossa (merkitsee tiedoston loppua)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "suorita lohkominen uudelleen luettaessa (4.2BSD-putkia varten)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Arkistomuodon valinta:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "MUOTO"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "luo annetun muotoinen arkisto"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "MUOTO on yksi seuraavista:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "vanha V7-tar-muoto"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU-muoto tar-versioilla ≤ 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x -muoto"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) -muoto"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) -muoto"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "sama kuin pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "sama kuin --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "sama kuin --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "avainsana[[:]=arvo][,avainsana[[:]=arvo]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "määrittele pax-avainsanoja"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKSTI"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1783,174 +1883,176 @@ msgstr ""
 "luo arkisto nimiöllä TEKSTI. Listattaessa/purettaessa käytä TEKSTIä "
 "nimiönhakulausekkeena"
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Ristiriitaiset pakkausvalitsimet"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "OHJ"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "ohjaa OHJelman läpi (on hyväksyttävä -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Paikallisten tiedostojen valinta:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "lisää annettu TIEDosto arkistoon (hyödyllinen, jos nimi alkaa viivalla)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "HAK"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "siirry hakemistoon HAK"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "hae purettavat/luotavat nimet TIEDOSTOsta"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T lukee nollaan päättyviä nimiä, poistaa käytöstä -C:n"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "HAHMO"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "jätä pois HAHMOn mukaiset tiedostot"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "jätä pois TIEDOSTOssa listatut hahmot"
 
-#: src/tar.c:658
+#: src/tar.c:704
 #, fuzzy
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "jätä pois välimuistihakemistot"
 
-#: src/tar.c:661
+#: src/tar.c:707
 #, fuzzy
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
 
-#: src/tar.c:664
+#: src/tar.c:710
 #, fuzzy
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
 
-#: src/tar.c:666
+#: src/tar.c:712
 #, fuzzy
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
 
-#: src/tar.c:669
+#: src/tar.c:715
 #, fuzzy
 msgid "exclude everything under directories containing FILE"
 msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "estä automaattinen eteneminen alihakemistoihin"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "pysy nykyisessä tiedostojärjestelmässä arkistoa luotaessa"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "etene alihakemistoihin (oletus)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "älä poista ”/”-merkkiä tiedostonimien alusta"
 
-#: src/tar.c:685
+#: src/tar.c:731
 #, fuzzy
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "seuraa symlinkkejä; "
 
-#: src/tar.c:687
+#: src/tar.c:733
 #, fuzzy
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "seuraa symlinkkejä; "
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "TIED-NIMI"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "aloita arkiston tiedostosta TIED-NIMI"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "PÄIVÄYS"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "vertaa vain tiedoston muutosaikaa"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "HALLINTA"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "varmuuskopiointi ennen poistoa, valitse versionHALLINTA"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "MERKKIJONO"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1958,103 +2060,103 @@ msgstr ""
 "varmuuskopiointi ennen poistoa, älä käytä tavanomaista jälkiliitettä (joka "
 "on ”~”, ellei muuttujaa SIMPLE_BACKUP_SUFFIX ole asetettu)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 #, fuzzy
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "poista MÄÄRÄn verran osia tiedostonimien alusta"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 #, fuzzy
 msgid "ignore case"
 msgstr "poisjättäminen ei huomioi kirjainkokoa"
 
-#: src/tar.c:719
+#: src/tar.c:765
 #, fuzzy
 msgid "patterns match file name start"
 msgstr "poisjättöhahmoja verrataan nimen alkuun"
 
-#: src/tar.c:721
+#: src/tar.c:767
 #, fuzzy
-msgid "patterns match after any `/' (default for exclusion)"
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "poisjättöhahmoja verrataan jokaisen ”/”:n jälkeen"
 
-#: src/tar.c:723
+#: src/tar.c:769
 #, fuzzy
 msgid "case sensitive matching (default)"
 msgstr "poisjättäminen huomioi kirjainkoon (oletus)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "poisjättöhahmon jokerimerkit eivät täsmää ”/”-merkkiin"
 
-#: src/tar.c:731
+#: src/tar.c:777
 #, fuzzy
-msgid "wildcards match `/' (default for exclusion)"
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Tietoja antava tuloste:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "listaa käsiteltävät tiedostot"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 #, fuzzy
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "näytä edistymisviesti 10 sekunnin välein"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "näytä viesti, ellei kaikkia linkkejä lisätty"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2062,63 +2164,67 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "näytä tiedostojen muutosajat UTC-aikoina"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "ohjaa monisanainen tuloste TIEDostoon"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "näytä lohkonumero arkistossa viestien yhteydessä"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "kysy varmistusta jokaiselle toiminnolle"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "näytä tarin oletukset"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 "luettele hakuehtoihin täsmäämättömät hakemistot luetellessa tai purettaessa"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Yhteensopivuusvalitsimet:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 #, fuzzy
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
@@ -2126,65 +2232,57 @@ msgid ""
 msgstr ""
 "luotaessa sama kuin --old-archive purettaessa sama kuin --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Muut valitsimet:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "poista käytöstä joitakin potentiaalisesti vahingollisia valitsimia"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Vain yhtä valitsimista ”-Acdtrux” voi käyttää kerrallaan"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Ristiriitaiset pakkausvalitsimet"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Tuntematon signaalin nimi: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Päiväystiedostoa ei löytynyt"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Korvataan tuntematon päiväysmuoto %2$s arvolla %1$s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr "Valitsin %s: Käsittellään päiväys %s arvona %s"
-
-#: src/tar.c:1135
+#: src/tar.c:1108
 #, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: tiedosto on arkistossa, ei lisätä"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: tiedostonimi sisältää nul-merkin"
+msgid "Option %s: Treating date '%s' as %s"
+msgstr "Valitsin %s: Käsittellään päiväys %s arvona %s"
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "ohjaa arkisto gzip-ohjelman läpi"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 #, fuzzy
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Kelvolliset argumentit --quoting-style -valitsimille ovat:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2192,173 +2290,198 @@ msgstr ""
 "\n"
 "*Tämä* tar käyttää oletuksena:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Virheellinen omistaja"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Virheellinen lohkomiskerroin"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Virheellinen nauhan pituus"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Annettu useampi kuin yksi kynnyspäiväys"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' ei ole tuettu tällä alustalla"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Virheellinen ryhmä"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Valitsimelle annettiin virheellinen tila"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Virheellinen määrä"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Virheellinen omistaja"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Virheellinen tietueen koko"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Tietueen koon on oltava %d:n monikerta."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Virheellinen osien määrä"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Kelvoton tiheysargumentti: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Tuntematon tiheys: ”%c”"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "*Tämä* tar ei tue valitsimia ”-[0-7][lmh]”"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[TIEDOSTO]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Vanha valitsin ”%c” vaatii argumentin."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "valitsinta --occurence ei voi käyttää pyydetyssä toimintatilassa"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Usean arkistotiedoston käyttäminen vaatii valitsimen ”-M”"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Valitsimia --listed-incremental ja --newer ei voi käyttää yhdessä"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Arkiston osan nimiö on liian pitkä (raja on %lu tavu)"
 msgstr[1] "%s: Arkiston osan nimiö on liian pitkä (raja on %lu tavua)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Moniosaisia arkistoja ei voi tarkastaa"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Pakattuja arkistoja ei voi varmistaa"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Hahmoa %s ei voi käyttää"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Pakattuja moniosaisia arkistoja ei voi käyttää"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Pakattuja arkistoja ei voi liittää toisiinsa"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Hahmoa %s ei voi käyttää"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Kieltäydytään pelkurimaisesti luomasta tyhjää arkistoa"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Valitsimet ”-Aru” eivät ole yhteensopivia valitsinten ”-f -” kanssa"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Vähintään yhtä valitsimista ”-Acdtrux” on käytettävä"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2370,60 +2493,53 @@ msgstr[1] "%s: Tiedosto kutistui %s tavun verran"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Avainsana %s on tuntematon tai sillä ei vielä ole toteutusta"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Aikaleima ei ole sallitulla välillä"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Hahmoa %s ei voi käyttää"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Avainsanaa %s ei voi ohittaa"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 #, fuzzy
 msgid "Malformed extended header: missing length"
 msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
 
-#: src/xheader.c:550
-#, fuzzy
-msgid "Extended header length is out of allowed range"
-msgstr ""
-"Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin "
-"ulkopuolella"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin "
 "ulkopuolella"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 #, fuzzy
 msgid "Malformed extended header: missing blank after length"
 msgstr "Väärän muotoinen laajennettu otsake: tyhje puuttuu pituuden jälkeen"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 #, fuzzy
 msgid "Malformed extended header: missing newline"
 msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2431,64 +2547,64 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Laajennettu otsake %s=%s on sallitun välin %s..%s ulkopuolella"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Väärän muotoinen laajennettu otsake: virheellinen %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, fuzzy, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Väärän muotoinen laajennettu otsake: virheellinen %s: odottamaton rajoitin %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Virheellinen ryhmä"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Kirjoituksen tarkistuspiste %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Lukemisen tarkistuspiste %u"
@@ -2627,7 +2743,7 @@ msgstr "I-solmun numero ei ole sallitulla välillä"
 msgid "Negative size: %s"
 msgstr "Virheellinen koko: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) epäonnistui"
@@ -2656,8 +2772,8 @@ msgstr "Tuntematon järjestelmävirhe"
 msgid "[ARGS...]"
 msgstr "[ARG...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2672,66 +2788,93 @@ msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
 msgid "file name contains null character"
 msgstr "tiedostonimi sisältää nollatavun"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr " tuntematon tiedostotyyppi %s\n"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Komento %s epäonnistui"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Komennon suoritus päättyi onnistuneesti\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "Lapsiprosessi kuoli signaalilla %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Komento keskeytyi signaaliin %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Komento pysähtyi signaaliin %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Komento keskeytyi\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Sovitetut tiedostonimet--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Työhakemistoa ei voi vaihtaa"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "lajittele purettavat tiedostonimet täsmäämään arkistoon"
+
+#, fuzzy
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr ""
+#~ "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin "
+#~ "ulkopuolella"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Virheellinen ryhmä"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Tiedosto oli poistettu ennen sen lukemista"
index e7a950c402e2577b7e6b931ceb205a9e9d0df48d..27e98ddd15da3e5379cab9abdb3968c8ccfe9842 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 1f2c54f6686d5c49d493e48f5fac71f5475398b8..30ebb3a889eb5417205cc30d67788f70d18f67f3 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,15 +2,15 @@
 # Copyright © 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, jusqu'en 2004
-# Christophe Combelles <ccomb@free.fr>, 2007, 2008, 2009, 2010
+# Christophe Combelles <ccomb@free.fr>, 2007, 2008, 2009, 2010, 2011
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar-1.25\n"
+"Project-Id-Version: tar-1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-09 22:44+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-13 12:51+0100\n"
 "Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -30,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "Argument %s ambigu pour %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Les arguments valables sont :"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT : la valeur %s est inférieure ou égale à %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s : le paramètre ARGP_HELP_FMT a besoin d'une valeur"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s : le paramètre ARGP_HELP_FMT doit être positif"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s : le paramètre ARGP_HELP_FMT est inconnu"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Déchet dans ARGP_HELP_FMT : %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -67,29 +66,29 @@ msgstr ""
 "Les arguments obligatoires ou facultatifs pour les formes longues des "
 "options le sont également pour les formes courtes qui leur correspondent."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Utilisation :"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  ou : "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPTION...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Pour en savoir davantage, faites : « %s --help » ou « %s --usage ».\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Rapportez toute anomalie à %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Erreur système inconnue"
 
@@ -101,7 +100,7 @@ msgstr "Afficher cette aide-mémoire"
 msgid "give a short usage message"
 msgstr "Afficher un court mode d'emploi"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NOM"
@@ -122,17 +121,16 @@ msgstr "Bloquer pendant SECS secondes (3600 par défaut)"
 msgid "print program version"
 msgstr "Afficher la version du programme"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAM ERROR) Aucune version connue !?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s : trop d'arguments\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAM ERROR) L'option devrait avoir été reconnue !?"
 
@@ -140,62 +138,62 @@ msgstr "(PROGRAM ERROR) L'option devrait avoir été reconnue !?"
 msgid "write error"
 msgstr "erreur d'écriture"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s : l'option « %s » est ambiguë\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s : l'option « --%s » n'a pas d'argument\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s : l'option « %c%s » n'a pas d'argument\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s : l'option « --%s » doit avoir un argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s : l'option « --%s » est inconnue\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s : l'option « %c%s » est inconnue\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s : l'option -- '%c' n'est pas valable\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s : l'option -- '%c' a besoin d'un argument\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s : l'option « -W %s » est ambiguë\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s : l'option « -W %s » ne prend pas d'argument\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s : l'option « -W %s » doit avoir un argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "mémoire épuisée"
 
@@ -211,28 +209,30 @@ msgstr "Impossible de revenir au répertoire de travail initial"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "« "
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr " »"
 
@@ -242,7 +242,7 @@ msgstr " »"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[oO]"
 
@@ -252,7 +252,7 @@ msgstr "^[oO]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -543,7 +543,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Impossible de se connecter à %s : échec de résolution"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Impossible de lancer un interpréteur de commandes distant"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Impossible de lancer un interpréteur de commandes distant"
@@ -594,8 +599,8 @@ msgstr ""
 "Manipule un lecteur de cartouches en acceptant des commandes d'un processus "
 "distant"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NOMBRE"
 
@@ -603,8 +608,8 @@ msgstr "NOMBRE"
 msgid "set debug level"
 msgstr "définit le niveau de débogage"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -619,7 +624,7 @@ msgstr "définit le nom de fichier de sortie de débogage"
 msgid "cannot open %s"
 msgstr "impossible d'ouvrir %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "trop d'arguments"
@@ -628,9 +633,9 @@ msgstr "trop d'arguments"
 msgid "Garbage command"
 msgstr "Commande rejetée"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ceci ne ressemble pas à une archive de type « tar »"
 
@@ -669,67 +674,67 @@ msgstr ""
 msgid "Archive is compressed. Use %s option"
 msgstr "L'archive est compressée. Utilisez l'option %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Une archive compressée ne peut pas être mise à jour"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Début de la cartouche atteinte ; arrêt du programme."
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Trop d'erreurs, arrêt du programme."
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Taille de l'enregistrement = %lu bloc"
 msgstr[1] "Taille de l'enregistrement = %lu blocs"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloc non aligné (%lu octet) dans l'archive"
 msgstr[1] "Bloc non aligné (%lu octets) dans l'archive"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Impossible de reculer dans le fichier d'archive ; il se peut qu'il soit "
 "illisible sans l'option « -i »"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s : contient un numéro de volume non valable"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Débordement du numéro de volume"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Préparez le volume n°%d pour %s et appuyez sur Entrée : "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr ""
 "Fin de fichier rencontrée alors qu'une réponse de l'utilisateur était "
 "attendue"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AVERTISSEMENT : l'archive est incomplète"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -740,67 +745,67 @@ msgstr ""
 " q             Arrêter tar\n"
 " y ou newline  Continuer le traitement\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Générer un sous-shell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Afficher cette liste\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Pas de nouveau volume ; fin du traitement.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Nom de fichier non spécifié. Essaye encore :).\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Données non valables en entrée. Tapez « ? » pour obtenir de l'aide.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Échec de la commande %s"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "La suite de %s est probablement sur ce volume : l'en-tête contient un nom "
 "tronqué."
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "La suite de %s n'est pas sur ce volume."
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s a une taille incorrecte (%s != %s + %s)."
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Ce volume est hors séquence (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Archive non étiquetée pour correspondre à %s."
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Le volume %s ne correspond pas à %s."
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -808,410 +813,436 @@ msgstr ""
 "%s : nom de fichier tronqué, car trop long pour être stocké dans un en-tête "
 "GNU multi-volumes"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "l'écriture ne s'est pas arrêté sur une limite de bloc"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Seulement %lu octet sur %lu a pu être lu"
 msgstr[1] "Seulement %lu octets sur %lu ont pu être lus"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Les contenus sont différents."
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Fin prématurée rencontrée dans l'archive."
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Le type de fichier est différent."
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Le mode est différent."
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "L'UID est différent."
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Le GID est différent."
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "La date de modification est différente."
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "La taille est différente."
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "N'est pas lié à %s."
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Le lien symbolique est différent."
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Le numéro de périphérique est différent."
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Vérification "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s : type de fichier inconnu « %c », recherche de différence comme pour un "
 "fichier normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "L'archive contient des noms de fichiers dont le préfixe a été enlevé"
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "L'archive contient des en-têtes obsolètes en base 64."
+msgstr "L'archive contient des noms de fichiers transformés"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 "La vérification peut échouer lors de la localisation des fichier originaux."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "ÉCHEC DE VÉRIFICATION : %d en-tête non valable détecté."
 msgstr[1] "ÉCHEC DE VÉRIFICATION : %d en-têtes non valables détectés."
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Bloc zéro solitaire repéré à %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s : contient une étiquette de répertoire cache %s ; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "Valeur %s en dehors de la plage de %s : %s..%s ; remplacement par %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "Valeur %s en dehors de la plage de %s : %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Génération d'en-têtes octaux négatifs"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s : le nom de fichier est trop long (%d max) ; fichier non archivé"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s : le nom de fichier est trop long (ne peut être scindé) ; fichier non "
 "archivé"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s : le nom du lien est trop long ; fichier non archivé"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s : fichier réduit de %s octet ; remplissage avec des zéros"
 msgstr[1] "%s : fichier réduit de %s octets ; remplissage avec des zéros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr ""
 "%s : le fichier est sur un système de fichiers différent ; fichier non "
 "archivé"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "contenu non archivé"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s : type de fichier inconnu ; fichier ignoré"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Liens manquants vers %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s : le fichier n'est pas modifié ; fichier non archivé"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s : le fichier est l'archive elle-même ; fichier non archivé"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "répertoire non archivé"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s : fichier modifié pendant sa lecture"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s : socket ignorée"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s : porte ignorée"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "On saute à l'en-tête suivant"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Suppression d'un « non en-tête » de l'archive"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s : l'horodatage %s est trop vieux pour être plausible"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s : l'horodatage %s est situé %s secondes dans le futur."
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s : incohérence inattendue lors de la création du répertoire"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s : répertoire renommé avant l'extraction de son état"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extraction des fichiers contigus comme des fichiers réguliers"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Tentative d'extraction des liens symboliques comme des liens physiques"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s : extraction impossible (morceau de fichier issu d'un autre volume)"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "En-tête à nom long inattendu"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s : type de fichier inconnu « %c », extrait comme un fichier normal."
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Le %s actuel est au moins aussi récent"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s : impossible d'archiver ce fichier."
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Impossible de renommer %s en %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s : le répertoire a été renommé depuis %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s : le répertoire a été renommé."
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s : le répertoire est nouveau."
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr ""
+"%s : le fichier est sur un système de fichiers différent ; fichier non "
+"archivé"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s : le répertoire a été renommé."
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Horodatage non valable"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Temps de modification non valable (secondes)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Temps de modification non valable (nanosecondes)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Numéro de périphérique non valable"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Numéro d'inode non valable"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Champ trop long rencontré pendant la lecture du fichier d'instantané"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Erreur de lecture du fichier d'instantané"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Fin prématurée du fichier d'instantané"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Valeur de champ inattendue dans le fichier d'instantané"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Terminaison de champ manquante"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Mauvais format de fichier incrémental"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Version non prise en charge pour le format incrémental : %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "dumpdir incorrect : « %c » était attendu mais %#3o a été trouvé"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "dumpdir incorrect : « X » en double"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "dumpdir incorrect : nom vide dans « R »"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "dumpdir incorrect : « T » non précédé de « R »"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "dumpdir incorrect : nom vide dans « T »"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "dumpdir incorrect : fin des données trouvées au lieu de « %c »"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "dumpdir incorrect : « X » n'a jamais été utilisé"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Impossible de créer un répertoire temporaire utilisant le modèle %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s : répertoire non purgé : impossible d'évaluer par stat()"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr ""
 "%s : le répertoire est sur un autre périphérique : répertoire non purgé"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s : suppression de %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s : suppression impossible"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s : omis"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloc %s : ** Bloc de NULs **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloc %s : ** Fin de fichier **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloc %s : "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 "Blancs dans l'en-tête alors qu'une valeur numérique de type %s était attendue"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1219,27 +1250,27 @@ msgstr ""
 "complément à 2 supposé"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "La valeur octale de l'archive %.*s est en dehors de la plage de %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "L'archive contient des en-têtes obsolètes en base 64."
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Une chaîne en base 64 signée %s de l'archive est hors de la plage %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Une valeur en base 256 de l'archive est en dehors de la plage %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
@@ -1247,83 +1278,99 @@ msgstr ""
 "attendue."
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "La valeur de l'archive %s est hors des limites de %s : %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " lien vers %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " type de fichier inconnu %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Lien long--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nom long--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--En-tête de volume--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Suite à l'octet %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Création du répertoire :"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Impossible de connaître le répertoire de travail"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s renommé en %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s : impossible de renommer en %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s finalement renommé en %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s : fichier supprimé avant d'avoir été lu"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "processus enfant"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canal inter-processus"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Échec de la commande %s"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s : la liste de fichiers est déjà lue"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Impossible de définir la date de « %s »"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s : le nom de fichier lu contient un caractère nul"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 "Caractères de correspondance de motif utilisé dans les noms de fichiers."
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1331,59 +1378,60 @@ msgstr ""
 "Utilisez « --wildcards » pour activer la correspondance de motif ou « --no-"
 "wildcards » pour supprimer cet avertissement"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s : non trouvé dans l'archive"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s : occurence requise non trouvée dans l'archive"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Mauvaise correspondance d'étiquette d'archive"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "L'utilisation de l'option -C à l'intérieur de la liste de fichiers n'est pas "
 "permise avec --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Une seule option -C est autorisée avec --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr ""
 "Les options « -%s » et« -%s » nécessitent toutes les deux l'entrée standard."
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s : format d'archive non valable"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 "Fonctionnalités de type GNU demandées pour un format d'archive incompatible."
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Type de protection de caractères inconnu « %s ». Essayez « %s --quoting-"
 "style=help » pour avoir une liste."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1402,9 +1450,10 @@ msgstr ""
 "manière détaillée.\n"
 "  tar -xf archive.tar          # Extrait tous les fichiers de archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1423,84 +1472,84 @@ msgstr ""
 "  nil, existing   Numérotées si déjà numérotées, sinon simples.\n"
 "  never, simple   Faire toujours des sauvegardes simples.\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Mode d'opération principal :"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "Afficher le contenu de l'archive"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "Extraire les fichiers de l'archive"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "Créer une nouvelle archive"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "Trouver les différences entre l'archive et le système de fichiers"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "Ajouter des fichiers à la fin de l'archive"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 "Ajouter seulement les fichiers plus récents que les copies présentes dans "
 "l'archive"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "Ajouter des fichiers tar à une archive"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "Effacer de l'archive (pas sur les bandes magnétiques !)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "Tester l'étiquette du volume d'archive et terminer"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modificateurs d'opération :"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 "Économiser efficacement l'espace dans les fichiers dispersés (fichiers à "
 "trous)"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJEUR[.MINEUR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "Définir la version du format de dispersion à utiliser (implique « --sparse »)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "Prendre en charge les sauvegardes incrémentales à l'ancien format GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "Prendre en charge les sauvegardes incrémentales au nouveau format GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "niveau de vidage d'archive incrémentale au nouveau format GNU"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "Ne pas s'arrêter à cause des non-zéros sur les fichiers illisibles"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1513,130 +1562,141 @@ msgstr ""
 "fichiers est fournie soit sur la ligne de commande, soit avec l'option « -T "
 "». NOMBRE vaut 1 par défaut."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "L'archive peut être parcourue"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "L'archive ne peut pas être parcourue"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 "Ne pas vérifier les numéros de périphériques lors de la création d'archives "
 "incrémentales"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "vérifier les numéros de périphériques lors de la création d'archives "
 "incrémentales (par défaut)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Contrôle de l'écrasement :"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "Tenter de vérifier l'archive après écriture"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "Supprimer les fichiers après les avoir ajoutés à l'archive"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "Ne pas écraser les fichiers préexistants lors de l'extraction"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "Ne pas écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "Ne pas écraser les fichier préexistants qui sont plus récents que leur copie "
 "dans l'archive"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "Écraser les fichiers préexistants lors de l'extraction"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "Effacer chaque fichier préexistant avant l'extraction"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "Vider les hiérarchies avant d'extraire les répertoires"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "Préserver les métadonnées des répertoires préexistants"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "Écraser les métadonnées des répertoires préexistants lors de l'extraction "
 "(comportement par défaut)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "Écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Choix du flux de sortie :"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "Extraire les fichiers vers la sortie standard"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMMANDE"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "Renvoyer par tube les fichiers extraits vers un autre programme"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "Ignorer les codes de retour des processus enfants"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 "Traiter les codes de retours non nuls des processus enfants comme des erreurs"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Traitement des attributs de fichiers :"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "Utiliser NOM comme propriétaire des fichiers ajoutés"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "Utiliser NOM comme groupe des fichiers ajoutés"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATE-OU-FICHIER"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 "Définir la date de modification des fichiers ajoutés avec DATE-OU-FICHIER"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CHANGEMENTS"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 "Utiliser les CHANGEMENTS de mode (symboliques) pour les fichiers ajoutés"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MÉTHODE"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1646,11 +1706,11 @@ msgstr ""
 "lecture (MÉTHODE = « replace » par défaut) ou en ne définissant pas les "
 "dates initialement (MÉTHODE = « system »)"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "Ne pas extraire la date de modification du fichier"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1658,23 +1718,23 @@ msgstr ""
 "essayer d'extraire les fichiers avec le même propriétaire que dans l'archive "
 "(par défaut pour le superutilisateur)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "S'approprier les fichiers lors de l'extraction (par défaut pour les "
 "utilisateurs ordinaires)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "Toujours utiliser les valeurs numériques des utilisateurs/groupes"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "Extraire les informations de permissions sur les fichiers (par défaut pour "
 "le superutilisateur)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1682,15 +1742,16 @@ msgstr ""
 "Appliquer l'umask de l'utilisateur lors de l'extraction des permissions (par "
 "défaut pour les utilisateurs normaux)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "Trier les noms à extraire dans le même ordre que l'archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "Équivalent à « -p -s » à la fois"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1698,139 +1759,180 @@ msgstr ""
 "Reporter à la fin de l'extraction le changement des dates de modification et "
 "des permissions des répertoires extraits"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "Annule l'effet de l'option « --delay-directory-restore »"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Traitement des attributs de fichiers :"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Sélection et option de périphérique :"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVE"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "Utiliser le fichier ou le périphérique ARCHIVE"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "Le fichier d'archive est local même si « : » a été spécifié"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "Utiliser la COMMANDE rmt fournie au lieu de rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "Utiliser la COMMANDE distante à la place de rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "Spécifier le lecteur et la densité"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "Créer/lister/extraire une archive multi-volumes"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "Changer de cartouche après avoir écrit NOMBRE x 1024 octets"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "Exécuter le script à la fin de chaque cartouche (implique « -M »)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "Utiliser/mettre à jour le numéro de volume dans le FICHIER"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blocs du périphérique :"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCS"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOCS x 512 octets par enregistrement"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "NOMBRE d'octets par enregistrement (multiple de 512)"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "Ignorer les blocs de zéros dans l'archive (càd EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "Refaire les blocs pendant la lecture (pour les tubes BSD 4.2)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Sélection du format d'archive :"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "Créer l'archive au format désiré."
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT peut prendre une des valeurs suivantes :"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "Vieux format tar V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "Format GNU issu de tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "Format GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "Format POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "Format POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "Identique à pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "Identique à « --format=v7 »"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "Identique à « --format=posix »"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "mot_clé[[:]=valeur][,mot_clé[[:]=valeur]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "Mots-clés de contrôle pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXTE"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1839,85 +1941,85 @@ msgstr ""
 "l'extraction, utiliser le TEXTE comme motif de correspondance (glob) au nom "
 "de volume."
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Options de compression :"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 "Utiliser le suffixe de l'archive pour déterminer le programme de compression"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "Ne pas utiliser l'extension du fichier d'archive pour déterminer le "
 "programme de compression"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "Filtrer à travers le PROG (doit accepter l'option « -d »)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Sélection des fichiers locaux :"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "Ajouter le FICHIER donné à l'archive (utile si son nom commence par un tiret)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "RÉP"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "Utiliser RÉP comme répertoire de travail"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "Lire depuis le FICHIER la liste des noms à extraire ou à créer"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 "« -T » permet de lire les noms terminés par un NULL et désactive l'option « -"
 "C »"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "désactive l'effet de l'option --null précédente"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "Enlever la protection de caractères des noms de fichiers lus avec « -T "
 "» (par défaut)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 "Ne pas enlever la protection de caractères des noms de fichiers lus avec « -"
 "T »"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MOTIF"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "Exclure les fichiers correspondant au MOTIF"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "Exclure les motifs listés dans le FICHIER"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1925,99 +2027,101 @@ msgstr ""
 "Exclure le contenu des répertoires contenant CACHEDIR.TAG, sauf le fichier "
 "de tag lui-même"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "Tout exclure dans les répertoires contenant CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "Exclure les répertoires contenant CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "Exclure le contenu des répertoires contenant le FICHIER, sauf le FICHIER lui-"
 "même"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "Tout exclure dans les répertoires contenant le FICHIER"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "Exclure les répertoires contenant le FICHIER"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "Exclure les répertoires de contrôle de version (CVS, .svn, etc.)"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "exclure les fichiers de sauvegarde et de verrou"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "Empêcher la descente automatique dans les sous-répertoires"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 "Rester dans le système de fichiers local lors de la création de l'archive"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "Parcourir les sous-répertoires de manière récursive (par défaut)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "Ne pas enlever le « / » au début des noms de fichiers"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "Suivre les liens symboliques ; archiver les fichiers vers lesquels ils "
 "pointent"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "Suivre les liens physiques : archiver les fichiers vers lesquels ils pointent"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NOM-DE-MEMBRE"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "Débuter au NOM-DE-MEMBRE dans l'archive"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "Stocker seulement les fichiers plus récents que DATE-OU-FICHIER"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATE"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "Ne comparer que la date et l'heure de modification des données"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTRÔLE"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 "Faire une copie de sauvegarde avant suppression, choisir le CONTRÔLE de "
 "version"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "CHAÎNE"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -2026,108 +2130,111 @@ msgstr ""
 "habituel (« ~ » sauf s'il est définit par la variable d'environnement "
 "SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Transformation des noms de fichiers :"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "Supprimer NOMBRE composants au début des noms de fichiers à l'extraction"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EXPRESSION"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "Utiliser l'EXPRESSION de remplacement « sed » pour transformer les noms de "
 "fichiers"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Options de correspondance de noms de fichiers (pour les motifs d'exclusion "
 "et d'inclusion)"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "Ignorer la casse (majuscules/minuscules)"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "Les motifs doivent correspondre au début des noms de fichiers"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "Les motifs peuvent correspondre après n'importe quel « / » (par défaut pour "
 "l'exclusion)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "Correspondance sensible à la casse (comportement par défaut)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 "Utiliser des caractères de correspondance (par défaut pour l'exclusion)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "Correspondance exacte de chaîne"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "« / » ne correspond à aucun caractère de correspondance"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 "« / » peut correspondre à un caractère de correspondance (par défaut pour "
 "l'exclusion)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Options d'affichage :"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "Afficher de manière détaillée les fichiers traités"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "MOTCLÉ"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "Contrôle d'avertissement"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "Afficher un message de progression tous les NOMBRE enregistrements (10 par "
 "défaut)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ACTION"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "exécuter l'ACTION à chaque point de contrôle"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 "Afficher un message si tous les liens n'ont pas pu être suivis et archivés"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2139,31 +2246,35 @@ msgstr ""
 "sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « "
 "SIG » sont aussi acceptés"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "Afficher les dates de modification de fichier en UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "afficher l'heure du fichier en pleine résolution"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "Envoyer la sortie détaillée vers le FICHIER"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "Afficher le numéro du bloc de l'archive avec chaque message"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "Demander confirmation pour chaque action"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "Afficher les paramètres par défaut de tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2171,33 +2282,33 @@ msgstr ""
 "Lors du listage ou de l'extraction, lister chaque répertoire qui ne concorde "
 "pas avec le critère de recherche"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "Afficher les noms des fichiers ou des archives après transformation"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STYLE"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "Définir le style de protection de caractères appliqués aux noms. Voir ci-"
 "dessous pour les valeurs du STYLE"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "Protéger aussi les caractères faisant partie de la CHAÎNE"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "Enlever la protection des caractères faisant partie de la CHAÎNE"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Options de compatibilité :"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2205,64 +2316,57 @@ msgstr ""
 "Lors de la création, identique à « --old-archive ». Lors de l'extraction, "
 "identique à « --no-same-owner »"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Autres options :"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "Désactiver certaines options potentiellement néfastes"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Vous ne pouvez pas sélectionner plus d'une option parmi « -Acdtrux » ou « --"
 "test-label »"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Options de compression non compatibles entre elles"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Type de signal inconnu : %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Fichier d'échantillon de date non trouvé"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Remplacement par %s du format de date inconnu %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Option %s : date « %s » traitée comme %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s : la liste de fichiers est déjà lue"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s : le nom de fichier lu contient un caractère nul"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "Filtrer l'archive à travers %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Les arguments valables pour l'option « --quoting-style » sont :"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2270,52 +2374,49 @@ msgstr ""
 "\n"
 "Les valeurs par défaut de *ce* tar sont :\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Propriétaire non valable"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Facteur de bloc non valable"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Longueur de cartouche non valable"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Mauvaise valeur pour le niveau incrémental"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Plus d'une date seuil"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Version de la dispersion non valable"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 "--atime-preserve='system' n'est pas pris en charge sur cette plateforme"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "la valeur de « --checkpoint » n'est pas un entier"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Groupe non valable"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mode non valable donné en option"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Nombre non valable"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Propriétaire non valable"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2323,69 +2424,71 @@ msgstr ""
 "L'option --preserve est obsolète, utilisez --preserve-permissions --preserve-"
 "order à la place"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Taille d'enregistrement non valable"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "La taille d'un enregistrement doit être un multiple de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Nombre d'éléments incorrect"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Une seule option « --to-command » est permise"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Argument de densité incorrect : %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Densité inconnue : « %c »"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Les options « -[0-7][lmh] » ne sont pas prises en charge par *ce* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FICHIER]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "L'ancienne option « %c » a besoin d'un argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence n'a pas de sens sans une liste de fichiers"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 "« --occurrence » ne peut être utilisée dans le mode d'opération demandé"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Les fichiers d'archives multiples ont besoin de l'option « -M »"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Impossible de combiner « --listed-incremental » avec « --newer »"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level n'a aucun sens sans --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2394,54 +2497,82 @@ msgstr[0] ""
 msgstr[1] ""
 "%s: l'étiquette du volume est trop longue (la limite est %lu octets)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Impossible de vérifier des archives multi-volumes"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Impossible de vérifier des archives compressées"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Le motif %s ne peut être utilisé"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Impossible d'utiliser des archives multi-volumes compressées"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Impossible de concaténer des archives compressées"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option peut être utilisée uniquement avec des archives POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option peut être utilisée uniquement avec des archives POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option peut être utilisée uniquement avec des archives POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option peut être utilisée uniquement avec des archives POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Le motif %s ne peut être utilisé"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 "La longueur du volume ne peut pas être inférieure à la taille de "
 "l'enregistrement"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order n'est pas compatible avec --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Je refuse de créer un fichier d'archive vide (oui je suis lâche)"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Les options « -Aru » sont incompatibles avec « -f - »"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Vous devez choisir une option parmi « -Acdtrux » ou « --test-label »"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Arrêt avec code d'échec à cause des erreurs précédentes"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2453,51 +2584,47 @@ msgstr[1] "%s: fichier réduit de %s octets"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Le mot clé %s est inconnu ou n'est pas encore implémenté"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "L'horodatage est en dehors de la plage permise"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Le motif %s ne peut être utilisé"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Le mot clé %s ne peut pas être surdéfini"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "En-tête étendu incorrect : longueur manquante"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "La longueur de l'en-tête étendu est hors plage"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "La longueur de l'en-tête étendu %*s est hors plage"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "En-tête étendu incorrect : espace blanche manquante après la longueur"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "En-tête étendu incorrect : signe d'égalité manquant"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "En-tête étendu incorrect : retour à la ligne manquant"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Le mot clé inconnu « %s » pour l'en-tête étendu a été ignoré"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2505,63 +2632,63 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "L'en-tête étendu %s=%s est hors plage %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "En-tête étendu incorrect : %s=%s non valable"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "En-tête étendu incorrect : %s=%s en trop"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "En-tête étendu incorrect : %s non valable : délimiteur %c non prévu"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "En-tête étendu incorrect : %s non valable : nombre impair de valeurs"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s : délai d'expiration non valable"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s : action de point de contrôle inconnue"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "écriture"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "lecture"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Point de contrôle d'écriture %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Point de contrôle de lecture %u"
@@ -2713,7 +2840,7 @@ msgstr "Nombre en dehors de la plage permise : %s"
 msgid "Negative size: %s"
 msgstr "Taille négative : %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "La fonction stat(%s) a échoué"
@@ -2742,8 +2869,8 @@ msgstr "Format de date inconnu"
 msgid "[ARGS...]"
 msgstr "[ARGS...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "Impossible d'ouvrir « %s »"
@@ -2757,68 +2884,100 @@ msgstr "Impossible à parcourir"
 msgid "file name contains null character"
 msgstr "Le nom de fichier contient un caractère nul"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "Un fichier dispersé ne peut pas être généré sur la sortie standard. Utilisez "
 "l'option « --file »"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "Masque incorrect (près de « %s »)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Champ inconnu « %s »"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "Impossible de définir la date de « %s »"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Impossible de supprimer « %s »"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Échec de la commande %s"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "Impossible de supprimer « %s »"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "La commande s'est terminée correctement\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "La commande a échoué avec le code %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "La commande s'est terminée sur le signal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "La commande s'est interrompue sur le signal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "La commande a généré un core dump\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "La commande s'est terminée\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat nécessite un nom de fichier"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Impossible de connaître le répertoire de travail"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "Trier les noms à extraire dans le même ordre que l'archive"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr ""
+#~ "Champ trop long rencontré pendant la lecture du fichier d'instantané"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Erreur de lecture du fichier d'instantané"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Valeur de champ inattendue dans le fichier d'instantané"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "La longueur de l'en-tête étendu est hors plage"
+
+#~ msgid "Invalid group"
+#~ msgstr "Groupe non valable"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s : Répertoire supprimé avant d'avoir été lu"
 
index 5011e90ece0654ab1922f6d0648a60ef7c7a44f4..1cabb0f63005422140c6dc33a60fc276627f6759 100644 (file)
Binary files a/po/ga.gmo and b/po/ga.gmo differ
index 9a5d73d6694c845c70360ccc2a42900a535ef51e..14b5efff99a2449deeee12c243e638c9f3d16a68 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -2,12 +2,12 @@
 # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 # Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2004, 2006, 2007, 2008, 2009.
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.22\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2009-03-25 20:27-0600\n"
 "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
 "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -29,37 +29,36 @@ msgid "ambiguous argument %s for %s"
 msgstr "argóint dhébhríoch %s chun %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Na hargóintí bailí:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: luach %s níos lú ná nó cothrom le %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Ní mór luach a thabhairt ar an pharaiméadar ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 "%.*s: Ní mór luach deimhneach a bheith ar an pharaiméadar ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Paraiméadar anaithnid ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Bruscar i ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -67,30 +66,30 @@ msgstr ""
 "Is riachtanach/roghnach le rogha ghearr aon argóint atá riachtanach/roghnach "
 "leis an rogha fhada."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Úsáid:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  nó: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [ROGHA...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 "Bain triail as `%s --help' nó `%s --usage' chun tuilleadh eolais a fháil.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Seol tuairiscí fabhtanna chuig %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Earráid anaithnid chórais"
 
@@ -102,7 +101,7 @@ msgstr "taispeáin an chabhair seo"
 msgid "give a short usage message"
 msgstr "taispeáin beagán eolais faoin úsáid"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "AINM"
@@ -123,17 +122,16 @@ msgstr "moill de SOIC soicind (réamhshocrú: 3600)"
 msgid "print program version"
 msgstr "taispeáin leagan an chláir"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(EARRÁID RÍOMHCHLÁIR) Gan leagan!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: An iomarca argóintí\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 "(EARRÁID RÍOMHCHLÁIR) Ba chóir aitheantas a thabhairt ar an rogha seo!?"
@@ -142,62 +140,62 @@ msgstr ""
 msgid "write error"
 msgstr "earráid sa scríobh"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: Tá an rogha `%s' débhríoch\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, 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"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, 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"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: tá argóint de dhíth i ndiaidh na rogha `%s'\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: rogha anaithnid `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: rogha anaithnid `%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: rogha neamhbhailí -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: tá argóint de dhíth i ndiaidh na rogha -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: Tá an rogha `-W %s' débhríoch\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, 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"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: tá argóint de dhíth i ndiaidh na rogha `%s'\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "cuimhne ídithe"
 
@@ -213,28 +211,30 @@ msgstr "níorbh fhéidir an bhunchomhadlann oibre a aisfhilleadh"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -244,7 +244,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yYiIsS]"
 
@@ -254,7 +254,7 @@ msgstr "^[yYiIsS]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -550,7 +550,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ní féidir cianbhlaosc a rith"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Ní féidir cianbhlaosc a rith"
@@ -606,8 +611,8 @@ msgstr "Comhadchríoch gan choinne"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "UIMHIR"
 
@@ -615,8 +620,8 @@ msgstr "UIMHIR"
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -631,7 +636,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "ní féidir `%s' a oscailt"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "an iomarca argóintí"
@@ -640,9 +645,9 @@ msgstr "an iomarca argóintí"
 msgid "Garbage command"
 msgstr "Ordú dramhaíola"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ní cosúil le cartlann `tar' é seo"
 
@@ -680,19 +685,19 @@ msgstr "Ní féidir cartlann stdin/stdout a fhíorú"
 msgid "Archive is compressed. Use %s option"
 msgstr "Is cartlann chomhbhrúite í seo. Úsáid an rogha %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Ní féidir cartlanna comhbhrúite a nuashonrú"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Tosach na téipe, ag scor anois"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "An iomarca earráidí, ag scor"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -702,7 +707,7 @@ msgstr[2] "Méid taifid = %lu bhloc"
 msgstr[3] "Méid taifid = %lu mbloc"
 msgstr[4] "Méid taifid = %lu bloc"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -712,38 +717,38 @@ msgstr[2] "Bloc neamhailínithe (%lu bheart) sa chartlann"
 msgstr[3] "Bloc neamhailínithe (%lu mbeart) sa chartlann"
 msgstr[4] "Bloc neamhailínithe (%lu beart) sa chartlann"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Ní féidir an chartlann a chúlú; is dócha gur doléite í gan -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "Níor stopadh rmtlseek ag teorainn taifid"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: tá uimhir imleabhair neamhbhailí ann"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Uimhir imleabhair thar maoil"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr ""
 "Socraigh an t-imleabhar #%d le haghaidh %s agus brúigh an eochair iontrála: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Fuarthas comhadchríoch in áit freagra ón úsáideoir"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "RABHADH: Tá an chartlann neamhiomlán"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -755,67 +760,67 @@ msgstr ""
 " q             Tobscoir tar\n"
 " y nó líne nua Lean ar aghaidh\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Sceith fobhlaosc\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Priontáil an liosta seo\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Níl aon imleabhar nua; ag scor.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Ainm an chomhaid gan sonrú. Bain triail eile as.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Ionchur neamhbhailí. Iontráil ? chun cabhair a fháil.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Theip ar ordú %s"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "Seans go leanann %s ar aghaidh ar an imleabhar seo: tá ainm teasctha sa "
 "cheanntásc"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "Ní leanann %s ar an imleabhar seo"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "Níl %s an méid ceart (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Tá an t-imleabhar seo as ord (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Lipéad ar chartlann nach comhoiriúnaithe le %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Níl an t-imleabhar %s comhoiriúnaithe le %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -823,11 +828,11 @@ msgstr ""
 "%s: ní féidir an comhadainm seo a stóráil i gceanntásc il-imleabhar GNU; "
 "teasctha"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "níor stop an scríobh ag teorainn bhloic"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -837,76 +842,76 @@ msgstr[2] "Níorbh fhéidir ach %lu de %lu bheart a léamh"
 msgstr[3] "Níorbh fhéidir ach %lu de %lu mbeart a léamh"
 msgstr[4] "Níorbh fhéidir ach %lu de %lu beart a léamh"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Tá difríocht idir na hábhair"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Comhadchríoch gan choinne i gcartlann"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Tá difríocht idir na cineálacha comhaid"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Tá difríocht idir na móid"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Tá difríocht idir na UIDanna"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Tá difríocht idir na GIDanna"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Tá difríocht idir na hamanna modhnaithe"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Tá difríocht idir na méideanna"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ní ceangailte le %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Tá difríocht idir na naisc shiombalacha"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Tá difríocht idir na huimhreacha gléis"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Fíoraigh "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Cineál anaithnid comhaid `%c', déan diff mar ghnáthchomhad"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Tá comhaid sa chartlann agus a réimíreanna scriosta."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Nach féidir i gcónaí na bunchomhaid a aimsiú agus le linn fíoraithe."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -916,46 +921,46 @@ msgstr[2] "THEIP AR DHEIMHNIÚ: aimsíodh %d cheanntásc neamhbhailí"
 msgstr[3] "THEIP AR DHEIMHNIÚ: aimsíodh %d gceanntásc neamhbhailí"
 msgstr[4] "THEIP AR DHEIMHNIÚ: aimsíodh %d ceanntásc neamhbhailí"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Bloc nialasach scoite ag %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: tá clib chomhadlainne taisce %s ann; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "tá an luach %s as raon %s: %s..%s; ag cur %s ina ionad"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "tá an luach %s as raon %s: %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Ceanntásca ochtnártha diúltacha á gcruthú"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: ainm comhaid rófhada (uasmhéid %d); gan dumpáil"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: ainm comhaid rófhada (ní féidir é a scoilt); gan dumpáil"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: ainm naisc rófhada; gan dumpáil"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -965,272 +970,297 @@ msgstr[2] "%s: %s bheart níos lú sa chomhad; ag stuáil le nialais"
 msgstr[3] "%s: %s mbeart níos lú sa chomhad; ag stuáil le nialais"
 msgstr[4] "%s: %s beart níos lú sa chomhad; ag stuáil le nialais"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: is ar chóras comhad eile é an comhad; gan dumpáil"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "ábhar gan dumpáil"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Cineál anaithnid comhaid; ag déanamh neamhshuim air"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Naisc le %s ar iarraidh.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: comhad gan athrú; gan dumpáil"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: is ionann é agus an chartlann féin; gan dumpáil"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "níor dumpáladh an chomhadlann"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: athraíodh an comhad agus á léamh"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: rinneadh neamhshuim ar an soicéad"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: rinneadh neamhshuim ar an doras"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Ag bogadh go dtí an chéad cheanntásc eile"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Comhad nach ceanntásc á scriosadh ón chartlann"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: ní dócha go bhfuil an stampa ama ársa %s ceart"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: tá an stampa ama %s %s soicind amach anseo"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Bunoscionntacht gan choinne agus comhadlann á cruthú"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 "%s: Athainmníodh an chomhadlann sularbh fhéidir a stádas a bhaint amach"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Comhaid theorantacha á mbaint amach mar ghnáthchomhaid"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 "Ag déanamh iarracht ar naisc shiombalacha a bhaint amach mar naisc chrua"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Ní féidir an comhad a bhaint amach -- ar lean ó imleabhar eile"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Ceanntásc ainm fada gan choinne"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Cineál anaithnid comhaid `%c', á bhaint amach mar ghnáthchomhad"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Tá an %s reatha níos nuaí nó ar comhaois"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Níorbh fhéidir cúltaca a dhéanamh"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Ní féidir %s a athainmniú go %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Athainmníodh an chomhadlann ó %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Athainmníodh an chomhadlann"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Comhadlann nua"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: is ar chóras comhad eile é an comhad; gan dumpáil"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Athainmníodh an chomhadlann"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Stampa ama neamhbhailí"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Am neamhbhailí mionathraithe (soicindí)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Am neamhbhailí mionathraithe (nanashoicindí)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Uimhir neamhbhailí gléis"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Uimhir inode as raon"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Réimse rófhada agus an comhad roghbhlúire á léamh"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Earráid agus an comhad roghbhlúire á léamh"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Comhadchríoch gan choinne sa chomhad roghbhlúire"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Luach réimse gan choinne sa chomhad roghbhlúire"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Críochnaitheoir taifid ar iarraidh"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Drochfhormáid incriminteach"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 "Ní thacaítear leis an leagan seo den fhormáid incriminteach: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "dumpdir míchumtha: bhíothas ag súil le '%c' ach fuarthas %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "dumpdir míchumtha: 'X' faoi dhó"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "dumpdir míchumtha: ainm folamh i 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "dumpdir míchumtha: 'T' gan 'R' roimhe"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "dumpdir míchumtha: ainm folamh i 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "dumpdir míchumtha: bhíothas ag súil le '%c' ach fuarthas deireadh na sonraí"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "dumpdir míchumtha: níor úsáideadh 'X' riamh"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Ní féidir comhadlann shealadach a chruthú le teimpléad %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: ní féidir an chomhadlann a stat: gan ghlanadh"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: tá an chomhadlann ar ghléas eile ar fad; gan ghlanadh"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s á scriosadh\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Ní féidir scriosadh a dhéanamh"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: ag fágáil ar lár"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloc %s: ** bloc de NULanna **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloc %s: ** Deireadh comhaid **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloc %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Bearnaí sa cheanntásc; ag súil le luach uimhriúil %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1238,167 +1268,183 @@ msgstr ""
 "ag glacadh le comhlánú dénártha"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Tá an luach ochtnártha %.*s as raon %s sa chartlann"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Teaghrán %s le sín agus bunuimhir 64 as raon %s sa chartlann"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Tá an luach le bunuimhir 256 as raon %s sa chartlann"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Tá %.*s sa chartlann; ag súil le luach uimhriúil %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Tá an luach cartlainne %s as raon %s: %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " nasc le %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " cineál anaithnid comhaid %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Nasc Fada--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Ainm Fada--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Ceanntásc Imleabhair--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Ar lean ag beart %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Comhadlann á cruthú:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Ní féidir an chomhadlann reatha a athrú"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s á athainmniú go %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Ní féidir athainmniú go %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s á athainmniú go %s arís\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Scriosadh an comhad sular léadh é"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "macphróiseas"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "bealach idir próisis"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Theip ar ordú %s"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: léadh an liosta comhad cheana"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ní féidir an t-am a shocrú ar `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: tá carachtar nialasach sa chomhadainm a léadh"
+
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr "Aimsíodh saoróga in ainmneacha comhaid."
 
-#: src/names.c:592
+#: src/names.c:823
 #, fuzzy
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr "Úsáid --wildcards chun comhoiriúnú patrún a chumasú, nó --no-wildcards"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Ní sa chartlann é"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Níl rud riachtanach sa chartlann"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Lipéad ar chartlann nach comhoiriúnaithe le %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 #, fuzzy
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 #, fuzzy
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Tá an gnáth-ionchur de dhíth ar na roghanna `-%s' agus `-%s'"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Formáid neamhbhailí chartlainne"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Níl roghanna GNU ar fáil d'fhormáid neamh-chomhoiriúnach chartlainne"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Stíl anaithnid athfhriotail `%s'. Bain triail as `%s --quoting-style=help' "
 "chun liosta a fheiceáil."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1416,9 +1462,10 @@ msgstr ""
 "(foclach).\n"
 "  tar -xf cartlann.tar        # Bain gach comhad amach as cartlann.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1438,80 +1485,80 @@ msgstr ""
 "bhfuil\n"
 "  never, simple   déan cúltacaí simplí i gcónaí\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Príomh-mhód oibre:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "taispeáin an t-ábhar i gcartlann"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "bain comhaid as cartlann"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "cruthaigh cartlann nua"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "taispeáin difríochtaí idir cartlann agus córas comhaid"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "iarcheangail le deireadh cartlainne"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "ná hiarcheangail ach comhaid mhionathraithe leis an gcartlann"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "iarcheangail comhaid tar le cartlann"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "scrios as an gcartlann (nach ar théipeanna maighnéadacha!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "tástáil lipéad imleabhair na cartlainne agus scoir"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Mionathraitheoirí oibríochta:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "caith le gannchomhaid go héifeachtach"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "PRÍOMH[.MION]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "socraigh leagan fhormáid na ngannchomhad le húsáid (--sparse intuigthe)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "déan cúltaca incriminteach de shean-nós GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "déan cúltaca incriminteach nua-aoise GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "ná scoir le stádas earráide má tá comhad doléite ann"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1523,126 +1570,137 @@ msgstr ""
 "extract nó --list agus nuair a thugtar liosta comhad ar líne na n-orduithe "
 "nó leis an rogha -T; de réir réamhshocraithe UIMHIR=1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "tá an chartlann inchuardaithe"
 
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "tá an chartlann inchuardaithe"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 "ná seiceáil uimhreacha gléasanna agus cartlanna incriminteacha á gcruthú"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "seiceáil uimhreacha gléasanna agus cartlanna incriminteacha á gcruthú "
 "(réamhshocrú)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Rialú forscríofa:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "fíoraigh an chartlann i ndiaidh ag scríobh"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "scrios comhaid i ndiaidh iad a chur leis an gcartlann"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "ná forscríobh comhaid atá ann le linn baint amach"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "ná forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "ná forscríobh comhaid atá ann má tá siad níos nuaí ná na cinn sa chartlann"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "forscríobh comhaid atá ann le linn baint amach"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "scrios gach comhaid sula scríobhtar air"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "folmhaigh géagchóras sula mbaintear comhadlann amach"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "ná forscríobh meiteashonraí comhadlainne"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "forscríobh meiteashonraí de chomhadlanna atá ann agus cartlanna á mbaint "
 "amach (réamhshocrú)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Roghnaigh sruth aschurtha:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "bain comhaid amach agus scríobh ar an ngnáth-aschur"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "ORDÚ"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "píopaigh comhaid bhainte go ríomhchlár eile"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ná bac le cóid scortha na macphróiseas"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "láimhseáil cóid scortha nach nialas ó mhacphróisis mar earráidí"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Tréithe comhaid á láimhseáil:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "éiligh AINM mar úinéir de chomhaid bhreise"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "éiligh AINM mar ghrúpa de chomhaid bhreise"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DÁTA-NÓ-COMHAD"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "socraigh am mionathraithe na gcomhad nua de réir DÁTA-NÓ-COMHAD"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ATHRUITHE"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "déan ATHRUITHE ar mhód de chomhaid bhreise"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MODH"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1652,31 +1710,31 @@ msgstr ""
 "ndiaidh na comhaid a léamh (MODH='replace', réamhshocraithe), nó gan a "
 "bheith ag socrú na n-amanna sa chéad áit (MODH='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "ná bain am mionathraithe an chomhaid"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "bain triail as úinéireacht a choinneáil"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "bain comhaid amach mar thusa féin"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "bain úsáid as uimhreacha d'ainmneacha úsáideora/grúpa"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "bain eolas faoi cheadanna (réamhshocrú don fhorúsáideoir)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1684,15 +1742,16 @@ msgstr ""
 "cuir umask an úsáideora i bhfeidhm agus ceadanna á mbaint ón chartlann "
 "(réamhshocrú do ghnáthúsáideoirí)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "sórtáil ainmneacha le cur in oiriúint"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "ar comhbhrí le -p agus -s araon"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1700,139 +1759,180 @@ msgstr ""
 "ná socraigh amanna mionathraithe ná ceadanna de na comhadlanna go dtí go "
 "bhfuil an bhaint curtha i gcrích"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "cealaigh an éifeacht de rogha --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Tréithe comhaid á láimhseáil:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Roghnú gléis agus malartú:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "CARTLANN"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "bain úsáid as cartlann chomhaid nó gléas CARTLANN"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "is logánta í an chartlann fiú má tá idirstad ina hainm"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "bain úsáid as ORDÚ in ionad rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "bain úsáid as ORDÚ cian in ionad rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "sonraigh tiomántán agus a dhlús"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "cruthaigh/liostaigh/bain amach cartlann le hiliomad imleabhair"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "athraigh téip i ndiaidh UIMHIR × 1024 beart"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "rith script i ndiaidh gach téip (-M intuigthe)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "úsáid/nuashonraigh an uimhir imleabhair i gCOMHAD"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blocáil ghléis:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOIC"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOIC × 512 beart sa taifead"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "UIMHIR beart sa taifead, iolraí de 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "déan neamhshuim ar bhloic nialasacha sa chartlann (is ionann le EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "athbhlocáil le linn léimh (le píopaí 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Roghnú formáide:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMÁID"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "cruthaigh cartlann san fhormáid seo"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "Is FORMÁID ceann de na rudaí seo:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "seanfhormáid V7 tar"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "formáid de réir GNU tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "formáid de réir GNU tar 1.13"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "formáid POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "formáid POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "ar comhbhrí le pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "is ionann le --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "is ionann le --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "lorgfhocal[[:]=luach][,lorgfhocal[[:]=luach]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "rialaigh lorgfhocail pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TÉACS"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1840,79 +1940,79 @@ msgstr ""
 "cruthaigh cartlann le TÉACS mar ainm imleabhair; úsáid TÉACS mar phatrún "
 "globála ar an ainm imleabhair agus an chartlann á liostú/baint amach"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Roghanna comhbhrúite:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "úsáid iarmhír na cartlainne chun an modh comhbhrúite a dhéanamh amach"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "ná húsáid iarmhír na cartlainne chun an clár comhbhrúite a dhéanamh amach"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "CLÁR"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "scag le CLÁR (ní foláir -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Roghnú comhaid logánta:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "cuir an COMHAD sainithe leis an gcartlann (is áisiúil an rogha seo nuair atá "
 "dais ag tosach an chomhadainm)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "COMHADLANN"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "athraigh go dtí COMHADLANN"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "tóg ainmneacha le baint/cruthú as comhad COMHAD"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "léigh ainmneacha, foirceanta le NULanna; múch -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "díchumasaigh an rogha --null roimhe seo"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T (réamhshocrú)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "ná bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATRÚN"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "fág comhaid as an áireamh, tugtha mar PHATRÚN"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "fág as an áireamh aon phatrún atá i gCOMHAD"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1920,94 +2020,96 @@ msgstr ""
 "gabh thar ábhar na gcomhadlann ina bhfuil CACHEDIR.TAG, seachas an comhad "
 "clibe féin"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "gabh thar chomhadlanna ina bhfuil CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "gabh thar ábhar na gcomhadlann ina bhfuil COMHAD, seachas COMHAD féin"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil COMHAD"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "gabh thar chomhadlanna a bhfuil COMHAD iontu"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "gabh thar chomhadlanna a bhaineann le córas rialaithe foinsí"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "ná téigh isteach i bhfochomhadlanna go huathoibríoch"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "ná fág an córas comhaid seo agus cartlann á cruthú"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "téigh isteach i gcomhadlanna (réamhshocrú)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "ná struipeáil `/' tosaigh ó ainmneacha comhaid"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "lean naisc shiombalacha; cartlannaigh agus dumpáil na comhaid a nascann na "
 "naisc leo"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "lean naisc chrua; cartlannaigh agus dumpáil na comhaid a nascann na naisc leo"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "AINM-BAILL"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "tosaigh ag ball AINM-BAILL sa chartlann"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "ná sábháil comhaid níos nuaí ná DÁTA-NÓ-COMHAD"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DÁTA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "déan comparáid le dáta/am modhnaithe"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "MODH"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "déan cúltaca sula scriostar, roghnaigh modh oibre maidir le leaganacha"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "TEAGHRÁN"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -2015,101 +2117,104 @@ msgstr ""
 "déan cúltaca roimh bhaint, agus sáraigh an gnáth-iarmhír ('~' mura dtugtar é "
 "leis an athróg thimpeallachta SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Trasfhoirmiú ainmneacha comhaid:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "struipeáil UIMHIR comhpháirt tosaigh ó ainmneacha comhaid"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "SLONN"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "Úsáid ordú ionadaíochta SLONN, i bhformáid \"sed\", chun ainmneacha comhaid "
 "a thrasfhoirmiú"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Roghanna maidir le comhoiriúnú ainmneacha comhaid (cuirfear iad seo i "
 "bhfeidhm do phatrúin eisiata agus do phatrúin iniata araon):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "ná bí cásíogair"
 
 # subject is "exclude patterns"
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "comhoiriúnaíonn patrúin do thosach ainm an chomhaid"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "comhoiriúnaíonn patrúin tar éis gach `/' (réamhshocrú i gcás eisiata)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "dealaigh idir litreacha beaga/móra (réamhshocrú)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "úsáid saoróga (réamhshocrú do phatrúin eisiata)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "comhoiriúnú teaghráin carachtar ar charachtar"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "ní ghlacann saoróga le `/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "comhoiriúnaíonn saoróga do `/' (réamhshocrú le patrúin eisiata)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Aschur faisnéiseach:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "taispeáin gach comhad atá próiseáilte, go foclach"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 #, fuzzy
 msgid "warning control"
 msgstr "Rialú forscríofa:"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "cuir dul chun cinn ar taispeáint, gach UIMHIRú taifid (réamhshocrú 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "GNÍOMH"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "déan GNÍOMH ag gach seicphointe"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "taispeáin eolas mura bhfuil gach nasc dumpáilte"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "COMHARTHA"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2121,32 +2226,36 @@ msgstr ""
 "Ceadaítear na comharthaí seo a leanas: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 agus "
 "SIGUSR2; glacfar leis na hainmneacha céanna gan an réimír SIG freisin"
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "taispeáin dátaí mionathraithe de réir UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "scríobh aschur foclach i gCOMHAD"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "taispeáin bloc sa chartlann le gach teachtaireacht"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "iarr deimhniú ar gach gníomh"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "taispeáin réamhshocruithe tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2154,33 +2263,33 @@ msgstr ""
 "agus á liostú nó á bhaint amach, taispeáin gach comhadlann nach bhfuil "
 "comhoiriúnaithe don chuardach"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "taispeáin ainmneacha comhaid/cartlainne i ndiaidh trasfhoirmithe"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STÍL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "socraigh stíl athfhriotail ainmneacha; féach thíos le haghaidh luachanna "
 "bailí do STÍL"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "cuir carachtair athfhriotail timpeall na carachtair ó TEAGHRÁN"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "ná húsáid comharthaí athfhriotail timpeall carachtair ó TEAGHRÁN"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Roghanna Comhoiriúnachta:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2188,64 +2297,56 @@ msgstr ""
 "is ionann le --old-archive le linn cruthaithe; is ionann le --no-same-owner "
 "le linn baint"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Roghanna eile:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "cuir bac ar úsáid de roghanna gurbh fhéidir leo a bheith urchóideach"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Ná tabhair ach ceann de na roghanna `-Acdtrux'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Roghanna contrártha comhbhrúite"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Comhartha anaithnid: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Comhad samplach dáta gan aimsiú"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Formáid dáta anaithnid; ag baint úsáid as %s in ionad %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Rogha %s: Ag caitheamh le dáta `%s' mar %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: léadh an liosta comhad cheana"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: tá carachtar nialasach sa chomhadainm a léadh"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "scag an chartlann le xz"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 #, fuzzy
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Argóintí bailí do roghanna --quoting-style:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2253,53 +2354,49 @@ msgstr ""
 "\n"
 "Luachanna réamhshocraithe don tar *seo*:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Úinéir neamhbhailí"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Fachtóir bacainneach neamhbhailí"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Fad téipe neamhbhailí"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 #, fuzzy
 msgid "Invalid incremental level value"
 msgstr "Drochfhormáid incriminteach"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Níos mó ná spriocdháta amháin"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Leagan neamhbhailí ar fhormáid na ngannchomhad"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "ní thacaítear le --atime-preserve='system' ar an chóras seo"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "ní mór do luach --checkpoint a bheith ina slánuimhir"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Grúpa neamhbhailí"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mód neamhbhailí ar rogha"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Uimhir neamhbhailí"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Úinéir neamhbhailí"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2307,69 +2404,71 @@ msgstr ""
 "tá an rogha --preserve dulta i léig, bain úsáid as --preserve-permissions --"
 "preserve-order ina háit"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Méid taifid neamhbhailí"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Ní foláir méid taifid a bheith iolraí de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Tá líon na mball neamhbhailí"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Ní cheadaítear ach aon rogha --to-command amháin"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Tá an argóint dlúis míchumtha: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Dlús anaithnid: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Níl na roghanna `-[0-7][lmh]' ar fáil sa leagan seo tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[COMHAD]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Tá gá le hargóint ar an seanrogha `%c'."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "tá an rogha --occurrence gan bhrí in éagmais liosta comhad"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "níl an rogha --occurrence ar fáil sa mhód iarrtha"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Ní foláir an rogha `-M' le níos mó ná cartlann amháin"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Ní féidir --listed-incremental a úsáid le --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2379,53 +2478,80 @@ msgstr[2] "%s: Lipéad imleabhair rófhada (%lu bheart ar a mhéad)"
 msgstr[3] "%s: Lipéad imleabhair rófhada (%lu mbeart ar a mhéad)"
 msgstr[4] "%s: Lipéad imleabhair rófhada (%lu beart ar a mhéad)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Ní féidir cartlanna le hiliomad imleabhair a fhíorú"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Ní féidir cartlanna comhbhrúite a fhíorú"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Ní féidir an patrún %s a úsáid"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Ní féidir úsáid a bhaint as cartlanna il-ranna comhbhrúite"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Ní féidir cartlanna comhbhrúite a iarcheangal"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "níl an rogha --pax-option le fáil ach le cartlanna POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "níl an rogha --pax-option le fáil ach le cartlanna POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "níl an rogha --pax-option le fáil ach le cartlanna POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "níl an rogha --pax-option le fáil ach le cartlanna POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Ní féidir an patrún %s a úsáid"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Ní cheadaítear fad an imleabhair a bheith níos lú ná an mhéid taifid"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Ní chruthófar cartlann fholamh (go cladhartha)"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Níl na roghanna `-Aru' ar fáil in éineacht le `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Ní foláir rogha amháin de `-Acdtrux' ar a laghad"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Scor le stádas teipthe de bharr earráidí roimhe seo"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2440,53 +2566,49 @@ msgstr[4] "%s: Chrap an comhad %s beart"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Tá an lorgfhocal %s anaithnid nó nach bhfuil sé curtha i bhfeidhm fós"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Stampa ama as raon"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Ní féidir an patrún %s a úsáid"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Ní féidir an lorgfhocal %s a shárú"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Ceanntásc míchumtha breisithe: fad ar iarraidh"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Fad an cheanntáisc breisithe as raon"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Fad %*s as raon sa cheanntásc breisithe"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Ceanntásc míchumtha breisithe: spás bán ar iarraidh tar éis an fhaid"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Ceanntásc míchumtha breisithe: sín chothroime ar iarraidh"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Ceanntásc míchumtha breisithe: líne nua ar iarraidh"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 "Lorgfhocal anaithnid `%s' sa cheanntásc breisithe; ag déanamh neamhshuim air"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2494,65 +2616,65 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Tá an ceanntásc breisithe %s=%s as raon %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Ceanntásc míchumtha breisithe: %s=%s neamhbhailí"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Ceanntásc míchumtha breisithe: %s=%s sa bhreis"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Ceanntásc míchumtha breisithe: %s neamhbhailí: bhíothas ag súil le "
 "teormharcóir %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Ceanntásc míchumtha breisithe: %s neamhbhailí: corruimhir de luachanna"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: teorainn ama neamhbhailí"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: gníomh anaithnid seicphointe"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "scríobh"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "léamh"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Seicphointe scríofa %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Seicphointe léimh %u"
@@ -2702,7 +2824,7 @@ msgstr "Uimhir as raon: %s"
 msgid "Negative size: %s"
 msgstr "Méid diúltach: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "theip ar stat(%s)"
@@ -2731,8 +2853,8 @@ msgstr "Formáid anaithnid ar an dáta"
 msgid "[ARGS...]"
 msgstr "[ARGÓINTÍ...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "ní féidir `%s' a oscailt"
@@ -2746,67 +2868,100 @@ msgstr "ní féidir 'seek' a dhéanamh"
 msgid "file name contains null character"
 msgstr "tá carachtar nialasach sa chomhadainm"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "ní féidir gannchomhaid a chruthú ar an ngnáth-aschur; úsáid rogha --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "masc mícheart (i ngar do `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Réimse anaithnid `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "ní féidir an t-am a shocrú ar `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "ní féidir `%s' a oscailt"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Theip ar ordú %s"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "ní féidir `%s' a oscailt"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "D'éirigh leis an ordú\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Theip ar an ordú le stádas %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Stopadh an t-ordú le comhartha %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Stopadh an t-ordú ar chomhartha %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Rinne an t-ordú córdhumpa\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Ordú críochnaithe\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "Tá ainmneacha comhaid de dhíth ar --stat"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Ní féidir an chomhadlann reatha a athrú"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "sórtáil ainmneacha le cur in oiriúint"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Réimse rófhada agus an comhad roghbhlúire á léamh"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Earráid agus an comhad roghbhlúire á léamh"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Luach réimse gan choinne sa chomhad roghbhlúire"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Fad an cheanntáisc breisithe as raon"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Grúpa neamhbhailí"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Scriosadh an comhad sular léadh é"
index b0346d965e5dc2b960cfc37059b19ec26fce515b..856e9cdf816bd17ad3916fa6cbc5b92f8f0cea40 100644 (file)
Binary files a/po/gl.gmo and b/po/gl.gmo differ
index 00854939b566910153adb5912b5ce99da6b5cf2d..0370b445f87d0c0b407a57f531467e3bf5843876 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -2,12 +2,12 @@
 # Copyright (C) 2002 Free Software Foundation, Inc.
 # Jacobo Tarrío Barreiro <jtarrio@iname.com>, 2002.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.13.25\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2002-03-26 19:17+0100\n"
 "Last-Translator: Jacobo Tarrío Barreiro <jtarrio@iname.com>\n"
 "Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
@@ -27,62 +27,61 @@ msgid "ambiguous argument %s for %s"
 msgstr "argumento %s ambiguo para %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Os argumentos válidos son:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Emprego: %s [OPCIÓN]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Escriba '%s --help' para máis información.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, fuzzy, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
@@ -90,7 +89,7 @@ msgstr ""
 "Informe dos erros no programa a <bug-tar@gnu.org>.\n"
 "Informe dos erros na traducción a <proxecto@trasno.net>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Erro do sistema descoñecido"
 
@@ -102,7 +101,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -123,17 +122,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: a opción \"%s\" precisa dun argumento\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -141,62 +139,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: a opción \"%s\" é ambigua\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: a opción \"--%s\" non admite un argumento\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: a opción \"%c%s\" non admite un argumento\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: a opción \"%s\" precisa dun argumento\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opción \"--%s\" non recoñecida\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opción \"%c%s\" non recoñecida\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opción non válida -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: a opción precisa dun argumento -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: a opción \"-W %s\" é ambigua\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a opción \"-W %s\" non admite un argumento\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: a opción \"%s\" precisa dun argumento\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memoria esgotada"
 
@@ -212,28 +210,30 @@ msgstr "Non se pode armacena-lo directorio de traballo"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "\""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "\""
 
@@ -243,7 +243,7 @@ msgstr "\""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -253,7 +253,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -519,7 +519,12 @@ msgstr "sa
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Non se pode executar un intérprete de comandos remoto"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Non se pode executar un intérprete de comandos remoto"
@@ -575,8 +580,8 @@ msgstr "Fin de ficheiro inesperado nos nomes alterados"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -584,8 +589,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -600,7 +605,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "Non se puido abrir %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -609,9 +614,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Comando lixo"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Isto non semella un arquivo tar"
 
@@ -650,63 +655,63 @@ msgstr "Non se poden verifica-los arquivos da entrada/sa
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Non se poden actualiza-los arquivos comprimidos"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "No comezo da cinta, saíndo agora"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Demasiados erros, saíndo"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Tamaño do rexistro = %lu bloques"
 msgstr[1] "Tamaño do rexistro = %lu bloques"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, fuzzy, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloque desaliñado (%lu bytes) no arquivo"
 msgstr[1] "Bloque desaliñado (%lu bytes) no arquivo"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Non se pode recuar no arquivo; pode ser ilexible sen -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: contén un número de volume non válido"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Desbordamento no número de volume"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Prepare o volume #%d para %s e prema enter: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Chegouse á fin de ficheiro onde se esperaba unha resposta do usuario"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AVISO: O arquivo está incompleto"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -718,475 +723,497 @@ msgstr ""
 " !          Executar outro intérprete de comandos\n"
 " ?          Amosar esta lista\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Non hai novos volumes; saíndo.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "O comando \"%s\" fallou"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s non continúa neste volume"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s non continúa neste volume"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s ten un tamaño incorrecto (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Este volume está fora da secuencia"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "O arquivo non está etiquetado para coincidir con %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "O volume %s non coincide con %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "A fin do ficheiro (EOF) do arquivo %s non se atopa no límite do bloque"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "So se puido ler %lu de %lu bytes"
 msgstr[1] "So se puido ler %lu de %lu bytes"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "O contido é diferente"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Fin de ficheiro inesperado no arquivo"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "O tipo de ficheiro é diferente"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "O modo é diferente"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Os uid son diferentes"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Os gid son diferentes"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "A data de modificación é diferente"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "O tamaño é diferente"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Non ligado a %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "A ligazón simbólica é diferente"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "O número de dispositivo é diferente"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificar "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s: Tipo de ficheiro \"%c\" descoñecido; trátase coma un ficheiro normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "O arquivo contén cabeceiras base-64 obsoletas"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "FALLO NA VERIFICACION: detectáronse %d cabeceiras non válidas"
 msgstr[1] "FALLO NA VERIFICACION: detectáronse %d cabeceiras non válidas"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "valor %s fóra do rango de %s %s..%s; substituíndo %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "valor %s fóra do rango de %s %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Xerando cabeceiras octais negativas"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: ficheiro sen cambios; non se envorca"
 
-#: src/create.c:622
+#: src/create.c:611
 #, fuzzy, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: ficheiro sen cambios; non se envorca"
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: ficheiro sen cambios; non se envorca"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: O ficheiro encolleu %s bytes; enchendo con ceros"
 msgstr[1] "%s: O ficheiro encolleu %s bytes; enchendo con ceros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: o ficheiro está nun sistema de ficheiros diferente; non se envorca"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 #, fuzzy
 msgid "contents not dumped"
 msgstr " (memoria volcada)"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipo de ficheiro descoñecido; ignórase este ficheiro"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " ligazón a %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: ficheiro sen cambios; non se envorca"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: o ficheiro é o arquivo; non se envorca"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: o ficheiro cambiou mentres se lía"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: ignórase o socket"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: ignórase a porta"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Pasando á seguinte cabeceira"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Borrando o que non sexan cabeceiras do arquivo"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: a marca de tempo %s está %lu segundos no futuro"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inconsistencia inesperada ao crea-lo directorio"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Renomeouse o directorio antes de poder estrae-lo seu estado"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extraendo os ficheiros contiguos coma ficheiros normais"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Tentando extrae-las ligazóns simbólicas coma ligazóns duras"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Non se pode extraer -- o ficheiro é continuación doutro volume"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr ""
 "%s: Tipo de ficheiro \"%c\" descoñecido, extraéndoo coma ficheiro normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Non se puido copiar este ficheiro"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Non se pode renomear a %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Renomeouse o directorio"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Renomeouse o directorio"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: O directorio é novo"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: o ficheiro está nun sistema de ficheiros diferente; non se envorca"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Renomeouse o directorio"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Marca de tempo non válida"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Proporcionouse na opción un modo non válido"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Número de dispositivo non válido"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Número de inode non válido"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "Erro de lectura en %s"
-
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-#, fuzzy
-msgid "Unexpected field value in snapshot file"
-msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Non se pode reservar memoria para o factor de bloqueo %d"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, fuzzy, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: o ficheiro está nun sistema de ficheiros diferente; non se envorca"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Borrando %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Non se pode eliminar"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Omitíndoo"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloque %s: ** Bloque de nulos **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloque %s: ** Fin de Ficheiro **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloque %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 "Atopáronse espacios na cabeceira onde se esperaba un valor númerico de %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1194,162 +1221,177 @@ msgstr ""
 "a 2"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "O valor octal do arquivo %.*s está fóra do rango de %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "O arquivo contén cabeceiras base-64 obsoletas"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "A cadea base-64 asinada do arquivo %s está fóra do rango de %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "O valor base-256 do arquivo está fóra do rango de %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "O arquivo contén %.*s onde se esperaba un valor numérico de %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "O valor do arquivo %s está fóra do rango de %s %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " ligazón a %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " Tipo de ficheiro %s descoñecido\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Cabeceira de Volume--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continúa no byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Creando o directorio:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Non se pode cambia-lo directorio de traballo"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Renomeando %s a %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Non se pode renomear a %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Renomeando %s a %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Ficheiro eliminado antes da súa lectura"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proceso fillo"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canle interproceso"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "O comando \"%s\" fallou"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: o ficheiro é o arquivo; non se envorca"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Non se puido evalua-lo ficheiro %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Non atopado no arquivo"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Non atopado no arquivo"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "O arquivo non está etiquetado para coincidir con %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "As opcións \"-%s\" e \"-%s\" precisan da entrada estándar"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Grupo non válido"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Quérense as características de GNU no formato de arquivo incompatible"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1367,10 +1409,10 @@ msgstr ""
 "                               # dando moitos datos\n"
 "  %s -xf arquivo.tar           # Extraer tódolos ficheiros de arquivo.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1389,80 +1431,80 @@ msgstr ""
 "  nil, existing   numera se existen copias de seguridade numeradas\n"
 "  never, simple   sempre fai copias de seguridade sinxelas\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Fin de ficheiro inesperado no arquivo"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1470,568 +1512,617 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 #, fuzzy
 msgid "remove files after adding them to the archive"
 msgstr "Borrando a especificación de unidade dos nomes do arquivo"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr ""
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 #, fuzzy
 msgid "extract files to standard output"
 msgstr "Erro ao gravar na saída estándar"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Non se pode verifica-los arquivos multi-volume"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Arquivar da entrada estándar"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Opcións de compresión conflictivas"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "Non se puido escribir no programa de compresión"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "Non se puido escribir no programa de compresión"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Non se pode cambia-lo directorio de traballo"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "O volume %s non coincide con %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2039,301 +2130,318 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "Proporcionouse na opción un modo non válido"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 #, fuzzy
 msgid "ask for confirmation for every action"
 msgstr "Non se puido le-la confirmación do usuario"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Non pode especificar máis dunha das opcións \"-Acdtrux\""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opcións de compresión conflictivas"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " Tipo de ficheiro %s descoñecido\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Non se atopou o ficheiro de data"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Substituíndo o formato de data descoñecido %2$s por %1$s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: o ficheiro é o arquivo; non se envorca"
-
-#: src/tar.c:1201
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file name read contains nul character"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "%s: o ficheiro é o arquivo; non se envorca"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Propietario non válido"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Factor de bloqueo non válido"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Lonxitude da fita non válida"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Máis dunha data de umbral"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Grupo non válido"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Proporcionouse na opción un modo non válido"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 #, fuzzy
 msgid "Invalid number"
 msgstr "Número de inode non válido"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Propietario non válido"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Tamaño de rexistro non válido"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "O tamaño do rexistro debe ser múltiplo de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 #, fuzzy
 msgid "Invalid number of elements"
 msgstr "Lonxitude da fita non válida"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "Patrón descoñecido `%s'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opcións `-[0-7][lmh]' non soportadas por *este* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "A antiga opción \"%c\" precisa dun argumento."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Varios ficheiros de arquivo requiren a opción \"-M\""
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Non se pode combinar --listed-incremental con --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, fuzzy, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: A etiqueta do volume é longa de máis (o límite é %lu bytes)"
 msgstr[1] "%s: A etiqueta do volume é longa de máis (o límite é %lu bytes)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Non se pode verifica-los arquivos multi-volume"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Non se poden verifica-los arquivos comprimidos"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Non se poden empregar arquivos comprimidos multi-volume"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Non se poden actualiza-los arquivos comprimidos"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "De xeito cobarde rexéitase crear un ficheiro baleiro"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "As opcións \"-Aru\" son incompatibles con \"-f -\""
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Debe especificar unha das opcións \"-Acdtrux\""
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2345,115 +2453,111 @@ msgstr[1] "%s: O ficheiro encolleu %s bytes"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Marca de tempo fóra de rango"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "A cadea base-64 asinada do arquivo %s está fóra do rango de %s"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "O valor do arquivo %s está fóra do rango de %s %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Grupo non válido"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Punto de control de escritura %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Punto de control de lectura %d"
@@ -2592,7 +2696,7 @@ msgstr "N
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2621,8 +2725,8 @@ msgstr "Erro do sistema desco
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, fuzzy, c-format
 msgid "cannot open `%s'"
 msgstr "Non se puido abrir %s"
@@ -2637,66 +2741,92 @@ msgstr "Non se pode pechar"
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr "Patrón descoñecido `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "Non se puido evalua-lo ficheiro %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Non se puido abrir %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "O comando \"%s\" fallou"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "Non se puido abrir %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "O fillo morreu co sinal %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Nomes de ficheiro alterados--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Non se pode cambia-lo directorio de traballo"
+
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Erro de lectura en %s"
+
+#, fuzzy
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Grupo non válido"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Ficheiro eliminado antes da súa lectura"
index 3dfdd4e6db2acfb955fdecef43c6e48388ed0b6b..1abd837b3c8a152b22eaa2d93bd36aed68c38e10 100644 (file)
Binary files a/po/hr.gmo and b/po/hr.gmo differ
index 5c47afd7a87d000dd5b7901f6cf0b9d472ce0111..977cb7a3416a6d1b9bd16ae25bb8e801030bada3 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
-# GNU tar .po message translation file for hr_HR locale
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+# Translation of tar to Croatian.
+# Copyright © 2002 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
 #     ... wishes to thank everybody who helped in good faith.
 #
 # Well, in 03:12 hrs (for 1st pass)!! who beats me I owe him a pizza ;-) -- TM
-#: src/create.c:1552
+#
+# Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
+#
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.13.25\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2002-04-26 10:49+MET(DST)(UTC+2)\n"
-"Last-Translator: Mirsad Todorovac <mtodorov_69@yahoo.com>\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2012-12-21 00:09+0100\n"
+"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
 "Language: hr\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Gtranslator 2.91.5\n"
 
 #: gnu/argmatch.c:135
 #, c-format
 msgid "invalid argument %s for %s"
-msgstr "pogre¹an argument %s za %s"
+msgstr "neispravan argument %s za %s"
 
 #: gnu/argmatch.c:136
 #, c-format
 msgid "ambiguous argument %s for %s"
-msgstr "nejednoznaèan argument %s za %s"
+msgstr "višeznačan argument %s za %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Ispravni argumenti su:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
-msgstr ""
+msgstr "ARGP_HELP_FMT: vrijednost %s je manja ili jednaka %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr ""
+msgstr "%.*s: ARGP_HELP_FMT parametar zahtijeva vrijednost"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-msgstr ""
+msgstr "%.*s: ARGP_HELP_FMT parametar mora biti pozitivan"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr ""
+msgstr "%.*s: Nepoznati ARGP_HELP_FMT parametar"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr ""
+msgstr "Smeće u ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
+"Obavezni ili opcionalni argumenti dugačkih opcija također su obavezni ili "
+"opcionalni za odgovarajuće kratke opcije."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
-msgstr ""
+msgstr "Uporaba:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
-msgstr ""
+msgstr "    ili: "
 
-#: gnu/argp-help.c:1657
-#, fuzzy
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
-msgstr ""
-"\n"
-"Kori¹tenje: %s [OPCIJA]...\n"
+msgstr " [OPCIJA...]"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "Poku¹ajte `%s --help' za vi¹e informacija.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
+msgstr "Pokušajte „%s --help” ili „%s --usage” za više informacija.\n"
 
-#: gnu/argp-help.c:1712
-#, fuzzy, c-format
+#: gnu/argp-help.c:1714
+#, c-format
 msgid "Report bugs to %s.\n"
-msgstr ""
-"\n"
-"Prijavi gre¹ke i bugove na <bug-tar@gnu.org>.\n"
+msgstr "Prijavite greške na %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
-msgstr "Nepoznata pogre¹ka u sistemu"
+msgstr "Nepoznata greška sustava"
 
 #: gnu/argp-parse.c:83
 msgid "give this help list"
-msgstr ""
+msgstr "prikaži ovaj popis pomoći"
 
 #: gnu/argp-parse.c:84
 msgid "give a short usage message"
-msgstr ""
+msgstr "prikaži kratke upute za uporabu"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
-msgstr ""
+msgstr "IME"
 
 #: gnu/argp-parse.c:85
 msgid "set the program name"
-msgstr ""
+msgstr "postavi ime programa"
 
 #: gnu/argp-parse.c:86
 msgid "SECS"
-msgstr ""
+msgstr "SEK"
 
 #: gnu/argp-parse.c:87
 msgid "hang for SECS seconds (default 3600)"
-msgstr ""
+msgstr "zaustavi na SEK sekundi (zadano 3600)"
 
 #: gnu/argp-parse.c:144
 msgid "print program version"
-msgstr ""
+msgstr "ispiši inačicu programa"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
-msgstr ""
+msgstr "(GREŠKA PROGRAMA) Nema poznate inačice!?"
 
-#: gnu/argp-parse.c:613
-#, fuzzy, c-format
+#: gnu/argp-parse.c:614
+#, c-format
 msgid "%s: Too many arguments\n"
-msgstr "%s: za opciju `%s' neophodan je argument\n"
+msgstr "%s: Previše argumenata\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr ""
+msgstr "(GREŠKA PROGRAMA) Opcije su trebale biti prepoznate!?"
 
 #: gnu/closeout.c:114
 msgid "write error"
-msgstr ""
+msgstr "greška pisanja"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: opcija `%s' nije jednoznaèna\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: opcija „%s” je višeznačna\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
-#, fuzzy, c-format
+#: gnu/getopt.c:626 gnu/getopt.c:630
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: opcija `--%s' ne dozvoljava argument\n"
+msgstr "%s: opcija „--%s” ne dozvoljava argument\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
-#, fuzzy, c-format
+#: gnu/getopt.c:639 gnu/getopt.c:644
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: opcija `%c%s' ne dozvoljava argument\n"
+msgstr "%s: opcija „%c%s” ne dozvoljava argument\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
-#, fuzzy, c-format
+#: gnu/getopt.c:687 gnu/getopt.c:706
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: za opciju `%s' neophodan je argument\n"
+msgstr "%s: opcija „--%s” zahtijeva argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
-#, fuzzy, c-format
+#: gnu/getopt.c:744 gnu/getopt.c:747
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: ne prepoznajem opciju `--%s'\n"
+msgstr "%s: neprepoznata opcija „--%s”\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
-#, fuzzy, c-format
+#: gnu/getopt.c:755 gnu/getopt.c:758
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: ne prepoznajem opciju `%c%s'\n"
+msgstr "%s: neprepoznata opcija „%c%s”\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
-#, fuzzy, c-format
+#: gnu/getopt.c:807 gnu/getopt.c:810
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: pogre¹na opcija -- %c\n"
+msgstr "%s: neispravna opcija -- „%c”\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
-#, fuzzy, c-format
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: opcija zahtijeva neophodan argument -- %c\n"
+msgstr "%s: opcija zahtijeva argument -- „%c”\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
-#, fuzzy, c-format
+#: gnu/getopt.c:936 gnu/getopt.c:952
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: opcija `-W %s' nije jednoznaèna\n"
+msgstr "%s: opcija „-W %s” je višeznačna\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
-#, fuzzy, c-format
+#: gnu/getopt.c:976 gnu/getopt.c:994
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: opcija `-W %s' ne dozvoljava argument\n"
+msgstr "%s: opcija „-W %s” ne dozvoljava argument\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
-#, fuzzy, c-format
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: za opciju `%s' neophodan je argument\n"
+msgstr "%s: opcija „-W %s” zahtijeva argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
-msgstr "iscrpljena memorija"
+msgstr "memorija iscrpljena"
 
 #: gnu/openat-die.c:40
-#, fuzzy, c-format
+#, c-format
 msgid "unable to record current working directory"
-msgstr "Ne mogu promijeniti radni direktorij"
+msgstr "ne mogu zapisati trenutni radni direktorij"
 
 #: gnu/openat-die.c:59
-#, fuzzy, c-format
+#, c-format
 msgid "failed to return to initial working directory"
-msgstr "Ne mogu pohraniti radni direktorij"
+msgstr "nisam se uspio vratiti u početni radni direktorij"
 
 #
-# MT -- FIXME -- for now this is left untranslated, until we
-# come to UTF-8 or something alike (20020412)
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
-msgstr "`"
+msgstr ""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
-msgstr "'"
+msgstr ""
 
 #. TRANSLATORS: A regular expression testing for an affirmative answer
 #. (english: "yes").  Testing the first character may be sufficient.
@@ -247,9 +249,9 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
-msgstr ""
+msgstr "^[dDyY]"
 
 #. TRANSLATORS: A regular expression testing for a negative answer
 #. (english: "no").  Testing the first character may be sufficient.
@@ -257,26 +259,26 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
-msgstr ""
+msgstr "^[nN]"
 
 #: gnu/version-etc.c:76
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Pakirao %s (%s)\n"
 
 #: gnu/version-etc.c:79
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Pakirao %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.
 #: gnu/version-etc.c:86
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
 #: gnu/version-etc.c:88
 msgid ""
@@ -287,24 +289,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Licenca GPLv3+: GNU GPL inačica 3 ili novija <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Ovo je slobodan softver: slobodno ga smijete mijenjati i dijeliti.\n"
+"NEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: gnu/version-etc.c:104
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s.\n"
-msgstr "Napisao François Pinard."
+msgstr "Napisao %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:108
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Napisao François Pinard."
+msgstr "Napisali %s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:112
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Napisao François Pinard."
+msgstr "Napisali %s, %s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -315,6 +323,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s\n"
+"i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -325,6 +335,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -335,6 +347,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s, %s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -345,6 +359,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s, %s, %s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -356,6 +372,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -367,6 +386,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s i %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -378,40 +400,43 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
+"Napisali %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s i ostali.\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).
 #: gnu/version-etc.c:247
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
 "\n"
-"Prijavi gre¹ke i bugove na <bug-tar@gnu.org>.\n"
+"Prijavite greške na %s.\n"
+"Prijavite greške prijevoda na <lokalizacija@linux.hr>.\n"
 
 #: gnu/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
-"\n"
-"Prijavi gre¹ke i bugove na <bug-tar@gnu.org>.\n"
+msgstr "Prijavite %s greške na %s\n"
 
 #: gnu/version-etc.c:253
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s početna stranica: <%s>\n"
 
 #: gnu/version-etc.c:255
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s početna stranica: <http://www.gnu.org/software/%s/>\n"
 
 #: gnu/version-etc.c:258
 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"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -420,7 +445,7 @@ msgstr ""
 #: lib/paxerror.c:58 lib/paxerror.c:71
 #, c-format
 msgid "%s: Cannot %s"
-msgstr "%s: Ne mogu %s"
+msgstr "%s: Ne mogu izvršiti %s"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -429,7 +454,7 @@ msgstr "%s: Ne mogu %s"
 #: lib/paxerror.c:84
 #, c-format
 msgid "%s: Warning: Cannot %s"
-msgstr "%s: Upozorenje: Ne mogu %s"
+msgstr "%s: Upozorenje: Ne mogu izvršiti %s"
 
 #: lib/paxerror.c:93
 #, c-format
@@ -439,929 +464,974 @@ msgstr "%s: Ne mogu promijeniti mod u %s"
 #: lib/paxerror.c:101
 #, c-format
 msgid "%s: Cannot change ownership to uid %lu, gid %lu"
-msgstr "%s: Ne mogu promijeniti vlasni¹tvo na uid %lu, gid %lu"
+msgstr "%s: Ne mogu promijeniti vlasništvo u uid %lu, gid %lu"
 
 #: lib/paxerror.c:127
 #, c-format
 msgid "%s: Cannot hard link to %s"
-msgstr "%s: Ne mogu napraviti hard link na %s"
+msgstr "%s: Ne mogu napraviti čvrstu vezu na %s"
 
 #: lib/paxerror.c:179 lib/paxerror.c:211
-#, fuzzy, c-format
+#, c-format
 msgid "%s: Read error at byte %s, while reading %lu byte"
 msgid_plural "%s: Read error at byte %s, while reading %lu bytes"
-msgstr[0] "%s: Pogre¹ka u èitanju na bajtu %s, èitam %lu bajtova"
-msgstr[1] "%s: Pogre¹ka u èitanju na bajtu %s, èitam %lu bajtova"
+msgstr[0] "%s: Greška čitanja na bajtu %s pri čitanju %lu bajta"
+msgstr[1] "%s: Greška čitanja na bajtu %s pri čitanju %lu bajta"
+msgstr[2] "%s: Greška čitanja na bajtu %s pri čitanju %lu bajtova"
 
 #: lib/paxerror.c:192
-#, fuzzy, c-format
+#, c-format
 msgid "%s: Warning: Read error at byte %s, while reading %lu byte"
 msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes"
-msgstr[0] "%s: Upozorenje: Pogre¹ka u èitanju na bajtu %s, èitam %lu bajtova"
-msgstr[1] "%s: Upozorenje: Pogre¹ka u èitanju na bajtu %s, èitam %lu bajtova"
+msgstr[0] "%s: Upozorenje: Greška čitanja na bajtu %s pri čitanju %lu bajta"
+msgstr[1] "%s: Upozorenje: Greška čitanja na bajtu %s pri čitanju %lu bajta"
+msgstr[2] "%s: Upozorenje: Greška čitanja na bajtu %s pri čitanju %lu bajtova"
 
 #: lib/paxerror.c:259
 #, c-format
 msgid "%s: Cannot seek to %s"
-msgstr "%s: Neuspjeli seek na %s"
+msgstr "%s: Ne mogu ići na %s"
 
 #: lib/paxerror.c:275
 #, c-format
 msgid "%s: Warning: Cannot seek to %s"
-msgstr "%s: Upozorenje: Neuspjeli seek na %s"
+msgstr "%s: Upozorenje: Ne mogu ići na %s"
 
 #: lib/paxerror.c:284
 #, c-format
 msgid "%s: Cannot create symlink to %s"
-msgstr "%s: Ne mogu kreirati simbolièki link prema %s"
+msgstr "%s: Ne mogu napraviti simboličku vezu na %s"
 
 #: lib/paxerror.c:349
-#, fuzzy, c-format
+#, c-format
 msgid "%s: Wrote only %lu of %lu byte"
 msgid_plural "%s: Wrote only %lu of %lu bytes"
-msgstr[0] "%s: Upsje¹no zapisao samo %lu od %lu bajtova"
-msgstr[1] "%s: Upsje¹no zapisao samo %lu od %lu bajtova"
+msgstr[0] "%s: Zapisao samo %lu od %lu bajta"
+msgstr[1] "%s: Zapisao samo %lu od %lu bajta"
+msgstr[2] "%s: Zapisao samo %lu od %lu bajtova"
 
 #: lib/paxnames.c:140
-#, fuzzy, c-format
+#, c-format
 msgid "Removing leading `%s' from member names"
-msgstr "Uklanjam vodeæe `%.*s' iz imena èlanova"
+msgstr "Uklanjam početni „%s” iz imena elemenata"
 
 #: lib/paxnames.c:141
-#, fuzzy, c-format
+#, c-format
 msgid "Removing leading `%s' from hard link targets"
-msgstr "Uklanjam vodeæe `%.*s' iz imena èlanova"
+msgstr "Uklanjam početni „%s” iz odredišta čvrstih veza"
 
 #: lib/paxnames.c:154
-#, fuzzy
 msgid "Substituting `.' for empty member name"
-msgstr "Uklanjam vodeæe `%.*s' iz imena èlanova"
+msgstr "Mijenjam „.” za prazno ime elementa"
 
 #: lib/paxnames.c:155
 msgid "Substituting `.' for empty hard link target"
-msgstr ""
+msgstr "Mijenjam „.” za prazno odredište čvrste veze"
 
 #: lib/rtapelib.c:299
 #, c-format
 msgid "exec/tcp: Service not available"
-msgstr "exec/tcp: Servis nije dostupan"
+msgstr "exec/tcp: Usluga nije dostupna"
 
 # FIXME -- verify against source
 #: lib/rtapelib.c:303
 #, c-format
 msgid "stdin"
-msgstr "stdin -- standardni ulaz"
+msgstr "standardni ulaz"
 
 #: lib/rtapelib.c:306
 #, c-format
 msgid "stdout"
-msgstr "stdout -- standardni ulaz"
+msgstr "standardni izlaz"
 
 #: lib/rtapelib.c:429
 #, c-format
 msgid "Cannot connect to %s: resolve failed"
-msgstr ""
+msgstr "Ne mogu se spojiti na %s: rezolucija nije uspjela"
+
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ne mogu pokrenuti udaljenu ljusku"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
-msgstr "Ne mogu pokrenuti udaljenu (remote) ljusku"
+msgstr "Ne mogu pokrenuti udaljenu ljusku"
 
 #: rmt/rmt.c:432
 msgid "Seek direction out of range"
-msgstr "Seek smjer izvan opsega"
+msgstr "Smjer traženja izvan granica"
 
 #: rmt/rmt.c:438
-#, fuzzy
 msgid "Invalid seek direction"
-msgstr "Pogre¹an mod dan opcijom"
+msgstr "Neispravan smjer traženja"
 
 #: rmt/rmt.c:446
-#, fuzzy
 msgid "Invalid seek offset"
-msgstr "Pogre¹na oznaka vremena"
+msgstr "Neispravan pomak traženja"
 
 # FIXME -- find xlation for 'seek offset' -- TM
 #: rmt/rmt.c:452
 msgid "Seek offset out of range"
-msgstr "Seek ofset izvan opsega"
+msgstr "Pomak traženja izvan granica"
 
 #: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
-#, fuzzy
 msgid "Invalid byte count"
-msgstr "Pogre¹na duljina trake"
+msgstr "Neispravan broj bajtova"
 
 # FIXME -- find xlation for 'seek offset' -- TM
 #: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
-#, fuzzy
 msgid "Byte count out of range"
-msgstr "Seek ofset izvan opsega"
+msgstr "Broj bajtova izvan granica"
 
 #: rmt/rmt.c:558
-#, fuzzy
 msgid "Premature eof"
-msgstr "rmtd: Prerani eof\n"
+msgstr "Preuranjen eof"
 
 #: rmt/rmt.c:601
-#, fuzzy
 msgid "Invalid operation code"
-msgstr "%s: pogre¹na opcija -- %c\n"
+msgstr "Neispravan operacijski kod"
 
 #: rmt/rmt.c:636 rmt/rmt.c:680
 msgid "Operation not supported"
-msgstr ""
+msgstr "Operacija nije podržana"
 
 #: rmt/rmt.c:664
-#, fuzzy
 msgid "Unexpected arguments"
-msgstr "Neoèekivani EOF u arhivi"
+msgstr "Neočekivani argumenti"
 
 #: rmt/rmt.c:689
 msgid "Manipulate a tape drive, accepting commands from a remote process"
-msgstr ""
+msgstr "Upravlja pogonom vrpce, prihvaćajući naredbe udaljenog procesa"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
-msgstr ""
+msgstr "BROJ"
 
 #: rmt/rmt.c:697
 msgid "set debug level"
-msgstr ""
+msgstr "postavi razinu debugiranja"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
-msgstr ""
+msgstr "DATOTEKA"
 
 #: rmt/rmt.c:699
 msgid "set debug output file name"
-msgstr ""
+msgstr "postavi ime datoteke izlaza za debugiranje"
 
 #: rmt/rmt.c:715 rmt/rmt.c:783
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open %s"
-msgstr "%s: Neuspjeli seek na %s"
+msgstr "ne mogu otvoriti %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
-msgstr ""
+msgstr "previše argumenata"
 
 #: rmt/rmt.c:822
 msgid "Garbage command"
-msgstr "Neispravna naredba"
+msgstr "Naredba smeća"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ovo ne izgleda kao tar arhiva"
 
-# FIXME -- ovo neæe raditi ako je prevedeno -- Denis?
+# FIXME -- ovo neće raditi ako je prevedeno -- Denis?
 #: src/buffer.c:521 src/buffer.c:530
-#, fuzzy
 msgid "Total bytes written"
-msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n"
+msgstr "Ukupno zapisano bajtova"
 
 #: src/buffer.c:528 src/buffer.c:542
 msgid "Total bytes read"
-msgstr ""
+msgstr "Ukupno pročitano bajtova"
 
-# FIXME -- ovo neæe raditi ako je prevedeno -- Denis?
+# FIXME -- ovo neće raditi ako je prevedeno -- Denis?
 #: src/buffer.c:532
-#, fuzzy, c-format
+#, c-format
 msgid "Total bytes deleted: %s\n"
-msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n"
+msgstr "Ukupno izbrisano bajtova: %s\n"
 
 #: src/buffer.c:621
 msgid "(pipe)"
-msgstr "(cjevovod - pipe)"
+msgstr "(cjevovod)"
 
 #: src/buffer.c:644
 msgid "Invalid value for record_size"
-msgstr "Pogre¹na vrijednost za record_size"
+msgstr "Neispravna vrijednost za record_size"
 
 #: src/buffer.c:647
 msgid "No archive name given"
-msgstr "Nije dano ime arhive"
+msgstr "Nije zadano ime arhive"
 
 #: src/buffer.c:689
 msgid "Cannot verify stdin/stdout archive"
-msgstr "Ne mogu verificirati stdin/stdout arhive"
+msgstr "Ne mogu provjeriti stdin/stdout arhivu"
 
 #: src/buffer.c:703
 #, c-format
 msgid "Archive is compressed. Use %s option"
-msgstr ""
+msgstr "Arhiva je komprimirana. Koristite opciju %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
-msgstr "Ne mogu a¾urirati komprimirane arhive"
+msgstr "Ne mogu ažurirati komprimirane arhive"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
-msgstr "Poèetak trake, zavr¹avam"
+msgstr "Početak trake, završavam"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
-msgstr "Previ¹e pogre¹aka, zavr¹avam"
+msgstr "Previše grešaka, završavam"
 
-#: src/buffer.c:892
-#, fuzzy, c-format
+#: src/buffer.c:893
+#, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
-msgstr[0] "Velièina sloga = %lu blokova"
-msgstr[1] "Velièina sloga = %lu blokova"
+msgstr[0] "Veličina zapisa = %lu blok"
+msgstr[1] "Veličina sloga = %lu bloka"
+msgstr[2] "Veličina sloga = %lu blokova"
 
-#: src/buffer.c:913
-#, fuzzy, c-format
+#: src/buffer.c:914
+#, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
-msgstr[0] "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive"
-msgstr[1] "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive"
+msgstr[0] "Neporavnat blok (%lu bajt) unutar arhive"
+msgstr[1] "Neporavnat blok (%lu bajta) unutar arhive"
+msgstr[2] "Neporavnat blok (%lu bajtova) unutar arhive"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
-msgstr "Ne mogu se pomicati unazad unutar arhive; mo¾e biti neèitljiva bez -i"
+msgstr "Ne mogu se pomicati unatrag unutar arhive, može biti nečitljiva bez -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
-msgstr ""
+msgstr "rmtlseek nije stao na granici zapisa"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
-msgstr "%s: sadr¾i pogre¹an broj dijela arhive"
+msgstr "%s: sadrži neispravan broj dijela arhive"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
-msgstr "Prekoraèenje u broju dijela arhive"
+msgstr "Preljev broja dijela arhive"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
-msgstr "Pripremite dio arhive #%d za %s i pritisni <RETURN>:"
+msgstr "Pripremite dio arhive #%d za %s i pritisnite [RETURN]: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
-msgstr "Naðen EOF gdje sam oèekivao odgovor korisnika"
+msgstr "Pronađen EOF gdje sam očekivao odgovor korisnika"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
-msgstr "UPOZORENJE: Arhiva nije kompletirana"
+msgstr "UPOZORENJE: Arhiva je nepotpuna"
 
-#: src/buffer.c:1148
-#, fuzzy, c-format
+#: src/buffer.c:1149
+#, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
 " q             Abort tar\n"
 " y or newline  Continue operation\n"
 msgstr ""
-" n [ime]    Daj novo ime datoteke za slijedeæi (i nadovezujuæe) dijelove\n"
-" q          Zavr¹i tar\n"
-" !          Pokreni podljusku operativnog sistema\n"
-" ?          Ispi¹i ovu listu\n"
+" n [ime]           Daj novo ime datoteke za sljedeći (i nadovezujuće) "
+"dijelove\n"
+" q                 Prekini tar\n"
+" y ili novi redak  Nastavi rad\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
-msgstr ""
+msgstr " !                 Pokreni podljusku\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
-msgstr ""
+msgstr " ?                 Ispiši ovaj popis\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
-msgstr "Nema novog dijela arhive; zavr¹avam.\n"
+msgstr "Nema novog dijela arhive, završavam.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
-msgstr ""
+msgstr "Ime datoteke nije navedeno. Pokušajte ponovo.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
-msgstr ""
+msgstr "Neispravan unos. Unesite ? za pomoć.\n"
 
-#: src/buffer.c:1258
-#, fuzzy, c-format
+#: src/buffer.c:1259
+#, c-format
 msgid "%s command failed"
-msgstr "Neuspjela `%s' naredba"
+msgstr "naredba %s nije uspjela"
 
-#: src/buffer.c:1439
-#, fuzzy, c-format
+#: src/buffer.c:1440
+#, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
-msgstr "%s nije nastavljen za ovom dijelu arhive"
+msgstr ""
+"%s je možda nastavljen na ovom dijelu arhive: zaglavlje sadrži skraćeno ime"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
-msgstr "%s nije nastavljen za ovom dijelu arhive"
+msgstr "%s nije nastavljen na ovom dijelu arhive"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
-msgstr "%s je pogre¹ne velièine (%s != %s + %s)"
+msgstr "%s je pogrešne veličine (%s != %s + %s)"
 
-#: src/buffer.c:1472
-#, fuzzy, c-format
+#: src/buffer.c:1473
+#, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
-msgstr "Ovaj dio arhive je izvan slijeda"
+msgstr "Ovaj dio arhive je izvan niza (%s - %s != %s)"
 
 # FIXME -- clean against source! (TM)
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
-msgstr "Arhiva nije oznaèena labelom da odgovara %s"
+msgstr "Arhiva nije označena da odgovara %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Dio arhive %s ne odgovara %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
+"%s: ime datoteke je predugačko za spremanje u GNU višedjelnom zaglavlju, "
+"skraćujem"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
-msgstr ""
+msgstr "pisanje nije završilo na granici bloka"
 
-#: src/compare.c:95
-#, fuzzy, c-format
+#: src/compare.c:96
+#, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
-msgstr[0] "Uspio proèitati samo %lu od %lu bajtova"
-msgstr[1] "Uspio proèitati samo %lu od %lu bajtova"
+msgstr[0] "Pročitao samo %lu od %lu bajta"
+msgstr[1] "Pročitao samo %lu od %lu bajta"
+msgstr[2] "Pročitao samo %lu od %lu bajtova"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
-msgstr "Sadr¾aji se razlikuju"
+msgstr "Sadržaji se razlikuju"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
-msgstr "Neoèekivani EOF u arhivi"
+msgstr "Neočekivani EOF u arhivi"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
-msgstr "Tipovi datoteka se razlikuju"
+msgstr "Vrste datoteka se razlikuju"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Mod se razlikuje"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid se razlikuje"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid se razlikuje"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
-msgstr "Mod time (vrijeme modifikacije) se razlikuje"
+msgstr "Vrijeme uređivanja se razlikuje"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
-msgstr "Velièina se razlikuje"
+msgstr "Veličina se razlikuje"
 
-# FIXME -- language purists might lynch me for this "polinkan" -- TM
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
-msgstr "Nije polinkan na %s"
+msgstr "Nije povezan na %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
-msgstr "Simbolièki link se razlikuje"
+msgstr "Simbolička veza se razlikuje"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
-msgstr "Broj ureðaja (device number) se razlikuje"
+msgstr "Broj uređaja se razlikuje"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
-msgstr "Verificiraj "
+msgstr "Provjeri "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
-msgstr "%s: Nepoznat tip datoteke '%c', diff-iran kao normalna datoteka"
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr ""
+"%s: Nepoznata vrsta datoteke „%c”, izvršen diff kao na normalnoj datoteci"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
-msgstr ""
+msgstr "Arhiva sadrži imena datoteka s uklonjenim početnim prefiksima."
 
-# FIXME -- obsolescent -- TM
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arhiva sadr¾i base-64 zaglavlja zastarjelog formata"
+msgstr "Arhiva sadrži pretvorena imena datoteka."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
-msgstr ""
+msgstr "Provjera možda neće uspjeti pronaći izvorne datoteke."
 
-#: src/compare.c:603
-#, fuzzy, c-format
+#: src/compare.c:612
+#, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
-msgstr[0] "NEUSPJELA VERIFIKACIJA: detektirano %d pogre¹nih zaglavlja"
-msgstr[1] "NEUSPJELA VERIFIKACIJA: detektirano %d pogre¹nih zaglavlja"
+msgstr[0] "NEUSPJELA PROVJERA: otkriveno %d neispravno zaglavlje"
+msgstr[1] "NEUSPJELA PROVJERA: otkrivena %d neispravna zaglavlja"
+msgstr[2] "NEUSPJELA PROVJERA: otkriveno %d neispravnih zaglavlja"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
-msgstr ""
+msgstr "Izolirani nulti blok na %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
-msgstr ""
+msgstr "%s: sadrži oznaku direktorija spremnika %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
-msgstr "vrijednost %s izvan %s raspona %s..%s; substituiram %s"
+msgstr "vrijednost %s izvan %s raspona %s..%s; mijenjam sa %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "vrijednost %s izvan %s raspona %s..%s"
 
-# FIXME -- find `pade¾' here from source
-#: src/create.c:327
+# FIXME -- find `padež' here from source
+#: src/create.c:328
 msgid "Generating negative octal headers"
-msgstr "Generiram negativna oktalna zaglavlja"
+msgstr "Stvaram negativna oktalna zaglavlja"
 
-#: src/create.c:612 src/create.c:675
-#, fuzzy, c-format
+#: src/create.c:601 src/create.c:664
+#, c-format
 msgid "%s: file name is too long (max %d); not dumped"
-msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+msgstr "%s: ime datoteke je predugačko (najviše %d); ne arhiviram"
 
-#: src/create.c:622
-#, fuzzy, c-format
+#: src/create.c:611
+#, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
-msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+msgstr "%s: ime datoteke je predugačko (ne može se razdvojiti); ne arhiviram"
 
-#: src/create.c:649
-#, fuzzy, c-format
+#: src/create.c:638
+#, c-format
 msgid "%s: link name is too long; not dumped"
-msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+msgstr "%s: ime veze je predugačko; ne arhiviram"
 
-#: src/create.c:1064
-#, fuzzy, c-format
+#: src/create.c:1084
+#, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
-msgstr[0] "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama"
-msgstr[1] "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama"
+msgstr[0] "%s: Datoteka skraćena za %s bajt; nadopunjeno nulama"
+msgstr[1] "%s: Datoteka skraćena za %s bajta; nadopunjeno nulama"
+msgstr[2] "%s: Datoteka skraćena za %s bajtova; nadopunjeno nulama"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
-msgstr "%s: datoteka je na drugom datoteènom sustavu; ne arhiviram ju"
+msgstr "%s: datoteka je na drugom datotečnom sustavu; ne arhiviram"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
-msgstr ""
+msgstr "sadržaj nije arhiviran"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
-msgstr "%s: Nepoznat tip datoteke; datoteka ignorirana"
+msgstr "%s: Nepoznata vrsta datoteke; datoteka zanemarena"
 
-#: src/create.c:1529
-#, fuzzy, c-format
+#: src/create.c:1549
+#, c-format
 msgid "Missing links to %s."
-msgstr " link do %s\n"
+msgstr "Nedostaju veze na %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
-msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+msgstr "%s: datoteka nepromijenjena; ne arhiviram"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
-msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+msgstr "%s: datoteka je arhiva; ne arhiviram"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
-msgstr ""
+msgstr "direktorij nije arhiviran"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
-msgstr "%s: datoteka se promijenila dok smo ju èitali"
+msgstr "%s: datoteka se promijenila za vrijeme čitanja"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
-msgstr "%s: socket ignoriran"
+msgstr "%s: utičnica zanemarena"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
-msgstr "%s: door ignoriran"
+msgstr "%s: vrata zanemarena"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
-msgstr "Preskaèem do slijedeæeg zaglavlja"
+msgstr "Preskačem na sljedeće zaglavlje"
 
-# FIXME -- non-header dubious -- clean against source! -- TM
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
-msgstr "Bri¹em neispravno zaglavlje iz arhive"
+msgstr "Brišem neispravno zaglavlje iz arhive"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
-msgstr ""
+msgstr "%s: nevjerojatno stara vremenska oznaka %s"
 
-#: src/extract.c:295
-#, fuzzy, c-format
+#: src/extract.c:320
+#, c-format
 msgid "%s: time stamp %s is %s s in the future"
-msgstr "%s: oznaka vremena %s je %lu sekundi u buduænost"
+msgstr "%s: vremenska oznaka %s je %s sekundi u budućnosti"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
-msgstr "%s: Neoèekivana nekonzistentnost kod otvaranja direktorija"
+msgstr "%s: Neočekivana nekonzistentnost pri izradi direktorija"
+
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
 
-#: src/extract.c:721
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
-msgstr "%s: Direktoriju promijenjeno ime prije nego ¹to mu je dobavljen status"
+msgstr "%s: Direktoriju promijenjeno ime prije ekstrakcije njegovog stanja"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
-msgstr "Ekstrahiram neprekinute datoteke kao regularne datoteke"
+msgstr "Ekstrahiram neprekinute datoteke kao obične datoteke"
 
-# FIXME -- 'hard links' -- TM
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
-msgstr "Poku¹avam ekstrakciju simbolièkih linkova kao hard linkova"
+msgstr "Pokušavam ekstrakciju simboličkih veza kao čvrstih veza"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr ""
 "%s: Ne mogu ekstrahirati -- datoteka se nastavlja iz drugog dijela arhive"
 
-#: src/extract.c:1372 src/list.c:1121
-#, fuzzy
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
-msgstr "Neoèekivan EOF u mangliranim imenima"
+msgstr "Neočekivano zaglavlje dugačkog imena"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
-msgstr "%s: Nepoznat tip datoteke '%c', ekstrahiran kao normalna datoteka"
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Nepoznata vrsta datoteke „%c”, ekstrahirana kao normalna datoteka"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
-msgstr ""
+msgstr "Trenutni %s je noviji ili jednako star"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
-msgstr "%s: Nisam uspio napraviti backup ove datoteke"
+msgstr "%s: Nisam uspio napraviti kopiju ove datoteke"
 
-#: src/extract.c:1594
-#, fuzzy, c-format
+#: src/extract.c:1767
+#, c-format
 msgid "Cannot rename %s to %s"
-msgstr "%s: Ne mogu preimenovati u %s"
+msgstr "Ne mogu preimenovati %s u %s"
 
-#: src/incremen.c:473 src/incremen.c:517
-#, fuzzy, c-format
-msgid "%s: Directory has been renamed from %s"
-msgstr "%s: Direktoriju promijenjeno ime"
-
-#: src/incremen.c:485
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Direktoriju promijenjeno ime"
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Direktoriju je promijenjeno ime iz %s"
 
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Novi direktorij"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: datoteka je na drugom datotečnom sustavu; ne arhiviram"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktoriju je promijenjeno ime"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
-msgstr "Pogre¹na oznaka vremena"
+msgstr "Neispravna vremenska oznaka"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
-msgstr "Pogre¹an mod dan opcijom"
+msgid "Invalid modification time"
+msgstr "Neispravno vrijeme uređivanja (sekunde)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
-msgstr ""
+msgstr "Neispravno vrijeme uređivanja (nanosekunde)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
-msgstr "Pogre¹an broj ureðaja"
+msgstr "Neispravan broj uređaja"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
-msgstr "Pogre¹an inode broj"
+msgstr "Neispravan broj indeksnog čvora (inode)"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
+msgid "Unexpected EOF in snapshot file"
+msgstr "Neočekivani EOF u datoteci snimke stanja"
+
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
-#, fuzzy
-msgid "Unexpected EOF in snapshot file"
-msgstr "Neoèekivani EOF u arhivi"
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1259
-msgid "Missing record terminator"
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1260
+msgid "Missing record terminator"
+msgstr "Nedostaje kraj zapisa"
+
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
-msgstr ""
+msgstr "Neispravan inkrementalni oblik datoteke"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
-msgstr ""
+msgstr "Nepodržana inačica inkrementalnog oblika: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: očekujem „%c”, pronašao %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: „X” udvostručen"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: prazno ime u „R”"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: prije „T” ne dolazi „R”"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: prazno ime u „T”"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: očekujem „%c”, pronašao kraj podataka"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
-msgstr ""
+msgstr "Izobličen direktorij za ispis: „X” se uopće ne koristi"
 
-# FIXME -- blocking factor -- can't translate (ask others) -- TM
-#: src/incremen.c:1609
-#, fuzzy, c-format
+#: src/incremen.c:1656
+#, c-format
 msgid "Cannot create temporary directory using template %s"
-msgstr "Ne mogu alocirati memoriju za faktor pakiranja u blokove %d"
+msgstr "Ne mogu napraviti privremeni direktorij korištenjem predloška %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
-msgstr ""
+msgstr "%s: Ne uklanjam direktorij: ne mogu izvršiti stat"
 
-#: src/incremen.c:1683
-#, fuzzy, c-format
+#: src/incremen.c:1730
+#, c-format
 msgid "%s: directory is on a different device: not purging"
-msgstr "%s: datoteka je na drugom datoteènom sustavu; ne arhiviram ju"
+msgstr "%s: datoteka je na drugom uređaju: ne uklanjam"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
-msgstr "%s: Bri¹em %s\n"
+msgstr "%s: Brišem %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
-msgstr "%s: Ne mogu obrisati"
+msgstr "%s: Ne mogu ukloniti"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Izostavljam"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
-msgstr "blok %s: ** Blok ispunjen NULama **\n"
+msgstr "blok %s: ** Blok ispunjen NUL-znakovima **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Kraj datoteke **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
-msgstr "Razmaci u zaglavlju gdje se oèekuje numerièka %s vrijednost"
+msgstr "Praznine u zaglavlju gdje se očekuje numerička %s vrijednost"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
-"Oktalna vrijednost %.*s iz arhive je izvan %s opsega; pretpostavljam dvojni "
+"Oktalna vrijednost %.*s iz arhive je izvan %s granica; pretpostavljam dvojni "
 "komplement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
-msgstr "Oktalna vrijednost iz arhive %.*s je izvan %s opsega"
+msgstr "Oktalna vrijednost iz arhive %.*s je izvan %s granica"
 
 # FIXME -- obsolescent -- TM
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
-msgstr "Arhiva sadr¾i base-64 zaglavlja zastarjelog formata"
+msgstr "Arhiva sadrži zastarjela base-64 zaglavlja"
 
 # FIXME??
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
-msgstr "Base-64 vrijednost s predznakom %s iz arhive je izvan %s opsega"
+msgstr "Base-64 vrijednost s predznakom %s iz arhive je izvan %s granica"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
-msgstr "Base-256 vrijednost iz arhive je izvan %s opsega"
+msgstr "Base-256 vrijednost iz arhive je izvan %s granica"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
-msgstr "Arhiva sadr¾i %.*s gdje je oèekivana numerièka %s vrijednost"
+msgstr "Arhiva sadrži %.*s gdje je očekivana numerička %s vrijednost"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
-msgstr "Vrijednost %s iz arhive je izvan %s opsega %s..%s"
+msgstr "Vrijednost %s iz arhive je izvan %s raspona %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
-msgstr " link do %s\n"
+msgstr " veza na %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
-msgstr " nepoznat tip datoteke %s\n"
+msgstr " nepoznata vrsta datoteke %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
-msgstr ""
+msgstr "--Dugačka veza--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
-msgstr ""
+msgstr "--Dugačko ime--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Zaglavlje dijela arhive--\n"
 
 # FIXME -- clarify against source -- TM
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
-msgstr "--Nastavljeno s bajtom %s--\n"
+msgstr "--Nastavljeno na bajtu %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
-msgstr "Kreiram direktorij:"
-
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Ne mogu promijeniti radni direktorij"
+msgstr "Stvaram direktorij:"
 
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
-msgstr "Preimenujem %s u %s\n"
+msgstr "Mijenjam ime %s u %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Ne mogu preimenovati u %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
-msgstr "Preimenujem %s natrag u %s\n"
+msgstr "Mijenjam ime %s natrag u %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
-msgstr "%s: Datoteka uklonjena (removed) prije nego ¹to smo ju proèitali"
+msgstr "%s: Datoteka uklonjena prije nego što smo ju pročitali"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
-msgstr "podproces"
+msgstr "proces dijete"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
-msgstr "meðuprocesni kanal"
+msgstr "međuprocesni kanal"
+
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "naredba %s nije uspjela"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: popis datoteka je već pročitan"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ne mogu postaviti vrijeme na „%s”"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: pročitano ime datoteke sadrži prazan znak"
 
-#: src/names.c:590
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
-msgstr ""
+msgstr "Znakovi za uspoređivanje uzoraka korišteni u imenima datoteka"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
+"Koristite --wildcards za omogućavanje uspoređivanja uzoraka ili --no-"
+"wildcards za potiskivanje ovog upozorenja"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
-msgstr "%s: Nije naðeno u arhivi"
+msgstr "%s: Nije pronađen u arhivi"
 
-#: src/names.c:611
-#, fuzzy, c-format
+#: src/names.c:842
+#, c-format
 msgid "%s: Required occurrence not found in archive"
-msgstr "%s: Nije naðeno u arhivi"
+msgstr "%s: Potrebna pojava nije pronađen u arhivi"
 
 # FIXME -- clean against source! (TM)
-#: src/names.c:645
-#, fuzzy, c-format
+#: src/names.c:876
+#, c-format
 msgid "Archive label mismatch"
-msgstr "Arhiva nije oznaèena labelom da odgovara %s"
+msgstr "Oznaka arhive ne odgovara"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
+"Korištenje opcije -C u popisu datoteka nije dozvoljeno uz --listed-"
+"incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
-msgstr ""
+msgstr "Samo jedna opcija -C je dozvoljena uz --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
-msgstr "Opcije `-%s' i `-%s' obje zahtijevaju standardni ulaz"
-
-#: src/tar.c:158
+#: src/tar.c:86
 #, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
+msgstr "Opcije „-%s” i „-%s” obje zahtijevaju standardni ulaz"
+
+#: src/tar.c:163
+#, c-format
 msgid "%s: Invalid archive format"
-msgstr "%s: Pogre¹na grupa"
+msgstr "%s: Neispravan oblik arhive"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
-msgstr "GNU specijalne pogodnosti zatra¾ene na nekompatibilnom formatu arhive"
+msgstr "GNU mogućnosti zatražene na nekompatibilnom obliku arhive"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
+"Nepoznat stil navođenja „%s”. Pokušajte „%s --quoting-style=help” za prikaz "
+"popisa."
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1369,19 +1439,18 @@ msgid ""
 "  tar -tvf archive.tar         # List all files in archive.tar verbosely.\n"
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
-"\n"
-"Usage: %s [OPCIJA]... [DATOTEKA]...\n"
+"GNU „tar” sprema više datoteka u arhivu na vrpci ili disku i može vratiti "
+"pojedinačne datoteke iz arhive.\n"
 "\n"
 "Primjeri:\n"
-"  %s -cf arhiva.tar foo bar   # Kreiraj arhiva.tar od datoteka foo i bar.\n"
-"  %s -tvf arhiva.tar          # Ispi¹i redom sve datoteke iz arhiva.tar "
-"op¹irno.\n"
+"  %s -cf arhiva.tar foo bar   # Napravi arhiva.tar od datoteka foo i bar.\n"
+"  %s -tvf arhiva.tar          # Opširno ispiši sve datoteke iz arhiva.tar.\n"
 "  %s -xf arhiva.tar           # Ekstrahiraj sve datoteke iz arhiva.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1390,1398 +1459,1467 @@ msgid ""
 "  nil, existing   numbered if numbered backups exist, simple otherwise\n"
 "  never, simple   always make simple backups\n"
 msgstr ""
-"\n"
-"Backup sufiks je `~', osim ako je postavljen drugi s --suffix ili\n"
-"SIMPLE_BACKUP_SUFFIX. Kontrola verzije mo¾e biti postavljena s --backup\n"
+"Sufiks sigurnosne kopije je `~', osim ako je postavljen drugi s --suffix "
+"ili\n"
+"SIMPLE_BACKUP_SUFFIX. Kontrola inaÄ\8dice može biti postavljena s --backup\n"
 "ili s VERSION_CONTROL, vrijednosti su:\n"
 "\n"
-"  t, numbered     radi pobrojane (numbered) backup-e\n"
-"  nil, existing   pobrojani ako pobrojani veæ postoje, inaèe jednostavni\n"
-"  never, simple   uvijek radi jednostavne backupe\n"
+"  none, off       ne radi sigurnosne kopije\n"
+"  t, numbered     radi numerirane sigurnosne kopije\n"
+"  nil, existing   numerirane ako numerirane sigurnosne kopije postoje,\n"
+"                    inače jednostavne\n"
+"  never, simple   uvijek radi jednostavne sigurnosne kopije\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
-msgstr ""
+msgstr "Glavni način rada:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
-msgstr ""
+msgstr "ispiši sadržaj arhive"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
-msgstr ""
+msgstr "ekstrahiraj datoteke iz arhive"
 
-#: src/tar.c:395
-#, fuzzy
+#: src/tar.c:411
 msgid "create a new archive"
-msgstr "Neoèekivani EOF u arhivi"
+msgstr "napravi novu arhivu"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
-msgstr ""
+msgstr "nađi razlike između arhive i datotečnog sustava"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
-msgstr ""
+msgstr "dodaj datoteke na kraj arhive"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
-msgstr ""
+msgstr "dodaj samo datoteke novije od kopije u arhivi"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
-msgstr ""
+msgstr "dodaj tar datoteke u arhivu"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
-msgstr ""
+msgstr "izbriši iz arhive (ne na magnetskim vrpcama!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
-msgstr ""
+msgstr "provjeri oznaku dijela arhive i izađi"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
-msgstr ""
+msgstr "Modifikatori operacija:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
-msgstr ""
+msgstr "učinkovito upravljaj raštrkanim datotekama"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
-msgstr ""
+msgstr "GLAVNI[.SPOREDNI]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
+"postavi inačicu raštrkanog oblika za korištenje (podrazumijeva --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
-msgstr ""
+msgstr "upravljaj inkrementalnim sigurnosnim kopijama starog GNU oblika"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
-msgstr ""
+msgstr "upravljaj inkrementalnim sigurnosnim kopijama novog GNU oblika"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
-msgstr ""
+msgstr "razina ispisa za stvorene ispisane-inkrementalne arhive"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
-msgstr ""
+msgstr "ne izlazi s kodom različitim od nule u slučaju nečitljivih datoteka"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
 "diff, --extract or --list and when a list of files is given either on the "
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
+"Obradi samo svako BROJ-to pojavljivanje svake datoteke u arhivi. Ova je "
+"opcija ispravna samo uz jednu od podnaredbi --delete, --diff, --extract ili "
+"--list te kad je popis datoteka naveden u naredbenom retku ili uz opciju -T. "
+"BROJ je uobičajeno 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
-msgstr ""
+msgstr "arhiva se može pretraživati"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
-msgstr ""
+msgstr "arhiva se ne može pretraživati"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
-msgstr ""
+msgstr "ne provjeravaj brojeve uređaja pri stvaranju inkrementalnih arhiva"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
-msgstr ""
+msgstr "provjeri brojeve uređaja pri stvaranju inkrementalnih arhiva (zadano)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
-msgstr ""
+msgstr "Upravljanje prepisivanjem:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
-msgstr ""
+msgstr "pokušaj provjeriti arhivu nakon pisanja u nju"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
-msgstr ""
+msgstr "ukloni datoteke nakon dodavanja u arhivu"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
-msgstr ""
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "ne zamjenjuj postojeće datoteke pri ekstrakciji"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "ne zamjenjuj postojeće datoteke pri ekstrakciji"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
-msgstr ""
+msgstr "ne zamjenjuj postojeće datoteke novije od kopija u arhivi"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
-msgstr ""
+msgstr "prepiši postojeće datoteke pri ekstrakciji"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
-msgstr ""
+msgstr "ukloni svaku datoteku prije ekstrakcije preko nje"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
-msgstr ""
+msgstr "isprazni hijerarhije prije ekstrahiranja direktorija"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
-msgstr ""
+msgstr "očuvaj metapodatke postojećih direktorija"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
-msgstr ""
+msgstr "prepiši metapodatke postojećih direktorija pri ekstrakciji (zadano)"
+
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "prepiši postojeće datoteke pri ekstrakciji"
 
-#: src/tar.c:473
+#: src/tar.c:496
 msgid "Select output stream:"
-msgstr ""
+msgstr "Odaberi izlazni tok podataka:"
 
-#: src/tar.c:476
-#, fuzzy
+#: src/tar.c:499
 msgid "extract files to standard output"
-msgstr "Pogre¹ka u pisanju na standardni izlaz"
+msgstr "ekstrahiraj datoteke na standardni izlaz"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
-msgstr ""
+msgstr "NAREDBA"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
-msgstr ""
+msgstr "proslijedi ekstrahirane datoteke drugom programu kroz cjevovod"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
-msgstr ""
+msgstr "zanemari izlazne kodove djece"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
-msgstr ""
+msgstr "postupaj s izlaznim kodovima djece različitim od nule kao s greškama"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
-msgstr ""
+msgstr "Upravljanje svojstvima datoteka:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
-msgstr ""
+msgstr "prisilno postavi IME kao vlasnika dodanih datoteka"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
-msgstr ""
+msgstr "prisilno postavi IME kao grupu dodanih datoteka"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
-msgstr ""
+msgstr "DATUM-ILI-DATOTEKA"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
-msgstr ""
+msgstr "postavi mtime dodanih datoteka iz DATUM-ILI-DATOTEKA"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
-msgstr ""
+msgstr "PROMJENE"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
-msgstr ""
+msgstr "prisili (simboličke) PROMJENE moda dodanih datoteka"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
-msgstr ""
+msgstr "METODA"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
+"očuvaj vremena pristupa ispisanih datoteka, ili vraćanjem vremena nakon "
+"čitanja (METODA='replace'; zadano), ili ne postavljanjem vremena "
+"(METODA='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
-msgstr ""
+msgstr "ne ekstrahiraj vrijeme uređivanja datoteke"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
+"pokušaj ekstrahirati datoteke s istim vlasništvom kakvo je u arhivi (zadano "
+"za administratora)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
-msgstr ""
+msgstr "otpakiraj datoteke kao trenutni korisnik (zadano za obične korisnike)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
-msgstr ""
+msgstr "uvijek koristi brojke za imena korisnika/grupe"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
-msgstr ""
+msgstr "izdvoji informacije o dozvolama datoteka (zadano za administratora)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
+"primijeni korisnički umask pri ekstrakciji dozvola iz arhive (zadano za "
+"obične korisnike)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
-msgstr ""
+msgstr "isto kao -p i -s zajedno"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
+"odgodi postavljanje vremena uređivanja i dozvola ekstrahiranih direktorija "
+"do kraja ekstrakcije"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
+msgstr "poništi utjecaj opcije --delay-directory-restore"
+
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Upravljanje svojstvima datoteka:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
 msgstr ""
 
-#: src/tar.c:530
-msgid "Device selection and switching:"
+#: src/tar.c:559
+msgid "Disable extended attributes support"
 msgstr ""
 
-#: src/tar.c:532
-msgid "ARCHIVE"
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
 msgstr ""
 
-#: src/tar.c:533
-msgid "use archive file or device ARCHIVE"
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
 msgstr ""
 
-#: src/tar.c:535
-msgid "archive file is local even if it has a colon"
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
 msgstr ""
 
-#: src/tar.c:537
-msgid "use given rmt COMMAND instead of rmt"
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
 msgstr ""
 
-#: src/tar.c:539
-msgid "use remote COMMAND instead of rsh"
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
 msgstr ""
 
-#: src/tar.c:543
-msgid "specify drive and density"
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
 msgstr ""
 
+#: src/tar.c:576
+msgid "Device selection and switching:"
+msgstr "Odabir i zamjena uređaja:"
+
+#: src/tar.c:578
+msgid "ARCHIVE"
+msgstr "ARHIVA"
+
+#: src/tar.c:579
+msgid "use archive file or device ARCHIVE"
+msgstr "koristi datoteku ili uređaj ARHIVA"
+
+#: src/tar.c:581
+msgid "archive file is local even if it has a colon"
+msgstr "datoteka arhive je lokalna iako sadrži dvotočje"
+
+#: src/tar.c:583
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "koristi navedenu rmt NAREDBU umjesto rmt"
+
+#: src/tar.c:585
+msgid "use remote COMMAND instead of rsh"
+msgstr "koristi udaljenu NAREDBU umjesto rsh"
+
+#: src/tar.c:589
+msgid "specify drive and density"
+msgstr "navedi uređaj i gustoću"
+
 # FIXME -- volume -- find more suitable (ask others) -- TM
-#: src/tar.c:557
-#, fuzzy
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
-msgstr "Ne mogu verificirati vi¹edjelne arhive"
+msgstr "napravi/ispiši/ekstrahiraj višedjelnu arhivu"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
-msgstr ""
+msgstr "promijeni vrpcu nakon zapisivanja BROJ x 1024 bajtova"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
-msgstr ""
+msgstr "pokreni skriptu na kraju svake vrpce (podrazumijeva -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
-msgstr ""
+msgstr "koristi/ažuriraj broj dijela arhive u DATOTECI"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
-msgstr ""
+msgstr "Podjela uređaja u blokove:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
-msgstr ""
+msgstr "BLOKOVI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
-msgstr ""
+msgstr "BLOKOVI x 512 bajtova po zapisu"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
-msgstr ""
+msgstr "BROJ bajtova po zapisu, višekratnik 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
-msgstr ""
+msgstr "zanemari blokove u arhivi pretvorene u nulu (znači EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
-msgstr ""
+msgstr "ponovo napravi blokove pri čitanju (za 4.2BSD cjevovode)"
 
-#: src/tar.c:583
-#, fuzzy
+#: src/tar.c:629
 msgid "Archive format selection:"
-msgstr "Konfliktne opcije formata arhive"
+msgstr "Odabir oblika arhive:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
-msgstr ""
+msgstr "OBLIK"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
-msgstr ""
+msgstr "stvori arhivu zadanog oblika"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
-msgstr ""
+msgstr "OBLIK je jedan od sljedećih:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
-msgstr ""
+msgstr "stari V7 tar oblik"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
-msgstr ""
+msgstr "GNU oblik za tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
-msgstr ""
+msgstr "GNU tar 1.13.x oblik"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
-msgstr ""
+msgstr "POSIX 1003.1-1988 (ustar) oblik"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
-msgstr ""
+msgstr "POSIX 1003.1-2001 (pax) oblik"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
-msgstr ""
+msgstr "isto kao pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
-msgstr ""
+msgstr "isto kao --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
-msgstr ""
+msgstr "isto kao --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
-msgstr ""
+msgstr "ključna_riječ[[:]=vrijednost][,ključna_riječ[[:]=vrijednost]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
-msgstr ""
+msgstr "kontrolne pax ključne riječi"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
-msgstr ""
+msgstr "TEKST"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
+"Napravi arhivu s imenom dijela arhive TEKST. Pri ispisu/otpakiranju koristi "
+"TEKST za traženje uzorka za ime dijela arhive."
 
-#: src/tar.c:614
-#, fuzzy
+#: src/tar.c:660
 msgid "Compression options:"
-msgstr "Konfliktne opcije za kompresiju"
+msgstr "Opcije kompresije:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
-msgstr ""
+msgstr "koristi sufiks arhive za određivanje programa za kompresiju"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
-msgstr ""
+msgstr "ne koristi sufiks arhive za određivanje programa za kompresiju"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
-msgstr ""
+msgstr "PROGRAM"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
-msgstr ""
+msgstr "filtriraj kroz PROGRAM (mora prihvaćati -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
-msgstr ""
+msgstr "Odabir lokalnih datoteka:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
+"dodaj navedenu DATOTEKU u arhivu (korisno ako njeno ime počinje crticom)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
-msgstr ""
+msgstr "DIR"
 
-#: src/tar.c:642
-#, fuzzy
+#: src/tar.c:688
 msgid "change to directory DIR"
-msgstr "Ne mogu promijeniti radni direktorij"
+msgstr "promijeni u direktorij DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
-msgstr ""
+msgstr "otkrij imena za otpakiranje ili napravi iz DATOTEKE"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
-msgstr ""
+msgstr "-T čita praznim znakom završena imena, onemogućuje -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
-msgstr ""
+msgstr "onemogući utjecaj prethodne opcije --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
-msgstr ""
+msgstr "ukloni navode imena datoteka pročitanih s -T (zadano)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
-msgstr ""
+msgstr "ne uklanjaj navode imena datoteka pročitanih s -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
-msgstr ""
+msgstr "UZORAK"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
-msgstr ""
+msgstr "izostavi datoteke koje odgovaraju UZORKU"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
-msgstr ""
+msgstr "izostavi uzorke navedene u DATOTECI"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
+"izostavi sadržaj direktorija koji sadrže CACHEDIR.TAG, osim datoteke oznake"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
-msgstr ""
+msgstr "izostavi sve unutar direktorija koji sadrže CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
-msgstr ""
+msgstr "izostavi direktorije koji sadrže CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
-msgstr ""
+msgstr "izostavi sadržaj direktorija koji sadrži DATOTEKU osim nje same"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
-msgstr ""
+msgstr "izostavi sve iz direktorija koji sadrže DATOTEKU"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
-msgstr ""
+msgstr "izostavi direktorije koji sadrže DATOTEKU"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
-msgstr ""
+msgstr "izostavi sustavske direktorije kontrole inačice"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
-msgstr ""
+msgstr "izostavi sigurnosne kopije i datoteke zaključavanja"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
-msgstr ""
+msgstr "izbjegavaj automatsko spuštanje u direktorije"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
-msgstr ""
+msgstr "ostani u lokalnom datotečnom sustavu pri stvaranju arhive"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
-msgstr ""
+msgstr "rekurzivno uđi u direktorije (zadano)"
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
-msgstr "Uklanjam vodeæe `%.*s' iz imena èlanova"
+msgid "don't strip leading '/'s from file names"
+msgstr "ne uklanjaj početne „/” iz imena datoteka"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
-msgstr ""
+msgstr "slijedi simboličke veze; arhiviraj i ispiši datoteke na koje pokazuju"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
-msgstr ""
+msgstr "slijedi čvrste veze; arhiviraj i ispiši datoteke na koje se odnose"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
-msgstr ""
+msgstr "IME-ELEMENTA"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
-msgstr ""
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
+msgstr "započni s elementom IME-ELEMENTA u arhivi"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
-msgstr ""
+msgstr "spremi samo datoteke novije od DATUM-ILI-DATOTEKA"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
-msgstr ""
+msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
-msgstr ""
+msgstr "usporedi datum i vrijeme samo ako su podaci promijenjeni"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
-msgstr ""
+msgstr "KONTROLA"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
-msgstr ""
+msgstr "napravi sigurnosnu kopiju prije uklanjanja, odaberi KONTROLU inačice"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
-msgstr ""
+msgstr "NIZ"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
+"napravi sigurnosnu kopiju prije uklanjanja, zamijeni uobičajeni sufiks („~” "
+"osim ako je promijenjen varijablom okoline SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
-msgstr ""
+msgstr "Pretvaranja imena datoteka:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
-msgstr ""
+msgstr "ukloni BROJ vodećih komponenti iz imena datoteka pri otpakiranju"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
-msgstr ""
+msgstr "IZRAZ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
-msgstr ""
+msgstr "koristi sed zamjenu IZRAZA za promjenu imena datoteka"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
+"Opcije podudaranja imena datoteka (utječe na uzorke za isključivanje i "
+"uključivanje):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
-msgstr ""
+msgstr "zanemari veličinu slova"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "Dio arhive %s ne odgovara %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
-msgstr ""
+msgstr "Informativni izlaz:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
-msgstr ""
+msgstr "opširno ispiši obrađene datoteke"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
-msgstr ""
+msgstr "KLJUČNA_RIJEČ"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
-msgstr ""
+msgstr "kontrola upozorenja"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
-msgstr ""
+msgstr "prikaži poruke o napretku svakih BROJ zapisa (zadano 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
-msgstr ""
+msgstr "RADNJA"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
-msgstr ""
+msgstr "izvrši RADNJU na svakoj kontrolnoj točki"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
-msgstr ""
+msgstr "ispiši poruku ako nisu ispisane sve veze"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
-msgstr ""
+msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
 "SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also "
 "accepted"
 msgstr ""
+"Ispiši ukupan broj bajtova nakon obrade arhive. Uz argument - ispiši ukupan "
+"broj bajtova nakon primanja ovog SIGNALA. Dozvoljeni signali su: SIGHUP, "
+"SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2. Također se prihvaćaju imena bez prefiksa "
+"SIG."
 
-#: src/tar.c:756
-#, fuzzy
+#: src/tar.c:802
 msgid "print file modification times in UTC"
-msgstr "Pogre¹an mod dan opcijom"
+msgstr "ispiši vremena uređivanja datoteka u UTC-u"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
-msgstr ""
+msgstr "ispiši potpunu rezoluciju vremena datoteke"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
-msgstr ""
+msgstr "pošalji opširan izlaz u DATOTEKU"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
-msgstr ""
+msgstr "prikaži broj bloka u arhivi uz svaku poruku"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
-msgstr ""
+msgstr "traži potvrdu svake radnje"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
+msgstr "prikaži zadane postavke za tar"
+
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
+"pri ispisu ili ekstrakciji, ispiši svaki direktorij koji ne odgovara "
+"uvjetima pretraživanja"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
-msgstr ""
+msgstr "prikaži imena datoteke ili arhive nakon pretvaranja"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
-msgstr ""
+msgstr "STIL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
+"postavi stil navođenja imena; pogledajte niže ispravne vrijednosti STILA"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
-msgstr ""
+msgstr "dodatno navedi znakove iz NIZA"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
-msgstr ""
+msgstr "onemogući navođenje za znakove iz NIZA"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
-msgstr ""
+msgstr "Opcije kompatibilnosti:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
+"pri stvaranju, isto kao --old-archive; pri ekstrahiranju, isto kao --no-same-"
+"owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
-msgstr ""
+msgstr "Ostale opcije:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
-msgstr ""
+msgstr "onemogući korištenje nekih potencijalno opasnih opcija"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
-msgstr "Ne mo¾ete navesti vi¹e od jedne od `-Acdtrux' opcija"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
+msgstr ""
+"Ne možete navesti više od jedne od opcija „-Acdtrux” ili „--test-label”"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
-msgstr "Konfliktne opcije za kompresiju"
+msgstr "Konfliktne opcije komprimiranja"
 
-#: src/tar.c:996
-#, fuzzy, c-format
+#: src/tar.c:1047
+#, c-format
 msgid "Unknown signal name: %s"
-msgstr " nepoznat tip datoteke %s\n"
+msgstr "Nepoznato ime signala: %s"
 
-#: src/tar.c:1020
-#, fuzzy
+#: src/tar.c:1071
 msgid "Date sample file not found"
-msgstr "Datoteka s datumom nije pronaðena"
+msgstr "Datoteka s primjerom datuma nije pronađena"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
-msgstr "Substituiram %s za nepoznat format datuma %s"
+msgstr "Mijenjam %s za nepoznat oblik datuma %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
+#: src/tar.c:1108
 #, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+msgid "Option %s: Treating date '%s' as %s"
+msgstr "Opcija %s: Postupam s datumom „%s” kao %s"
 
-#: src/tar.c:1201
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
-#, fuzzy, c-format
 msgid "filter the archive through %s"
-msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+msgstr "filtriraj arhivu kroz %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
-msgstr ""
+msgstr "Ispravni argumenti opcije --quoting-style su:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
+"\n"
+"Uobičajeno ponašanje *ovog* programa tar je:\n"
+
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Neispravan vlasnik"
 
-# FIXME -- clarify this against source and man -- TM
-#: src/tar.c:1402
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
-msgstr "Pogre¹an faktor pakiranja u blokove"
+msgstr "Neispravan faktor pakiranja u blokove"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
-msgstr "Pogre¹na duljina trake"
+msgstr "Neispravna duljina vrpce"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
-msgstr ""
+msgstr "Neispravna vrijednost inkrementalne razine"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
-msgstr "Vi¹e od jednog datuma s pragom (threshold)"
+msgstr "Više od jednog datuma praga"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
-msgstr ""
+msgstr "Neispravna vrijednost raštrkane inačice"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
-msgstr ""
+msgstr "--atime-preserve='system' nije podržan na ovoj platformi"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
-msgstr ""
-
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Pogre¹na grupa"
+msgstr "vrijednost --checkpoint nije cjelobrojna"
 
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
-msgstr "Pogre¹an mod dan opcijom"
+msgstr "Neispravan mod naveden opcijom"
 
-#: src/tar.c:1912
-#, fuzzy
+#: src/tar.c:1858
 msgid "Invalid number"
-msgstr "Pogre¹an inode broj"
+msgstr "Neispravan broj"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Pogre¹an vlasnik"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
+"Opcija --preserve je zastarjela, koristite --preserve-permissions --preserve-"
+"order umjesto nje"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
-msgstr "Pogre¹na velièina sloga (record)"
+msgstr "Pogrešna veličina zapisa"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
-msgstr "Velièina sloga (record) mora biti vi¹ekratnik %d."
+msgstr "Veličina sloga mora biti višekratnik %d."
 
-#: src/tar.c:2019
-#, fuzzy
+#: src/tar.c:1975
 msgid "Invalid number of elements"
-msgstr "Pogre¹na duljina trake"
+msgstr "Neispravan broj elemenata"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
-msgstr ""
+msgstr "Dozvoljena je samo jedna opcija --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
-msgstr ""
+msgstr "Izobličen argument gustoće: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr ""
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "Nepoznata gustoća: „%c”"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
-msgstr "Opcije `-[0-7][lmh]' nisu podr¾ane od strane *ovog* tar-a"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
+msgstr "*Ovaj* tar ne podržava opcije „-[0-7][lmh]”"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
-msgstr ""
+msgstr "[DATOTEKA]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
-msgstr "Stara opcija `%c' zahtijeva obavezan argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
+msgstr "Stara opcija „%c” zahtijeva argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
-msgstr ""
+msgstr "--occurrence nema smisla bez popisa datoteka"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
-msgstr ""
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
+msgstr "--occurrence se ne može koristiti u traženom načinu rada"
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
-msgstr "Vi¹edjelne arhive zahtijevaju `-M' opciju"
+msgid "Multiple archive files require '-M' option"
+msgstr "Višedjelne arhive zahtijevaju opciju „-M”"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Ne mogu kombinirati --listed-incremental s --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
-msgstr ""
+msgstr "--level nema smisla bez --listed-incremental"
 
-#: src/tar.c:2423
-#, fuzzy, c-format
+#: src/tar.c:2433
+#, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
-msgstr[0] "%s: Oznaka dijela arhive je predugaèka (limit je %lu bajtova)"
-msgstr[1] "%s: Oznaka dijela arhive je predugaèka (limit je %lu bajtova)"
+msgstr[0] "%s: Oznaka dijela arhive je predugačka (ograničenje je %lu bajt)"
+msgstr[1] "%s: Oznaka dijela arhive je predugačka (ograničenje je %lu bajta)"
+msgstr[2] "%s: Oznaka dijela arhive je predugačka (ograničenje je %lu bajtova)"
 
-# FIXME -- volume -- find more suitable (ask others) -- TM
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
-msgstr "Ne mogu verificirati vi¹edjelne arhive"
+msgstr "Ne mogu provjeriti višedjelne arhive"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
-msgstr "Ne mogu verificirati komprimirane arhive"
+msgstr "Ne mogu provjeriti komprimirane arhive"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Uzorak %s se ne može koristiti"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
-msgstr "Ne mogu koristiti vi¹edjelne komprimirane arhive"
+msgstr "Ne mogu koristiti višedjelne komprimirane arhive"
 
-#: src/tar.c:2450
-#, fuzzy
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
-msgstr "Ne mogu a¾urirati komprimirane arhive"
+msgstr "Ne mogu spojiti komprimirane arhive"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
-msgstr ""
+msgstr "--pax-option se može koristiti samo na POSIX arhivama"
+
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option se može koristiti samo na POSIX arhivama"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option se može koristiti samo na POSIX arhivama"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option se može koristiti samo na POSIX arhivama"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Uzorak %s se ne može koristiti"
 
-#: src/tar.c:2492
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
-msgstr ""
+msgstr "Duljina dijela arhive ne može biti manja od veličine zapisa"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
-msgstr ""
+msgstr "--preserve-order nije kompatibilno s --listed-incremental"
 
 # LOL -- TM
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
-msgstr "Kukavièki odbijam kreirati praznu arhivu!"
+msgstr "Kukavički odbijam napraviti praznu arhivu"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
-msgstr "Opcije `-Aru' nisu kompatibilne s `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
+msgstr "Opcije „-Aru” nisu kompatibilne s „-f -”"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
-msgstr "Morate specificirati jednu od `-Acdtrux' opcija"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
+msgstr "Morate navesti jednu od opcija „-Acdtrux” ili „--test-label”"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
-msgstr ""
+msgstr "Izlazim sa stanjem neuspjeha zbog prethodnih grešaka"
 
-#: src/update.c:86
-#, fuzzy, c-format
+#: src/update.c:87
+#, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
-msgstr[0] "%s: Datoteka se skratila za %s bajtova"
-msgstr[1] "%s: Datoteka se skratila za %s bajtova"
+msgstr[0] "%s: Datoteka skraćena za %s bajt"
+msgstr[1] "%s: Datoteka skraćena za %s bajta"
+msgstr[2] "%s: Datoteka skraćena za %s bajtova"
 
 #: src/xheader.c:164
 #, c-format
 msgid "Keyword %s is unknown or not yet implemented"
-msgstr ""
+msgstr "Ključna riječ %s je nepoznata ili još nije implementirana"
 
-#: src/xheader.c:174
-#, fuzzy
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
-msgstr "Oznaka vremena izvan opsega"
+msgstr "Vremenska oznaka je izvan dozvoljenih granica"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
-msgstr ""
+msgstr "Uzorak %s se ne može koristiti"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
-msgstr ""
+msgstr "Ključnu riječ %s se ne može zaobići"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
-msgstr ""
-
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: nedostaje duljina"
 
-# FIXME??
-#: src/xheader.c:557
-#, fuzzy, c-format
+#: src/xheader.c:676
+#, c-format
 msgid "Extended header length %*s is out of range"
-msgstr "Base-64 vrijednost s predznakom %s iz arhive je izvan %s opsega"
+msgstr "Duljina proširenog zaglavlja %*s je izvan granica"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: nedostaje praznina nakon duljine"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: nedostaje znak jednakosti"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: nedostaje novi redak"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
-msgstr ""
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
+msgstr "Zanemarujem nepoznatu ključnu riječ proširenog zaglavlja „%s”"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
+"Stvoreni par ključna_riječ/vrijednost je predugačak (ključna_riječ=%s, "
+"duljina=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
-#, fuzzy, c-format
+#: src/xheader.c:1042
+#, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
-msgstr "Vrijednost %s iz arhive je izvan %s opsega %s..%s"
+msgstr "Prošireno zaglavlje %s=%s je izvan raspona %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: neispravan %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
-msgstr ""
+msgstr "Izobličeno prošireno zaglavlje: suvišan %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
+"Izobličeno prošireno zaglavlje: neispravan %s: neočekivan znak razdvajanja %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
+"Izobličeno prošireno zaglavlje: neispravan %s: neparan broj vrijednosti"
 
-#: src/checkpoint.c:107
-#, fuzzy, c-format
+#: src/checkpoint.c:109
+#, c-format
 msgid "%s: not a valid timeout"
-msgstr "%s: Pogre¹na grupa"
+msgstr "%s: nije ispravno vremensko ograničenje"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
-msgstr ""
+msgstr "%s: nepoznata radnja kontrolne točke"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
-msgstr ""
+msgstr "piši"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
-msgstr ""
+msgstr "čitaj"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
-#, fuzzy, c-format
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
+#, c-format
 msgid "Write checkpoint %u"
-msgstr "Toèka provjere ispisa %d"
+msgstr "Kontrolna točka pisanja %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
-#, fuzzy, c-format
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
+#, c-format
 msgid "Read checkpoint %u"
-msgstr "Toèka provjere èitanja %d"
+msgstr "Kontrolna točka čitanja %u"
 
 #: tests/genfile.c:111
-#, fuzzy
 msgid ""
 "genfile manipulates data files for GNU paxutils test suite.\n"
 "OPTIONS are:\n"
-msgstr "Generiraj podatkovne datoteke za GNU tar skup test programa.\n"
+msgstr ""
+"genfile rukuje podatkovnim datotekama GNU paxutils skupa testova.\n"
+"OPCIJE su:\n"
 
 #: tests/genfile.c:127
-#, fuzzy
 msgid "File creation options:"
-msgstr "Konfliktne opcije za kompresiju"
+msgstr "Opcije stvaranja datoteka:"
 
 #: tests/genfile.c:128 tests/genfile.c:139
 msgid "SIZE"
-msgstr ""
+msgstr "VELIČINA"
 
 #: tests/genfile.c:129
 msgid "Create file of the given SIZE"
-msgstr ""
+msgstr "Napravi datoteku navedene VELIČINE"
 
 #: tests/genfile.c:131
-#, fuzzy
 msgid "Write to file NAME, instead of standard output"
-msgstr "Pogre¹ka u pisanju na standardni izlaz"
+msgstr "Piši u datoteku IME umjesto na standardni izlaz"
 
 #: tests/genfile.c:133
 msgid "Read file names from FILE"
-msgstr ""
+msgstr "Čitaj imena datoteka iz DATOTEKE"
 
 #: tests/genfile.c:135
 msgid "-T reads null-terminated names"
-msgstr ""
+msgstr "-T čita imena završena praznim (null) znakom"
 
 #: tests/genfile.c:137
 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
-msgstr ""
+msgstr "Popuni datoteku navedenim UZORKOM. UZORAK je „default” ili „zeros”"
 
 #: tests/genfile.c:140
 msgid "Size of a block for sparse file"
-msgstr ""
+msgstr "Veličina bloka za raštrkanu datoteku"
 
 #: tests/genfile.c:142
 msgid "Generate sparse file. Rest of the command line gives the file map."
 msgstr ""
+"Stvori raštrkanu datoteku. Ostatak naredbenog retka zadaje mapu datoteke."
 
 #: tests/genfile.c:144
 msgid "OFFSET"
-msgstr ""
+msgstr "POMAK"
 
 #: tests/genfile.c:145
 msgid "Seek to the given offset before writing data"
-msgstr ""
+msgstr "Idi na zadani pomak prije pisanja podataka"
 
 #: tests/genfile.c:151
 msgid "File statistics options:"
-msgstr ""
+msgstr "Opcije statistike datoteka:"
 
 #: tests/genfile.c:154
 msgid "Print contents of struct stat for each given file. Default FORMAT is: "
 msgstr ""
+"Ispiši sadržaj statistike strukture za svaku navedenu datoteku. Uobičajeni "
+"OBLIK je: "
 
 #: tests/genfile.c:161
 msgid "Synchronous execution options:"
-msgstr ""
+msgstr "Opcije sinkronog izvršavanja:"
 
 #: tests/genfile.c:163
-#, fuzzy
 msgid "OPTION"
-msgstr ""
-"\n"
-"Kori¹tenje: %s [OPCIJA]...\n"
+msgstr "OPCIJA"
 
 #: tests/genfile.c:164
 msgid ""
 "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, "
 "--unlink"
 msgstr ""
+"Izvrši ARGUMENTE. Korisno uz --checkpoint i jednu od opcija --cut, --append, "
+"--touch, --unlink"
 
 #: tests/genfile.c:167
 msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
 msgstr ""
+"Izvrši zadane radnje (pogledajte dolje) pri dostizanju kontrolne točke BROJ"
 
 #: tests/genfile.c:170
 msgid "Set date for next --touch option"
-msgstr ""
+msgstr "Postavi datum za sljedeću opciju --touch"
 
 #: tests/genfile.c:173
 msgid "Display executed checkpoints and exit status of COMMAND"
-msgstr ""
+msgstr "Prikaži izvršene kontrolne točke i izlazno stanje NAREDBE"
 
 #: tests/genfile.c:178
 msgid ""
 "Synchronous execution actions. These are executed when checkpoint number "
 "given by --checkpoint option is reached."
 msgstr ""
+"Radnje sinkronog izvršavanja. One se izvršavaju kad se dostigne broj "
+"kontrolne točke zadan opcijom --checkpoint."
 
 #: tests/genfile.c:181
 msgid ""
 "Truncate FILE to the size specified by previous --length option (or 0, if it "
 "is not given)"
 msgstr ""
+"Skrati DATOTEKU na veličinu zadanu prethodnom opcijom --length (ili 0 ako "
+"nije zadano)"
 
 #: tests/genfile.c:185
 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
 msgstr ""
+"Dodaj VELIČINA bajtova u DATOTEKU. VELIČINA je zadana prethodnom opcijom --"
+"length."
 
 #: tests/genfile.c:188
 msgid "Update the access and modification times of FILE"
-msgstr ""
+msgstr "Ažuriraj vrijeme pristupa i uređivanja DATOTEKE"
 
 #: tests/genfile.c:191
 msgid "Execute COMMAND"
-msgstr ""
+msgstr "Izvrši NAREDBU"
 
 #: tests/genfile.c:194
 msgid "Unlink FILE"
-msgstr ""
+msgstr "Ukloni vezu DATOTEKE"
 
 #: tests/genfile.c:244
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid size: %s"
-msgstr "Pogre¹na oznaka vremena"
+msgstr "Neispravna veličina: %s"
 
 #: tests/genfile.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Number out of allowed range: %s"
-msgstr "Inode broj izvan opsega"
+msgstr "Broj izvan dozvoljenih granica: %s"
 
 #: tests/genfile.c:252
 #, c-format
 msgid "Negative size: %s"
-msgstr ""
+msgstr "Negativna veličina: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
-msgstr ""
+msgstr "stat(%s) nije uspio"
 
 #: tests/genfile.c:268
 #, c-format
 msgid "requested file length %lu, actual %lu"
-msgstr ""
+msgstr "tražena duljina datoteke %lu, stvarna %lu"
 
 #: tests/genfile.c:272
 #, c-format
 msgid "created file is not sparse"
-msgstr ""
+msgstr "stvorena datoteka nije raštrkana"
 
 #: tests/genfile.c:361
 #, c-format
 msgid "Error parsing number near `%s'"
-msgstr ""
+msgstr "Greška analize broja kod „%s”"
 
 #: tests/genfile.c:367
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown date format"
-msgstr "Nepoznata pogre¹ka u sistemu"
+msgstr "Nepoznat oblik datuma"
 
 #: tests/genfile.c:391
 msgid "[ARGS...]"
-msgstr ""
+msgstr "[ARGUMENTI...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
-msgstr ""
+msgstr "ne mogu otvoriti „%s”"
 
 #: tests/genfile.c:434
-#, fuzzy
 msgid "cannot seek"
-msgstr "Ne mogu zatvoriti"
+msgstr "ne mogu tražiti"
 
 #: tests/genfile.c:451
 #, c-format
 msgid "file name contains null character"
-msgstr ""
+msgstr "ime datoteke sadrži prazan (null) znak"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
+"ne mogu stvoriti raštrkane datoteke na standardnom izlazu, koristite opciju "
+"--file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
-msgstr ""
+msgstr "netočna maska (kod „%s”)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
-#, fuzzy, c-format
+#: tests/genfile.c:602 tests/genfile.c:635
+#, c-format
 msgid "Unknown field `%s'"
-msgstr " nepoznat tip datoteke %s\n"
+msgstr "Nepoznato polje „%s”"
 
-#: tests/genfile.c:660
-#, fuzzy, c-format
+#: tests/genfile.c:662
+#, c-format
 msgid "cannot set time on `%s'"
-msgstr "%s: Neuspjeli seek na %s"
+msgstr "ne mogu postaviti vrijeme na „%s”"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
 #, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "ne mogu ukloniti vezu „%s”"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "naredba %s nije uspjela"
+
+#: tests/genfile.c:706
+#, c-format
 msgid "cannot unlink `%s'"
-msgstr "%s: Neuspjeli seek na %s"
+msgstr "ne mogu ukloniti vezu „%s”"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
-msgstr ""
+msgstr "Izlaz naredbe uspješan\n"
 
-#: tests/genfile.c:827
-#, fuzzy, c-format
+#: tests/genfile.c:835
+#, c-format
 msgid "Command failed with status %d\n"
-msgstr "Potproces zavr¹io uz signal %d"
+msgstr "Naredba nije uspjela sa stanjem %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
-msgstr ""
+msgstr "Naredba završena signalom %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
-msgstr ""
+msgstr "Naredba zaustavljena signalom %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
-msgstr ""
+msgstr "Naredba je izbacila jezgru\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
-msgstr ""
+msgstr "Naredba završena\n"
 
-# FIXME -- 'mangled filenames'???
-#: tests/genfile.c:871
-#, fuzzy, c-format
+#: tests/genfile.c:879
+#, c-format
 msgid "--stat requires file names"
-msgstr "--Manglirana imena datoteka--\n"
-
-#, fuzzy
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Datoteka uklonjena (removed) prije nego ¹to smo ju proèitali"
-
-#, fuzzy
-#~ msgid "Cannot restore working directory"
-#~ msgstr "Ne mogu pohraniti radni direktorij"
-
-#, fuzzy
-#~ msgid "Cannot resolve hostname %s"
-#~ msgstr "%s: Ne mogu preimenovati u %s"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: ilegalna opcija -- %c\n"
-
-#~ msgid "Reading %s\n"
-#~ msgstr "Èitam %s\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to <%s>.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Prijavi gre¹ke i bugove na <bug-tar@gnu.org>.\n"
+msgstr "--stat zahtijeva imena datoteka"
 
-#, fuzzy
-#~ msgid "filter the archive through compress"
-#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju"
-
-#, fuzzy
-#~ msgid "filter the archive through lzma"
-#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju"
-
-#, fuzzy
-#~ msgid "filter the archive through lzop"
-#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Ne mogu saznati trenutni radni direktorij"
 
-#~ msgid "rmtd: Cannot allocate buffer space\n"
-#~ msgstr "rmtd: Ne mogu alocirati prostor za meðuspremnik\n"
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "razvrstaj imena za ekstrakciju da odgovaraju arhivi"
 
-#~ msgid "Cannot allocate buffer space"
-#~ msgstr "Ne mogu alocirati prostor za meðuspremnik"
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Polje predugačko pri čitanju datoteke snimke stanja"
 
-#~ msgid "Try `%s --help' for more information.\n"
-#~ msgstr "Poku¹ajte `%s --help' za vi¹e informacija.\n"
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Greška čitanja u datoteci snimke stanja"
 
-#, fuzzy
-#~ msgid ""
-#~ "Usage: %s [OPTION]\n"
-#~ "Manipulate a tape drive, accepting commands from a remote process.\n"
-#~ "\n"
-#~ "  --version  Output version info.\n"
-#~ "  --help     Output this help.\n"
-#~ msgstr ""
-#~ "Kori¹tenje: %s [OPCIJA]\n"
-#~ "Upravljaj jedinicom trake, prihvaæajuæi naredbe od udaljenih procesa.\n"
-#~ "\n"
-#~ "  --version  Informacije o verziji programskih ispisa.\n"
-#~ "  --help  Ispi¹i ovu pomoæ.\n"
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Neočekivana vrijednost polja u datoteci snimke stanja"
 
-# FIXME -- find xlation for 'seek offset' -- TM
-#, fuzzy
-#~ msgid "Seek offset error"
-#~ msgstr "Seek ofset izvan opsega"
+#~ msgid "Invalid group"
+#~ msgstr "Neispravna grupa"
 
-#~ msgid "Premature end of file"
-#~ msgstr "Prerani kraj datoteke"
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Duljina proširenog zaglavlja je izvan dozvoljenih granica"
 
-#~ msgid "Error is not recoverable: exiting now"
-#~ msgstr "Gre¹ka iz koje se ne mogu oporaviti: zavr¹avam s radom"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ilegalna opcija -- %c\n"
 
 #~ msgid "block size"
-#~ msgstr "velièina bloka"
+#~ msgstr "veličina bloka"
 
 #~ msgid "Cannot dup"
 #~ msgstr "Neuspjeli dup"
@@ -2795,17 +2933,20 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgid "tar (grandchild)"
 #~ msgstr "tar (pod-podproces)"
 
+#~ msgid "Reading %s\n"
+#~ msgstr "Čitam %s\n"
+
 #~ msgid "WARNING: No volume header"
 #~ msgstr "UPOZORENJE: Nema zaglavlja za dio arhive"
 
 #~ msgid "Child returned status %d"
-#~ msgstr "Podproces zavr¹io uz status %d"
+#~ msgstr "Podproces završio uz status %d"
 
 #~ msgid "Member names contain `..'"
-#~ msgstr "Imena èlanova sadr¾e `..'"
+#~ msgstr "Imena Ä\8dlanova sadrže `..'"
 
 #~ msgid "%s: Member name contains `..'"
-#~ msgstr "%s: Ime èlana sadr¾i `..'"
+#~ msgstr "%s: Ime Ä\8dlana sadrži `..'"
 
 # FIXME -- clarify this against source -- TM -- didn't help
 # Paul E. said this means:
@@ -2813,22 +2954,22 @@ msgstr "--Manglirana imena datoteka--\n"
 # "tar" read a LONGNAME or LONGLINK header from the archive in a context
 # where it was not expected.
 #~ msgid "Visible long name error"
-#~ msgstr "Vidljiva pogre¹ka u dugom imenu"
+#~ msgstr "Vidljiva pogreška u dugom imenu"
+
+#~ msgid "Error is not recoverable: exiting now"
+#~ msgstr "Greška iz koje se ne mogu oporaviti: završavam s radom"
 
 #~ msgid "Device number out of range"
-#~ msgstr "Broj ureðaja izvan opsega"
+#~ msgstr "Broj uređaja izvan opsega"
 
 #~ msgid "Visible longname error"
-#~ msgstr "Vidljiva pogre¹ka u dugom imenu"
+#~ msgstr "Vidljiva pogreška u dugom imenu"
 
 #~ msgid "Renamed %s to %s"
 #~ msgstr "Preimenovao %s u %s"
 
-#~ msgid "%s: Cannot symlink to %s"
-#~ msgstr "%s: Ne mogu napraviti simbolièki link prema %s"
-
 #~ msgid "Symlinked %s to %s"
-#~ msgstr "Napravio simbolièki link %s prema %s"
+#~ msgstr "Napravio simbolički link %s prema %s"
 
 #~ msgid "Unknown demangling command %s"
 #~ msgstr "Nepoznata naredba za demangliranje %s"
@@ -2836,6 +2977,12 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgid "Missing file name after -C"
 #~ msgstr "Nedostaje ime datoteke nakon -C"
 
+#~ msgid "rmtd: Cannot allocate buffer space\n"
+#~ msgstr "rmtd: Ne mogu alocirati prostor za međuspremnik\n"
+
+#~ msgid "Cannot allocate buffer space"
+#~ msgstr "Ne mogu alocirati prostor za međuspremnik"
+
 #~ msgid ""
 #~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
 #~ "You may redistribute it under the terms of the GNU General Public "
@@ -2843,9 +2990,12 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "see the file named COPYING for details."
 #~ msgstr ""
 #~ "Ovaj program dolazi BEZ GARANCIJA, do granica dozvoljenih zakonom.\n"
-#~ "Mo¾ete ga redistribuirati pod uvjetima GNU General Public License;\n"
+#~ "Možete ga redistribuirati pod uvjetima GNU General Public License;\n"
 #~ "vidi datoteku imena COPYING za detalje."
 
+#~ msgid "Premature end of file"
+#~ msgstr "Prerani kraj datoteke"
+
 # FIXME -- now this is supposed to be funny
 #~ msgid "rmtd: Garbage command %c\n"
 #~ msgstr "rmtd: %c je neispravna naredba\n"
@@ -2857,7 +3007,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr ""
 #~ "GNU `tar' sprema mnogo datoteka zajedno u jednu arhivu na traci ili "
 #~ "disku, i\n"
-#~ "mo¾e povratiti pojedinaène datoteke iz arhive.\n"
+#~ "može povratiti pojedinačne datoteke iz arhive.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -2866,7 +3016,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr ""
 #~ "\n"
 #~ "Ako duga opcija pokazuje agument kao obavezan, onda je obavezan\n"
-#~ "i za ekvivalentnu kratku opciju takoðer.  Jednako vrijedi i za "
+#~ "i za ekvivalentnu kratku opciju također.  Jednako vrijedi i za "
 #~ "opcionalne\n"
 #~ "argumente.\n"
 
@@ -2886,17 +3036,17 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr ""
 #~ "\n"
 #~ "Glavni mod rada:\n"
-#~ "  -t, --list              ispi¹i sadr¾aje arhive\n"
+#~ "  -t, --list              ispiÅ¡i sadržaje arhive\n"
 #~ "  -x, --extract, --get    ekstrahiraj datoteke iz arhive\n"
 #~ "  -c, --create            kreiraj novu arhivu\n"
-#~ "  -d, --diff, --compare   naði razlike izmeðu arhive i datoteènog "
+#~ "  -d, --diff, --compare   nađi razlike između arhive i datotečnog "
 #~ "sustava\n"
 #~ "  -r, --append            nadodaj datoteke na kraj arhive\n"
 #~ "  -u, --update            nadodaj samo datoteke novije od kopije u "
 #~ "arhivi\n"
 #~ "  -A, --catenate          nadodaj tar datoteke na arhivu\n"
 #~ "      --concatenate       isto kao -A\n"
-#~ "      --delete            izbri¹i iz arhive (ne radi na magnetskim "
+#~ "      --delete            izbriši iz arhive (ne radi na magnetskim "
 #~ "trakama!)\n"
 
 #~ msgid ""
@@ -2924,16 +3074,16 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "files\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Modifikatori operacija:  -W, --verify             poku¹aj verificirati "
+#~ "Modifikatori operacija:  -W, --verify             pokušaj verificirati "
 #~ "arhivu nakon pisanja\n"
-#~ "      --remove-files       obri¹i datoteke nakon njihovog dodavanja "
+#~ "      --remove-files       obriši datoteke nakon njihovog dodavanja "
 #~ "arhivi\n"
-#~ "  -k, --keep-old-files     ne zamjenjuj postojeæe datoteke kod "
+#~ "  -k, --keep-old-files     ne zamjenjuj postojeće datoteke kod "
 #~ "ekstrakcije\n"
-#~ "      --overwrite          prepisuj postojeæe datoteke kod ekstrakcije\n"
+#~ "      --overwrite          prepisuj postojeće datoteke kod ekstrakcije\n"
 #~ "      --overwrite-dir      prepisuj meta-podatke direktorija kod "
 #~ "ekstrakcije\n"
-#~ "  -U, --unlink-first       obri¹i svaku datoteku prije ekstrakcije preko "
+#~ "  -U, --unlink-first       obriši svaku datoteku prije ekstrakcije preko "
 #~ "nje\n"
 #~ "      --recursive-unlink   isprazni hijerarhije prije ekstrahiranja u\n"
 #~ "                               direktorij\n"
@@ -2945,8 +3095,8 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "  -g, --listed-incremental=FILE\n"
 #~ "                           obradi inkrementalni backup novog GNU-formata\n"
 #~ "      --ignore-failed-read\n"
-#~ "                           ne zavr¹avaj uz ne-nula izlazni kod na\n"
-#~ "                               neèitljivim datotekama\n"
+#~ "                           ne završavaj uz ne-nula izlazni kod na\n"
+#~ "                               nečitljivim datotekama\n"
 
 # FIXME -- 'volume number' -- TM
 #~ msgid ""
@@ -2974,17 +3124,17 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "      --owner=NAME             forsiraj NAME za vlasnika dodanih "
 #~ "datoteka\n"
 #~ "      --group=NAME             forsiraj NAME za grupu dodanih datoteka\n"
-#~ "      --mode=CHANGES           forsiraj (symbolièke) promjene pristupnog\n"
+#~ "      --mode=CHANGES           forsiraj (symboličke) promjene pristupnog\n"
 #~ "                                   moda za dodane datoteke\n"
 #~ "      --atime-preserve         ne mijenjaj vremena pristupa (access "
 #~ "time)\n"
 #~ "                                   pohranjenim datotekama\n"
 #~ "  -m, --modification-time      ne ekstrahiraj vremena modifikacije\n"
-#~ "      --same-owner             poku¹aj postaviti vlasni¹tvo datoteka\n"
+#~ "      --same-owner             pokušaj postaviti vlasništvo datoteka\n"
 #~ "                                   kao u arhivi\n"
 #~ "      --no-same-owner          ekstrahiraj datoteke pod svojim "
-#~ "vlasni¹tvom\n"
-#~ "      --numeric-owner          uvijek koristi numerièka imena\n"
+#~ "vlasništvom\n"
+#~ "      --numeric-owner          uvijek koristi numerička imena\n"
 #~ "                                   korisnika/grupa\n"
 #~ "  -p, --same-permissions       ekstrahiraj informacije o dozvolama\n"
 #~ "      --no-same-permissions    ne ekstrahiraj informacije o dozvolama\n"
@@ -3013,15 +3163,15 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "      --volno-file=FILE          use/update the volume number in FILE\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Selektiranje i mijenjanje ureðaja:\n"
-#~ "  -f, --file=ARCHIVE             koristi datoteku ili ureðaj za "
+#~ "Selektiranje i mijenjanje uređaja:\n"
+#~ "  -f, --file=ARCHIVE             koristi datoteku ili uređaj za "
 #~ "arhiviranje\n"
 #~ "                                     ARCHIVE\n"
-#~ "      --force-local              ime arhive je lokalno èak i ako sadr¾i\n"
-#~ "                                     dvotoèku\n"
+#~ "      --force-local              ime arhive je lokalno Ä\8dak i ako sadrži\n"
+#~ "                                     dvotočku\n"
 #~ "      --rsh-command=COMMAND      koristi remote COMMAND umjesto rsh\n"
 #~ "  -[0-7][lmh]                    specificiraj drive i density\n"
-#~ "  -M, --multi-volume             kreiraj/izlistaj/ekstrahiraj vi¹edjelne\n"
+#~ "  -M, --multi-volume             kreiraj/izlistaj/ekstrahiraj višedjelne\n"
 #~ "                                     arhive\n"
 #~ "  -L, --tape-length=NUM          promijeni traku nakon ispisivanja\n"
 #~ "                                     NUM x 1024 bajtova\n"
@@ -3031,7 +3181,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "      --volno-file=FILE          koristi/nadopuni volume number u FILE\n"
 
 # FIXME -- clear this 'device blocking' xlation -- TM
-# FIXME -- vidi ovaj 'znaèi EOF' u man -- TM
+# FIXME -- vidi ovaj 'znači EOF' u man -- TM
 #~ msgid ""
 #~ "\n"
 #~ "Device blocking:\n"
@@ -3042,14 +3192,14 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "  -B, --read-full-records        reblock as we read (for 4.2BSD pipes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Faktor grupiranja u blokove na ureðaju (device blocking):\n"
+#~ "Faktor grupiranja u blokove na uređaju (device blocking):\n"
 #~ "  -b, --blocking-factor=BLOCKS   BLOCKS x 512 bajtova po zapisu (record)\n"
-#~ "      --record-size=SIZE         SIZE bajtova po zapisu, vi¹ekratnik od "
+#~ "      --record-size=SIZE         SIZE bajtova po zapisu, višekratnik od "
 #~ "512\n"
 #~ "  -i, --ignore-zeros             ignoriraj blokove ispunjene nulama u "
 #~ "arhivi\n"
-#~ "                                     (koji inaèe znaèe EOF)\n"
-#~ "  -B, --read-full-records        pregrupiraj blokove dok èita¹\n"
+#~ "                                     (koji inače znače EOF)\n"
+#~ "  -B, --read-full-records        pregrupiraj blokove dok čitaš\n"
 #~ "                                     (za 4.2BSD cjevovode -- pipes)\n"
 
 #~ msgid ""
@@ -3073,14 +3223,14 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "arhive NAME\n"
 #~ "              PATTERN                u vrijeme izlistavanja/ekstrakcije,\n"
 #~ "                                         koristi PATTERN za globbing\n"
-#~ "  -o, --old-archive, --portability   ispi¹i V7 format arhivu\n"
-#~ "      --posix                        ispi¹i POSIX format arhivu\n"
+#~ "  -o, --old-archive, --portability   ispiši V7 format arhivu\n"
+#~ "      --posix                        ispiši POSIX format arhivu\n"
 #~ "  -j, --bzip2                        filtriraj arhivu kroz bzip2\n"
 #~ "  -z, --gzip, --ungzip               filtriraj arhivu kroz gzip\n"
 #~ "  -Z, --compress, --uncompress       filtriraj arhivu kroz compress\n"
 #~ "      --use-compress-program=PROG    filtriraj kroz program PROG (moji "
 #~ "mora\n"
-#~ "                                         prihvaæati opciju -d)\n"
+#~ "                                         prihvaćati opciju -d)\n"
 
 #~ msgid ""
 #~ "\n"
@@ -3116,35 +3266,35 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "  -C, --directory=DIR          promijeni direktorij u DIR\n"
 #~ "  -T, --files-from=NAME        dobavi imena za ekstrahirati ili kreirati\n"
 #~ "                                   iz datoteke NAME\n"
-#~ "      --null                   -T èita nul-terminirana imena, onemoguæi -"
+#~ "      --null                   -T čita nul-terminirana imena, onemogući -"
 #~ "C\n"
 #~ "      --exclude=PATTERN        izostavi datoteke, dane s PATTERN\n"
 #~ "  -X, --exclude-from=FILE      izostavi uzorak datoteka: pobrojane u "
 #~ "FILE\n"
-#~ "      --anchored                - koje zapoèinju tim imenom (default)\n"
+#~ "      --anchored                - koje započinju tim imenom (default)\n"
 #~ "      --no-anchored             - koje se podudaraju s uzorkom nakon "
 #~ "nekog '/'\n"
 #~ "      --ignore-case            izostavljanje ignorira razliku\n"
-#~ "                                   izmeðu velikih i malih slova\n"
+#~ "                                   između velikih i malih slova\n"
 #~ "      --no-ignore-case         izostavljanje uzima u obzir razliku\n"
-#~ "                                   izmeðu malih i velikih slova "
+#~ "                                   između malih i velikih slova "
 #~ "(default)\n"
 #~ "      --wildcards              izostavi uzorke koristi wildcard "
 #~ "(default)\n"
-#~ "      --no-wildcards           uzorci za izostavljanje su obièni nizovi\n"
+#~ "      --no-wildcards           uzorci za izostavljanje su obični nizovi\n"
 #~ "      --wildcards-match-slash  izostavi uzorak wildcard podudara '/'\n"
 #~ "                                                                (default)\n"
 #~ "      --no-wildcards-match-slash\n"
 #~ "                               izostavi uzorak - wildcard ne podudara "
 #~ "'/'\n"
-#~ "  -P, --absolute-names         ne bri¹i vodeæe `/' iz imena datoteka\n"
-#~ "  -h, --dereference            ne arhiviraj simbolièki link nego "
+#~ "  -P, --absolute-names         ne briši vodeće `/' iz imena datoteka\n"
+#~ "  -h, --dereference            ne arhiviraj simbolički link nego "
 #~ "datoteku\n"
 #~ "                                   na koju pokazuje\n"
 #~ "      --no-recursion           ne idi rekurzivno u poddirektorije\n"
-#~ "  -l, --one-file-system        ne prelazi na drugi datoteèni sustav\n"
+#~ "  -l, --one-file-system        ne prelazi na drugi datotečni sustav\n"
 #~ "                                   kod kreiranja datoteka\n"
-#~ "  -K, --starting-file=NAME     poèni s imenom NAME u arhivi kod "
+#~ "  -K, --starting-file=NAME     počni s imenom NAME u arhivi kod "
 #~ "ekstrakcije\n"
 
 #~ msgid ""
@@ -3185,15 +3335,15 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr ""
 #~ "\n"
 #~ "Informativni ispis:\n"
-#~ "      --help            ispi¹i ovu pomoæ, potom zavr¹i\n"
-#~ "      --version         ispi¹i broj verzije tar programa, potom zavr¹i\n"
-#~ "  -v, --verbose         op¹irno izlistaj imena datoteka kod procesiranja\n"
-#~ "      --checkpoint      ispisuj imena direktorija dok èita¹ arhivu\n"
+#~ "      --help            ispiši ovu pomoć, potom završi\n"
+#~ "      --version         ispiši broj verzije tar programa, potom završi\n"
+#~ "  -v, --verbose         opširno izlistaj imena datoteka kod procesiranja\n"
+#~ "      --checkpoint      ispisuj imena direktorija dok čitaš arhivu\n"
 #~ "      --totals          ispisuj ukupan broj ispisanih bajtova dok "
-#~ "kreira¹\n"
+#~ "kreiraš\n"
 #~ "                            arhivu\n"
-#~ "  -R, --block-number    prika¾i broj bloka unutar arhive uz svaku poruku\n"
-#~ "  -w, --interactive     tra¾i odobrenje za svaku akciju\n"
+#~ "  -R, --block-number    prikaži broj bloka unutar arhive uz svaku poruku\n"
+#~ "  -w, --interactive     traži odobrenje za svaku akciju\n"
 #~ "      --confirmation    isto kao -w\n"
 
 #~ msgid ""
@@ -3208,13 +3358,13 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "*This* `tar' defaults to `-f%s -b%d'.\n"
 #~ msgstr ""
 #~ "\n"
-#~ "GNU tar ne mo¾e èitati ili proizvoditi `--posix' arhive.  Ako je\n"
+#~ "GNU tar ne može čitati ili proizvoditi `--posix' arhive.  Ako je\n"
 #~ "POSIXLY_CORRECT definirano u environment okolini, GNU ekstenzije se\n"
-#~ "onemoguæuju pomoæu `--posix'. Podr¹ka za POSIX je samo djelomièno\n"
-#~ "implementirana, ne raèunajte jo¹ na nju.\n"
-#~ "ARCHIVE mo¾e biti FILE, HOST:FILE ili USER@HOST:FILE; DATE mo¾e biti\n"
-#~ "tekstualni datum ili ime datoteke koje zapoèinje s `/' ili `.',\n"
-#~ "u kojem sluèaju je kori¹ten datum datoteke.\n"
+#~ "onemogućuju pomoću `--posix'. Podrška za POSIX je samo djelomično\n"
+#~ "implementirana, ne računajte još na nju.\n"
+#~ "ARCHIVE može biti FILE, HOST:FILE ili USER@HOST:FILE; DATE može biti\n"
+#~ "tekstualni datum ili ime datoteke koje započinje s `/' ili `.',\n"
+#~ "u kojem slučaju je korišten datum datoteke.\n"
 #~ "*Ovaj* `tar' podrazumijeva `-f%s -b%d'.\n"
 
 #~ msgid "Obsolete option, now implied by --blocking-factor"
@@ -3227,7 +3377,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr "Zastarjelo ime opcije zamijenjeno s --read-full-records"
 
 #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
-#~ msgstr "Upozorenje: opcija -I nije podr¾ana; mo¾da ste mislili -j ili -T?"
+#~ msgstr "Upozorenje: opcija -I nije podržana; možda ste mislili -j ili -T?"
 
 #~ msgid "Obsolete option name replaced by --touch"
 #~ msgstr "Zastarjelo ime opcije zamijenjeno s --touch"
@@ -3239,7 +3389,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr "Zastarjelo ime opcije zamijenjeno s --block-number"
 
 #~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
-#~ msgstr "Upozorenje: opcija -y nije podr¾ana; mo¾da ste ¾eljeli -j?"
+#~ msgstr "Upozorenje: opcija -y nije podržana; možda ste Å¾eljeli -j?"
 
 #~ msgid "Obsolete option name replaced by --backup"
 #~ msgstr "Zastarjelo ime opcije zamijenjeno s --backup"
@@ -3248,7 +3398,7 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ msgstr "Napisali John Gilmore i Jay Fenlason."
 
 #~ msgid "Error exit delayed from previous errors"
-#~ msgstr "Pogre¹an izlaz (naknadno) zbog prija¹njih pogre¹aka"
+#~ msgstr "Pogrešan izlaz (naknadno) zbog prijašnjih pogrešaka"
 
 #~ msgid ""
 #~ "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -3260,9 +3410,9 @@ msgstr "--Manglirana imena datoteka--\n"
 #~ "      --version              output version information and exit\n"
 #~ msgstr ""
 #~ "Ako duga opcija pokazuje argument kao obavezan, tada je on obavezan\n"
-#~ "takoðer i za ekvivalentnu kratku verziju opcije.\n"
+#~ "također i za ekvivalentnu kratku verziju opcije.\n"
 #~ "\n"
 #~ "  -l, --file-length=LENGTH   LENGTH (duljina) generirane datoteke\n"
 #~ "  -p, --pattern=PATTERN      PATTERN je `default' ili `zeros'\n"
-#~ "      --help                 ispi¹i ovu pomoæ i zavr¹i\n"
-#~ "      --version              ispi¹i informaciju o verziji i zavr¹i\n"
+#~ "      --help                 ispiši ovu pomoć i završi\n"
+#~ "      --version              ispiši informaciju o verziji i završi\n"
index 42bf11858b13aa0fb655466242974eb2912d663e..efb9c1a0bbd1c5a301cf2e069d6de44e774f5d2d 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index e812981b1c224a14da32086339ddaeda97737e5b..fb23d9f6912e5fb3e345288edb2f3b69208e3235 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -4,12 +4,12 @@
 #
 # Gábor István <stive@mezobereny.hu>, 2002.
 # Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2010.
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.24\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2010-10-25 14:41+0200\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -31,36 +31,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "a(z) „%s” argumentum nem egyértelmű a következőhöz: „%s”"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Az érvényes argumentumok a következők:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s értéke nem nagyobb, mint %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Az ARGP_HELP_FMT paraméter egy értéket igényel"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Az ARGP_HELP_FMT paraméternek pozitívnak kell lennie"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Szemét az ARGP_HELP_FMT-ben: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -68,31 +67,31 @@ msgstr ""
 "A hosszú kapcsolók kötelező vagy elhagyható argumentumai a megfelelő rövid "
 "kapcsolókhoz is kötelezőek vagy elhagyhatóak."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Használat:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  vagy: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [KAPCSOLÓ...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 "További információkért próbálja kiadni a „%s --help” vagy „%s --usage” "
 "parancsokat.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "A hibák a(z) %s címen jelenthetők.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Ismeretlen rendszerhiba"
 
@@ -104,7 +103,7 @@ msgstr "ezen súgószöveg megjelenítése"
 msgid "give a short usage message"
 msgstr "rövid használati utasítás megjelenítése"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NÉV"
@@ -125,17 +124,16 @@ msgstr "szünet MP másodpercre (alapértelmezetten 3600)"
 msgid "print program version"
 msgstr "a programverzió kiírása"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMHIBA) A verziószám ismeretlen???"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: túl sok argumentum\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMHIBA) A kapcsolót fel kellett volna ismerni???"
 
@@ -143,62 +141,62 @@ msgstr "(PROGRAMHIBA) A kapcsolót fel kellett volna ismerni???"
 msgid "write error"
 msgstr "íráshiba"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: a(z) „--%s” kapcsolóhoz argumentum szükséges\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: a „-W %s” kapcsolóhoz argumentum szükséges\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "elfogyott a memória"
 
@@ -214,28 +212,30 @@ msgstr "a visszatérés meghiúsult a kiinduló munkakönyvtárba"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "”"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "”"
 
@@ -245,7 +245,7 @@ msgstr "”"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[iIyY]"
 
@@ -255,7 +255,7 @@ msgstr "^[iIyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -545,7 +545,12 @@ msgstr "szabványos kimenet"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Nem lehet csatlakozni ehhez: %s: a feloldás meghiúsult"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Nem futtatható távoli parancssor"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Nem futtatható távoli parancssor"
@@ -595,8 +600,8 @@ msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 "Szalagos meghajtó manipulálása, parancsok elfogadása távoli folyamattól"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "SZÁM"
 
@@ -604,8 +609,8 @@ msgstr "SZÁM"
 msgid "set debug level"
 msgstr "hibakeresési szint beállítása"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -620,7 +625,7 @@ msgstr "hibakeresés kimeneti fájlnevének beállítása"
 msgid "cannot open %s"
 msgstr "a(z) %s nem nyitható meg"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "túl sok argumentum"
@@ -629,9 +634,9 @@ msgstr "túl sok argumentum"
 msgid "Garbage command"
 msgstr "Értelmetlen parancs"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ez nem úgy néz ki, mint egy tar archívum"
 
@@ -669,65 +674,65 @@ msgstr "Nem ellenőrizhető az archívum, ha a szabványos be/kimenetet használ
 msgid "Archive is compressed. Use %s option"
 msgstr "Az archívum tömörített. Használja a(z) %s kapcsolót."
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Tömörített archívumok nem frissíthetők"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "A szalag eleje, most kilépek"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Túl sok hiba, kilépek"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Rekordméret = %lu blokk"
 msgstr[1] "Rekordméret = %lu blokk"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Kitöltetlen blokk (%lu bájt) az archívumban"
 msgstr[1] "Kitöltetlen blokk (%lu bájt) az archívumban"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Nem törölhető vissza az archív fájl, lehet hogy olvashatatlan lesz a -i "
 "nélkül"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "az rmtlseek nem állt meg egy rekord határán"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: érvénytelen kötetszámot tartalmaz"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Kötetszám-túlcsordulás"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Készítse elő a(z) %d kötetet %s számára és üssön entert:"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Fájlvége a várt felhasználói válasz helyett"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "FIGYELMEZTETÉS: Az archívum befejezetlen"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -738,67 +743,67 @@ msgstr ""
 " q          A Tar megszakítása\n"
 " y vagy újsor  A művelet folytatása\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !          Új parancsértelmező hívása\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?          Ezen lista kiírása\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Nincs új kötet, kilépés.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Nincs megadva fájlnév, próbálkozzon újra.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Érvénytelen bemenet. A súgó a ? beírásával kérhető le.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "A(z) „%s” parancs meghiúsult"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s lehetséges, hogy ezen a köteten folytatódott: a fejléc csonkolt nevet "
 "tartalmaz"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s nem folytatódik ezen a köteten"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s mérete hibás (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Ez a kötet kívül esik a sorozaton (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Az archívum nincs úgy címkézve, hogy megfeleljen a következőhöz: %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "A(z) %s kötet nem felel meg a következőnek: %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -806,411 +811,436 @@ msgstr ""
 "%s: a fájlnév túl hosszú egy GNU többkötetes fejlécben való tároláshoz, "
 "csonkításra került"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "az írás nem egy rekord határán fejeződött be"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Csak %lu bájt olvasható %lu bájtból"
 msgstr[1] "Csak %lu bájt olvasható %lu bájtból"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "A tartalom eltér"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Váratlan fájlvége jel az archívumban"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "A fájltípus eltér"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "A mód eltér"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Az Uid eltér"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "A Gid eltér"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "A módosítási idő eltér"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "A méret eltér"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Nincs a következőre linkelve: %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "A szimbolikus link eltér"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Az eszközszám eltér"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Ellenőrzés "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s: A(z) „%c” fájltípus ismeretlen, a diffelés normális fájlként történt"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Az archívum eltávolított előtagokkal rendelkező fájlneveket tartalmaz."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 "Lehetséges, hogy az ellenőrzés nem fogja megtalálni az eredeti fájlokat."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "AZ ELLENŐRZÉS SIKERTELEN: %d érvénytelen fejléc található"
 msgstr[1] "AZ ELLENŐRZÉS SIKERTELEN: %d érvénytelen fejléc található"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Egy magányos nulla blokk %s helyen"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: fájl gyorsítótár-könyvtár címkét tartalmaz (%s); %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 "a(z) %s érték a(z) %s %s...%s tartományán kívül esik, helyettesítve a "
 "következővel: %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "a(z) %s érték a(z) %s %s...%s tartományán kívül esik"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Negatív oktális fejlécek előállítása"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: a fájlnév túl hosszú (maximum: %d), nem kerül kiírásra"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: a fájlnév túl hosszú (nem darabolható), nem kerül kiírásra"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: a fájlnév túl hosszú, nem kerül kiírásra"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: a fájl zsugorítva %s bájtra, nullákkal kerül kitöltésre"
 msgstr[1] "%s: a fájl zsugorítva %s bájtra, nullákkal kerül kitöltésre"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: a fájl eltérő fájlrendszeren van, nem kerül kiírásra"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "a tartalom nem került kiírásra"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Ismeretlen fájltípus, fájl a figyelmen kívül hagyva"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Hiányzó linkek a következőre: „%s”."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: a fájl változatlan, nem kerül kiírásra"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: a fájl az archívumban van, nem kerül kiírásra"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "a könyvtár nem került kiírásra"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: a fájl módosult olvasás közben"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: a foglalat figyelmen kívül hagyva"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: ajtó figyelmen kívül hagyva"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Ugrás a következő fejlécre"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "A nem fejlécek törlése az archívumból"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: valószínűtlenül régi időbélyeg: %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: a(z) %s időbélyeg %s másodperccel a jövőbe mutat"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Váratlan inkonzisztencia a könyvtár létrehozása során"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: a könyvtár átnevezésre került az állapotának kinyerése előtt"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "A folytonos fájlok kibontása normál fájlként"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Kísérlet a szimbolikus linkek kibontására közvetlen linkként"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: nem lehet kibontani -- a fájl egy másik köteten folytatódik"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Váratlan hosszú névfejléc"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Ismeretlen fájltípus: „%c”, normál fájlként lesz kibontva"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "A jelenlegi „%s” újabb vagy egyező korú"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Nem sikerült biztonsági mentést készíteni erről a fájlról"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Nem nevezhető át a következőre: %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: A könyvtár át lett nevezve a következőről: %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: a könyvtár át lett nevezve"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: a könyvtár új"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: a fájl eltérő fájlrendszeren van, nem kerül kiírásra"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: a könyvtár át lett nevezve"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Érvénytelen időbélyeg"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Érvénytelen módosítási idő (másodperc)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Érvénytelen módosítási idő (nanomásodperc)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Érvénytelen eszközszám"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Érvénytelen inode-szám"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Túl hosszú mező a pillanatképfájl olvasása közben"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Olvasási hiba a pillanatképfájlban"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Váratlan fájlvége a pillanatképfájlban"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Váratlan mezőérték a pillanatképfájlban"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Hiányzó rekordlezáró"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Hibás növekményes fájlformátum"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Nem támogatott növekményes formátumverzió: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 "Rosszul formázott kiíratási könyvtár: a várt „%c” helyett %#3o található"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Rosszul formázott kiíratási könyvtár: az „X” többször szerepel"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Rosszul formázott kiíratási könyvtár: üres név az „R”-ben"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Rosszul formázott kiíratási könyvtár: a „T”-t nem előzi meg az „R”"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Rosszul formázott kiíratási könyvtár: üres név a „T”-ben"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Rosszul formázott kiíratási könyvtár: a várt „%c” helyett az adatok vége "
 "található"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 "Rosszul formázott kiíratási könyvtár: az „X” soha nem került felhasználásra"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr ""
 "Nem hozható létre ideiglenes könyvtár a következő sablon használatával: %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: a könyvtár nem kerül törlésre: nem érhető el"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: a fájl egy másik eszközön van: nem kerül törlésre"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s törlése\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: nem távolítható el"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: kihagyás"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blokk %s: ** A blokk üres **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blokk %s: ** Fájlvége **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blokk %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 "Üres értékek a fejléc azon részében, ahol a program a(z) %s számértéket várta"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1218,109 +1248,125 @@ msgstr ""
 "feltételezi, hogy kettes komplemens"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Az archívum %.*s oktális értéke túllépi a(z) %s tartományt"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 "Az archívum előjeles base-64 karakterlánca (%s) túllépi a(z) %s tartományt"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Az archívum base-256-os értéke túllépi a(z) %s tartományt"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Az archívum %.*s értéket tartalmaz, ahol a program %s számértéket vár"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Az archívum %s értéke túllépi a(z) %s %s..%s tartományát"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " link a következőre: %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " ismeretlen fájltípus: %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Hosszú link--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Hosszú név--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Kötetfejléc--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Folytatva %s bájttól--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Könyvtár létrehozása:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "A munkakönyvtár nem kérdezhető le"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s átnevezése a következőre: %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Nem nevezhető át a következőre: %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s helyreállítása a következő névre: %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: a fájl el lett távolítva a beolvasás előtt"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "gyermekfolyamat"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "folyamatközi csatorna"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "A(z) „%s” parancs meghiúsult"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: a fájllista már be van olvasva"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "nem állítható be az idő a következőn: „%s”"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Mintaillesztő karaktereket használt a fájlnevekben"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1328,58 +1374,59 @@ msgstr ""
 "Használja a --wildcards kapcsolót a mintaillesztés engedélyezéséhez, vagy a "
 "--no-wildcards kapcsolót ezen figyelmeztetés letiltásához"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Nem található az archívumban"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: A szükséges előfordulás nem található az archívumban"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Hibás archívumcímke"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "A -C használata fájllistán belül nem engedélyezett a --listed-incremental "
 "kapcsolóval"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Csak egy -C engedélyezett a --listed-incremental kapcsolóval"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr ""
 "A(z) „-%s” és a(z) „-%s” kapcsolók mind a szabványos bemenetet igénylik"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Érvénytelen archívumformátum"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU szolgáltatásokat kértél inkompatibilis az archívumformátumokon"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "A(z) „%s” idézési stílus ismeretlen. Próbálja a „%s --quoting-style=help” "
 "parancsot segítségért."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1398,9 +1445,10 @@ msgstr ""
 "  tar -xf archívum.tar         # Kibontja az összes fájlt az archívum.tar\n"
 "                                   fájlból.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1420,81 +1468,81 @@ msgstr ""
 "                  egyébként egyszerű\n"
 "  never, simple   mindig egyszerű mentés létrehozása\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Fő működési mód:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "felsorolja egy archívum tartalmát"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "fájlok kibontása egy archívumból"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "új archívum létrehozása"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "különbségek keresése az archívum és a fájlrendszer között"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "fájlok hozzáfűzése egy archívum végéhez"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "csak az archívumban lévő másolatnál újabb fájlok hozzáfűzése"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tar fájlok hozzáfűzése egy archívumhoz"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "törlés az archívumból (szalagon nem működik!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "az archívum kötetcímkéjének tesztelése és kilépés"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Műveletmódosítók:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "ritka fájlok hatékony kezelése"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAGAS[.ALACSONY]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "a használandó ritka formátum verziójának beállítása (magával vonja\n"
 " a --sparse kapcsolót)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "régi GNU formátumú növekményes mentés kezelése"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "új GNU formátumú növekményes mentés kezelése"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "kiíratási szint a létrehozott listázott növekményes archívumhoz"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "ne lépjen ki nem nulla értékkel ha a fájl olvashatatlan"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1507,122 +1555,133 @@ msgstr ""
 "átadásra a parancssoron vagy a -T kapcsolón keresztül. A SZÁM "
 "alapértelmezett értéke az 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "az archívum kereshető"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "az archívumban nem lehet pozicionálni"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "ne ellenőrizze az eszközszámokat növekményes archívumok létrehozásakor"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "eszközszámok ellenőrzése növekményes archívumok létrehozásakor "
 "(alapértelmezett)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Felülírás felügyelete:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "kísérlet az archívum ellenőrzésére annak kiírása után"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "fájlok eltávolítása azok archívumhoz adása után"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "ne cserélje a meglévő fájlokat kibontáskor"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "ne cserélje a meglévő fájlokat kibontáskor"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "ne cserélje az archív változatuknál újabb meglévő fájlokat"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "meglévő fájlok felülírása kibontáskor"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "minden egyes fájl eltávolítása a rá történő kibontás előtt"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "hierarchiák kiürítése könyvtár kibontása előtt"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "meglévő könyvtárak metaadatainak megőrzése"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "meglévő könyvtárak metaadatainak felülírása kibontáskor (alapértelmezett)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "meglévő fájlok felülírása kibontáskor"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Kimeneti adatfolyam kiválasztása:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "fájlok kibontása a szabványos kimenetre"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "PARANCS"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "kibontott fájlok továbbítása másik program számára"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "utódok kilépési kódjainak figyelmen kívül hagyása"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "az utódok nem nulla kilépési kódjainak kezelése hibaként"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Fájlattribútumok kezelése:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "a NÉV kényszerítése a hozzáadott fájlok tulajdonosaként"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "a NÉV kényszerítése a hozzáadott fájlok csoportjaként"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DÁTUM-VAGY-FÁJL"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "a DÁTUM-VAGY-FÁJL dátumnál újabb fájlok mtime értékének beállítása"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "MÓDOSÍTÁSOK"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "a (szimbolikus) mód módosítások kényszerítése a hozzáadott fájlokra"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MÓDSZER"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1632,11 +1691,11 @@ msgstr ""
 "olvasás után történő visszaállításával (MÓDSZER='replace'; alapértelmezett) "
 "vagy az időpontok be nem állításával az első helyen (MÓDSZER='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "ne bontsa ki a fájl módosításának időpontját"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1644,22 +1703,22 @@ msgstr ""
 "próbálja az archívumban létezővel azonos tulajdonossal kibontani a fájlokat "
 "(alapértelmezett a rendszergazdának)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "fájlok kibontása a saját nevében (alapértelmezett normál felhasználóknak)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "mindig számok használata a felhasználó- vagy csoportnevekhez"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "a fájl jogosultságaival kapcsolatos információk kibontása (alapértelmezett a "
 "rendszergazda számára)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1667,15 +1726,16 @@ msgstr ""
 "a felhasználó umask értékének alkalmazása a jogosultságok kibontásakor az "
 "archívumból (alapértelmezett az egyszerű felhasználók számára)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "azonos, mint a -p és -s egyszerre"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1683,139 +1743,180 @@ msgstr ""
 "kibontott könyvtárak módosítási idői és jogosultságai beállításának "
 "késleltetése a kibontás befejeztéig"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "a --delay-directory-restore kapcsoló hatásának megszüntetése"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Fájlattribútumok kezelése:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Eszköz kiválasztása és váltása:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHÍVUM"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "az ARCHÍVUM archívumfájl vagy -eszköz használata"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "az archívumfájl helyi, még ha tartalmaz is kettőspontot"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "az adott rmt PARANCS használata az rmt helyett"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "a távoli PARANCS használata az rsh helyett"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "meghajtó és sűrűség megadása"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "többkötetes archívum létrehozása/listázása/kibontása"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "szalagváltás a SZÁM x 1024 bájt kiírása után"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "parancsfájl futtatása minden egyes szalag végén (-M esetén)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "a FÁJLBAN található számú kötet használata/frissítése"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Eszközblokkolás:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKK"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "rekordonként BLOKK x 512 bájt"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "SZÁM bájt rekordonként, az 512 többszöröse"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "nullázott blokkok (EOF) mellőzése az archívumban"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "újrablokkolás olvasáskor (4.2BSD csövekhez)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Archívumformátum kiválasztása:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMÁTUM"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "az adott formátumú archívum létrehozása"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "A FORMÁTUM a következők egyike:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "régi V7 tar formátum"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "A tar <= 1.12 által használt GNU formátum"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x formátum"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) formátum"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) formátum"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "azonos a pax formátummal"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "azonos a --format=v7 formátummal"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "azonos a --format=posix formátummal"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "kulcsszó[[:]=érték][,kulcsszó[[:]=érték]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "a pax kulcsszavak irányítása"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "SZÖVEG"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1823,80 +1924,80 @@ msgstr ""
 "archívum létrehozása a SZÖVEG kötetnévvel. Listázáskor vagy kibontáskor "
 "használja a kötetnév keresési mintájaként a SZÖVEGET"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Tömörítési kapcsolók:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "archívum kiterjesztésének használata a tömörítőprogram meghatározására"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "ne használja az archívum kiterjesztését a tömörítőprogram meghatározására"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "tömörítése a PROG használatával (el kell fogadnia a -d kapcsolót)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Helyi fájlválasztás:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "az adott FÁJL hozzáadása az archívumhoz (hasznos, ha neve kötőjellel "
 "kezdődik)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "KÖNYVTÁR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "váltás a KÖNYVTÁR könyvtárba"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "kibontandó nevek lekérdezése vagy létrehozás a FÁJLBÓL"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "a -T nullal lezárt neveket olvas, letiltja a -C kapcsolót"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "a korábbi --null kapcsoló hatásának letiltása"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "a -T segítségével beolvasott fájlnevek idézettségének megszüntetése "
 "(alapértelmezett)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "ne szüntesse meg a -T segítségével beolvasott fájlnevek idézettségét"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MINTA"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "a MINTAKÉNT megadott fájlok kihagyása"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "a FÁJLBAN megadott minták kihagyása"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1904,96 +2005,98 @@ msgstr ""
 "a CACHEDIR.TAG-et tartalmazó könyvtárak tartalmának kihagyása, a címkefájl "
 "kivételével"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak alatt minden kihagyása"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak kihagyása"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "a FÁJLT tartalmazó könyvtárak tartalmának kihagyása, a FÁJL kivételével"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "a FÁJLT tartalmazó könyvtárak alatt minden kihagyása"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "a FÁJLT tartalmazó könyvtárak kihagyása"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "verziókezelő-könyvtárak kihagyása"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "mentési és zárolási fájlok kihagyása"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "ne lépjen be automatikusan a könyvtárakba"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "az archívum létrehozásakor maradjon a helyi fájlrendszeren"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "belépés a könyvtárakba rekurzívan (alapértelmezett)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "ne vágja le a kezdő „/” jelet a fájlnevekből"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "szimbolikus linkek követése; az általuk mutatott fájlok archiválása és "
 "kiíratása"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "közvetlen linkek követése; az általuk mutatott fájlok archiválása és "
 "kiíratása"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "TAGNÉV"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "kezdés a TAGNÉV tagnál az archívumban"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "csak a DÁTUM-VAGY-FÁJL dátumnál újabb fájlok tárolása"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DÁTUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "dátum és idő összehasonlítása ha csak a dátum módosult"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "FELÜGYELET"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "mentés eltávolítás előtt, a FELÜGYELET verzió kiválasztása"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "KARAKTERLÁNC"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -2001,102 +2104,105 @@ msgstr ""
 "mentés eltávolítás előtt, a szokásos utótag („~”, hacsak a "
 "SIMPLE_BACKUP_SUFFIX környezeti változó nem bírálja felül) felülbírálása"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Fájlnév-átalakítások:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "a fájlnevek SZÁM darab kezdő összetevőjének levágása kibontáskor"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "KIFEJEZÉS"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "A KIFEJEZÉS sed helyettesítőkifejezés használata fájlnevek átalakítására"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Fájlnévillesztés beállításai (érintik mind a kihagyási, mind a felvételi "
 "mintákat):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "kis- és nagybetűk figyelmen kívül hagyása"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "a minták illesztése a fájlnevek elejére"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "a minták illesztése bármely / után (alapértelmezett kihagyáskor)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "kis- és nagybetűkre érzékeny illesztés (alapértelmezett)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "helyettesítő karakterek használata (alapértelmezett kihagyáskor)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "szó szerinti karakterlánc-illesztés"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "a helyettesítő karakterek nem illeszkednek a perjelre"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 "a helyettesítőkarakterek illeszkednek a „/” jelre (alapértelmezett "
 "kihagyáskor)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informatív kimenet:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "feldolgozott fájlok bőbeszédű listázása"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KULCSSZÓ"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "figyelmeztetés felügyelete"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "előrehaladási üzenetek megjelenítése minden SZÁM. rekordnál (alapértelmezés: "
 "10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "MŰVELET"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "a MŰVELET végrehajtása minden ellenőrzőponton"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "üzenet kiírása, ha nem minden link került kiíratásra"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SZIGNÁL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2108,31 +2214,35 @@ msgstr ""
 "Az engedélyezett szignálok: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 és SIGUSR2; a "
 "SIG előtag nélküli nevek is elfogadottak"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "a fájlmódosítási idők kiírása UTC szerint"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "fájl módosítási idejének kíiírása teljes pontossággal"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "bőbeszédű kimenet küldése a FÁJLBA"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "az archívumon belüli blokkszám megjelenítése minden egyes üzenettel"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "megerősítés kérése minden egyes művelethez"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "a tar alapértelmezéseinek megjelenítése"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2140,31 +2250,31 @@ msgstr ""
 "listázáskor vagy kibontáskor minden egyes, a keresési feltételnek meg nem "
 "felelő könyvtár listázása"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "fájl- vagy archívumnevek megjelenítése átalakítás után"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STÍLUS"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "az idézési stílus beállítása, az érvényes STÍLUS értékeket lásd alább"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "a KARAKTERLÁNCBÓL származó karakterek kiegészítő idézése"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "a KARAKTERLÁNCBÓL származó karakterek idézésének letiltása"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Kompatibilitási kapcsolók:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2172,64 +2282,57 @@ msgstr ""
 "létrehozáskor megegyezik a --old-archive kapcsolóval; kibontáskor a --no-"
 "same-owner kapcsolóval"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Egyéb kapcsolók:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "néhány potenciálisan káros kapcsoló használatának letiltása"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "A következő kapcsolók közül egynél többet nem használhat: „-Acdtrux” vagy „--"
 "test-label”"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "A tömörítési kapcsolók ütköznek"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Ismeretlen szignálnév: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "A dátummintafájl nem található"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "%s cseréje az ismeretlen %s dátumformátumhoz"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "„%s” kapcsoló: A(z) „%s” dátum kezelése mint %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: a fájllista már be van olvasva"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "az archívum tömörítése a(z) %s használatával"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "A --quoting-style kapcsoló érvényes paraméterei:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2237,52 +2340,49 @@ msgstr ""
 "\n"
 "*Ezen* tar alapértelmezései:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Érvénytelen tulajdonos"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Érvénytelen blokkolási tényező"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Érvénytelen szalagméret"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Hibás növekményszintérték"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Egynél több küszöbdátum"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Érvénytelen ritka verzió érték"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 "Az --atime-preserve='system' nem támogatott ezen az operációs rendszeren"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "A --checkpoint értéke nem egy egész"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Érvénytelen csoport"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Érvénytelen mód került megadásra a kapcsolóban"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Érvénytelen szám"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Érvénytelen tulajdonos"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2290,122 +2390,152 @@ msgstr ""
 "A --preserve kapcsoló elavult, használja a --preserve-permissions --preserve-"
 "order kapcsolókat helyette"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Érvénytelen rekordméret"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "A rekordméretnek %d többszörösének kell lennie."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Érvénytelen elemszám"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Csak egy --to-command kapcsoló engedélyezett"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Rosszul formázott sűrűségargumentum: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Ismeretlen sűrűség: „%c”"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "A „-[0-7][lmh]” kapcsolókat *ez* a tar NEM támogatja"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FÁJL]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "A régi „%c” kapcsoló paramétert igényel."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "a --occurrence értelmetlen fájllista nélkül"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "a --occurrence nem használható a kért működési módban"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Több archívumfájl esetén szükséges a „-M” kapcsoló"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr ""
 "A --listed-incremental és a --newer kapcsolók nem használhatók egyszerre"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "a --level értelmetlen a --listed-incremental nélkül"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: A kötetcímke túl hosszú (a korlát %lu bájt)"
 msgstr[1] "%s: A kötetcímke túl hosszú (a korlát %lu bájt)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "A többkötetes archívumok nem ellenőrizhetők"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "A tömörített archívumok nem ellenőrizhetők"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "A(z) %s minta nem használható"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Nem használhatók többkötetes tömörített archívumok"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Tömörített archívumok nem fűzhetők össze"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "A(z) %s minta nem használható"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "A kötet hossza nem lehet kisebb a rekord méreténél"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "a --preserve-order nem kompatibilis a --listed-incremental kapcsolóval"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Üres archívum létrehozása visszautasítva"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Az „-Aru” kapcsolók összeférhetetlenek a „-f” kapcsolóval"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 "Meg kell adnia a következő kapcsolók egyikét: „-Acdtrux” vagy „--test-label”"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Kilépés hibaállapottal a korábbi hibák miatt"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2417,121 +2547,117 @@ msgstr[1] "%s: A fájl zsugorítva %s bájttal"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "A(z) %s kulcsszó ismeretlen vagy még nincs megvalósítva"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Az időbélyeg kívül esik az engedélyezett tartományon"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "A(z) %s minta nem használható"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "A(z) %s minta nem bírálható felül"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Rosszul formázott kiterjesztett fejléc: a hossz hiányzik"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "A kiterjesztett fejléc hossza kívül esik a tartományon"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "A kiterjesztett fejléc %*s hossza kívül esik a tartományon"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 "Rosszul formázott kiterjesztett fejléc: a hossz után hiányzik egy üres hely "
 "karakter"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "A kiterjesztett fejléc hibás: egy egyenlőségjel hiányzik"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Rosszul formázott kiterjesztett fejléc: az újsor hiányzik"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 "A(z) „%s” ismeretlen kiterjesztett fejléc kulcsszó figyelmen kívül marad"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Az előállított kulcsszó/érték pár túl hosszú (kulcsszó: %s, hossz: %s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "A kiterjesztett fejléc %s=%s értéke túllépi a(z) %s..%s tartományát"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Rosszul formázott kiterjesztett fejléc: többlet %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Rosszul formázott kiterjesztett fejléc: érvénytelen %s: váratlan határoló "
 "(%c)"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 "Rosszul formázott kiterjesztett fejléc: érvénytelen %s: az értékek száma "
 "páratlan"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: érvénytelen időtúllépés"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: ismeretlen ellenőrzőpont-művelet"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "írás"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "olvasás"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "%u. írási ellenőrzőpont"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "%u. olvasási ellenőrzőpont"
@@ -2681,7 +2807,7 @@ msgstr "A szám kívül esik az engedélyezett tartományon: %s"
 msgid "Negative size: %s"
 msgstr "Negatív méret: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "a stat(%s) meghiúsult"
@@ -2710,8 +2836,8 @@ msgstr "Ismeretlen dátumformátum"
 msgid "[ARGS...]"
 msgstr "[ARGUMENTUMOK...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "a(z) „%s” nem nyitható meg"
@@ -2725,67 +2851,99 @@ msgstr "Nem lehet pozicionálni"
 msgid "file name contains null character"
 msgstr "a fájlnév null karaktert tartalmaz"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "nem állíthatók elő ritka fájlok a szabványos kimeneten, használja a --file "
 "kapcsolót"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "helytelen maszk (a(z) „%s” közelében)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Ismeretlen mező: „%s”"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "nem állítható be az idő a következőn: „%s”"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "a(z) „%s” nem törölhető"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "A(z) „%s” parancs meghiúsult"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "a(z) „%s” nem törölhető"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "A parancs sikeresen befejeződött\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "A parancs meghiúsult a következő állapottal: %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "A parancs befejeződött a következő szignállal: %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "A parancs leállítva a következő szignállal: %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "A parancs hibakeresési kimenetet adott vissza\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "A parancs befejeződött\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "a --stat fájlneveket igényel"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "A munkakönyvtár nem kérdezhető le"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr ""
+#~ "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Túl hosszú mező a pillanatképfájl olvasása közben"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Olvasási hiba a pillanatképfájlban"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Váratlan mezőérték a pillanatképfájlban"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "A kiterjesztett fejléc hossza kívül esik a tartományon"
+
+#~ msgid "Invalid group"
+#~ msgstr "Érvénytelen csoport"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: a könyvtár el lett távolítva a beolvasás előtt"
index 6d9994f9f5edb48b6955db5622101d7eb97d2ee5..108f623697127421ca6950eb3f1873a6b300b1f8 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index db7d8e20b777b9177cb8e9a6e5aec561377ff72e..5a6fa0e4e004b446862ee3c8da54166b9283a1ba 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -4,12 +4,12 @@
 # Tedi Heriyanto <tedi_h@gmx.net>, 1999, 2002.
 # Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.23.90\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2010-07-14 10:00+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -30,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argumen %s untuk %s ambigu"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Argumen yang valid adalah:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s nilai lebih kecil atau sama dengan %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT parameter membutuhkan sebuah nilai"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT parameter harus positif"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Parameter ARGP_HELP_FMT tidak diketahui"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Sampah dalam ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -67,29 +66,29 @@ msgstr ""
 "Argumen wajib atau opsional ke pilihan panjang juga wajib atau opsional "
 "untuk argumen pendek yang berkorespondennya."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Penggunaan:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  atau: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [PILIHAN...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Coba `%s --help' atau `%s --usage' untuk informasi lebih lanjut.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Laporkan bug ke %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Kesalahan sistem tidak dikenal"
 
@@ -101,7 +100,7 @@ msgstr "berikan daftar bantuan ini"
 msgid "give a short usage message"
 msgstr "berikan sebuah pesan penggunaan singkat"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAMA"
@@ -122,17 +121,16 @@ msgstr "berhenti untuk DETIK detik (baku 3600)"
 msgid "print program version"
 msgstr "tampilkan versi aplikasi"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(APLIKASI ERROR) Tidak ada versi yang dikenal!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Terlalu banyak argumen\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(APLIKASI ERROR) Pilihan seharusnya telah dikenali!?"
 
@@ -140,62 +138,62 @@ msgstr "(APLIKASI ERROR) Pilihan seharusnya telah dikenali!?"
 msgid "write error"
 msgstr "error menulis"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: pilihan '%s' ambigu\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: pilihan '--%s' membutuhkan sebuah argumen\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: pilihan tidak dikenal '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: pilihan tidak dikenal '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: pilihan -- '%c' tidak valid\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: pilihan membutuhkan sebuah argumen -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: pilihan '-W %s' ambigu\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: pilihan '-W %s' membutuhkan sebuah argumen\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "kehabisan memori"
 
@@ -211,28 +209,30 @@ msgstr "gagal untuk kembali ke direktori kerja inisial"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -242,7 +242,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yY]"
 
@@ -252,7 +252,7 @@ msgstr "^[yY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -538,7 +538,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Tidak dapat menghubungi ke %s: penelusuran gagal"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Tidak dapat menjalankan remote shell"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Tidak dapat menjalankan remote shell"
@@ -587,8 +592,8 @@ msgstr "Unexpected tidak terduga"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Manipulasi sebuah tape drive, menerima perintah dari proses remote"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NOMOR"
 
@@ -596,8 +601,8 @@ msgstr "NOMOR"
 msgid "set debug level"
 msgstr "tentukan tingkat penelusuran"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -612,7 +617,7 @@ msgstr "tentukan keluaran nama berkas penelusuran"
 msgid "cannot open %s"
 msgstr "tidak dapat membuka %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "terlalu banyak argumen"
@@ -621,9 +626,9 @@ msgstr "terlalu banyak argumen"
 msgid "Garbage command"
 msgstr "Perintah sampah"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ini sepertinya bukan sebuah tar archive"
 
@@ -661,64 +666,64 @@ msgstr "Tidak dapat memverifikasi stdin/stdout archive"
 msgid "Archive is compressed. Use %s option"
 msgstr "Archive terkompres. Gunakan %s pilihan"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Tidak dapat update compressed archives"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Berada pada awal tape, berhenti sekarang"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Terlalu banyak errors, berhenti"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Ukuran record = %lu blok"
 msgstr[1] "Ukuran record = %lu blok"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Blok tidak sesuai (%lu byte) dalam arsip"
 msgstr[1] "Blok tidak sesuai (%lu byte) dalam arsip"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Tidak dapat backspace file archives; kemungkinan tidak bisa dibaca tanpa -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek tidak dapat berhenti di sebuah batas rekaman"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: berisi nomor volum yang tidak valid"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Nomor volum overflow"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Mempersiapkan volume #%d untuk %s dan tekan return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF pada saat user reply diharapkan"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "PERINGATAN: Archive tidak lengkap"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -730,65 +735,65 @@ msgstr ""
 " q             Batalkan tar\n"
 " y or newline  Lanjutkan operasi\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Spawn sebuah subshell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Tampilkan daftar ini\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Tidak ada new volume; keluar.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Nama berkas tidak dispesifikasikan. Coba lagi.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Masukan tidak valid. Ketik ? untuk bantuan.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Perintah %s gagal"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s mungkin dilanjutkan di volume ini: header berisi nama terpotong"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s tidak dilanjutkan di volume ini"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s adalah ukuran yang salah (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Volume ini di luar urutan (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Label archive tidak cocok dengan %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volume %s tidak sesuai dengan %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -796,511 +801,551 @@ msgstr ""
 "%s: nama berkas terlalu panjang untuk diurutkan dalam sebuah GNU multivolume "
 "header, dipotong"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "tulis tidak berhenti di batas blok"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Hanya dapat membaca %lu dari %lu byte"
 msgstr[1] "Hanya dapat membaca %lu dari %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Isi berbeda"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Unexpected EOF dalam archive"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Tipe berkas berbeda"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Mode berbeda"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid berbeda"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid berbeda"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Mod time berbeda"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Ukuran berbeda"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Tidak dilink ke %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symlink berbeda"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Nomor perangkat berbeda"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifikasi "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Tipe berkas '%c' tidak dikenal, lakukan diff sebagai berkas normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Archive berisi nama berkas dengan awalan dihapus."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Arsip berisikan header base-64 yang kadaluarsas"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Verifikasi mungkin gagal untuk menemukan berkas orisinil."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "GAGAL VERIFIKASI: header %d tidak valid terdeteksi"
 msgstr[1] "GAGAL VERIFIKASI: header %d tidak valid terdeteksi"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Sebuah lone blok nol di %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: berisi sebuah cache direktori tag %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "nilai %s dari %s di luar jangkauan %s..%s; menggantikan %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "nilai %s dari %s di luar dari jangkauan %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Membuat header oktal negatif"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: nama berkas terlalu panjang (maksimal %d); tidak di-dump"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: nama berkas terlalu panjang (tidak dapat memisahkan); tidak di-dump"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: nama link terlalu panjang; tidak di-dump"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Berkas diperkecil %s byte; dipadding dengan nol"
 msgstr[1] "%s: Berkas diperkecil %s byte; dipadding dengan nol"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: file berada pada filesistem yang berbeda; tidak di-dump"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "isi tidak didump"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipe file tidak dikenal; file diabaikan"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Hilang hubungan ke %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: berkas tidak berubah; tidak di-dump"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: berkas adalah archive; tidak di-dump"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "direktori tidak didump"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: berkas berubah saat kita membacanya"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: soket diabaikan"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door diabaikan"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Skip ke header berikutnya"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Menghapus non-header dari archive"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: implausibly penanda waktu lama %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: penanda %s adalah %s dalam masa datang"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inkonsistensi tidak diharapkan ketika membuat direktori"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Direktori diganti nama sebelum statusnya dapat diperoleh"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Sedang extract contiguous file sebagai regular file"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Mencoba extract symbolic link sebagai hard link"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr ""
 "%s: Tidak dapat mengekstrak -- berkas adalah kelanjutan dari volume lain"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Tidak terduga nama header panjang"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tipe berkas tidak dikenal '%c', diekstraksi sebagai berkas normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Saat ini %s adalah lebih baru atau berumuran sama"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Tidak dapat melakukan backup berkas ini"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Tidak dapat mengubah nama %s ke %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Direktori telah diubah nama dari %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Direktori telah diganti nama"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Direktori adalah baru"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: file berada pada filesistem yang berbeda; tidak di-dump"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah diganti nama"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Time stamp tidak valid"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Waktu modifikasi (detik) tidak valid"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "waktu modifikasi (nano detik) tidak valid"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Nomor perangkat tidak valid"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Nomor inode tidak valid"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Field terlalu panjang ketika membaca berkas snapshot"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Pembacaan error dalam berkas snapshot"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Tidak terduga EOF dalam berkas snapshot"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Tidak terduga nilai field dalam berkas snapshot"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Hilang pengakhir rekaman"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Format berkas incremental buruk"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Versi format incremental tidak didukung: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Salah bentuk dumpdir: diduga '%c' tetapi ditemukan %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Salah bentuk dumpdir: 'X' terduplikasi"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Salah bentuk dumpdir: nama kosong dalam 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Salah bentuk dumpdir: 'T' tidak diawali oleh 'R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Salah bentuk dumpdir: nama kosong dalam 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Salah bentuk dumpdir: diduga '%c' tetapi ditemukan akhir dari data"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Salah bentuk dumpdir: 'X' tidak pernah digunakan"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Tidak dapat membuat direktori sementara menggunakan template %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Tidak menghapus direktori: tidak dapat memperoleh statistik"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: direktori berada di perangkat yang berbeda: tidak menghapus"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Menghapus %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Tidak dapat menghapus"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Mengabaikan"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok dari KOSONG **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Akhir dari Berkas **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Kosong dalam header saat diharapkan nilai %s numerik"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "Nilai oktal arsip %.*s di luar batasan %s; asumsikan komplemen dua"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Nilai oktal arsip %.*s di luar batasan %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arsip berisikan header base-64 yang kadaluarsas"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Arsip yang ditandatangahi dengan string base-64 %s di luar batasan %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Nilai arsip base-256 di luar batasan %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arsip berisikan %.*s ketika nilai numerik %s diharapkan"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Nilai arsip %s dari %s di luar batasan %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " link ke %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tipe file tidak dikenal %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Link Panjang--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nama Panjang--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Volume Header--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Diteruskan pada byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Membuat direktori:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Tidak bisa pindah direktori kerja"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Mengganti nama %s ke %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s:Tidak dapat mengganti nama ke %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Mengganti nama %s kembali ke %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Berkas dihapus sebelum kita membacanya"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proses anak"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "saluran interproses"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Perintah %s gagal"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: daftar berkas telah dibaca"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "tidak dapat menset waktu di `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: nama berkas yang dibaca berisi karakter nul"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Pola pencocokan karakter digunakan dalam nama berkas."
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1308,57 +1353,58 @@ msgstr ""
 "Gunakan --wildcards untuk mengaktifkan pencocokan pola, atau --no-wildcards "
 "untuk menekan peringatan ini"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Tidak ditemukan dalam archive"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Kejadian yang diinginkan tidak ditemukan dalam archive"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Label archive tidak cocok"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Menggunakan pilihan -C didalam daftar berkas tidak diijinkan dengan --listed-"
 "incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Hanya satu pilihan -C yang diijinkan dengan --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Pilihan `-%s' dan `-%s' membutuhkan standard masukan"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Format archive tidak valid"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Feature GNU dibutuhkan untuk format archive yang tidak kompatibel"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Gaya quoting `%s' tidak diketahui. Coba `%s --quoting-style=help' untuk "
 "memperoleh daftar."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1376,9 +1422,10 @@ msgstr ""
 "secara rinci.\n"
 "  tar -xf archive.tar          # Bongkar semua berkas dari archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1397,80 +1444,80 @@ msgstr ""
 "sebaliknya\n"
 "  never, simple   selalu buat cadangan sederhana\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Mode operasi utama:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "daftar isi dari sebuah archive"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "ekstrak berkas dari sebuah archive"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "buat sebuah archive baru"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "cari perbedaan diantara archive dan sistem berkas"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "tambahkan berkas ke akhir dari sebuah archive"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "hanya tambahkan berkas yang lebih bari dari salinan dalam archive"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tambahkan berkas tar ke sebuah archive"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "hapus dari archive (bukan dalam pita mag!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "test label volume archive dan keluar"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Pemodifikasi operasi:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "tangani berkas sparse secara efisien"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "set versi dari format sparse untuk digunakan (mengimplikasikan --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "tangani format GNU lama incremental backup"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "tangani format GNU barus incremental backup"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "tingkat `dump' untuk pembuatan `listed-incremental archive'"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "jangan keluar dengan bukan nol dalam berkas tidak dapat dibaca"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1482,122 +1529,133 @@ msgstr ""
 "diff, --extract atau --list dan ketika sebuah daftar dari berkas diberikan "
 "baik dalam baris perintah atau melalui pilihan -T; JUMLAH baku ke 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "pencarian tidak dapat dilakukan dalam archive"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "pencarian tidak dapat dilakukan dalam archive"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 "tidak dapat memeriksa nomor perangkat ketika membuat archive incremental"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "periksa nomor perangkat ketika membuat incremental archive (baku)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Overwrite kontrol:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "mencoba untuk memverifikasi archive setelah menulisnya"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "hapus berkas setelah menambahkannya ke archive"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "jangan timpa berkas yang sudah ada ketika mengekstrak"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "jangan timpa berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "jangan timpa berkas yang sudah ada yang lebih baru dari salinan archivenya"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "overwrite berkas yang sudah ada ketika mengekstrak"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "hapus setiap berkas sebelum mengekstrak diatasnya"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "kosongkan susunan sebelum mengekstrak ke direktori"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "jaga metadata dari direktori yang sudah ada"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "overwrite metadata dari direktori yang sudah ada ketika mengekstrak (baku)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "overwrite berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Pilih stream keluaran:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "ekstrak berkas ke standar keluaran"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "PERINTAH"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "pipe berkas terekstrak ke aplikasi lain"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "abaikan kode keluaran dari anak"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "perlakukan kode keluaran bukan nol dari anak sebagai error"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Penanganan dari atribut berkas:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "paksa NAMA sebagai pemilik untuk berkas yang ditambahkan"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "paksa NAMA sebagai grup untuk berkas yang ditambahkan"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATE-ATAU-BERKAS"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "set mtime untuk berkas yang ditambahkan dari DATE-OR-FILE"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "PERUBAHAN"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "paksa PERUBAHAN (simbolik) mode untuk berkas yang ditambahkan"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODE"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1607,11 +1665,11 @@ msgstr ""
 "setelah membaca (METODE='replace'; baku) atau dengan tidak menset waktu di "
 "tempat pertama (METODE='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "jangan ekstrak waktu modifikasi berkas"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1619,19 +1677,19 @@ msgstr ""
 "mencoba mengekstrak berkas dengan kepemilikan yang sama yang ada dalam "
 "archive (baku untuk pengguna super)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "ekstrak berkas seperti dirimu (baku untuk pengguna biasa)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "selalu gunakan nomor untuk nama pengguna/grup"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "ekstrak informasi mengenai ijin berkas (baku untuk superuser)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1639,15 +1697,16 @@ msgstr ""
 "aplikasikan umask pengguna ketika mengekstrak ijin dari archive (baku untuk "
 "pengguna biasa)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "urutkan nama untuk mengekstrak supaya cocok dengan archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "sama seperti baik -p dan -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1655,139 +1714,180 @@ msgstr ""
 "tunda konfigurasi waktu modifikasi dan ijin untuk direktori terekstrak "
 "sampai akhir dari ekstrasi"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "batalkan efek dari pilihan --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Penanganan dari atribut berkas:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Pemilihan dan pengubahan perangkat:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVE"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "gunakan berkas archive atau perangkat ARCHIVE"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "berkas archive adalah lokal walaupun ini memiliki sebuah kolon"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "gunakan PERINTAH rmt yang diberikan daripad rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "gunakan PERINTAH remote daripada rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "spesifikasikan drive dan kepadatan"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "buat/daftar/ekstrak multi-volume archive"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "ubah pita setelah menulis ANGKA x 1024 bytes"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "jalankan script di akhir dari setiap pite (mengimplikasikan -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "gunakan/update jumlah volume dalam BERKAS"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Bloking perangkat:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOK"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOK x 512 byte per detik"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "JUMLAH dari byte per rekaman, kelipatan dari 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "abaikan blok yang dinolkan dalam archive (berarti EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "reblok saat kita baca (untuk 4.2BSD pipes)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Pemilihan format archive:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "buat archive dari format yang diberikan"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT adalah satu dari berikut:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "format tar lama V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "format gnu tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "format GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "format POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "format POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "sama seperti pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "sama seperti --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "sama seperti --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "kata kunci[[:]=nilai][,kata kunci[[:]=nilai]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "kontrol kata kunci pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKS"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1795,77 +1895,77 @@ msgstr ""
 "buat archive dengan nama volume TEKS; di waktu daftar/ekstrak, gunakan TEKS "
 "sebagai sebuah pola globbing untuk nama volume"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Pilihan kompresi:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "gunaka nama akhiran archive untuk menentukan aplikasi kompresi"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "jangan gunakan nama akhiran archive untuk menentukan aplikasi kompresi"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "saring melalui PROG (harus menerima -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Pemilihan berkas lokal:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "tambahkan berkas yang diberikan ke archive (berguna jika namanya berawal "
 "dengan sebuah dash)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "pindah ke direktori DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "dapatkan nama untuk ekstrak atau buat dari BERKAS"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T baca nama berakhiran kosong, non-aktifkan -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "non-aktifkan efek dari pilihan --null sebelumnya"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "unquote nama berkas baca dengan -T (baku)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "jangan unquote nama berkas baca dengan -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "POLA"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "jangan masukan berkas, berikan sebagai sebuah POLA"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "jangan masukan pola yang terdaftar dalam BERKAS"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1873,93 +1973,95 @@ msgstr ""
 "jangan masukan isi dari direktori berisi CACHEDIR.TAG, kecuali untuk berkas "
 "tag itu sendiri"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "jangan masukan apapun dibawah direktori berisi CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "jangan masukan direktori berisi CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "jangan masukan isi dari direktori berisi BERKAS, kecuali untuk BERKAS itu "
 "sendiri"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "jangan masukan apapun dibawah direktori berisi BERKAS"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "jangan masukan direktori berisi BERKAS"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "jangan masukan direktori sistem pengontrol direktori"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "abaikan berkas cadangan dan berkas kunci"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "hindari penurunan secara otomatis dalam direktori"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "tetap dalam sistem berkas lokal ketika membuat archive"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "rekursif kedalam direktori (baku)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "jangan hilangkan awalan `/' dari nama berkas"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "ikuti symlinks; berkas archive dan dump yang mereka tunjuk ke"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "ikuti hard links; berkas archive dan dump yang mereka refer ke"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NAMA-ANGGOTA"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "berawal di anggota NAMA-ANGGOTA dalam archive"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "hanya simpan berkas lebih baru dari DATE-OR-FILE"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "TANGGAL"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "bandingkan tanggal dan waktu hanya ketika data berubah"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "backup sebelum penghapusan, pilih PENGONTROL versi"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRING"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1967,97 +2069,100 @@ msgstr ""
 "backup sebelum penghapusan, override akhiran biasa ('~' kecuali di override "
 "oleh variabel lingkungan SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Transformasi nama berkas:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "hilangkan NOMOR yang mengawali komponen dari nama berkas di waktu ekstraksi"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EKSPRESI"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "gunakan sed EKSPRESI replace untuk mengubah nama berkas"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Pilihan nama berkas cocok (mempengaruhi baik pola exclude dan include):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "abaikan perbedaan huruf besar dan huruf kecil"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "pencocokan pola nama berkas mulai"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "pencocokan polah setelah `/' apapun (baku untuk exclusion)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "pencocokan dengan memperhatikan huruf besar dan huruf kecil (baku)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "gunakan wildcards (baku untuk exclusion)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "pencocok verbatim string"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "wildcards tidak cocok `/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "wildcards cocok `/' (baku untuk exclusion)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Keluaran informative:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "proses daftar berkas secara verbose"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KATA KUNCI"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "pengendali peringatan"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "tampilkan pesan perkembangan setiap rekaman ke ANGKA (baku 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "AKSI"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "jalankan AKSI disetiap titik pemeriksaan"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "tampilkan sebuah pesan jika tidak seluruh link didump"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SINYAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2069,31 +2174,35 @@ msgstr ""
 "adalah: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 dan SIGUSR2; nama tanpa awalah SIG "
 "juga diterima"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "tampilkan waktu modifikasi berkas dalam UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "tampilkan waktu berkas sampai ke resolusi penuh"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "kirim keluaran verbose ke BERKAS"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "tampilkan jumlah blok didalam archive dengan setiap pesan"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "minta konfirmasi untuk setiap aksi"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "tampilkan tar baku"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2101,31 +2210,31 @@ msgstr ""
 "ketika mendaftar atau mengekstrak, daftar setiap direktori yang tidak cocok "
 "dengan kriteria pencarian"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "tampilkan berkas atau nama berkas setelah transformasi"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "GAYA"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "set nama quoting gaya; lihat dibawah untuk nilai GAYA yang valid"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "sebagai tambahan karakter quote dari STRING"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "non-aktifkan quoting untuk karakter dari STRING"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Pilihan yang kompatibel:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2133,64 +2242,57 @@ msgstr ""
 "ketika membuat, sama seperti --old-archive; ketika mengekstrak, sama seperti "
 "--no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Pilihan lain:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "non-aktifkan penggunaan dari pilihan berbahaya yang berpotensial"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Anda tidak bisa menspesifikasikan lebih dari satu pilihan `-Acdtrux' atau `--"
 "test-label'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Pilihan kompresi konflik"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Nama sinyal: %s tidak dikenal"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Tanggal contoh berkas tidak ditemukan"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Menggantikan %s untuk format tanggal tidak dikenal %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Pilihan %s: memperlakukan tanggal `%s' sebagai %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: daftar berkas telah dibaca"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: nama berkas yang dibaca berisi karakter nul"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "saring archive melalui %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Argumen yang valid untuk pilihan --quoting-style adalah:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2198,51 +2300,48 @@ msgstr ""
 "\n"
 "*Ini* tar baku ke:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Pemilik tidak valid"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Faktor bloking tidak valid"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Panjang tape tidak valid"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Nilai tingkat peningkatan tidak valid"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Lebih dari satu treshold date"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Nilai versi sparse tidak valid"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "pilihan --atime-preserve='system' tidak didukung di platform ini"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "nilai --checkpoint bukan sebuah integer"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Grup tidak valid"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mode tidak tepat diberikan pada pilihan"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Nomor tidak valid"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Pemilik tidak valid"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2250,122 +2349,152 @@ msgstr ""
 "Pilihan --preserve sudah ditinggalkan, lebih baik gunakan --preserve-"
 "permissions --preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Ukuran record tidak valid"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Jumlah record harus kelipatan dari %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Jumlah dari elemen tidak valid"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Hanya satu pilihan --to-command yang diijinkan"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Salah bentuk kepadatan argumen: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Kepadatan tidak diketahui: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Pilihan `-[0-7][lmh]' tidak didukung oleh tar *ini*"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[BERKAS]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Pilihan 'lama' `%c' membutuhkan argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence tidak berarti tanpa sebuah daftar berkas"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence tidak dapat digunakan dalam mode operasi yang diminta"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Berkas multiple archive membutuhkan pilihan '-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Tidak dapat menggabungkan --listed-incremental dengan --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level tidak berarti tanpa --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Label volume terlalu panjang (batasnya adalah %lu byte)"
 msgstr[1] "%s: Label volume terlalu panjang (batasnya adalah %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Tidak dapat verifikasi multi-volume archives"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Tidak dapat verify compressed archives"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Pola %s tidak dapat digunakan"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Tidak dapat menggunakan multi-volume compressed archives"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Tidak dapat update compressed archives"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Pola %s tidak dapat digunakan"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Panjang volume tidak dapat lebih kecil dari ukuran rekaman"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order tidak kompatibel dengan --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Secara takut menolak untuk membuat sebuah archive kosong"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Pilihan '-Aru' tidak kompatibel dengan `-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 "Anda harus menspesifikasikan salah satu dari pilihan `-Acdtrux' atau `--test-"
 "label'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Keluar dengan status gagal karena error error sebelumnya"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2377,51 +2506,47 @@ msgstr[1] "%s: Berkas mengecil sebanyak %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Kata kunci %s tidak diketahui atau belum diimplementasikan"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Penanda waktu di luar dari jangkauan yang diijinkan"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Pola %s tidak dapat digunakan"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Kata kunci %s tidak dapat dioverride"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Salah bentuk ekstensi header: hilang panjang"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Ekstensi panjang header diluar dari jangkauan yang diijinkan"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Ekstensi panjang header %*s diluar dari jangkauan"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Salah bentuk ekstensi header: hilang blank setelah panjang"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Salah bentuk ekstensi header: hilang tanda sama dengan"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Salah bentuk ekstensi header: hilang baris baru"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Mengabaikan kata kunci ekstensi `%s' yang tidak diketahui"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2430,63 +2555,63 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Ekstensi header %s=%s diluar dari jangkauan %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Salah bentuk ekstensi header: tidak valid %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Salah bentuk ekstensi header: kelebihan %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Salah bentuk ekstensi header: tidak valid %s: tidak diduga pembatas %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Salah bentuk ekstensi header: tidak valid %s: jumlah dari nilai ganjil"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: bukan sebuah kehabisan waktu yang valid"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: aksi titik pemeriksaan tidak diketahui"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "tulis"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "baca"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Menulis titik pemeriksaan %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Membaca titik pemeriksaan %u"
@@ -2633,7 +2758,7 @@ msgstr "Jumlah diluar dari jangkauan yang diijinkan: %s"
 msgid "Negative size: %s"
 msgstr "Ukuran negatif: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) gagal"
@@ -2662,8 +2787,8 @@ msgstr "Format tanggal tidak diketahui"
 msgid "[ARGS...]"
 msgstr "[ARG...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "tidak dapat membuka `%s'"
@@ -2677,68 +2802,100 @@ msgstr "Tidak dapat mencari"
 msgid "file name contains null character"
 msgstr "nama berkas berisi karakter null"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "tidak dapat menghasilkan berkas sparse di standar keluaran, gunakan pilihan "
 "--file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "mask tidak benar (didekat `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Field `%s' tidak diketahui"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "tidak dapat menset waktu di `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "tidak dapat memutus `%s'"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Perintah %s gagal"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "tidak dapat memutus `%s'"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Perintah keluar secara sukses\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Perintah gagal dengan status %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Perintah berakhir di sinyal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Perintah berhenti di sinyal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Perintah memberika core dump\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Perintah berakhir\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat membutuhkan nama berkas"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Tidak bisa pindah direktori kerja"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "urutkan nama untuk mengekstrak supaya cocok dengan archive"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Field terlalu panjang ketika membaca berkas snapshot"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Pembacaan error dalam berkas snapshot"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Tidak terduga nilai field dalam berkas snapshot"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Ekstensi panjang header diluar dari jangkauan yang diijinkan"
+
+#~ msgid "Invalid group"
+#~ msgstr "Grup tidak valid"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Direktori dihapus sebelum kita membacanya"
 
index 306f547034052d4d0d9081bc3ba2a23c8a2e3e02..f0f6910e94121e24a0420c9025a82a3217bf58d3 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index ca30f989757385b56efad4da0b732d2f44efb7c9..64494d74f04fcbd561bcb329a5985597cbd25932 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -1,18 +1,18 @@
 # Italian translation of GNU tar.
-# Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 #
 # Lele Gaifax <lele@nautilus.eclipse.it>, 1996.
 # Marco d'Itri <md@linux.it>, 1998.
 #
-# Milo Casagrande <milo@casagrande.name>, 2008-2009, 2010.
-#: src/create.c:1552
+# Milo Casagrande <milo@casagrande.name>, 2008-2010, 2011.
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar-1.25\n"
+"Project-Id-Version: tar-1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-08 20:28+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-13 12:09+0100\n"
 "Last-Translator: Milo Casagrande <milo@casagrande.name>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -32,36 +32,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argomento %s ambiguo per %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Gli argomenti validi sono:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: il valore %s è minore o uguale a %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: il parametro ARGP_HELP_FMT richiede un valore"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: il parametro ARGP_HELP_FMT deve essere positivo"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Spazzatura in ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -69,29 +68,29 @@ msgstr ""
 "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono anche "
 "per le corrispondenti opzioni brevi."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Uso:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  o: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPZIONE...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Segnalare i bug a %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Errore di sistema sconosciuto"
 
@@ -103,7 +102,7 @@ msgstr "Mostra questo aiuto"
 msgid "give a short usage message"
 msgstr "Mostra un breve messaggio sull'uso"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NOME"
@@ -124,17 +123,16 @@ msgstr "Resta in attesa per SEC secondi (predefinito 3600)"
 msgid "print program version"
 msgstr "Stampa la versione del programma"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta."
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: troppi argomenti\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta."
 
@@ -142,62 +140,62 @@ msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta."
 msgid "write error"
 msgstr "Errore di scrittura"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: l'opzione \"%s\" è ambigua\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: l'opzione \"--%s\" richiede un argomento\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opzione \"--%s\" non riconosciuta\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opzione \"%c%s\" non riconosciuta\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opzione non valida -- \"%c\"\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: l'opzione richiede un argomento -- \"%c\"\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memoria esaurita"
 
@@ -213,28 +211,30 @@ msgstr "Impossibile ritornare alla directory di lavoro iniziale"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "\""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "\""
 
@@ -244,7 +244,7 @@ msgstr "\""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[sSyY].*"
 
@@ -254,7 +254,7 @@ msgstr "^[sSyY].*"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN].*"
 
@@ -542,7 +542,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Impossibile connettersi a %s: \"resolve\" non riuscita"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Impossibile eseguire la shell remota"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Impossibile eseguire la shell remota"
@@ -592,8 +597,8 @@ msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 "Manipola un dispositivo a nastro, accettando comandi da un processo remoto"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMERO"
 
@@ -601,8 +606,8 @@ msgstr "NUMERO"
 msgid "set debug level"
 msgstr "Imposta il livello di debug"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -617,7 +622,7 @@ msgstr "Imposta il nome del file di output per il debug"
 msgid "cannot open %s"
 msgstr "impossibile aprire %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "troppi argomenti"
@@ -626,9 +631,9 @@ msgstr "troppi argomenti"
 msgid "Garbage command"
 msgstr "Comando spazzatura"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Questo non sembra un archivio tar"
 
@@ -666,66 +671,66 @@ msgstr "Impossibile verificare archivi su stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "L'archivio è compresso. Usare l'opzione %s."
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Impossibile aggiornare archivi compressi"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "All'inizio del nastro, uscita immediata"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Troppi errori, uscita"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Dimensioni del record = %lu blocco"
 msgstr[1] "Dimensioni del record = %lu blocchi"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Blocco non allineato nell'archivio (%lu byte)"
 msgstr[1] "Blocco non allineato nell'archivio (%lu byte)"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Impossibile muoversi all'indietro nel file dell'archivio; potrebbe non "
 "essere\n"
 "leggibile senza l'opzione -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek non si è fermata al limite di un record"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: contiene un numero di volume non valido"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Overflow del numero di volume"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Preparare il volume #%d per %s e premere Invio: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Ricevuto EOF quando era attesa la risposta dell'utente"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "Attenzione: l'archivio non è completo"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -737,67 +742,67 @@ msgstr ""
 " q             Termina tar\n"
 " y o Invio     Continua l'operazione\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Esegue una subshell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Stampa questo elenco\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Nessun nuovo volume; uscita.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Nome file non specificato. Riprovare.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Input non valido. Premere ? per l'aiuto.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "comando \"%s\" non riuscito"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s potrebbe continuare su questo volume: l'intestazione contiene un nome "
 "troncato"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s non continua su questo volume"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s è la dimensione sbagliata (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Questo volume è fuori sequenza (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "L'archivio non ha un'etichetta corrispondente a %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Il volume %s non corrisponde a %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -805,238 +810,242 @@ msgstr ""
 "%s: il nome del file è troppo lungo per essere scritto in un'intestazione "
 "GNU multi-volume, troncato"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "write non si è fermata al limite di un record"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "È stato possibile leggere solo %lu byte di %lu"
 msgstr[1] "È stato possibile leggere solo %lu byte di %lu"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "I contenuti sono differenti"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "EOF inatteso nell'archivio"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "I tipi dei file sono diversi"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "I modi sono diversi"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Gli UID sono diversi"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "I GID sono diversi"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Gli orari di modifica sono diversi"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Le dimensioni sono diverse"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Non è collegato a %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "I collegamenti simbolici sono diversi"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "I numeri dei device sono diversi"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifica "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: tipo di file \"%c\" sconosciuto, confrontato come un file normale"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "L'archivio contiene nomi di file con i prefissi iniziali rimossi."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "L'archivio contiene intestazioni base-64 obsolete"
+msgstr "L'archivio contiene nomi di file trasformati."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "La verifica potrebbe non riuscire a trovare i file originali."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "Errore di verifica: trovata %d intestazione non valida"
 msgstr[1] "Errore di verifica: trovate %d intestazioni non valide"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Un singolo blocco di zeri a %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: contiene un'etichetta di directory cache %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "valore %s fuori dall'intervallo (%s) %s..%s; sostituzione con %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "valore %s fuori dall'intervallo (%s) %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Generazione delle intestazioni ottali negative"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: il nome del file è troppo lungo (max %d); non archiviato"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: il nome del file è troppo lungo (impossibile dividerlo); non archiviato"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: il nome del collegamento è troppo lungo; non archiviato"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: file ristretto di %s byte; riempito con zeri"
 msgstr[1] "%s: file ristretto di %s byte; riempito con zeri"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: il file si trova su un altro file system; non archiviato"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "contenuti non archiviati"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: tipo di file sconosciuto; file ignorato"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Collegamenti mancanti a %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: il file non è modificato; non archiviato"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: il file è l'archivio; non archiviato"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "directory non archiviata"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: file modificato mentre era in lettura"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socket ignorato"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door ignorata"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Passaggio alla prossima intestazione"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Eliminazione non-intestazione dall'archivio"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: orario %s inverosimilmente vecchio"
 
 # (ndt) problema del plurale...
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: l'orario %s è %s secondi nel futuro"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: incoerenza inaspettata nel creare la directory"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: directory rinominata prima di poterne estrarre lo stato"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Estrazione file contigui come file normali"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 "Tentativo di estrazione dei collegamenti simbolici come collegamenti fisici"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: impossibile estrarre -- il file continua da un altro volume"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Intestazione di nome lungo inattesa"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale"
 
 # (ndt) questo è il pezzo di codice
@@ -1046,171 +1055,190 @@ msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale"
 #               quote (file_name)));
 #        return 0;
 #      }
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Il file %s corrente è più recente o ha la stessa data"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: impossibile eseguire il backup di questo file"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Impossibile rinominare %s in %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: directory rinominata da %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: directory rinominata"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: directory nuova"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: il file si trova su un altro file system; non archiviato"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: directory rinominata"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Orario non valido"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Orario di modifica non valido (secondi)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Orario di modifica non valido (nanosecondi)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Numero di device non valido"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Numero dell'inode non valido"
 
-# (ndt) oppure rendere snapshot come istantanea?
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Campo troppo lungo nel leggere il file di snapshot"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Errore di lettura nel file di snapshot"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "EOF inatteso nel file di snapshot"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Valore del campo inatteso nel file di snapshot"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Record finale mancante"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Formato file incrementale errato"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Versione formato incrementale non supportata: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "dumpdir malformata: atteso \"%c\", ma trovato %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "dumpdir malformata: \"X\" duplicata"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "dumpdir malformata: nessun nome in \"R\""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "dumpdir malformata: \"T\" non preceduta da \"R\""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "dumpdir malformata: nessun nome in \"T\""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "dumpdir malformata: atteso \"%c\", ma trovata la fine dei dati"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "dumpdir malformata: \"X\" mai usata"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Impossibile creare la directory temporanea usando il modello %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: eliminazione directory non eseguita: impossibile fare stat"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: la directory si trova su un altro device: non eliminata"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: eliminazione di %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: impossibile rimuoverlo"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: omesso"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blocco %s: ** Blocco di NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blocco %s: ** Fine del file **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blocco %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Trovati spazi nell'intestazione dove era atteso il valore numerico %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1218,109 +1246,125 @@ msgstr ""
 "che sia in complemento a due"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Il valore ottale %.*s dell'archivio è fuori dall'intervallo %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "L'archivio contiene intestazioni base-64 obsolete"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 "La stringa base-64 con segno %s dell'archivio è fuori dall'intervallo %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Il valore base-256 dell'archivio è fuori dall'intervallo %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "L'archivio contiene %.*s dove era atteso il valore numerico %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Il valore %s dell'archivio è fuori dall'intervallo (%s) %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " collegamento a %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tipo di file sconosciuto %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Collegamento lungo--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nome lungo--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Intestazione del volume--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continua al byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Creazione directory:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Impossibile recuperare la directory di lavoro"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Rinomina di %s in %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: impossibile rinominarlo in %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Rinomina di %s nuovamente in %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: file rimosso prima di poterlo leggere"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "il processo figlio"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "il canale tra processi"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "comando \"%s\" non riuscito"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: elenco file già letto"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "impossibile impostare l'orario su \"%s\""
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: il nome di file letto contiene un carattere NULL"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Usati caratteri di corrispondenza nei nomi dei file."
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1328,57 +1372,58 @@ msgstr ""
 "Usare --wildcards per abilitare la corrispondenza o --no-wildcards per "
 "disabilitare l'avviso"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: non trovato nell'archivio"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: occorrenza richiesta non trovata nell'archivio"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Etichetta dell'archivio non corrispondente"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "L'utilizzo dell'opzione -C all'interno dell'elenco dei file non è consentita "
 "con --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Solo un'opzione -C è consentita con --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Le opzioni \"-%s\" e \"-%s\" richiedono entrambe lo standard input"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: formato dell'archivio non valido"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Richieste funzionalità GNU su un formato di archivio incompatibile"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Stile di citazione \"%s\" non conosciuto. Provare \"%s --quoting-style=help"
 "\" per visualizzarne un elenco."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1396,9 +1441,10 @@ msgstr ""
 "tar\n"
 "  tar -xf archivio.tar         # Estrae tutti i file da archivio.tar\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1419,81 +1465,81 @@ msgstr ""
 "  nil, existing   Numerati se esistono backup numerati, altrimenti semplici\n"
 "  never, simple   Esegue sempre backup semplici\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Modi operativi principali:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "Elenca i contenuti dell'archivio"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "Estrae file da un archivio"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "Crea un nuovo archivio"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "Trova differenze tra l'archivio e il file system"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "Accoda i file alla fine di un archivio"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "Accoda solo i file più recenti della copia nell'archivio"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "Aggiunge il contenuto di un altro archivio"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "Elimina dall'archivio (non su nastri magnetici)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "Verifica l'etichetta di volume dell'archivio ed esce"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modificatori delle operazioni:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "Gestisce efficientemente i file sparsi"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
 # (ndt) hmmm... formato sparso...
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "Imposta la versione da usare per il formato sparso (implica --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "gestisce i vecchi backup incrementali GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "Gestisce il nuovo formato di backup incrementali GNU"
 
 # (ndt) suggerimenti?
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "Livello di dump per l'archivio a lista incrementale creato"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "Non esce con non-zero quando ci sono file non leggibili"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1506,122 +1552,133 @@ msgstr ""
 "sulla riga di comando o attraverso l'opzione -T; il valore predefinito di "
 "NUMERO è 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "L'archivio è posizionabile"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "L'archivio non è posizionabile"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "Non controlla i numeri del device quando crea archivi incrementali"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "Controlla i numeri del device quando crea archivi incrementali (predefinito)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Controlli di sovrascrittura:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "Tenta di verificare l'archivio dopo averlo scritto"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "Rimuove i file dopo averli aggiunti all'archivio"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "Durante l'estrazione non sovrascrive i file esistenti"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "Durante l'estrazione non sovrascrive i file esistenti"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "Non sostituisce i file esistenti più recenti delle copie nell'archivio"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "Sovrascrive i file esistenti durante l'estrazione"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "Rimuove ogni file prima di estrarre su di esso"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "Svuota le directory prima di estrarle"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "Preserva i metadati delle directory esistenti"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "Sovrascrive i metadati delle directory esistenti durante l'estrazione "
 "(predefinito)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "Sovrascrive i file esistenti durante l'estrazione"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Selezione stream di output:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "Estrae i file sullo standard output"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMANDO"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "Invia in pipe i file estratti a un altro programma"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "Ignora il codice di uscita dei figli"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "Considera i codici di uscita non-zero come un errore"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Gestione degli attributi dei file:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "Forza NOME come proprietario per i file aggiunti"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "Forza NOME come gruppo per i file aggiunti"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATA-O-FILE"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "Imposta mtime per i file aggiunti da DATA-O-FILE"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CAMBI"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "Forza il modo CAMBI (simbolico) per i file aggiunti"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODO"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1631,11 +1688,11 @@ msgstr ""
 "dopo la lettura (METODO=\"replace\"; predefinito) o impostando l'orario "
 "all'inizio (METODO=\"system\")"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "Non estrae l'orario di ultima modifica del file"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1643,22 +1700,22 @@ msgstr ""
 "Cerca di estrarre i file con lo stesso proprietario come presente "
 "nell'archivio (predefinito per il super utente)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "Estrae i file come l'utente attuale (predefinito per gli utenti normali)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "Usa sempre i numeri per i nomi di utente/gruppo"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "Estrae informazioni riguardo i permessi dei file (predefinito per il super-"
 "utente)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1666,15 +1723,16 @@ msgstr ""
 "Applica la umask dell'utente nell'estrarre i permessi dall'archivio "
 "(predefinito per gli utenti normali)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "Ordina i nomi da estrarre come nell'archivio"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "Come -p e -s assieme"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1682,139 +1740,180 @@ msgstr ""
 "Ritarda l'impostazione dei tempi di modifica e dei permessi delle directory "
 "estratte al termine dell'estrazione"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "Annulla l'effetto dell'opzione --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Gestione degli attributi dei file:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Selezione e cambio del device:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVIO"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "Usa come archivio il file o il dispositivo ARCHIVIO"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "L'archivio è locale anche se contiene \":\""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "Usa il COMANDO rmt indicato invece di rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "Usa il COMANDO remoto invece di rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "Indica drive e densità"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "Crea, elenca, estrae archivi multi-volume"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "Cambia il nastro dopo avere scritto NUMERO × 1024 byte"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "Esegue lo script alla fine di ogni nastro (implica -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "Usa/aggiorna il numero del volume nel FILE"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blocchi del device:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCCHI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "Usa record di BLOCCHI × 512 byte"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "NUMERO di byte per record, multiplo di 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "Ignora i blocchi a zero nell'archivio (significa EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "Rifà i blocchi durante la lettura (per le pipe di 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Selezione formato di archiviazione:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMATO"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "Crea archivi nel formato indicato"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMATO è uno dei seguenti:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "Vecchio formato di tar V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "Formato GNU di tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "Formato GNU di tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "Formato POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "Formato POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "Come pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "Come --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "Come --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "PAROLA_CHIAVE[[:]=VALORE][,PAROLA_CHIAVE[[:]=VALORE], ...]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "Controlla le parole chiavi di pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TESTO"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1822,79 +1921,79 @@ msgstr ""
 "Crea l'archivio con TESTO come nome di volume; durante l'elencazione o "
 "l'estrazione, usa TESTO come modello di glob per ogni volume"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Opzioni di compressione:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 "Usa il suffisso dell'archivio per determinare il programma di compressione"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "Non usa il suffisso dell'archivio per determinare il programma di "
 "compressione"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "Filtra attraverso PROG (deve accettare -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Selezione dei file locali:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "Aggiunge FILE all'archivio (utile se il nome inizia con un trattino)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "Passa alla directory DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "Prende i nomi da estrarre o creare dal file FILE"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T legge nomi terminati da NULL, disabilita -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "Disabilita l'effetto dell'opzione --null precedente"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "Toglie i caratteri di citazione dai nomi dei file letti con -T (predefinito)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "Non toglie i caratteri di citazione dai nomi dei file letti con -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MODELLO"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "Esclude i file i cui nomi corrispondono a MODELLO"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "Esclude i modelli elencati in FILE"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1902,97 +2001,99 @@ msgstr ""
 "Esclude i contenuti delle directory contenenti CACHEDIR.TAG, a parte il "
 "file .TAG stesso"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "Esclude tutto quanto all'interno di directory contenenti CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "Esclude le directory contenenti CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "Esclude i contenuti delle directory contenenti FILE, a parte FILE stesso "
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "Esclude tutto quanto all'interno di directory contenenti FILE"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "Esclude le directory contenenti FILE"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "Esclude le directory dei sistemi di controllo della versione"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "Esclude i file di backup e di blocco"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "Non entra automaticamente nelle directory"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "Resta nel file system locale durante la creazione dell'archivio"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "Entra ricorsivamente nelle directory (predefinito)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "Non rimuove le \"/\" iniziali dai nomi dei file"
 
 # (ndt) hmmm... non molto chiara...
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "Segue i collegamenti simbolici; archivia ed esegue il dump dei file a cui "
 "puntano"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "Segue i collegamenti fisici; archivia ed esegue il dump dei file a cui si "
 "riferiscono"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NOME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "Inizia dal membro NOME nell'archivio"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "Archivia solo i file più recenti di DATA-O-FILE"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "Confronta data e ora solo quando il contenuto è cambiato"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROLLO"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "Esegue un backup prima di rimuovere, usando il CONTROLLO di versione"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRINGA"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -2000,102 +2101,105 @@ msgstr ""
 "Esegue un backup prima di rimuovere, sovrascrivendo il suffisso \"~\" a meno "
 "che non sia sovrascritto dalla variabile d'ambiente SIMPLE_BACKUP_SUFFIX"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Trasformazioni dei nomi di file:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "Toglie NUMERO componenti iniziali dai nomi dei file durante l'estrazione"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "ESPRESSIONE"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "Usa un'ESPRESSIONE di sostituzione di sed per trasformare i nomi dei file"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Opzioni di corrispondenza del nome del file (vale sia per i modelli di "
 "esclusione che inclusione):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "Non fa differenza tra maiuscole e minuscole"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "I modelli corrispondono all'inizio del nome del file"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "I modelli corrispondono dopo ogni \"/\" (predefinito per le esclusioni)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "Considera diverse le maiuscole e le minuscole (predefinito)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "Utilizza i metacaratteri (predefinito per le esclusioni)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "Corrispondenza letterale della stringa"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "I metacaratteri non corrispondono \"/\""
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "I metacaratteri corrispondono \"/\" (predefinito per le esclusioni)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Output informativo:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "Elenca prolissamente i file elaborati"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "PAROLACHIAVE"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "Controllo di avviso"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "Visualizza un messaggio di avanzamento ogni NUMERO-esimo record (predefinito "
 "10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "AZIONE"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "Esegue l'azione a ogni punto di controllo"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "Stampa un messaggio se non tutti i collegamenti sono archiviati"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SEGNALE"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2107,31 +2211,35 @@ msgstr ""
 "sono: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; sono accettati anche i "
 "nomi senza il prefisso SIG"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "Stampa le date di modifica del file in formato UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "Stampa la data del file in tutti i suoi dettagli"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "Invia l'output prolisso al FILE"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "Mostra il numero di blocco nell'archivio con ogni messaggio"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "Chiede conferma per ogni azione"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "Mostra le impostazioni predefinite di tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2139,33 +2247,33 @@ msgstr ""
 "All'elencazione o all'estrazione, elenca ogni directory che non corrisponde "
 "al criterio di ricerca"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "Mostra il nome del file o dell'archivio dopo la trasformazione"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STILE"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "Imposta lo stile di citazione del nome; consultare più sotto per i valori di "
 "STILE consentiti"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "Caratteri di citazione aggiuntivi da STRINGA"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "Disabilita la citazione per i caratteri dalla STRINGA"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Opzioni di compatibilità:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2173,63 +2281,56 @@ msgstr ""
 "Alla creazione, uguale a --old-archive; all'estrazione, uguale a --no-same-"
 "owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Altre opzioni:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "Disabilita l'uso di alcune opzioni potenzialmente dannose"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Non è possibile indicare più di un'opzione \"-Acdtrux\" o \"--test-label\""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Conflitto tra le opzioni di compressione"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Nome del segnale sconosciuto: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "File campione della data non trovato"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Sostituzione di %s al posto del formato di data sconosciuto %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Opzione %s: la data \"%s\" viene considerata come %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: elenco file già letto"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: il nome di file letto contiene un carattere NULL"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "Filtra l'archivio attraverso %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Argomenti validi per l'opzione --quoting-style sono:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2237,51 +2338,48 @@ msgstr ""
 "\n"
 "Questa versione di tar ha le seguenti impostazioni predefinite:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Proprietario non valido"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Fattore del blocco non valido"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Lunghezza del nastro non valida"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Valore del livello incrementale non valido"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Più di una data di soglia"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Valore versione sparsa non valido"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve=\"system\" non è supportato su questa piattaforma"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "Il valore --checkpoint non è un intero"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Gruppo non valido"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Modo fornito sull'opzione non valido"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Numero non valido"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Proprietario non valido"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2289,122 +2387,152 @@ msgstr ""
 "L'opzione --preserve è deprecata, usare --preserve-permissions --preserve-"
 "order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Dimensione del record non valida"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "La dimensione del record deve essere un multiplo di %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Numero di elementi non valido"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Consentita solo un'opzione --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Argomento densità non corretto: \"%s\""
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Densità sconosciuta: \"%c\""
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Le opzioni \"-[0-7][lmh]\" non sono gestite da questa versione di tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FILE]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "La vecchia opzione \"%c\" richiede un argomento."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence non ha senso senza un elenco di file"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence non può essere usata nel modo di operazioni richiesto"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Archivi multipli richiedono l'opzione \"-M\""
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Impossibile combinare --listed-incremental e --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "L'opzione --level non è utilizzabile senza --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: l'etichetta di volume è troppo lunga (il limite è %lu byte)"
 msgstr[1] "%s: l'etichetta di volume è troppo lunga (il limite sono %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Impossibile verificare archivi multi-volume"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Impossibile verificare archivi compressi"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Il modello %s non può essere usato"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Impossibile usare archivi multi-volume compressi"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Impossibile concatenare archivi compressi"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option può essere usata solo su archivi POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option può essere usata solo su archivi POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option può essere usata solo su archivi POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option può essere usata solo su archivi POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Il modello %s non può essere usato"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 "La lunghezza del volume non può essere minore della dimensione del record"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order non è compatibile con --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Rifiuto totale di creare un archivio vuoto"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Le opzioni \"-Aru\" sono incompatibili con \"-f -\""
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 "È necessario specificare una delle opzioni \"-Acdtrux\" o \"--test-label\""
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Uscita con stato di fallimento in base agli errori precedenti"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2416,51 +2544,47 @@ msgstr[1] "%s: il file si è ridotto di %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "La parola chiave %s è sconosciuta o non ancora implementata"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Orario fuori dall'intervallo consentito"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Il modello %s non può essere usato"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "La parola chiave %s non può essere sostituita"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Intestazione estesa malformata: manca la lunghezza"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "La lunghezza intestazione estesa è fuori dall'intervallo consentito"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "La lunghezza dell'intestazione estesa %*s è fuori dall'intervallo"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Intestazione estesa malformata: manca lo spazio dopo la lunghezza"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Intestazione estesa malformata: manca il segno di uguale"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Intestazione estesa malformata: manca un newline"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Parola chiave sconosciuta \"%s\" dell'intestazione estesa ignorata"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2469,65 +2593,65 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "L'intestazione estesa %s=%s è fuori dall'intervallo %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Intestazione estesa malformata: %s=%s non valido"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Intestazione estesa malformata: %s=%s in eccesso"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Intestazione estesa malformata: %s non valido: delimitatore %c non atteso"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 "Intestazione estesa malformata: %s non valido: numero dispari di valori"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: timeout non valido"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: azione di punto di controllo sconosciuta"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "lettura"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "scrittura"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Punto di controllo di scrittura %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Punto di controllo di lettura %u"
@@ -2677,7 +2801,7 @@ msgstr "Numero fuori dall'intervallo consentito: %s"
 msgid "Negative size: %s"
 msgstr "Dimensione negativa: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) non riuscita"
@@ -2707,8 +2831,8 @@ msgstr "Formato data non conosciuto"
 msgid "[ARGS...]"
 msgstr "[ARGOMENTI...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "impossibile aprire \"%s\""
@@ -2722,7 +2846,7 @@ msgstr "impossibile eseguire seek"
 msgid "file name contains null character"
 msgstr "il nome del file contiene caratteri NULL"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
@@ -2730,60 +2854,89 @@ msgstr ""
 "file"
 
 # (ndt) ?
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "maschera non corretta (vicino a \"%s\")"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Campo \"%s\" sconosciuto"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "impossibile impostare l'orario su \"%s\""
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "impossibile eseguire l'unlink di %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "comando \"%s\" non riuscito"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "impossibile eseguire l'unlink di %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Comando eseguito con successo\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Comando non riuscito con lo stato %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Comando terminato al segnale %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Comando fermato al segnale %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Il comando ha fatto un dump del core\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Comando terminato\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat richiede i nomi dei file"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: directory rimossa prima di poterla leggere"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Impossibile recuperare la directory di lavoro"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "Ordina i nomi da estrarre come nell'archivio"
+
+# (ndt) oppure rendere snapshot come istantanea?
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Campo troppo lungo nel leggere il file di snapshot"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Errore di lettura nel file di snapshot"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Valore del campo inatteso nel file di snapshot"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "La lunghezza intestazione estesa è fuori dall'intervallo consentito"
+
+#~ msgid "Invalid group"
+#~ msgstr "Gruppo non valido"
index 18c7de52bce709576f1a23cb00f7ef8558e49be5..e735a9d48042ea8baf383c95ae2a712e1b98a08a 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 900737ef11b4b887870721f1445f29f699c7ff8a..b72dfa9f527d6d8811297c4a58f91387180a97c2 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,18 +1,18 @@
-# Japanese messages for GNU tar 1.25
-# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Japanese messages for GNU tar 1.26
+# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
-# Masahito Yamaga <ma@yama-ga.com>, 2010.
+# Masahito Yamaga <ma@yama-ga.com>, 2012.
 #  derived from the version by
 #              Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001.
 #              Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2007.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU tar 1.25\n"
+"Project-Id-Version: GNU tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-08 17:57+0900\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2012-10-21 12:14+0900\n"
 "Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
 "Language: ja\n"
@@ -32,36 +32,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "°ú¿ô %s ¤Ï %s ¤ËÂФ·¤Æ¤¢¤¤¤Þ¤¤¤Ç¤¹"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Àµ¤·¤¤°ú¿ô¤Ï:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s ÃͤϠ%s ¤è¤ê¾®¤µ¤¤¤«Åù¤·¤¤"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT ¥Ñ¥é¥á¡¼¥¿¤ÏÃͤ¬É¬Í×"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT ¥Ñ¥é¥á¡¼¥¿¤ÏÀµ¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Ì¤ÃΤΠARGP_HELP_FMT ¥Ñ¥é¥á¡¼¥¿"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "ARGP_HELP_FMT ¤Ë¥´¥ß: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -69,29 +68,29 @@ msgstr ""
 "Ť¤¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ëɬ¿Ü¤Þ¤¿¤ÏǤ°Õ¤Î°ú¿ô¤ÏÂбþ¤¹¤ëû¤¤¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤â"
 "ɬ¿Ü¤Þ¤¿¤ÏǤ°Õ¤Ç¤¹."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "»ÈÍÑË¡:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  ¤Þ¤¿¤Ï: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [¥ª¥×¥·¥ç¥ó...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï `%s --help' ¤Þ¤¿¤Ï `%s --usage' ¤Ç.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Þ¤Ç.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "ÉÔÌÀ¤Ê¥·¥¹¥Æ¥à¥¨¥é¡¼"
 
@@ -103,7 +102,7 @@ msgstr "
 msgid "give a short usage message"
 msgstr "û¤¤»ÈÍÑË¡¥á¥Ã¥»¡¼¥¸¤òɽ¼¨"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAME"
@@ -124,17 +123,16 @@ msgstr "SECS 
 msgid "print program version"
 msgstr "¥×¥í¥°¥é¥à¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(¥×¥í¥°¥é¥à¥¨¥é¡¼) ¥Ð¡¼¥¸¥ç¥óÉÔÌÀ!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: °ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(¥×¥í¥°¥é¥à¥¨¥é¡¼) ¥ª¥×¥·¥ç¥óǧ¼±ÉÔǽ!?"
 
@@ -142,62 +140,62 @@ msgstr "(
 msgid "write error"
 msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '--%s' ¤Ë°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '%c%s' ¤Ë°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '--%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: Ì¤ÃΤΥª¥×¥·¥ç¥ó '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: Ì¤ÃΤΥª¥×¥·¥ç¥ó '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: Ìµ¸ú¤Ê¥ª¥×¥·¥ç¥ó -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '-W %s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '-W %s' ¤Ë°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó '-W %s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "¥á¥â¥ê¤ò»È¤¤ÀÚ¤ê¤Þ¤·¤¿"
 
@@ -213,28 +211,30 @@ msgstr "
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -244,7 +244,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yY]"
 
@@ -254,7 +254,7 @@ msgstr "^[yY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -542,7 +542,12 @@ msgstr "ɸ
 msgid "Cannot connect to %s: resolve failed"
 msgstr "%s ¤ËÀܳ¤Ç¤­¤Þ¤»¤ó: Ì¾Á°²ò·è¼ºÇÔ"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "±ó³Ö¥·¥§¥ë¤¬¼Â¹Ô¤Ç¤­¤Þ¤»¤ó"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "±ó³Ö¥·¥§¥ë¤¬¼Â¹Ô¤Ç¤­¤Þ¤»¤ó"
@@ -591,8 +596,8 @@ msgstr "ͽ
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "±ó³Ö¥×¥í¥»¥¹¤«¤é¤ÎÌ¿Îá¤ò¼õ¤±ÉÕ¤±¤Æ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÁàºî"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMBER"
 
@@ -600,8 +605,8 @@ msgstr "NUMBER"
 msgid "set debug level"
 msgstr "¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤òÀßÄê"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -616,7 +621,7 @@ msgstr "
 msgid "cannot open %s"
 msgstr "%s ¤ò³«¤±¤Þ¤»¤ó"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
@@ -625,9 +630,9 @@ msgstr "
 msgid "Garbage command"
 msgstr "ÉÔÍפʥ³¥Þ¥ó¥É"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "¤³¤ì¤Ï tar ¥¢¡¼¥«¥¤¥Ö¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹"
 
@@ -665,64 +670,64 @@ msgstr "ɸ
 msgid "Archive is compressed. Use %s option"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ï°µ½Ì¤µ¤ì¤Æ¤¤¤Þ¤¹. %s ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "°µ½Ì¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤Ç¤­¤Þ¤»¤ó"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "¥Æ¡¼¥×¤ÎÀèƬ¤Ç¤¹. ½èÍý¤òÃæ»ß¤·¤Þ¤¹"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "¥¨¥é¡¼¤¬Â¿¤¹¤®¤Þ¤¹. ½èÍý¤òÃæ»ß¤·¤Þ¤¹"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "µ­Ï¿¥µ¥¤¥º = %lu ¥Ö¥í¥Ã¥¯"
 msgstr[1] "µ­Ï¿¥µ¥¤¥º = %lu ¥Ö¥í¥Ã¥¯"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ö¥í¥Ã¥¯ (%lu ¥Ð¥¤¥È)"
 msgstr[1] "¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ö¥í¥Ã¥¯ (%lu ¥Ð¥¤¥È)"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ò¸å¤íÊý¸þ¤ËÌ᤻¤Þ¤»¤ó. -i ¤Ê¤·¤Ç¤ÏÆɤá¤Ê¤¤¤«¤âÃΤì¤Þ¤»¤ó."
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek ¤òµ­Ï¿¤Î¶­³¦¤Ç»ß¤á¤Þ¤»¤ó"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: Ìµ¸ú¤Ê¥Ü¥ê¥å¡¼¥àÈÖ¹æ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "¥Ü¥ê¥å¡¼¥àÈֹ椬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "¥Ü¥ê¥å¡¼¥à #%d (%s) ¤ò½àÈ÷¤·¤Þ¤¹. ¥ê¥¿¡¼¥ó¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "¥æ¡¼¥¶¤¬±þÅú¤¹¤ë EOF ¤¬É¬ÍפȤʤê¤Þ¤¹"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "·Ù¹ð: ¥¢¡¼¥«¥¤¥Ö¤¬ÉÔ´°Á´¤Ç¤¹"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -734,67 +739,67 @@ msgstr ""
 " q             tar ¤ò½ªÎ»\n"
 " y ¤Þ¤¿¤Ï²þ¹Ô  Áàºî¤ò·Ñ³\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             ¥µ¥Ö¥·¥§¥ë¤òµ¯Æ°\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             ¤³¤Î¥ê¥¹¥È¤òɽ¼¨\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "¿·¤·¤¤¥Ü¥ê¥å¡¼¥à¤¬¤¢¤ê¤Þ¤»¤ó. ½ªÎ»¤·¤Þ¤¹.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó. ¤â¤¦°ìÅÙ.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "ÉÔÀµ¤ÊÆþÎÏ. ? ¤Ç¥Ø¥ë¥×¤òɽ¼¨\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s ¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s ¤Ï¤³¤Î¥Ü¥ê¥å¡¼¥à¾å¤Ç¤ª¤½¤é¤¯Ï¢Â³¤·¤Æ¤¤¤Þ¤¹: ¥Ø¥Ã¥À¤Ï¾Êά¤µ¤ì¤¿Ì¾Á°¤ò´Þ¤ó¤Ç"
 "¤¤¤Þ¤¹"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s ¤Ï¤³¤Î¥Ü¥ê¥å¡¼¥à¾å¤ÇϢ³¤·¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s ¤ÏÉÔÀµ¤Ê¥µ¥¤¥º¤Ç¤¹ (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "¤³¤Î¥Ü¥ê¥å¡¼¥à¤ÏϢ³¤·¤Æ¤¤¤Þ¤»¤ó (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ï %s ¤Ë°ìÃפ¹¤ë¥é¥Ù¥ë¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "¥Ü¥ê¥å¡¼¥à %s ¤Ï %s ¤Ë°ìÃפ·¤Þ¤»¤ó"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -802,508 +807,548 @@ msgstr ""
 "%s: ¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤Æ GNU ¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥Ø¥Ã¥À¤ËÊݸ¤Ç¤­¤Ê¤¤¤Î¤ÇÀÚ¤ê¼Î¤Æ"
 "¤Þ¤¹"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "½ñ¤­¹þ¤ß¤¬¥Ö¥í¥Ã¥¯¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "%lu ¥Ð¥¤¥È¤À¤±¤ò %lu ¥Ð¥¤¥È¤«¤éÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿"
 msgstr[1] "%lu ¥Ð¥¤¥È¤À¤±¤ò %lu ¥Ð¥¤¥È¤«¤éÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "ÆâÍƤ¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "¥¢¡¼¥«¥¤¥ÖÃæ¤Ëͽ´ü¤»¤Ì EOF ¤¬¤¢¤ê¤Þ¤¹"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "¥â¡¼¥É¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "¥æ¡¼¥¶ ID ¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "¥°¥ë¡¼¥× ID ¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "ºÇ½ª½¤Àµ»þ¹ï¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "¥µ¥¤¥º¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "%s ¤Ë¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬°Û¤Ê¤ê¤Þ¤¹"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "¥Ç¥Ð¥¤¥¹Èֹ椬°ã¤¤¤Þ¤¹"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "¸¡¾Ú"
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Ì¤ÃΤΥե¡¥¤¥ë¥¿¥¤¥× `%c', Ä̾ï¥Õ¥¡¥¤¥ë¤Èº¹Ê¬¤ò¼è¤ê¤Þ¤¹"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "¥¢¡¼¥«¥¤¥ÖÃæ¤ËÀÜƬ¼­¤¬ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤¹."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "¥¢¡¼¥«¥¤¥Ö¤ËÇѤ줿 base-64 ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
+msgstr "¥¢¡¼¥«¥¤¥Ö¤ËÊÑ´¹¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "¸µ¤Î¥Õ¥¡¥¤¥ë¤Î½êºß³Îǧ¤Ë¼ºÇÔ¤·¤¿²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "³Îǧ¼ºÇÔ: %d ¸Ä¤Î̵¸ú¤Ê¥Ø¥Ã¥À¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
 msgstr[1] "³Îǧ¼ºÇÔ: %d ¸Ä¤Î̵¸ú¤Ê¥Ø¥Ã¥À¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "%s ¤Ë¸ÉΩ¤·¤¿¥¼¥í¥Ö¥í¥Ã¥¯"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: ¥­¥ã¥Ã¥·¥å ¥Ç¥£¥ì¥¯¥È¥ê ¥¿¥° %s ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "ÃÍ %s ¤Ï %s ¤ÎÈÏ°Ï %s..%s ¤Ë¤¢¤ê¤Þ¤»¤ó -- %s ¤òÂåÍÑ"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "ÃÍ %s ¤Ï %s ¤ÎÈÏ°Ï %s..%s ¤Ë¤¢¤ê¤Þ¤»¤ó"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Éé¤Î 8 ¿Ê¥Ø¥Ã¥À¤òÀ¸À®¤·¤Þ¤¹"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: ¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤ë (ºÇÂç %d) ¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: ¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤ë (ʬ³äÉÔǽ) ¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: ¥ê¥ó¥¯Ì¾¤¬Ä¹²á¤®¤ë¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: %s ¥Ð¥¤¥È¾®¤µ¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢¥¼¥í¤ÇËä¤á¤Þ¤¹"
 msgstr[1] "%s: %s ¥Ð¥¤¥È¾®¤µ¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢¥¼¥í¤ÇËä¤á¤Þ¤¹"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: ¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "ÆâÍƤò¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Ì¤ÃΤΥե¡¥¤¥ë·Á¼°; ¥Õ¥¡¥¤¥ë¤Ï̵»ë¤µ¤ì¤Þ¤¹"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "%s ¤Ø¤Î¥ê¥ó¥¯¤¬¤¢¤ê¤Þ¤»¤ó."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: Êѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: ¤Ï¥¢¡¼¥«¥¤¥Ö¤Ê¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ò¥À¥ó¥×¤·¤Þ¤»¤ó"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: Æɤ߹þ¤ó¤À¥Õ¥¡¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: ¥½¥±¥Ã¥È¤Ï̵»ë¤·¤Þ¤¹"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door ¤Ï̵»ë¤·¤Þ¤¹"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "¼¡¤Î¥Ø¥Ã¥À¤ò¥¹¥­¥Ã¥×¤·¤Þ¤¹"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤«¤é¥Ø¥Ã¥À¤Ç¤Ê¤¤¤â¤Î¤òºï½ü¤·¤Þ¤¹"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: ¶²¤é¤¯¸Å¤¤¥¿¥¤¥à¥¹¥¿¥ó¥× %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: ¥¿¥¤¥à¥¹¥¿¥ó¥× %s ¤Ï %s ÉÃÀè¤ò¼¨¤·¤Æ¤¤¤Þ¤¹"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥êºîÀ®»þ¤ËÉÔ¬¤ÎÌ·½â¤¬µ¯¤³¤ê¤Þ¤·¤¿"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¾õÂÖ¤òŸ³«¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ëÁ°¤Ë̾Á°¤òÊѹ¹¤µ¤ì¤Þ¤·¤¿"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Ϣ³¤·¤¿¥Õ¥¡¥¤¥ë¤òÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë¤È¤·¤Æ¼è¤ê½Ð¤·¤Þ¤¹"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¥Ï¡¼¥É¥ê¥ó¥¯¤È¤·¤Æ¼è¤ê½Ð¤·¤Æ¤ß¤Þ¤¹"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: ¼è¤ê½Ð¤»¤Þ¤»¤ó -- ¥Õ¥¡¥¤¥ë¤ÏÊ̤Υܥê¥å¡¼¥à¤«¤é³¤¤¤Æ¤¤¤Þ¤¹"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "ͽ´ü¤»¤ÌŤ¤Ì¾Á°¥Ø¥Ã¥À"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Ì¤ÃΤΥե¡¥¤¥ë¥¿¥¤¥× '%c', Ä̾ï¥Õ¥¡¥¤¥ë¤È¤·¤ÆÃê½Ð"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "¸½ºß¤Î %s ¤ÎÊý¤¬¿·¤·¤¤¤«Æ±¤¸"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: ¤³¤Î¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s ¤Î̾Á°¤ò %s ¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê̾¤¬ %s ¤«¤éÊѹ¹¤µ¤ì¤Þ¤·¤¿"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê̾¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¿·¤·¤¯ºî¤é¤ì¤Þ¤·¤¿"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: ¥Õ¥¡¥¤¥ë¤Ï°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¤Î¤Ç¥À¥ó¥×¤·¤Þ¤»¤ó"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê̾¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "̵¸ú¤Ê¥¿¥¤¥à¥¹¥¿¥ó¥×"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "ÉÔÀµ¤ÊºÇ½ª¹¹¿·»þ¹ï (ÉÃ)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "ÉÔÀµ¤ÊºÇ½ª¹¹¿·»þ¹ï (¥Ê¥ÎÉÃ)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "̵¸ú¤Ê¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ç¤¹"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "̵¸ú¤Ê inode ÈÖ¹æ"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë¥Õ¥£¡¼¥ë¥É¤¬Ä¹²á¤®¤Þ¤¹"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤ËÆɤ߹þ¤ß¥¨¥é¡¼"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤Ëͽ´ü¤»¤Ì EOF"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤Ëͽ´ü¤»¤Ì¥Õ¥£¡¼¥ë¥ÉÃÍ"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "½ªÃ¼µ­Ï¿¤Ê¤·"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "ÉÔÀµ¤ÊÁýʬ¥Õ¥¡¥¤¥ë·Á¼°"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "̤¼ÂÁõ¤ÎÁýʬ·Á¼°¥Ð¡¼¥¸¥ç¥ó: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: '%c' ¤¬¤¢¤ë¤Ù¤­¤È¤³¤í¤Ë %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: 'X' ¤¬½ÅÊ£"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: 'R' ¤Ë¶õ¤Î̾Á°"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: 'T' ¤¬ 'R' ¤ÎÁ°¤Ë¤Ê¤¤"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: 'T' ¤Ë¶õ¤Î̾Á°"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: '%c' ¤¬¤¢¤ë¤Ù¤­¤È¤³¤í¤Ë¥Ç¡¼¥¿¤Î½ªÃ¼"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "ÉÔÀµ·Á¼°¤Î dumpdir: 'X' ¤¬Ì¤»ÈÍÑ"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
-msgstr "¥Æ¥ó¥×¥ì¡¼¥È %s ¤ò»È¤Ã¤Æ°ì¼¡¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ì¤Þ¤»¤ó"
+msgstr "¥Æ¥ó¥×¥ì¡¼¥È %s ¤ò»È¤Ã¤Æ°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ì¤Þ¤»¤ó"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤·¤Þ¤»¤ó: ¾õÂÖ¤¬Ê¬¤«¤ê¤Þ¤»¤ó"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤Ï°Û¤Ê¤ë¥Ç¥Ð¥¤¥¹¾å¤Ë¤¢¤ë¤Î¤Ç¾Ãµî¤·¤Þ¤»¤ó"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s ¤òºï½ü\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: ºï½ü¤Ç¤­¤Þ¤»¤ó"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: ¾Êά¤·¤Þ¤¹"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "¥Ö¥í¥Ã¥¯ %s: ** NUL ¤Î¥Ö¥í¥Ã¥¯ **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "¥Ö¥í¥Ã¥¯ %s: ** ¥Õ¥¡¥¤¥ë¤Î½ªÃ¼ **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "¥Ö¥í¥Ã¥¯ %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "¿ôÃÍ %s ¤È¤Ê¤ë¤Ù¤­¥Ø¥Ã¥À°ÌÃÖ¤¬¶õ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "8 ¿Ê¿ôÃÍ %.*s ¤Ï %s ¤ÎÈϰϳ°¤Ç¤¹ -- 2 ¤ÎÊä¿ô¤È¸«¤Ê¤·¤Þ¤¹"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "8 ¿Ê¿ôÃÍ %.*s ¤Ï %s ¤ÎÈϰϳ°¤Ç¤¹"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤ËÇѤ줿 base-64 ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Éä¹æÉÕ¤­ base-64 Ê¸»úÎó %s ¤Ï %s ¤ÎÈϰϳ°¤Ç¤¹"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "base-256 ÃͤϠ%s ¤ÎÈϰϳ°¤Ç¤¹"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ë %.*s ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤³¤Ï¿ôÃÍ %s ¤È¤Ê¤ë¤Ï¤º¤Ç¤¹"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤ÎÃÍ %s ¤Ï %s ¤ÎÈÏ°Ï %s..%s Æâ¤Ë¤¢¤ê¤Þ¤»¤ó"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " %s ¤Ø¤Î¥ê¥ó¥¯\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " ÉÔÌÀ¤Ê¥Õ¥¡¥¤¥ë¥¿¥¤¥× %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Ť¤¥ê¥ó¥¯--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Ť¤Ì¾Á°--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--¥Ü¥ê¥å¡¼¥à¥Ø¥Ã¥À--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--¥Ð¥¤¥È %s ¤ÇϢ³--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "¥ï¡¼¥¯¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "̾Á°¤ò %s ¤«¤é %s ¤ËÊѹ¹¤·¤Þ¤¹\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Ì¾Á°¤ò %s ¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "̾Á°¤ò %s ¤«¤é %s ¤ËÌᤷ¤Þ¤¹\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Æɤ߹þ¤ß°ÊÁ°¤Ëºï½ü¤µ¤ì¤Þ¤·¤¿"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "»Ò¥×¥í¥»¥¹"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "¥×¥í¥»¥¹´Ö¥Á¥ã¥Í¥ë"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s ¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: ¥Õ¥¡¥¤¥ë°ìÍ÷¤Ï´û¤ËÆɤ߹þ¤ßºÑ¤ß"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "`%s' ¤Ë»þ¹ï¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: Æɤ߹þ¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Ë¥Ì¥ëʸ»ú"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Îʸ»ú¤¬¥Õ¥¡¥¤¥ë̾¤Ë»È¤ï¤ì¤Æ¤¤¤Þ¤¹"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1311,54 +1356,55 @@ msgstr ""
 "¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤òÍ­¸ú¤Ë¤¹¤ë¤Ê¤é --wildcards, ¤³¤Î·Ù¹ð¤òÍ޻ߤ¹¤ë¤Ê¤é --no-"
 "wildcards ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: ¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: ¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "¥¢¡¼¥«¥¤¥Ö¥é¥Ù¥ë¤¬°ìÃפ·¤Þ¤»¤ó"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "¥Õ¥¡¥¤¥ë¥ê¥¹¥ÈÆâ¤Ç -C ¥ª¥×¥·¥ç¥ó¤Ï --listed-incremental ¤È°ì½ï¤Ë»È¤¨¤Þ¤»¤ó"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "-C ¥ª¥×¥·¥ç¥ó¤Ï 1¤Ä¤À¤±¤Ê¤é --listed-incremental ¤È°ì½ï¤Ë»È¤¨¤Þ¤¹"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "¥ª¥×¥·¥ç¥ó `-%s' ¤È `-%s' ¤Ï¤É¤Á¤é¤âɸ½àÆþÎϤ¬É¬ÍפǤ¹"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Ìµ¸ú¤Ê¥¢¡¼¥«¥¤¥Ö·Á¼°"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU ÆÃÍ­¤Îµ¡Ç½¤Ï¡¢Èó¸ß´¹¤Ê·Á¼°¤òɬÍפȤ·¤Þ¤¹"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr "ÉÔÌÀ¤Ê°úÍÑ·Á¼° `%s', `%s --quoting-style=help' ¤Ç°ìÍ÷ɽ¼¨."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1375,9 +1421,10 @@ msgstr ""
 "  tar -tvf archive.tar         # archive.tar Æâ¤ÎÁ´¥Õ¥¡¥¤¥ë¤ò¾Ü¤·¤¯°ìÍ÷ɽ¼¨\n"
 "  tar -xf archive.tar          # archive.tar ¤«¤éÁ´¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð¤¹\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1396,79 +1443,79 @@ msgstr ""
 "                  ¤½¤¦¤Ç¤Ê¤±¤ì¤Ðñ¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ë\n"
 "  never, simple   ¾ï¤Ëñ½ã¤Ê¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ë\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "¼çÁàºî¥â¡¼¥É:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤ÎÆâÍƤò°ìÍ÷ɽ¼¨"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "¿·¤·¤¤¥¢¡¼¥«¥¤¥Ö¤òºîÀ®"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤Î°ã¤¤¤ò¸«ÉÕ¤±¤ë"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø¤Ë¥Õ¥¡¥¤¥ë¤òÄɲÃ"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤ß¤òÄɲÃ"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ë tar ¥Õ¥¡¥¤¥ë¤òÄɲÃ"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤«¤éºï½ü (¼§µ¤¥Æ¡¼¥×¾å¤Ç¤Ï¥À¥á!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Î¥Ü¥ê¥å¡¼¥à¥é¥Ù¥ë¤ò¥Æ¥¹¥È¤·¤Æ½ªÎ»"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Áàºî¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ëÉղõ¡Ç½:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "¤Þ¤Ð¤é¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¸ú²ÌŪ¤Ë½èÍý"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "¤Þ¤Ð¤é (sparse) ·Á¼°¤Î¥Ð¡¼¥¸¥ç¥ó¤òÀßÄê (--sparse ¤Î°ÕÌ£¤ò´Þ¤à)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "¸Å¤¤ GNU ·Á¼°¤Î¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò½èÍý"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "¿·¤·¤¤ GNU ·Á¼°¤Î¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò½èÍý"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "ºî¤é¤ì¤¿ listed-incremental ¥¢¡¼¥«¥¤¥Ö¤ËÂФ¹¤ë¥À¥ó¥×¥ì¥Ù¥ë"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
-msgstr "Æɤ߹þ¤á¤Ê¤¤¥Õ¥¡¥¤¥ë¾å¤ËÈó¥¼¥í¤Î¾õÂ֤Ǹºß¤·¤Þ¤»¤ó"
+msgstr "Æɤ߹þ¤á¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ë¤ª¤¤¤ÆÈó¥¼¥í¤Ç½ªÎ»¤·¤Þ¤»¤ó"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1480,119 +1527,130 @@ msgstr ""
 "¥Õ¥¡¥¤¥ë°ìÍ÷¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤« -T ¥ª¥×¥·¥ç¥ó·Ðͳ¤Î¤É¤Á¤é¤«¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Î"
 "¤ßÍ­¸ú. NUMBER ¤Ïɸ½à¤Ç 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ï¸¡º÷²Äǽ"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤Ï¸¡º÷²Äǽ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥¢¡¼¥«¥¤¥ÖºîÀ®»þ¤Ë¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥¢¡¼¥«¥¤¥ÖºîÀ®»þ¤Ë¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò¥Á¥§¥Ã¥¯¤¹¤ë (ɸ½à)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "À©¸æ¤ò¾å½ñ¤­:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤­½Ð¤·¤¿¸å¤Ë¸¡¾Ú"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤Ë²Ã¤¨¤¿¸å¤Çºï½ü"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "¼è¤ê½Ð¤¹ºÝ¤Ë´û¸¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤­´¹¤¨¤Ê¤¤"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "¼è¤ê½Ð¤¹ºÝ¤Ë´û¸¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤­´¹¤¨¤Ê¤¤"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "¥¢¡¼¥«¥¤¥Ö¥³¥Ô¡¼¤è¤ê¿·¤·¤¤´û¸¥Õ¥¡¥¤¥ë¤òÃÖ¤­´¹¤¨¤Ê¤¤"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "¼è¤ê½Ð¤¹ºÝ¤Ë´û¸¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "³Æ¡¹¤Î¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð¤·¤Æ¾å½ñ¤­¤¹¤ëÁ°¤Ëºï½ü"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ò¼è¤ê½Ð¤¹Á°¤Ë³¬Áؤò¶õ¤Ë"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "´û¸¥Ç¥£¥ì¥¯¥È¥ê¤Î¥á¥¿¥Ç¡¼¥¿¤òÊݸ"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "¼è¤ê½Ð¤¹ºÝ¤Ë´û¸¥Ç¥£¥ì¥¯¥È¥ê¤Î¥á¥¿¥Ç¡¼¥¿¤ò¾å½ñ¤­ (ɸ½à)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "¼è¤ê½Ð¤¹ºÝ¤Ë´û¸¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "½ÐÎÏ¥¹¥È¥ê¡¼¥à¤òÁªÂò"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð¤·¤Æɸ½à½ÐÎϤ˽ÐÎÏ"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMMAND"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð¤·¤ÆÊÌ¤Î¥×¥í¥°¥é¥à¤Ë½ÐÎÏ"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥³¡¼¥É¤ò̵»ë"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "»Ò¥×¥í¥»¥¹¤ÎÈó¥¼¥í½ªÎ»¥³¡¼¥É¤ò¥¨¥é¡¼¤È¤·¤Æ½èÍý"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "¥Õ¥¡¥¤¥ë°À­¤Î½èÍý"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "²Ã¤¨¤¿¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤ò NAME ¤ËÊѹ¹"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "²Ã¤¨¤¿¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¤ò NAME ¤ËÊѹ¹"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATE-OR-FILE"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "DATE-OR-FILE ¤«¤éÄɲåե¡¥¤¥ë¤Î mtime ¤òÀßÄê"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CHANGES"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "²Ã¤¨¤¿¥Õ¥¡¥¤¥ë¤Î (¥·¥ó¥Ü¥ê¥Ã¥¯) ¥â¡¼¥É¤ò CHANGES ¤ËÊѹ¹"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METHOD"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1601,11 +1659,11 @@ msgstr ""
 "ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¤ò, Æɤ߹þ¤ß¸å¤ËÉü¸µ¤¹¤ë (METHOD='replace'; É¸½à) ¤«ºÇ½é¤ËÀß"
 "Äꤷ¤Ê¤¤ (METHOD='system') ¤«¤Î¤É¤Á¤é¤«¤ÎÊýË¡¤Ç¥À¥ó¥×¥Õ¥¡¥¤¥ë¾å¤Ç°Ý»ý"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "¥Õ¥¡¥¤¥ë¤Î¹¹¿·»þ¹ï¤ò¼è¤ê½Ð¤µ¤Ê¤¤"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1613,173 +1671,215 @@ msgstr ""
 "¥¢¡¼¥«¥¤¥ÖÆâ¤ÈƱ¤¸½êÍ­¼Ô¤Î¤Þ¤Þ¤Ç¥Õ¥¡¥¤¥ë¤ò¼è¤ê½Ð¤·¤Æ¤ß¤ë (¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ï"
 "¥Ç¥Õ¥©¥ë¥È)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "¤¢¤Ê¤¿¼«¿È¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¼è¤ê½Ð¤¹ (°ìÈ̥桼¥¶¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "¥æ¡¼¥¶Ì¾/¥°¥ë¡¼¥×̾¤È¤·¤Æ¾ï¤Ë¿ô»ú¤ò»È¤¦"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "¥Õ¥¡¥¤¥ë°À­¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÃê½Ð (superuser ¤Ç¤Ïɸ½à)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 "¥¢¡¼¥«¥¤¥Ö¤«¤é°À­¤òÃê½Ð¤¹¤ëºÝ¤Ë¥æ¡¼¥¶¤Î umask ¤òŬÍÑ (°ìÈ̥桼¥¶¤Ç¤Ïɸ½à)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "¥¢¡¼¥«¥¤¥Ö¤È¥Þ¥Ã¥Á¤µ¤»¤ë¤¿¤á¤Ë¼è¤ê½Ð¤¹Ì¾Á°¤òʤÓÂؤ¨"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "-p ¤È -s ¤ÎξÊý¤ò»ØÄꤷ¤¿¤â¤Î¤ÈƱ¤¸"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 "Ãê½Ð¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÃê½Ð¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇ½ª¹¹¿·»þ¹ï¤È°À­¤ÎÀßÄê¤òÃ٤餻¤ë"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "--delay-directory-restore ¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤ò¼è¤ê¾Ã¤·"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "¥Õ¥¡¥¤¥ë°À­¤Î½èÍý"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "¥Ç¥Ð¥¤¥¹¤ÎÁªÂò¤ÈÀÚÂØ:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVE"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥Ð¥¤¥¹ ARCHIVE ¤ò»ÈÍÑ"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ï¥³¥í¥ó¤ò´Þ¤ó¤Ç¤¤¤Æ¤â¥í¡¼¥«¥ë"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "»ØÄꤵ¤ì¤¿ rmt COMMAND ¤ò rmt ¤ÎÂå¤ï¤ê¤Ë»ÈÍÑ"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "rsh ¤ÎÂå¤ï¤ê¤Ë COMMAND ¤ò»ÈÍÑ"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "¥É¥é¥¤¥Ö¤ÈÌ©ÅÙ¤ò»ØÄê"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¤Î¥¢¡¼¥«¥¤¥Ö¤òºîÀ®/°ìÍ÷/Ãê½Ð"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "NUMBER x 1024 ¥Ð¥¤¥È¤ò½ñ¤­½Ð¤·¤¿¸å¤Ç¥Æ¡¼¥×¤òÊѹ¹"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "³Æ¡¹¤Î¥Æ¡¼¥×¤ÎºÇ¸å¤Ç¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô (-M É¬¿Ü)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "FILE Ãæ¤Î¥Ü¥ê¥å¡¼¥àÈÖ¹æ¤ò»ÈÍÑ/¹¹¿·"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "¥Ç¥Ð¥¤¥¹¥Ö¥í¥Ã¥­¥ó¥°:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCKS"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "¥ì¥³¡¼¥É¤¢¤¿¤ê BLOCKS x 512 ¥Ð¥¤¥È"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "¥ì¥³¡¼¥É¤¢¤¿¤ê NUMBER ¥Ð¥¤¥È. 512 ¤ÎÇÜ¿ô"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "¥¢¡¼¥«¥¤¥ÖÃæ¤Î¥¼¥í¥Ö¥í¥Ã¥¯ (¤Ä¤Þ¤ê EOF) ¤ò̵»ë"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "Æɤ߽Ф·¤¿¤è¤¦¤ËºÆ¥Ö¥í¥Ã¥¯ (4.2BSD ¥Ñ¥¤¥×ÍÑ)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "¥¢¡¼¥«¥¤¥Ö·Á¼°¤ÎÁªÂò"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "»ØÄꤵ¤ì¤¿·Á¼°¤Î¥¢¡¼¥«¥¤¥Ö¤òºîÀ®"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT ¤Ï¼¡¤Î¤¦¤Á¤Î 1¤Ä:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "¸Å¤¤ V7 tar ·Á¼°"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU tar 1.12 °ÊÁ°¤Î·Á¼°"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x ·Á¼°"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) ·Á¼°"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) ·Á¼°"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "pax ¤ÈƱ¤¸"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "--format=v7 ¤ÈƱ¤¸"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "--format=posix ¤ÈƱ¤¸"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "keyword[[:]=value][,keyword[[:]=value]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "pax ¥­¡¼¥ï¡¼¥É¤òÀ©¸æ"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1787,167 +1887,169 @@ msgstr ""
 "¥Ü¥ê¥å¡¼¥à̾ TEXT ¤Î¥¢¡¼¥«¥¤¥Ö¤òºîÀ®. °ìÍ÷/Ãê½Ð»þ¤Ë TEXT ¤ò¥Ü¥ê¥å¡¼¥à̾¤ËÂФ¹"
 "¤ëÃê½Ð¥Ñ¥¿¡¼¥ó¤Ë»ÈÍÑ"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "°µ½Ì¥ª¥×¥·¥ç¥ó:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "°µ½Ì¥×¥í¥°¥é¥à¤ò·è¤á¤ë¤Î¤Ë¥¢¡¼¥«¥¤¥ÖÀÜÈø¼­¤ò»ÈÍѤ¹¤ë"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "°µ½Ì¥×¥í¥°¥é¥à¤ò·è¤á¤ë¤Î¤Ë¥¢¡¼¥«¥¤¥ÖÀÜÈø¼­¤ò»ÈÍѤ·¤Ê¤¤"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "PROG ·Ðͳ¤Ç¥Õ¥£¥ë¥¿ (-d ¤ò¼õ¤±ÉÕ¤±¤ëɬÍפ¢¤ê)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ëÁªÂò:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "»ØÄꤵ¤ì¤¿ FILE ¤ò¥¢¡¼¥«¥¤¥Ö¤ËÄɲà(¥À¥Ã¥·¥å ' ¤Ç»Ï¤Þ¤ë¥Õ¥¡¥¤¥ë̾¤Î¾ì¹ç¤ËÊØ"
 "Íø)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê DIR ¤Ø°ÜÆ°"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "Ãê½Ð¤Þ¤¿¤ÏºîÀ®¤¹¤ë̾Á°¤ò¥Õ¥¡¥¤¥ë FILE ¤«¤é¼èÆÀ"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T ¤¬ null ¤Ç½ª¤ï¤ë̾Á°¤òÆɤ߹þ¤ß, -C ¤ò̵¸ú²½"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "Á°¤Î --null ¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤ò̵¸ú²½"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "-T ¤ÇÆɤ߹þ¤ó¤À¥Õ¥¡¥¤¥ë̾¤ò°úÍѽªÎ»¤¹¤ë (ɸ½à)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "-T ¤ÇÆɤ߹þ¤ó¤¿¥Õ¥¡¥¤¥ë̾¤ò°úÍѽªÎ»¤·¤Ê¤¤"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATTERN"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "PATTERN ¤Ë°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "FILE ¤ËÎóµó¤µ¤ì¤¿¥Ñ¥¿¡¼¥ó¤ò½ü³°"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "¥¿¥°¥Õ¥¡¥¤¥ë¼«¿È¤ò½ü¤¯ CACHEDIR.TAG ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½ü³°"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÎÁ´¤Æ¤ò½ü³°"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ò½ü³°"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "FILE ¼«¿È¤ò½ü¤¯ FILE ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½ü³°"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "FILE ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ÎÁ´¤Æ¤ò½ü³°"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "FILE ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ò½ü³°"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "¥Ð¡¼¥¸¥ç¥ó´ÉÍý¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò½ü³°"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò½ü³°¤·¤Æ¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ò¼«Æ°Åª¤Ë²¼¤Ã¤Æ¤¤¤«¤Ê¤¤"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "¥¢¡¼¥«¥¤¥ÖºîÀ®»þ¤Ë¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ÂÄê"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ò½ç·«¤ê¤Ë²¼¤Ã¤Æ¤¤¤¯ (default)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "¥Õ¥¡¥¤¥ë̾¤«¤éÀèƬ¤Î `/' ¤ò¼è¤ê½ü¤«¤Ê¤¤"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¿¤É¤ë; ¤½¤ì¤é¤¬»Ø¤¹¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤·¤Æ¥À¥ó¥×"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "¥Ï¡¼¥É¥ê¥ó¥¯¤ò¤¿¤É¤ë; ¤½¤ì¤é¤¬»Ø¤¹¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤·¤Æ¥À¥ó¥×"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "MEMBER-NAME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "¥¢¡¼¥«¥¤¥ÖÃæ¤Î¥á¥ó¥Ð¡¼ MEMBER-NAME ¤Ç³«»Ï"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "DATE-OR-FILE ¤è¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤ß¤ò³ÊǼ"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATE"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "¥Ç¡¼¥¿¤¬Êѹ¹¤µ¤ì¤¿»þ¤À¤±ÆüÉÕ¤ª¤è¤Ó»þ¹ï¤òÈæ³Ó"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "ºï½üÁ°¤Ë¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤ò CONTROL ¤Ë¤·¤Æ¥Ð¥Ã¥¯¥¢¥Ã¥×"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRING"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1955,95 +2057,98 @@ msgstr ""
 "ºï½üÁ°¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×, Ä̾ï¤ÎÀÜÈø¼­ (´Ä¶­ÊÑ¿ô SIMPLE_BACKUP_SUFFIX ¤¬Ì¤ÀßÄê¤Ê"
 "¤é '~') ¤ò¾å½ñ¤­"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "¥Õ¥¡¥¤¥ë̾ÊÑ´¹:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
-msgstr "Ãê½Ð»þ¤Ë¥Õ¥¡¥¤¥ë̾¤«¤éÀèƬ¤Î NUMER ¸Ä¤Î¥³¥ó¥Ý¥Í¥ó¥È¤ò½üµî"
+msgstr "Ãê½Ð»þ¤Ë¥Õ¥¡¥¤¥ë̾¤«¤éÀèƬ¤Î NUMBER ¸Ä¤Î¥³¥ó¥Ý¥Í¥ó¥È¤ò½üµî"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EXPRESSION"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "¥Õ¥¡¥¤¥ë̾¤ÎÊÑ´¹¤Ë sed ¤ÎÃÖ´¹ EXPRESSION ¤ò»ÈÍÑ"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr "¥Õ¥¡¥¤¥ë̾°ìÃ×¥ª¥×¥·¥ç¥ó (½ü³°/Êñ´Þ¤Îξ¥Ñ¥¿¡¼¥ó¤ËºîÍÑ):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "Âçʸ»ú¾®Ê¸»ú¤ò̵»ë"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "¥Õ¥¡¥¤¥ë̾¤ÎÀèƬ¤È¥Ñ¥¿¡¼¥ó¤¬°ìÃ×"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "Ǥ°Õ¤Î `/' °Ê¹ß¤Ë¥Ñ¥¿¡¼¥ó¤¬°ìÃ× (ɸ½à¤Ç½ü³°)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "Âçʸ»ú¾®Ê¸»ú¤ò¹Íθ¤·¤Æ°ìÃ× (ɸ½à)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "¥ï¥¤¥ë¥É¥«¡¼¥É¤ò»ÈÍÑ (ɸ½à¤Ç½ü³°)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "Ãà¸ìŪʸ»úÎó°ìÃ×"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "¥ï¥¤¥ë¥É¥«¡¼¥É¤¬ `/' ¤Ë°ìÃפ·¤Ê¤¤"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "¥ï¥¤¥ë¥É¥«¡¼¥É¤¬ `/' ¤Ë°ìÃ× (ɸ½à¤Ç½ü³°)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "¾ðÊó:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "½èÍý¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î°ìÍ÷¤ò¾éŤËɽ¼¨"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KEYWORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "·Ù²ü´ÉÀ©"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "NUMBER (ɸ½à 10) ÈÖÌܤε­Ï¿¤´¤È¤Ë¿ÊĽ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ACTION"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "³Æ¸¡Ìä¤Ç ACTION ¤ò¼Â¹Ô"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "Á´¤Æ¤Î¥ê¥ó¥¯¤¬¥À¥ó¥×¤µ¤ì¤Ê¤¤¾ì¹ç¥á¥Ã¥»¡¼¥¸¤òɽ¼¨"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2054,124 +2159,121 @@ msgstr ""
 "»þ¤ËÁí¥Ð¥¤¥È¿ô¤òɽ¼¨. µö²Ä¤µ¤ì¤¿ SIGNAL ¤Ï: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 "
 "¤ª¤è¤Ó SIGUSR2. SIG ÀÜƬ¼­¤¬¤Ê¤¤Ì¾Á°¤Ç¤â²Ä"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "¥Õ¥¡¥¤¥ë¤Î¹¹¿·»þ¹ï¤ò UTC ¤Çɽ¼¨"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "¥Õ¥¡¥¤¥ë¤Î»þ¹ï¾ðÊó¤ò´°Á´·Á¼°¤Çɽ¼¨"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "¾éĹ½ÐÎϤò FILE ¤ËÁ÷¿®"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Ö¥í¥Ã¥¯¿ô¤ò³Æ¡¹¥á¥Ã¥»¡¼¥¸ÉÕ¤­¤Çɽ¼¨"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "Á´¤Æ¤ÎÆ°ºî¤ò³Îǧ"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
-msgstr "tar ¤Îµ¬ÄêÃͤòɽ¼¨"
+msgstr "tar ¤Î´ûÄêÃͤòɽ¼¨"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr "°ìÍ÷¤äÃê½Ð»þ¤Ë, ¸¡º÷´ð½à¤Ë°ìÃפ·¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ò³Æ¡¹°ìÍ÷ɽ¼¨"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
-msgstr "ÊÖ´Ô¸å¤Ë¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥¢¡¼¥«¥¤¥Ö̾¤òɽ¼¨"
+msgstr "ÊÑ´¹¸å¤Ë¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥¢¡¼¥«¥¤¥Ö̾¤òɽ¼¨"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STYLE"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "̾Á°°úÍÑ·Á¼°¤òÀßÄê. Í­¸ú¤Ê STYLE Ãͤϲ¼µ­»²¾È."
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "¹¹¤Ë STRING ¤«¤éʸ»ú¤ò°úÍÑ"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "STRING ¤«¤é¤Îʸ»ú°úÍѤò̵¸ú¤Ë"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "¸ß´¹¥ª¥×¥·¥ç¥ó:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "ºîÀ®»þ¤Ï --old-archive ¤ÈƱ¤¸. Ãê½Ð»þ¤Ï --no-same-owner ¤ÈƱ¤¸"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "¤½¤Î¾¥ª¥×¥·¥ç¥ó:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "ÀøºßŪ¤Ë³²¤Ë¤Ê¤ë¥ª¥×¥·¥ç¥ó¤Î»ÈÍѤò̵¸ú¤Ë"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "`-Acdtrux' ¤Þ¤¿¤Ï `--test-label' ¥ª¥×¥·¥ç¥ó¤Î¤¦¤Á 2¤Ä°Ê¾å»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ"
 "¤»¤ó"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "°µ½Ì¥ª¥×¥·¥ç¥ó¤¬¿©¤¤°ã¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "̤ÃΤΥ·¥°¥Ê¥ë̾: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "ÆüÉÕ¥µ¥ó¥×¥ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "̤ÃΤÎÆüÉÕ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î %2$s Âå¤ï¤ê¤Ë %1$s ¤È¤·¤Þ¤¹"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "¥ª¥×¥·¥ç¥ó %s: `%s' ¤ò %s ¤È¤·¤Æ°·¤¦"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: ¥Õ¥¡¥¤¥ë°ìÍ÷¤Ï´û¤ËÆɤ߹þ¤ßºÑ¤ß"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: Æɤ߹þ¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Ë¥Ì¥ëʸ»ú"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "%s ·Ðͳ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò¥Õ¥£¥ë¥¿"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "--quoting-style ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ëÍ­¸ú¤Ê°ú¿ô:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2179,51 +2281,48 @@ msgstr ""
 "\n"
 "¡Ö¤³¤Î¡×tar ¤Îµ¬ÄêÃÍ:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "̵¸ú¤Ê½êÍ­¼Ô"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "̵¸ú¤Ê¥Ö¥í¥Ã¥­¥ó¥°°ø»Ò"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "̵¸ú¤Ê¥Æ¡¼¥×¤ÎŤµ"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "̵¸ú¤ÊÁýʬ¥ì¥Ù¥ëÃÍ"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "1¤Ä°Ê¾å¤ÎÉßµï¤È¤Ê¤ëÆüÉÕ"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "̵¸ú¤Ê¤Þ¤Ð¤é (sparse) ¥Ð¡¼¥¸¥ç¥óÃÍ"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint ÃͤÏÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "̵¸ú¤Ê¥°¥ë¡¼¥×"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¥â¡¼¥É¤Ï̵¸ú¤Ç¤¹"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "̵¸ú¤Ê¿ô"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "̵¸ú¤Ê½êÍ­¼Ô"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2231,122 +2330,152 @@ msgstr ""
 "--preserve ¥ª¥×¥·¥ç¥ó¤ÏÇÑ»ßͽÄê¤Ê¤Î¤Ç, Âå¤ï¤ê¤Ë --preserve-permissions --"
 "preserve-order ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "̵¸ú¤Êµ­Ï¿¥µ¥¤¥º"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "µ­Ï¿¥µ¥¤¥º¤Ï %d ¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "̵¸ú¤Ê¥¨¥ì¥á¥ó¥È¿ô"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "--to-command ¥ª¥×¥·¥ç¥ó¤Ï 1¤Ä¤À¤±µö²Ä"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "ÉÔÀµ·Á¼°¤ÎÌ©ÅÙ°ú¿ô: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "̤ÃΤÎÌ©ÅÙ: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "¥ª¥×¥·¥ç¥ó `-[0-7][lmh]' ¤Ï¡Ö¤³¤Î¡×tar ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[¥Õ¥¡¥¤¥ë]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "¸Å¤¤¥ª¥×¥·¥ç¥ó `%c' ¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence ¤Ï¥Õ¥¡¥¤¥ë°ìÍ÷¤¬¤Ê¤±¤ì¤Ð̵°ÕÌ£"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence ¤ÏÍ׵ᤵ¤ì¤¿Áàºî¥â¡¼¥É¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "ʬ³ä·¿¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ë¤Ï `-M' ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental ¤È --newer ¤È¤ò·ë¹ç¤Ç¤­¤Þ¤»¤ó"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--listed-incremental ¤Ê¤·¤Î --level ¤Ï̵°ÕÌ£¤Ç¤¹"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: ¥Ü¥ê¥å¡¼¥à¥é¥Ù¥ë¤¬Ä¹¤¹¤®¤Þ¤¹ (%lu ¥Ð¥¤¥ÈÀ©¸Â)"
 msgstr[1] "%s: ¥Ü¥ê¥å¡¼¥à¥é¥Ù¥ë¤¬Ä¹¤¹¤®¤Þ¤¹ (%lu ¥Ð¥¤¥ÈÀ©¸Â)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤ò³Îǧ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "°µ½Ì¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Ï³Îǧ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "¥Ñ¥¿¡¼¥ó %s ¤Ï»È¤¨¤Þ¤»¤ó"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¤Ë°µ½Ì¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Ï»È¤¨¤Þ¤»¤ó"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "°µ½Ì¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤ÏÏ¢·ë¤Ç¤­¤Þ¤»¤ó"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option ¤Ï POSIX ¥¢¡¼¥«¥¤¥Ö¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option ¤Ï POSIX ¥¢¡¼¥«¥¤¥Ö¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option ¤Ï POSIX ¥¢¡¼¥«¥¤¥Ö¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option ¤Ï POSIX ¥¢¡¼¥«¥¤¥Ö¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "¥Ñ¥¿¡¼¥ó %s ¤Ï»È¤¨¤Þ¤»¤ó"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "¥Ü¥ê¥å¡¼¥àĹ¤Ï¥ì¥³¡¼¥É¥µ¥¤¥º¤è¤ê¾®¤µ¤¯¤Æ¤Ï¤¤¤±¤Þ¤»¤ó"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order ¤Ï --listed-incremental ¤ÈξΩ¤·¤Þ¤»¤ó"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "¶õ¤Î¥¢¡¼¥«¥¤¥ÖºîÀ®¤Ï¤´ÍƼϴꤤ¤Þ¤¹"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "¥ª¥×¥·¥ç¥ó `-Aru' ¤È `-f -' ¤È¤ÏÁêÍƤì¤Þ¤»¤ó"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 "`-Acdtrux' ¤Þ¤¿¤Ï `--test-label' ¥ª¥×¥·¥ç¥ó¤Î¤¦¤Á¡¢¤¤¤º¤ì¤« 1¤Ä¤ò»ØÄꤷ¤Ê¤±¤ì"
 "¤Ð¤Ê¤ê¤Þ¤»¤ó"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Á°¤Î¥¨¥é¡¼¤Ë¤è¤ê¼ºÇÔ¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤Þ¤¹"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2358,114 +2487,110 @@ msgstr[1] "%s: 
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "¥­¡¼¥ï¡¼¥É %s ¤Ï̤ÃΤޤ¿¤Ï̤¼ÂÁõ"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬µö²Ä¤µ¤ì¤¿Èϰϳ°¤Ç¤¹"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "¥Ñ¥¿¡¼¥ó %s ¤Ï»È¤¨¤Þ¤»¤ó"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "¥­¡¼¥ï¡¼¥É %s ¤Ïʤ¤»¤Þ¤»¤ó"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: Ä¹¤µ¤Î»ØÄ꤬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "³ÈÄ¥¥Ø¥Ã¥ÀĹ¤Ïµö²Ä¤µ¤ì¤¿Èϰϳ°¤Ç¤¹"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "³ÈÄ¥¥Ø¥Ã¥ÀĹ %*s ¤ÏÈϰϳ°¤Ç¤¹"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: Ä¹¤µ¤Î¸å¤Ë¥Ö¥é¥ó¥¯¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: = (¥¤¥³¡¼¥ë) µ­¹æ¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: ²þ¹Ô¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "̤ÃΤγÈÄ¥¥Ø¥Ã¥À¥­¡¼¥ï¡¼¥É `%s' ¤ò̵»ë"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "À¸À®¤µ¤ì¤¿¥­¡¼¥ï¡¼¥É¤ÈÃͤΥڥ¢¤¬Ä¹²á¤®¤Þ¤¹ (¥­¡¼¥ï¡¼¥É=%s, Ä¹¤µ=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "³ÈÄ¥¥Ø¥Ã¥À %s=%s ¤Ï %s..%s ¤ÎÈÏ°ÏÆâ¤Ë¤¢¤ê¤Þ¤»¤ó"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: %s=%s ¤ÏÉÔÀµ"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: %s=%s ¤Ï;ʬ"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: %s ¤Ï̵¸ú: Í½´ü¤»¤Ì¶èÀÚ¤êʸ»ú %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "ÉÔÀµ·Á¼°¤Î³ÈÄ¥¥Ø¥Ã¥À: %s ¤Ï̵¸ú: ´ñ¿ôÃÍ"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Ìµ¸ú¤Ê¥¿¥¤¥à¥¢¥¦¥È"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: Ì¤ÃΤθ¡Ìä½èÍý"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "½ñ¤­¹þ¤ß"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "Æɤ߽Ф·"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È %u ¤ò½ñ¤­½Ð¤·¤Þ¤¹"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "¥Á¥§¥Ã¥¯¥Ý¥¤¥ó¥È %u ¤òÆɤ߹þ¤ß¤Þ¤¹"
@@ -2607,7 +2732,7 @@ msgstr "
 msgid "Negative size: %s"
 msgstr "Éé¤Î¥µ¥¤¥º: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) ¼ºÇÔ"
@@ -2636,8 +2761,8 @@ msgstr "̤
 msgid "[ARGS...]"
 msgstr "[ARGS...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "`%s' ¤ò³«¤±¤Þ¤»¤ó"
@@ -2651,66 +2776,94 @@ msgstr "
 msgid "file name contains null character"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬¥Ì¥ëʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "¤Þ¤Ð¤é¤Ê (sparse) ¥Õ¥¡¥¤¥ë¤òɸ½à½ÐÎϤ˽ñ¤­½Ð¤»¤Þ¤»¤ó. --file ¥ª¥×¥·¥ç¥ó¤ò»ÈÍÑ"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "ÉÔÀµ¤Ê¥Þ¥¹¥¯ (`%s' ¤Ë¶á¤¤)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "̤ÃΤΥե£¡¼¥ë¥É `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "`%s' ¤Ë»þ¹ï¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "`%s' ¤ò unlink ¤Ç¤­¤Þ¤»¤ó"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s ¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "`%s' ¤ò unlink ¤Ç¤­¤Þ¤»¤ó"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "¥³¥Þ¥ó¥É¤¬Àµ¾ï½ªÎ»\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "¥³¥Þ¥ó¥É¤¬¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç¼ºÇÔ\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë %d ¤Ç½ªÎ»\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë %d ¤ÇÄä»ß\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "¥³¥Þ¥ó¥É¤¬¥³¥¢¤ò¥À¥ó¥×\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "¥³¥Þ¥ó¥É¤¬½ªÎ»\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat ¤Ë¤Ï¥Õ¥¡¥¤¥ë̾¤¬É¬Í×"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Æɤ߹þ¤ßÁ°¤Ëºï½ü¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê"
+#~ msgid "Cannot get working directory"
+#~ msgstr "¥ï¡¼¥¯¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "¥¢¡¼¥«¥¤¥Ö¤È¥Þ¥Ã¥Á¤µ¤»¤ë¤¿¤á¤Ë¼è¤ê½Ð¤¹Ì¾Á°¤òʤÓÂؤ¨"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë¥Õ¥£¡¼¥ë¥É¤¬Ä¹²á¤®¤Þ¤¹"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤ËÆɤ߹þ¤ß¥¨¥é¡¼"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¥Õ¥¡¥¤¥ë¤Ëͽ´ü¤»¤Ì¥Õ¥£¡¼¥ë¥ÉÃÍ"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "³ÈÄ¥¥Ø¥Ã¥ÀĹ¤Ïµö²Ä¤µ¤ì¤¿Èϰϳ°¤Ç¤¹"
+
+#~ msgid "Invalid group"
+#~ msgstr "̵¸ú¤Ê¥°¥ë¡¼¥×"
index ede5865167df00677b23efe8bdd1d20f769f7877..afe295eb0f90022cbd2a0dc0b640338bad7ab940 100644 (file)
Binary files a/po/ko.gmo and b/po/ko.gmo differ
index 7d0a63250f6a3230302bc6f43bfb70c0950ecd50..b73fe1dfc9cb060c0129e033951f6d1c14ba1922 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -2,12 +2,12 @@
 # Copyright (C) 1996 Free Software Foundation, Inc.
 # Bang Jun-Young <bangjy@nownuri.net>, 1996-1997.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU tar 1.12\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 1997-05-30 22:55+0900\n"
 "Last-Translator: Bang Jun-Young <bangjy@nownuri.net>\n"
 "Language-Team: Korean <ko@li.org>\n"
@@ -27,50 +27,49 @@ msgid "ambiguous argument %s for %s"
 msgstr "¸ðÈ£ÇÑ ÆÐÅÏ `%s'"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr ""
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
@@ -79,17 +78,17 @@ msgstr ""
 "\n"
 
 #
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "´õ ¸¹Àº Á¤º¸¸¦ º¸·Á¸é `%s --help' ÇϽʽÿÀ.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ¿À·ù"
 
@@ -101,7 +100,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -122,17 +121,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr ""
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -140,62 +138,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "record_size·Î ºÎÀûÀýÇÑ °ª"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 #, fuzzy
 msgid "memory exhausted"
 msgstr "¸Þ¸ð¸®°¡ ¹Ù´Ú³²"
@@ -213,28 +211,30 @@ msgstr ""
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr ""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr ""
 
@@ -244,7 +244,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -254,7 +254,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -526,7 +526,13 @@ msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
 #
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "¿ø°Ý ¼ÐÀ» ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù"
+
+#
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "¿ø°Ý ¼ÐÀ» ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù"
@@ -583,8 +589,8 @@ msgstr "
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -592,8 +598,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -609,7 +615,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -620,9 +626,9 @@ msgid "Garbage command"
 msgstr "¾µ¸ð¾ø´Â ¸í·É"
 
 #
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "ÀÌ°ÍÀº tar ¾ÆÄ«À̺êó·³ º¸ÀÌÁö ¾Ê½À´Ï´Ù"
 
@@ -668,67 +674,67 @@ msgid "Archive is compressed. Use %s option"
 msgstr ""
 
 #
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "¾ÐÃàµÈ ¾ÆÄ«À̺긦 °»½ÅÇÒ ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Å×ÀÌÇÁÀÇ ½ÃÀÛ ºÎºÐ¿¡¼­ Áö±Ý Á¾·áÇÔ"
 
 #
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "¿À·ù°¡ ³Ê¹« ¸¹¾Æ¼­ Á¾·áÇÕ´Ï´Ù"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "·¹ÄÚµå Å©±â = %d ºí·°"
 msgstr[1] "·¹ÄÚµå Å©±â = %d ºí·°"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr ""
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr ""
 
 #
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, fuzzy, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "º¼·ý #%d(%s¸¦ À§ÇÑ)¸¦ ÁغñÇÏ°í ¸®ÅÏÀ» Ä¡¼¼¿ä: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "»ç¿ëÀÚÀÇ ÀÀ´äÀÌ ÇÊ¿äÇÑ °÷¿¡ EOF°¡ ÀÖÀ½"
 
 #
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "°æ°í: ¾ÆÄ«À̺갡 ºÒ¿ÏÀüÇÕ´Ï´Ù"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -740,222 +746,222 @@ msgstr ""
 " !          ¼­ºê¼ÐÀ» ½ÇÇàÇÕ´Ï´Ù\n"
 " ?          ÀÌ ¸ñ·ÏÀ» ÀμâÇÕ´Ï´Ù\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
 #
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "»õ º¼·ýÀÌ ¾Æ´Ô; Á¾·á.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr ""
 
 #
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s´Â ÀÌ º¼·ý¿¡ ¿¬¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù"
 
 #
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s´Â ÀÌ º¼·ý¿¡ ¿¬¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù"
 
 #
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, fuzzy, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s´Â À߸øµÈ Å©±âÀÔ´Ï´Ù (%ld != %ld + %ld)"
 
 #
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "ÀÌ º¼·ýÀº ¼ø¼­¸¦ ¹þ¾î³µ½À´Ï´Ù"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, fuzzy, c-format
 msgid "Archive not labeled to match %s"
 msgstr "`%s'¿Í ÀÏÄ¡Çϵµ·Ï ¶óº§ÀÌ ºÙÁö ¾ÊÀº ¾ÆÄ«À̺ê"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, fuzzy, c-format
 msgid "Volume %s does not match %s"
 msgstr "º¼·ý `%s'°¡ `%s'¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
 #
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "ºí·° °æ°è°¡ ¾Æ´Ñ ºÎºÐ¿¡¼­ ¾ÆÄ«À̺ê %sÀÇ EOF °ËÃâ"
 
 #
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "%d ¹ÙÀÌÆ®(%ld ¹ÙÀÌÆ® Áß)¸¸ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù"
 msgstr[1] "%d ¹ÙÀÌÆ®(%ld ¹ÙÀÌÆ® Áß)¸¸ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 #, fuzzy
 msgid "Contents differ"
 msgstr "¸ðµå°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "¾ÆÄ«À̺꿡 ¿¹±âÄ¡ ¾ÊÀº EOF"
 
 #
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 #, fuzzy
 msgid "File type differs"
 msgstr "Å©±â°¡ ´Ù¸¨´Ï´Ù"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "¸ðµå°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "uid°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "gid°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "º¯°æ ½Ã°¢ÀÌ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Å©±â°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "%s¿¡ ¿¬°áµÇÁö ¾ÊÀ½"
 
 #
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "±âÈ£¸µÅ©°¡ ´Ù¸¨´Ï´Ù"
 
 #
-#: src/compare.c:317
+#: src/compare.c:318
 #, fuzzy
 msgid "Device number differs"
 msgstr "ÀåÄ¡ ¹øÈ£°¡ ¹Ù²î¾úÀ½"
 
 #
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "°ËÁõ "
 
 #
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: ¾Ë ¼ö ¾ø´Â ÆÄÀϠŸÀÔ; ÆÄÀÏÀÌ ¹«½ÃµÊ"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
 msgstr ""
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
 #
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "°ËÁõ ½ÇÆÐ: %d°³ÀÇ ºÎÀûÀýÇÑ Çì´õ°¡ °ËÃâµÊ"
 msgstr[1] "°ËÁõ ½ÇÆÐ: %d°³ÀÇ ºÎÀûÀýÇÑ Çì´õ°¡ °ËÃâµÊ"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr ""
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr ""
 
 #
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù; ´ýÇÁµÇÁö ¾ÊÀ½"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 
 #
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù; ´ýÇÁµÇÁö ¾ÊÀ½"
 
 #
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -963,466 +969,501 @@ msgstr[0] "%s: 
 msgstr[1] "%s: ÆÄÀÏÀÌ %d ¹ÙÀÌÆ® ÁÙ¾îµë, (¿Í¿ì!)"
 
 #
-#: src/create.c:1160
+#: src/create.c:1180
 #, fuzzy, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: ´Ù¸¥ ÆÄÀϽýºÅÛ »ó¿¡ ÀÖÀ½; ´ýÇÁµÇÁö ¾ÊÀ½"
 
 #
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 #, fuzzy
 msgid "contents not dumped"
 msgstr " (ÄÚ¾î Ãâ·ÂµÊ)"
 
 #
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: ¾Ë ¼ö ¾ø´Â ÆÄÀϠŸÀÔ; ÆÄÀÏÀÌ ¹«½ÃµÊ"
 
 #
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " %s·Î ¸µÅ©\n"
 
 #
-#: src/create.c:1690
+#: src/create.c:1710
 #, fuzzy, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù; ´ýÇÁµÇÁö ¾ÊÀ½"
 
 #
-#: src/create.c:1699
+#: src/create.c:1719
 #, fuzzy, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s´Â ¾ÆÄ«À̺êÀÔ´Ï´Ù; ´ýÇÁµÇÁö ¾ÊÀ½"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr ""
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr ""
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr ""
 
 #
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "´ÙÀ½ Çì´õ·Î °Ç³Ê ¶Ü"
 
 #
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "¾ÆÄ«À̺꿡¼­ ºñÇì´õ ºÎºÐÀ» Á¦°ÅÇÔ"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr ""
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr ""
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "¿¬¼ÓµÇ¾î Àִ ÆÄÀÏÀ» ÀϹݠÆÄÀϷΠÃßÃâÇÔ"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "±âÈ£ ¸µÅ©¸¦ Çϵ堸µÅ©·Î ÃßÃâÇÏ°í ÀÖ½À´Ï´Ù"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, fuzzy, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "`%s'¸¦ ÃßÃâÇÒ ¼ö ¾ø½À´Ï´Ù -- ÀÌ ÆÄÀÏÀº ´Ù¸¥ º¼·ý¿¡ ¿¬¼ÓµÇ¾î ÀÖ½À´Ï´Ù"
 
 #
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "¾ÆÄ«À̺ê ÆÄÀÏ¿¡ ¿¹±âÄ¡ ¾ÊÀº EOF"
 
 #
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: ¾Ë ¼ö ¾ø´Â ÆÄÀϠŸÀÔ; ÆÄÀÏÀÌ ¹«½ÃµÊ"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: ÀÌ ÆÄÀÏÀ» ¹é¾÷ÇÒ ¼ö ¾ø¾ú½À´Ï´Ù"
 
 #
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s¸¦ %s·Î À̸§À» ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s µð·ºÅ丮´Â À̸§ÀÌ ¹Ù²î¾ú½À´Ï´Ù"
 
 #
-#: src/incremen.c:485
+#: src/incremen.c:549
 #, fuzzy, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s µð·ºÅ丮´Â À̸§ÀÌ ¹Ù²î¾ú½À´Ï´Ù"
+msgid "%s: Directory is new"
+msgstr "%s´Â »õ µð·ºÅ丮ÀÔ´Ï´Ù"
 
 #
-#: src/incremen.c:530
+#: src/incremen.c:566
 #, fuzzy, c-format
-msgid "%s: Directory is new"
-msgstr "%s´Â »õ µð·ºÅ丮ÀÔ´Ï´Ù"
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: ´Ù¸¥ ÆÄÀϽýºÅÛ »ó¿¡ ÀÖÀ½; ´ýÇÁµÇÁö ¾ÊÀ½"
+
+#
+#: src/incremen.c:587
+#, fuzzy, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s µð·ºÅ丮´Â À̸§ÀÌ ¹Ù²î¾ú½À´Ï´Ù"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr ""
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¸ðµå°¡ ÁÖ¾îÁü"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr ""
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr ""
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
 #
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "%s¿¡¼­ Àб⠿À·ù"
-
-#
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "¾ÆÄ«À̺ê ÆÄÀÏ¿¡ ¿¹±âÄ¡ ¾ÊÀº EOF"
 
-#
-#: src/incremen.c:1124 src/incremen.c:1164
-#, fuzzy
-msgid "Unexpected field value in snapshot file"
-msgstr "¾ÆÄ«À̺ê ÆÄÀÏ¿¡ ¿¹±âÄ¡ ¾ÊÀº EOF"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
 #
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "%s·Î µð·ºÅ丮¸¦ ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr ""
 
 #
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s¸¦ Áö¿ò\n"
 
 #
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, fuzzy, c-format
 msgid "%s: Cannot remove"
 msgstr "%s¸¦ Áö¿ï ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/list.c:190
+#: src/list.c:189
 #, fuzzy, c-format
 msgid "%s: Omitting"
 msgstr "%s¸¦ »ý·«"
 
-#: src/list.c:207
+#: src/list.c:206
 #, fuzzy, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "ºí·° %10ld: ** NUL·Î µÈ ºí·° **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, fuzzy, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "ºí·° %10ld: ** ÆÄÀÏÀÇ ³¡ **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, fuzzy, c-format
 msgid "block %s: "
 msgstr "ºí·° %10ld: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr ""
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr ""
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 
 #
-#: src/list.c:840
+#: src/list.c:854
 #, fuzzy, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "ÀÌ º¼·ýÀº ¼ø¼­¸¦ ¹þ¾î³µ½À´Ï´Ù"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr ""
 
 #
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " %s·Î ¸µÅ©\n"
 
 #
-#: src/list.c:1265
+#: src/list.c:1270
 #, fuzzy, c-format
 msgid " unknown file type %s\n"
 msgstr " ¾Ë ¼ö ¾ø´Â ÆÄÀϠŸÀÔ `%c'\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
 #
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--º¼·ý Çì´õ--\n"
 
 #
-#: src/list.c:1299
+#: src/list.c:1304
 #, fuzzy, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--%ld ¹ÙÀÌÆ® Â°¿¡ °è¼ÓµÊ--\n"
 
 #
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "µð·ºÅ丮¸¦ ¸¸µå´Â Áß:"
 
 #
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "%s·Î µð·ºÅ丮¸¦ ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
-
-#
-#: src/misc.c:570
+#: src/misc.c:721
 #, fuzzy, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s¸¦ %s·Î À̸§ ¹Ù²Þ"
 
 #
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, fuzzy, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s¸¦ %s·Î À̸§À» ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/misc.c:603
+#: src/misc.c:754
 #, fuzzy, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s¸¦ %s·Î À̸§ ¹Ù²Þ"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr ""
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr ""
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr ""
 
-#: src/names.c:590
+#: src/names.c:360
+msgid "command line"
+msgstr ""
+
+#: src/names.c:378
+#, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr ""
+
+#
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s¸¦ statÇÒ ¼ö ¾ø½À´Ï´Ù"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
 #
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: ¾ÆÄ«À̺꿡 ¾øÀ½"
 
 #
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: ¾ÆÄ«À̺꿡 ¾øÀ½"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "`%s'¿Í ÀÏÄ¡Çϵµ·Ï ¶óº§ÀÌ ºÙÁö ¾ÊÀº ¾ÆÄ«À̺ê"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "`-%s'°ú `-%s' ¿É¼ÇÀº ¸ðµÎ Ç¥ÁØ ÀÔ·ÂÀÌ ÇÊ¿äÇÕ´Ï´Ù"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "ºÎÀûÀýÇÑ ³¯Â¥ Çü½Ä `%s'"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1431,9 +1472,9 @@ msgid ""
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
 
-#: src/tar.c:357
+#: src/tar.c:373
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1443,81 +1484,81 @@ msgid ""
 "  never, simple   always make simple backups\n"
 msgstr ""
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
 #
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "¾ÆÄ«À̺꿡 ¿¹±âÄ¡ ¾ÊÀº EOF"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1525,572 +1566,621 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
 #
-#: src/tar.c:453
+#: src/tar.c:469
 #, fuzzy
 msgid "remove files after adding them to the archive"
 msgstr "¾ÆÄ«À̺꿡 Àִ À̸§µé¿¡¼­ µå¶óÀ̺ê ÁöÁ¤¹®À» Á¦°ÅÇÔ"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr ""
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
 #
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "´ÙÁß-º¼·ý ¾ÆÄ«À̺긦 °ËÁõÇÒ ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
 #
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Ç¥ÁØÀԷ¿¡ ´ëÇÑ ¾ÆÄ«À̺ê"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Çò°¥¸®´Â ¾ÐÃ࠿ɼÇ"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "¾ÐÃà ÇÁ·Î±×·¥¿¡ ¾µ ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "¾ÐÃà ÇÁ·Î±×·¥¿¡ ¾µ ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
 #
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "%s·Î µð·ºÅ丮¸¦ ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
 #
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Àý´ë ¸µÅ©µé¿¡¼­ ¾Õ¿¡ ºÙÀº `/'¸¦ Á¦°ÅÇÔ"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "º¼·ý `%s'°¡ `%s'¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2098,247 +2188,239 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¸ðµå°¡ ÁÖ¾îÁü"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
 #
-#: src/tar.c:764
+#: src/tar.c:810
 #, fuzzy
 msgid "ask for confirmation for every action"
 msgstr "»ç¿ëÀÚÀÇ È®ÀÎÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "`-Acdtrux' ¿É¼Ç Áß Çϳª ÀÌ»óÀ» ÁöÁ¤Çϸ頾ȠµË´Ï´Ù"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Çò°¥¸®´Â ¾ÐÃ࠿ɼÇ"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr "¾Ë ¼ö ¾ø´Â ÆÐÅÏ `%s'"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr ""
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr ""
 
-#: src/tar.c:1057
+#: src/tar.c:1108
 #, c-format
-msgid "Option %s: Treating date `%s' as %s"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr ""
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr ""
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¼ÒÀ¯ÀÚ°¡ ÁÖ¾îÁü"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr ""
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr ""
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr ""
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¼ÒÀ¯ÀÚ°¡ ÁÖ¾îÁü"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¸ðµå°¡ ÁÖ¾îÁü"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr ""
 
-#: src/tar.c:1934
-#, fuzzy
-msgid "Invalid owner"
-msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¼ÒÀ¯ÀÚ°¡ ÁÖ¾îÁü"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 #, fuzzy
 msgid "Invalid record size"
 msgstr "record_size·Î ºÎÀûÀýÇÑ °ª"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "·¹ÄÚµå Å©±â´Â %dÀÇ ¹è¼ö°¡ µÇ¾î¾ß ÇÕ´Ï´Ù."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr ""
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "¾Ë ¼ö ¾ø´Â ÆÐÅÏ `%s'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "`-[0-7][lmh]' ¿É¼ÇÀº ÀÌ tar¿¡¼± Áö¿øµÇÁö ¾Ê½À´Ï´Ù"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "¿À·¡µÈ ¿É¼Ç `%c'´Â Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "´ÙÁß ¾ÆÄ«À̺ê ÆÄÀÏÀº `-M' ¿É¼ÇÀÌ ÇÊ¿äÇÕ´Ï´Ù"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr ""
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2346,58 +2428,82 @@ msgstr[0] ""
 msgstr[1] ""
 
 #
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "´ÙÁß-º¼·ý ¾ÆÄ«À̺긦 °ËÁõÇÒ ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "¾ÐÃàµÈ ¾ÆÄ«À̺긦 °ËÁõÇÒ ¼ö ¾ø½À´Ï´Ù"
 
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
 #
-#: src/tar.c:2444
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "¾ÐÃàµÈ ´ÙÁß-º¼·ý ¾ÆÄ«À̺긦 »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "¾ÐÃàµÈ ¾ÆÄ«À̺긦 °»½ÅÇÒ ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr ""
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "`-Aru' ¿É¼ÇÀº `-f -'°ú µ¿½Ã¿¡ ¾µ ¼ö ¾ø½À´Ï´Ù"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "`-Acdtrux' ¿É¼Çµé Áß Çϳª¸¦ ÁöÁ¤ÇؾߠÇÕ´Ï´Ù"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
 #
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2409,116 +2515,112 @@ msgstr[1] "%s: 
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr ""
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr ""
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
 #
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "°Ë»çÁöÁ¡ %d¸¦ ¾¸"
 
 #
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "°Ë»çÁöÁ¡ %d¸¦ ÀÐÀ½"
@@ -2657,7 +2759,7 @@ msgstr ""
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2687,8 +2789,8 @@ msgid "[ARGS...]"
 msgstr ""
 
 #
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, fuzzy, c-format
 msgid "cannot open `%s'"
 msgstr "%s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
@@ -2704,68 +2806,98 @@ msgstr "%s
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr "¾Ë ¼ö ¾ø´Â ÆÐÅÏ `%s'"
 
 #
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s¸¦ statÇÒ ¼ö ¾ø½À´Ï´Ù"
 
 #
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: tests/genfile.c:701
+#, c-format
+msgid "command failed: %s"
+msgstr ""
+
+#
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr ""
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr ""
 
+#
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "%s·Î µð·ºÅ丮¸¦ ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
+
+#
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "%s¿¡¼­ Àб⠿À·ù"
+
+#
+#, fuzzy
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "¾ÆÄ«À̺ê ÆÄÀÏ¿¡ ¿¹±âÄ¡ ¾ÊÀº EOF"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "¿É¼Ç¿¡ ºÎÀûÀýÇÑ ¼ÒÀ¯ÀÚ°¡ ÁÖ¾îÁü"
+
 #
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
index cdfb7c0de06dacfa75172651c86ecc35a6630a1e..252659a092524182979a9853f67896fb816d225b 100644 (file)
Binary files a/po/ky.gmo and b/po/ky.gmo differ
index c507d9f810fb6d2f208293eb72bf5295ecce3f64..9ae85cdc00e9f8d9515bc4ec765ea88c11f56a5e 100644 (file)
--- a/po/ky.po
+++ b/po/ky.po
@@ -3,12 +3,12 @@
 # This file is distributed under the same license as the PACKAGE package.
 # Azilet Beishenaliev <aziletb@gmail.com>, 2007.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.18\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2007-09-01 01:06+0100\n"
 "Last-Translator: Azilet Beishenaliev <aziletb@gmail.com>\n"
 "Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n"
@@ -32,37 +32,36 @@ msgid "ambiguous argument %s for %s"
 msgstr "%2$s үчүн %1$s аргументи так эмес"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Жарактуу аргументтер мындай:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s, %s'тен кичине же барабар"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси болуш керек"
 
 # положительный кыргызча кандайле?
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси оң болуш керек"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: ARGP_HELP_FMT параметри белгисиз"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "ARGP_HELP_FMT параметри бузук: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -71,29 +70,29 @@ msgstr ""
 "жараша жазылса, кыска жазылган опциялар менен да сөзсүз түрдө же тилекке "
 "жараша жазылат."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Колдонулушу:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  же: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [ОПЦИЯ...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Толук маалымат үчүн `%s --help' же `%s --usage' деп жазгыла.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Каталарды бул жерге билдиргиле %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Белгисиз система катасы"
 
@@ -105,7 +104,7 @@ msgstr "Бул жардам тизмесин көрсөтөт"
 msgid "give a short usage message"
 msgstr "Колдонуу жөнүндө кыска маалымат көрсөтөт"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "АТЫ"
@@ -126,17 +125,16 @@ msgstr "СЕК секунда күтүңүз (алдынала - 3600)"
 msgid "print program version"
 msgstr "программанын версиясын көрсөтөт"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ПРОГРАММАДА КАТА) Версиясы белгисиз!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Аргументтердин саны көп\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ПРОГРАММАДА КАТА) Опция билиниш керек болчу!?"
 
@@ -144,63 +142,63 @@ msgstr "(ПРОГРАММАДА КАТА) Опция билиниш керек 
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: `%s' опциясы так эмес\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: `--%s' опциясы менен аргумент колдонулбайт\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: `%c%s' опциясы менен аргумент колдонулбайт\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: `%s' опциясы менен аргумент болуш керек\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: бул опция түшүнүксүз `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: бул опция түшүнүксүз `%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: жараксыз опция -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: бул опциянын аргументи болуш керек -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: `-W %s' опциясы так эмес\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: `-W %s' опциясы менен аргумент колдонулбайт\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: `%s' опциясы менен аргумент болуш керек\n"
 
 # Памятты эмне дейбиз яя? ;)
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "Память жетпей калды"
 
@@ -216,28 +214,30 @@ msgstr "Учурдагы папка сакталбайтат"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "„"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "“"
 
@@ -248,7 +248,7 @@ msgstr "“"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[оО]"
 
@@ -259,7 +259,7 @@ msgstr "^[оО]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[жЖ]"
 
@@ -523,7 +523,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Алыстагы команда процессору иштетилген жок"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Алыстагы команда процессору иштетилген жок"
@@ -579,8 +584,8 @@ msgstr "Архивде күтүлбөгөн жерде файлдын соңу 
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "N"
 
@@ -588,8 +593,8 @@ msgstr "N"
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -604,7 +609,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "`%s' ачылбай жатат"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "аргументтердин саны көп"
@@ -613,9 +618,9 @@ msgstr "аргументтердин саны көп"
 msgid "Garbage command"
 msgstr "Туура эмес команда"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Бул tar-архиви эмес окшойт"
 
@@ -653,61 +658,61 @@ msgstr "Архивдин stdin/stdout текшерүүсү болбой жата
 msgid "Archive is compressed. Use %s option"
 msgstr "Архив кысыштырылган абалда. %s опциясын колдонгула"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Кысыштырылган архивдерди жаңырталбай калды"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Лентанын башына келди, иш бүттү"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Өтө көп ката бар, иш бүттү"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Маалыматтын көлөмү = %lu блок"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Архивде түз жайлашпаган блок бар (%lu байт)"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Архивдеги файл өчпөй калды; архив ачылбаса -i деп колдонгула"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek маалыматтын чегинде токтогон жок"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: жараксыз том номери бар"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Томдун номери батпай калды"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "%2$s үчүн %1$d-томду даярдап Enter'ди басыңыз: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Колдонуучудан жооп күтүбатканда файлдын соңу келип калды"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ЭСКЕРТҮҮ: Архив толук эмес"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -718,468 +723,490 @@ msgstr ""
 " q\t\ttar программасынын ишин бүтүр\n"
 "y же Ввод\t\tИшти улант\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Команда строкасын ач\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Бул тизмени жаз\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Жаңы том жок; иш бүттү.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Файлдын аты берилген жок. Кайра жазып көргүлө.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Туура эмес ввод. Жардам үчүн ? жазгыла.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s командасы аткарылбай калды"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s бул томдо уланса керек: башкы-маалыматта аты кыскартылыптыр"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s мунун бул томдо уландысы жок"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s көлөмү туура эмес (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Бул том иретте эмес"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Архивдин тамгасы %s менен келишпей жатат"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "%s тому %s менен келишпей жатат"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 "%s: файлдын аты көп-томдук GNU башкы-маалымат үчүн өтө узун, кыскартылды"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "rmtlseek маалыматтын чегинде токтогон жок"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "%2$lu байттан %1$lu гана окулду"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Мазмундары окшобойт"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Файл түрү окшошпойт"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Укук абалдары окшошпойт"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid окшошпойт"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid окшошпойт"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Алмаштыруу убактылары окшошпойт"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Көлөмү окшошпойт"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "%s жака шилтенген эмес"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Символикалык шилтеме окшошпойт"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Аспап номери окшошпойт"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Текшерүү "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары салыштырды"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Архивдин ичинде префикстери алынган файл аттары бар."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Текшерүү учурунда алгачкы файлдар табылбай калышы мүмкүн."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "ТЕКШЕРҮҮ КАТАСЫ: %d жараксыз башкы маалымат табылды"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "%s болгон жерде нөлдүк блок бар"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: мунун ичинде %s деген кэш-папка белгиси бар; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "%s мааниси %s диапазонунун тышында %s..%s; ордуна %s коюлат"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "%s мааниси %s диапазонунун тышында %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Терс сегиздик системасында башкы маалыматтар даярдалууда"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: файлдын аты өтө узун (эң көп %d болот); кошулбайт"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: файлдын аты өтө узун (бөлүнбөйт); кошулбайт"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: шилтеменин аты өтө узун; кошулбайт"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Файл %s байтка азайды; нөлдөр менен толтурулат"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: файл башка файл-системасында; кошулбайт"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "астындагылар кошулган жок"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Файлдын түрү белгисиз; файл каралбайт"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "%s жака шилтемелер жок.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: файл алмашкан жок; кошулбайт"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: файл архив экен; кошулбайт"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "папка кошулган жок"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: файлды окуу учурунда файл алмашты"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: сокет каралбайт"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door каралбайт"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Эмики башкы-маалыматка өттү"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Архивде башкы-маалымат болбогондор өчүрүлөт"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: %s убакыт тамгасы өтө эски"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: %s убакыт тамгасы %s сек. келечекте"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Папка ачыбатканда күтүлбөгөн нерселер болду"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Папканын статусу билинелектен мурун аты алмашып кетти"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Удаа болгон файлдар жөнөкөй файл катары чыгарылып жатат"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Символикалык шилтемелерди түз шилтеме катары чыгарууга аракет кылынат"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Чыгарылган жок -- файл башка томдон уланып келиптир"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Башкы-маалымат узун"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары чыгарылды"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Азыркы %s жаңыраак же бирдей"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Бул файлдын резерв копиясы алыналбай калды"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s файлы %s деп алмаштыралбай калды"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Папканын эски аты %s эле"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Папка алмаштырылды"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Папка жаңы"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: файл башка файл-системасында; кошулбайт"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Папка алмаштырылды"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Жараксыз убакыт тамгасы"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Алмашуу убагы туура эмес (секундалары)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Алмашуу убагы туура эмес (нано-секундалары)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Аспаптын номери жараксыз "
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Inode номери жараксыз"
 
-# фиелд, снэпшот дегендер кандай болот?
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Снэпшот файлды окубатканда ото узун поле чыкты"
-
-# snapshot?
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Снэпшот файлды окубатканда ката болду"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
 # snapshot?
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Снэпшот файлда күтүлбөгөн жерде файлдын соңу (EOF) бар"
 
-# фиелд кандай болот? snapshot?
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Снэпшот файлда күтүлбөгөн поле(фиелд) бар"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Записьтерди бөлүүчү символ жок"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Файлдын форматы туура эмес"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Форматтын бул версиясы иштетиле албайт: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок %#3o келди"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Кошулуучу папка бузук: 'X' копиялары бар"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Кошулуучу папка бузук: 'R' менен берилген ат бош"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Кошулуучу папка бузук: 'T'дан мурун 'R' жок"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Кошулуучу папка бузук: 'T' менен берилген ат бош"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок датанын соңу келди"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Кошулуучу папка бузук: 'X' эч колдонулган жок"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "%s шаблонун колдонуп убактылуу жаңы папка ачылган жок"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Папка өчүрүлгөн жок: stat иштебей койду"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: бул папка башка аспапта жайгашкан: өчүрүлбөйт"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s өчүрүлүп жатат\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Өчүрүлбөй жатат"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Муну аттады"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "блок %s: ** нөлдөр болгон блок **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "блок %s: ** Файлдын соңу **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "блок %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Башкы-маалыматта сан түрүндө %s болотурган жерде бош жерлер бар"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1187,94 +1214,89 @@ msgstr ""
 "экилик системадагы терси алынды"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr ""
 "Архивдин сегиздик системадагы мааниси болгон %.*s %s диапазонунун тышында"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Архивдеги base-64 түрүндөгү %s сөзү %s диапазонунун тышында"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Архивдин base-256 мааниси %s диапазонунун тышында"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
 "Архивдин ичинде %.*s бар, алардын ордунда сан түрүндө %s болушу керек эле"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Архивдин %s мааниси %s түрүнүн %s..%s диапазонунда эмес"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " %s жака шилтеме\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " белгисиз файл түрү %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Узун шилтеме--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Узун ат--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Томдун башкы-маалыматы--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--%s-байттан баштап уланды--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Жаңы папка ачылыбатат:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Учурдагы папка алмаштырылбайтат"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s'тин атын %s деп алмаштырды\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Аты %s деп алмаштыралбай калды"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s'тин атын кайра %s деп алмаштырды\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Файл окулганча өчүрүлүп кетти"
@@ -1282,20 +1304,40 @@ msgstr "%s: Файл окулганча өчүрүлүп кетти"
 #  орусчада дочерный процесс, бир процесс өз ичинен жаңы бир
 #  процесс жаратканда ошол чайлд процесс болот. Биз эмне дейбиз?
 #  Мен туулган процесс дейм.
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "туулган процесс"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "процесс-аралык канал"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s командасы аткарылбай калды"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: файл тизмеси окулган"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "`%s'ке убакыт аталган жок"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: алынган файлдын атында бош тамгалар бар"
+
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr "Файлдын аттарында уйкаштарды издөө үчүн колдонулган тамгалар бар."
 
-#: src/names.c:592
+#: src/names.c:823
 #, fuzzy
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
@@ -1303,55 +1345,56 @@ msgid ""
 msgstr ""
 "Уйкаштарды издөө үчүн --wildcards опциясын колдонуңуз, же --no-wildcards"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Архивде табылган жок"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Керектүү нерселер архивде табылган жок"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Архивдин тамгасы %s менен келишпей жатат"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "`-%s' жана `-%s' опцияларына стандарт кирүү(input) керек"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Архивдин форматы жарабайт"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Бул форматтагы архив үчүн жарабаган GNU өзгөчөлүктөрү суралууда"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Ковычкалардын түрү белгисиз - `%s'. Тизмени көрүүгө `%s --quoting-"
 "style=help' жазгыла."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1371,9 +1414,10 @@ msgstr ""
 "  tar -xf archive.tar          # Аты archive.tar болгон архивдин ичиндеги "
 "баардык файлдарды чыгарат.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1393,82 +1437,82 @@ msgstr ""
 "жөнөкөй вариант\n"
 "  never, simple   ар дайым жөнөкөй резерв копиялар сакталат\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Негизги иштөө абалы:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "архивдин ичиндеги файлдарды тизмелейт"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "архивден файлдарды чыгарат"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "жаңы архив жаратат"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "архив менен файл система айырмаларын табат"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "файлдарды архивдин аягына кошот"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "архивдин ичиндегилерден жаңы болгон файлдарды гана кошот"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tar файлын архивге кошот"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "архивден өчүрөт (магниттик ленталарда жарабайт!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "архивдик томдун атын текшерет анан бүтүрөт"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Иштөөнүн модификаторлору:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "кеңири жайлашкан файлдарды эфектүү түрдө колго ал"
 
 # major, minor
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "БАШКЫ[.КИЙИНКИ]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "кеңири жайлаштыруу форматынын версиясын тандайт (--sparce опциясы кошулган "
 "болот)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "эски GNU форматындагы резервдөө методун колго ал"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "жаңы GNU форматындагы резервдөө методун колго ал"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "окулбаган файлдар келгенде нөл болбогон статус менен ишти бүтүрбө"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1480,123 +1524,134 @@ msgstr ""
 "файлдардын аттары команда строкасында же -T опциясы менен берилгенде гана "
 "жарактуу болот. N-дин мааниси алдынала 1ге барабар."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "Архивдин ичиндегилерди издесе болот"
 
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "Архивдин ичиндегилерди издесе болот"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "үстүнө көчүрүү контролу:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "архивди сактагандан кийин текшерүүгө аракет кылат"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "файлдарды архивге кошулгандан кийин өчүрөт"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "файлдарды чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрбө"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "файлдарды чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрбө"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "мурун бар болгон файл архивдеги копиясындан жаңы болсо аны алмаштырба"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрөт"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "бар болгон файлдын ордуна көчүрүүдөн мурун ал файлды өчүрөт"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "папканы чыгарардан мурун баардык иерархияларды өчүрөт"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "мурун бар болгон папкалардын мета-касиеттерин корго"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "чыгаруу учурунда бар болгон папкалардын мета-даталардын үстүнө жазылат "
 "(алдынала тандалат)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрөт"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Чыгаруу() жолун танда:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "файлдарды стандарт чыгарууга (output) жөнөт"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "КОМАНДА"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 "архивден чыккан файлдарды канал(pipe) жолу менен башка программага жөнөтөт"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "туулган процесстердин бүтүрүү кодторуна караба"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "туулган процесстердин нөл болбогон бүтүрүү кодторун ката деп ишке ал"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Файлдын өзгөчөлүктөрүн колго алууда:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "кошулган файлдардын ээсин АТЫ деп кой"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "кошулган файлдардын группасын АТЫ деп кой"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "ДАТА-ЖЕ-ФАЙЛ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "кошулган файлдардын алмашуу убактысын ДАТА-ЖЕ-ФАЙЛ дан ал"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "УКУК"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "кошулган файлдардын укук абалын УКУК деп кой"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "МЕТОД"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1606,32 +1661,32 @@ msgstr ""
 "сакта (МЕТОД='replace'; алдынала тандалат) же колдонуу убакыттарын "
 "алмашырбай туруп сактап кал (МЕТОД='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "файлдын алмаштыруу убактын чыгарбайт"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "ээсин ошол бойдон калтырып файлдарды чыгарууга аракет кылат"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "файлдарды өзүңдүкү катары чыгарат"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "ээси/группа аттарын ардайым номерлер менен көрсөтөт"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "файлдын уруксат маалыматын да чыгар (суперколдонуучуга алдынала тандалат)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1639,15 +1694,16 @@ msgstr ""
 "архивден уруксат маалыматын чыгарыбатканда колдонуучунун umask'ын колдон "
 "(жөн колдонуучуларга алдынала тандлат)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "чыгатурган файлдарды архивдегидей кылып сортто"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "-p жана -s менен бирдей"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1655,141 +1711,182 @@ msgstr ""
 "чыгарылган папкалардын колдонуу убакыттарын жана уруксаттарын чыгаруу иши "
 "бүткөндөн кийин коёт"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "--delay-directory-restore опциясынын эффектин токтотот"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Файлдын өзгөчөлүктөрүн колго алууда:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Аспапты тандоо жана ага өтүү:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "АРХИВ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "АРХИВ деген архивдик файлды же аспапты колдонот"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "архивдик файлда эки точка болушуна карабастан ал локалдуу"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "rmt'нин ордуна КОМАНДА колдонулат"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "rsh'тын ордуна КОМАНДА колдонулат"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "драйв жана анын тыгыздыгын белгиле"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "көп томдуу архивди жарат/тизмеле/чыгар"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "N x 1024 байт жазгандан кийин лентаны алмаштыр"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "ар лентанын аягында скриптти иштет (-M опциясы колдонулат)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "ФАЙЛ файлынын ичиндеги том номерин колдон/жаңырт"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Аспаптын блоктолушу:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "БЛОК"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "ар маалыматка БЛОК x 512 байт түшөт"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "Ар маалыматка N байт түшөт, 512 көбөйтүндүсү"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "архивдеги нөлдүү блокторду өтүп кетет (EOF жөнүндө)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "окубатканда кайрадан блокторго бөлүп чык (4.2BSD каналдары үчүн)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Архивдин форматын тандоо:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "ФОРМАТ"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "тандалган форматта архив жаратат"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "ФОРМАТ булардан бирөө болот:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "эски V7 tar форматы"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "tar <= 1.12 версиясында болгондой GNU форматы"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x форматы"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) форматы"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) форматы"
 
 # pax деген gid,atime сияктуу нерселер
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "pax менен бирдей"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "--format=v7 менен бирдей"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "--format=posix менен бирдей"
 
 # keyword эмне болот?
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "ачкыч-сөз[[:]=мааниси][,ачкыч-сөз[[:]=мааниси]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "контролдоо үчүн pax ачкыч сөздөрү"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "ТЕКСТ"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1797,78 +1894,78 @@ msgstr ""
 "том аты ТЕКСТ болгон архив жарат; тизмелөө/чыгаруу учурунда, ТЕКСТ дегенди "
 "том атынын глоб шаблону катары колдон"
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "ПРОГ"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "ПРОГ менен ишке ал (-d опциясы болушу керек)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Локалдуу файлдарды тандоо:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "ФАЙЛды архивге кош (файлдын аты тире менен баштаган учурда пайдалуу)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "ПАПКА"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "ПАПКА папкасына өт"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "чыгарылатурган же жаңы ачылатурган файлдарды АТЫ деген файлдан кара"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T опциясы нөл менен бүткөн аттарды окуйт, -C опциясы өчүрүлөт"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала "
 "тандалат)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "-T менен алынган файлдардын аттарындагы ковычкалар калаберет"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "ШАБЛОН"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "ШАБЛОН менен уйкаш файлдар ишке алынбайт"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "ФАЙЛда тизмеленген шаблондор менен уйкаш файлдар ишке алынбайт"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1876,96 +1973,98 @@ msgstr ""
 "CACHEDIR.TAG файлы болгон папкалардын астындагылары тэг файлдан тышкарысы "
 "кошулбайт"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагыларынын баары кошулбайт"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG файлы болгон папкалар кошулбайт"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "ФАЙЛ файлы болгон папкалардын астындагылары ФАЙЛ файлындан тышкарысы "
 "кошулбайт"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "ФАЙЛ файлы болгон папкалардын астындагыларынын баары кошулбайт"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "ФАЙЛ файлы болгон папкалар кошулбайт"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "папкалардын тереңине кирип кетүүнү токтот"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "архивди жасабатканда локалдуу файл системасында кал"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "папкалардын тереңине кирет (алдынала тандалган)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "файл аттарынын башындагы '/'терди өчүрбө"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот"
 
-#: src/tar.c:687
+#: src/tar.c:733
 #, fuzzy
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "МҮЧӨНҮН-АТЫ"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "архивдеги МҮЧӨНҮН-АТЫ мүчөсүнөн башта"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "ДАТА-ЖЕ-ФАЙЛ'дан жаңы болгон файлдарды гана сакта"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "ДАТА"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "датасы алмашканда гана дата жана убактысын салыштыр"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "өчүрөрдөн мурун копиясын сактап кал, CONTROL версиясын танда"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRING"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1973,102 +2072,105 @@ msgstr ""
 "өчүрөрдөн мурун копиясын сактап калат, жалпы колдонулган суфикс кошулат (бул "
 "суфикс SIMPLE_BACKUP_SUFFIX жолу менен алмаштырылбаган болсо '~' болот)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Файлдын атынын алмашуулары:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "чыгаруу учурунда файл аттарынын башындагы N компонентти алып салат"
 
 # выражение кыргызча кандай? СҮЙЛӨМ башка жерде да бар
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "СҮЙЛӨМ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "файлдардын аттарын алмаштыруу үчүн sed replace EXPRESSION колдонгула"
 
 # inclusion, exclusion - Kyrgyz equiv?
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr "Файлдын атына уйкаштыруу опциялары (бардык шаблондорго тиешелүү):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "тамгалардын чоң-кичинесине каралбайт"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "шаблондор файлдын атынын башталышы менен уйкаштырылат"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "шаблондор `/' символунан кийин келген ар жерде уйкашына каралат (алдынала "
 "тандалган)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "уйкаштырууда тамгалардын чоң-кичинесине каралат (алдынала тандалган)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "шаблондор колдонулат (иштен алынбаган файлдарга алдынала тандалат)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "кандай жазылса ошондой колдонулат"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "шаблондор `/' символун издебейт"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "шаблондор `/' символун издейт (алдынала тандалган)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Маалыматтандыруу:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "ишке алынган файлдарды кеңири маалыматы менен тизмеле"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 #, fuzzy
 msgid "warning control"
 msgstr "үстүнө көчүрүү контролу:"
 
 #  Ушу 'record' сөзүнө жакшы котормо табалбай койдум
 #  'маалымат' деп жазыбаттым эле, бул жерде келишпей калаткен
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "ар N записьтен кийин маалымат берип турат (алдынала 10 болот)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "баардык шилтемелер кошулбай калса билдирүү жазып чыгар"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "СИГНАЛ"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2080,32 +2182,36 @@ msgstr ""
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 жана SIGUSR2; SIG префикси жазылбаган "
 "аттарын да колдонсо болот."
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "файлды алмаштыруу датасын UTC түрүндө көрсөт"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "чыккан кеңири маалыматты ФАЙЛ файлына жибер"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "ар билдирүүдө архивдин ичиндеги блок номерин көрсөт"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "ар ишти аткарууга макулдук сурап тур"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "tar'да алдынала коюлган опцияларды көрсөтөт"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2113,33 +2219,33 @@ msgstr ""
 "тизмелөө же чыгаруу учурунда издөө критериясына жатпаган папкаларды да "
 "тизмелейт"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "алмаштыруудан кийин файлдын же архивдин аттарын көрсөтөт"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "СТИЛЬ"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "аттарга ковычка кошуу стилин тандаңыз; жарактуу СТИЛЬ түрдөрү төмөндө "
 "көрсөтүлөт."
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "STRING ичинде болгон тамгаларга кошумча ковычка кошот"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "STRING ичинде болгон тамгаларга ковычка кошпойт"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Келишүү опциялары:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2147,64 +2253,56 @@ msgstr ""
 "жаңы архив жасабатканда --old-archive менен бирдей; чыгарыбатканда --no-same-"
 "owner менен бирдей"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Башка опциялар:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "зыяндуу көрүнгөн опцияларды колдонууга тыюуу салат"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "`-Acdtrux' опцияларынан бирөөнү гана колдоно аласыңар"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Сигналдын аты белгисиз: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Датанын шаблон файлы табылган жок"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Белгисиз %1$s дата форматынын ордуна %2$s коюлат"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "%s опциясы: `%s' датасын %s деп алды"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: файл тизмеси окулган"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: алынган файлдын атында бош тамгалар бар"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "архивди gzip менен ишке ал"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 #, fuzzy
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "--quoting-style опциясы үчүн мындай аргументтер бар:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2212,173 +2310,198 @@ msgstr ""
 "\n"
 "*Бул* tar алдынала мындай иштетилет:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ээси жарабайт"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Блок көлөмү жараксыз"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Лентанын узундугу жараксыз"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 #, fuzzy
 msgid "Invalid incremental level value"
 msgstr "Файлдын форматы туура эмес"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Бирден көп ченемдөөчү дата бар"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "кеңири жайлаштыруу форматынын версиясы жарактуу эмес"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "Бул платформада --atime-preserve='system' опциясы иштебейт"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint опциясына жазылган аргумент сан эмес"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Жараксыз группа"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Опцияда жарабаган укук абалы берилди"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Жарабаган номер"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Ээси жарабайт"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Маалымат көлөмү жарабайт"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Маалыматтын көлөмү %d көбөйтүндүсү болушу керек."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Элементтердин саны жарабайт"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "--to-command опциясы бир эле жолу жазылыш керек"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Тыгыздык аргументи туура эмес: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Түшүнүксүз тыгыздык: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "*Бул* tar `-[0-7][lmh]' опцияларын иштетпейт"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[ФАЙЛ]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Эски болгон `%c' опциясына параметр керек."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "Колдонулган иштетүү абалда --occurrence колдонулбайт"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Бир нече архив файлы болсо `-M' опциясы колдонулушу керек"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental менен --newer чогу колдонулбайт"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Томдун тамгасы өтө узун (эң көп %lu байт боло алат)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Көп-томдуу архивдерди текшералбай калды"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Кысыштырылган архивдерди текшералбай калды"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "%s шаблону колдонулбайт"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Көп-томдуу кысыштырылган архивдерди колдоналбай калды"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Кысыштырылган архивдер кошулалбайт"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "%s шаблону колдонулбайт"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Бош архив жаратуудан уялып баш тартып жатат"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "`-Aru' опциялары `-f -' менен келишпейт"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "`-Acdtrux' опцияларынан бирөөнү тандап колдонуңуз"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2389,119 +2512,115 @@ msgstr[0] "%s: Файл %s байтка азайды"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "%s сөзү белигсиз же азырынча киргизилген эмес"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Сан жарактуу маанилердин тышында: %s"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "%s шаблону колдонулбайт"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "%s ачкыч сөзү алмаштырылбайт"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Кеңейтилген башкы-маалымат бузук: узундук жок"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Кеңейтилген башкы-маалыматтын узундугу жарактуу маанилердин тышында"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Кеңейтилген башкы-маалыматтын узундугу - %*s - диапазондун тышында"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 "Кеңейтилген башкы-маалымат бузук: узундуктан кийин бош жер (пробел) жок"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Кеңейтилген башкы-маалымат бузук: барабар символу жок"
 
 # newline эмне болот?
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Кеңейтилген башкы-маалымат бузук: жаңы сап жок"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Кеңейтилген башкы-маалыматта белгисиз `%s' сөзү каралбайт"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Чыккан ачкыч-сөз/маани экилиги ото узун (ачкыч-сөз=%s, узундугу=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "%s=%s түрүндөгү кеңейтилген башкы-маалымат %s..%s диапазондун тышында"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s туура эмес"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s ашыкча көп"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Кеңейтилген башкы-маалымат бузук: туура эмес %s: күтүлбөгөн жерде бул - %c - "
 "бөлүүчү символ бар"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: так санда маани бар"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Жараксыз группа"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Жазууну текшерүү жери: %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Окуунун текшерүү жери: %u"
@@ -2649,7 +2768,7 @@ msgstr "Сан жарактуу маанилердин тышында: %s"
 msgid "Negative size: %s"
 msgstr "Көлөмү терс сан: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) аткарылбай калды"
@@ -2678,8 +2797,8 @@ msgstr "Датанын форматы түшүнүксүз"
 msgid "[ARGS...]"
 msgstr "[АРГУМЕНТТЕР...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "`%s' ачылбай жатат"
@@ -2693,69 +2812,105 @@ msgstr "издөө болбой калды"
 msgid "file name contains null character"
 msgstr "файлдын атында бош тамга бар"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "кеңири(чоң) файлдарды стандарт чыгарууга жибералбайт, --file опциясын "
 "колдонуңуз"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "туура эмес маска (`%s' жанында)"
 
 # фиелд деген кандай болот?
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Белгисиз поле `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "`%s'ке убакыт аталган жок"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "`%s' ачылбай жатат"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s командасы аткарылбай калды"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "`%s' ачылбай жатат"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Команда толук аткарылды\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Команда %d статусу менен аткарылбай калды\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Команда %d сигналы менен жабылды\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Команда %d сигналы менен токтотулду\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Команда core dump менен бүттү\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Команда жабылды\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat опциясы менен файл аттары жазылыш керек"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Учурдагы папка алмаштырылбайтат"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "чыгатурган файлдарды архивдегидей кылып сортто"
+
+# фиелд, снэпшот дегендер кандай болот?
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Снэпшот файлды окубатканда ото узун поле чыкты"
+
+# snapshot?
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Снэпшот файлды окубатканда ката болду"
+
+# фиелд кандай болот? snapshot?
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Снэпшот файлда күтүлбөгөн поле(фиелд) бар"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Кеңейтилген башкы-маалыматтын узундугу жарактуу маанилердин тышында"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Жараксыз группа"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Файл окулганча өчүрүлүп кетти"
index b7c4b394ea7f0f74c3b6f99f2269debcfd39f9e0..04f9c23df890d8c23406b3197fabe3d2f80ab71d 100644 (file)
Binary files a/po/ms.gmo and b/po/ms.gmo differ
index f786b8f2da44cb1194ffb5c1a1905cc93a7d66a8..952f10301d38468ca0e8d663df8b878d14170017 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -2,12 +2,12 @@
 # Copyright (C) 2002 Free Software Foundation, Inc.
 # Hasbullah Bin Pit <sebol@ikhlas.com>, 2002.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.13.25\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2002-11-23 02:38+0800\n"
 "Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -27,69 +27,68 @@ msgid "ambiguous argument %s for %s"
 msgstr "hujah kabur %s bagi %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Hujah sah adalah:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Pengunaan : %s [OPSYEN]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Cuba '%s --help' untuk maklumat lanjut.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, fuzzy, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "\n"
 "Lapor pepijat ke <bug-tar@gnu.org>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Ralat sistem tidak diketahui"
 
@@ -101,7 +100,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -122,17 +121,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: opsyen `%s' memerlukan hujah\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -140,62 +138,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opsyen `%s' adalah kabur\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opsyen %c%s'  tidak mengizinkan hujah\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opsyen `%s' memerlukan hujah\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opsyen tidak dikenali `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opsyen tidak dikenali '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opsyen tidak sah -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opsyen memerlukan hujah -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opsyen `-W %s' adalah kabur\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opsyen `-W %s' tidak mengizinkan hujah\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opsyen `%s' memerlukan hujah\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memori keletihan"
 
@@ -211,29 +209,31 @@ msgstr "Tak dapat simpan direktori kerja"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
 # ui/galeon.glade.h:3
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -243,7 +243,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -253,7 +253,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -517,7 +517,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Tak boleh laksanakan shell jauh"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Tak boleh laksanakan shell jauh"
@@ -573,8 +578,8 @@ msgstr "EOF tanpa diduga pada arkib"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -582,8 +587,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -598,7 +603,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s: Tak dapat rayau ke %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -607,9 +612,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Arahan sampah"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Ia nampaknya bukan seperti arkib tar"
 
@@ -648,65 +653,65 @@ msgstr "Tak dapat menentusahkan arkib stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Tak dapat mengemaskini arkib termampat"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Pada permulaan pita, keluar sekarang"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Terlalu banyak ralat, keluar"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Saiz rekod = %lu blok"
 msgstr[1] "Saiz rekod = %lu blok"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, fuzzy, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Blok tidak dijajar (%lu byte) pada arkib"
 msgstr[1] "Blok tidak dijajar (%lu byte) pada arkib"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "tak dapat backspace fail arkib; ia mungkin tak boleh dibaca tanpa -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: mengandungi nombor volum yg tidak sah"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 #, fuzzy
 msgid "Volume number overflow"
 msgstr "Nombor volum melimpah"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Menyedia volum #%d bagi %s dan tekan return: "
 
 # libgnomeui/gnome-app-helper.c:127
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF dimana maklumbalas pengguna dijangka"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AMARAN: Arkib tidak lengkap"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -718,628 +723,667 @@ msgstr ""
 " !          Spawn  subshell\n"
 " ?          Cetak senarai ini\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Tiada volum baru; keluar.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "Arahan '%s' gagal"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s tidak bersambung pada volum ini"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s tidak bersambung pada volum ini"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s adalah salah saiz (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Volum ini tidak dalam turutan"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arkib tidak dilabelkan supaya memadan %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volum %s tidak sepadan %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr ""
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Hanya boleh membaca  %lu drpd  %lu byte"
 msgstr[1] "Hanya boleh membaca  %lu drpd  %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Kandungan berlainan"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "EOF tanpa diduga pada arkib"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Jenis fail berbeza"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Mod berbeza"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid berbeza"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid berbeza"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Masa mod berbeza"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Saiz berbeza"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Tidak dipautkan ke %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symlink berbeza"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Nombor beranti berbeza"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Tentusah"
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Jenis fail tak dikenali '%c', berlainan dengan fail normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
 msgstr ""
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "GAGAL TENTUSAH: %d pengepala tak sah dikesan"
 msgstr[1] "GAGAL TENTUSAH: %d pengepala tak sah dikesan"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "nilai %s diluar julat %s %s..%s; menggantikan %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "nilai %s diluar julat %s %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Menjana pengepala oktal negatif"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: fail tidak berubah; tidak dilonggokkan"
 
-#: src/create.c:622
+#: src/create.c:611
 #, fuzzy, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: fail tidak berubah; tidak dilonggokkan"
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: fail tidak berubah; tidak dilonggokkan"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Fail mengucup sebanyak %s byte; pad dengan sifar"
 msgstr[1] "%s: Fail mengucup sebanyak %s byte; pad dengan sifar"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Jenis fail tak dikenali; fail diabaikan"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Pautan ke %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: fail tidak berubah; tidak dilonggokkan"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: fail adalah arkib; tidak dilonggokkan"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: fail berubah bila kami membacanya"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: soket diabaikan"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: pintu diabaikan"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Melangkah ke pengepala berikut"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Memadam bukan-pengepala drpd arkib"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: setem masa %s adalah %lu pada masa akan datang"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Ketidakkonsistenan luar dugaan bila membuat direktori"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Direktori ditukarnama sebelum statusnya boleh diekstrak"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Mengekstrak fail bersambung sebagai fail biasa"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Tak dapat ekstrak -- fail bersambung dari volum lain"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Penghujungan tanpa diduga data imej PNM"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Jenis fail tak dikenali '%c', diekstrak sebagai fail biasa"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Tak dapat backup fail ini"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Tak dapat menukarnama ke %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Direktori telah ditukarnama"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Direktori telah ditukarnama"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Direktori adalah baru"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah ditukarnama"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Setem masa tidak sah"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Mod tidak sah diberi pada opsyen"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Nombor peranti tidak sah"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Nombot inod tidak sah"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "EOF tanpa diduga pada arkib"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Tak dapat memperuntukkan memori bagi faktor pemblokan %d"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, fuzzy, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Memadam %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: tak dapat buang"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr ""
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok TIADA **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Akhir Fail **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Pengepala kosong dimana nilai %s numerik dijangka"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "Nilai oktal arkib %.*s diluar julat %s; anggap kedua-dua pelengkap"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Nilai oktal arkib %.*s diluar julat %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr ""
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Rentetan %s base-64 ditandatangani arkibadalah diluar julat %s "
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Nilai base-256 arkub adalah diluar julat %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arkib mengandungi %.*s dimana nilai %s numerik dijangka"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Nilai %s arkib adalah dijuar julat %s %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr "Pautan ke %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr "jenis fail tak diketahui %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Pengepala Volum--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Bersambung pada byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Mencipta direktori:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Tak dapat tukar direktori kerja"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Menukarnama %s ke %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Tak dapat menukarnama ke %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Menukarnama %s kembali ke %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fail dibuang sebelum kami membacanya"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proses anak"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "saluran antaraproses"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Arahan '%s' gagal"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: fail adalah arkib; tidak dilonggokkan"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s: Tak dapat rayau ke %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Tak dijumpai pada arkib"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Tak dijumpai pada arkib"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Arkib tidak dilabelkan supaya memadan %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Opsyen `-%s' dan `-%s' kedua-duanya memerlukan input piawai"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Kumpulan tidak sah"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1356,9 +1400,9 @@ msgstr ""
 "verbose.\n"
 "  %s -xf arkib.tar           # Ekstrak semua fail drpd arkib.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1368,80 +1412,80 @@ msgid ""
 "  never, simple   always make simple backups\n"
 msgstr ""
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "EOF tanpa diduga pada arkib"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1449,565 +1493,614 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr ""
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 #, fuzzy
 msgid "extract files to standard output"
 msgstr "Ralat ketika menulis ke output piawai"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Tak dapat menentusah arkib multi-volume"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "opsyen format arkib konflik"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Opsyen mampatan konflik"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Tak dapat tukar direktori kerja"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Membuang awalan  `%.*s' drpd nama ahli"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "Volum %s tidak sepadan %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2015,300 +2108,317 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "Mod tidak sah diberi pada opsyen"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr ""
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Anda tak boleh nyatakan lebih drpd satu opsyen `-Acdtrux'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opsyen mampatan konflik"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr "jenis fail tak diketahui %s\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Fail tarikh tidak dijumpai"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Mengganti %s bagi format tarikh tak diketahui %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: fail adalah arkib; tidak dilonggokkan"
-
-#: src/tar.c:1201
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file name read contains nul character"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "%s: fail adalah arkib; tidak dilonggokkan"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Pemilik tidak sah"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Faktor pemblokan tidak sah"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "panjang pita tidak sah"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr ""
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Kumpulan tidak sah"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mod tidak sah diberi pada opsyen"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 #, fuzzy
 msgid "Invalid number"
 msgstr "Nombot inod tidak sah"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Pemilik tidak sah"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Saiz rekod tidak sah"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Saiz rekod mesti dalam gandaan %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 #, fuzzy
 msgid "Invalid number of elements"
 msgstr "panjang pita tidak sah"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr ""
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "jenis fail tak diketahui %s\n"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opsyen `-[0-7][lmh]' tak disokong oleh tar *ini*"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "OPsyen lama `%c' memerlukan hujah."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Fail akrib beraneka memerlukan opsyen `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Tak boleh gabung  --listed-incremental dengan --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, fuzzy, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Label volum adalah terlalu panjang (had adalah %lu byte)"
 msgstr[1] "%s: Label volum adalah terlalu panjang (had adalah %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Tak dapat menentusah arkib multi-volume"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Tak dapat menentusahkan arkib termampat"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Tak dapat menggunakan arkib multi-volume termampat"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Tak dapat mengemaskini arkib termampat"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Secara dayus enggan mencipta arkib kosong"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Opsyen `-Aru' tak serasi dengan  `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Anda mesti nyatakan satu drpd opsyen `-Acdtrux'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2320,115 +2430,111 @@ msgstr[1] "%s: Fail mengecil sebanyak %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Setem masa diluar julat"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Rentetan %s base-64 ditandatangani arkibadalah diluar julat %s "
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Nilai %s arkib adalah dijuar julat %s %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Kumpulan tidak sah"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Menulis titiksemak %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Membaca titiksemak %d"
@@ -2566,7 +2672,7 @@ msgstr "Nombor inod diluar julat"
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2595,8 +2701,8 @@ msgstr "Ralat sistem tidak diketahui"
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2611,66 +2717,84 @@ msgstr "Tak dapat tutup"
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr "jenis fail tak diketahui %s\n"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s: Tak dapat rayau ke %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s: Tak dapat rayau ke %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Arahan '%s' gagal"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s: Tak dapat rayau ke %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "Anak mati dengan isyarat %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "Nama fail modul"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Tak dapat tukar direktori kerja"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Kumpulan tidak sah"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Fail dibuang sebelum kami membacanya"
index 4fbbf7355510e72ee5728197ff7cb2d9ad3bcc82..863407f8c86a9cf74f7a7beee3d814d3b3314cdf 100644 (file)
Binary files a/po/nb.gmo and b/po/nb.gmo differ
index 5c5d1a590fc00218938492a300b17483f6acce52..60dfb5ebf0b99c9a5fd53de8161b8ee5d73cf09f 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -2,12 +2,12 @@
 # Copyright (C) 1996 Free Software Foundation, Inc.
 # Karl Anders Øygard <Karl.Oygard@fou.telenor.no>, 1996.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU tar 1.12\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 1997-06-05 19:39 MET DST\n"
 "Last-Translator: Espen Skjelnes Johnsen <espejohn@sn.no>\n"
 "Language-Team: Norwegian-bokmål <no@li.org>\n"
@@ -27,67 +27,66 @@ msgid "ambiguous argument %s for %s"
 msgstr "Tvetydig mønster «%s»"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr ""
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Bruk: %s [FLAGG]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Tast «%s --help» for mer informasjon.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Unkjent systemfeil"
 
@@ -99,7 +98,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -120,17 +119,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr ""
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -138,62 +136,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "Ugyldig verdi for record_size"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 #, fuzzy
 msgid "memory exhausted"
 msgstr "Minne oppbrukt"
@@ -210,28 +208,30 @@ msgstr ""
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr ""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr ""
 
@@ -241,7 +241,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -251,7 +251,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -516,7 +516,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Kan ikke eksekvere \"remote shell\""
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Kan ikke eksekvere \"remote shell\""
@@ -571,8 +576,8 @@ msgstr "Uventet filslutt i 
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -580,8 +585,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -596,7 +601,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "Kan ikke åpne %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -605,9 +610,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Ugyldig kommando"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Dette ser ikke ut som et tar-arkiv"
 
@@ -652,64 +657,64 @@ msgid "Archive is compressed. Use %s option"
 msgstr ""
 
 #
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Kan ikke oppdatere komprimerte arkiver"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "På begynnelsen av båndet, avslutter nå"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "For mange feil, avslutter"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Blokkstørrelse = %d enheter"
 msgstr[1] "Blokkstørrelse = %d enheter"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 #, fuzzy
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Kunne ikke gå tilbake i arkivfilen.  Den kan være uleselig uten -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr ""
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr ""
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, fuzzy, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "\aGjør klar volum nummer %d for %s og trykk return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF der svar fra bruker var forventet"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ADVARSEL: Arkivet er ufullstendig"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -721,634 +726,670 @@ msgstr ""
 " !          Start et shell\n"
 " ?          Skriv denne listen\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Ikke nytt volum; avslutter.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr ""
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s fortsetter ikke i dette volumet"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s fortsetter ikke i dette volumet"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, fuzzy, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s har feil størrelse (%ld != %ld + %ld)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Dette volumet kommer ute av rekkefølge"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, fuzzy, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arkivet er ikke navngitt for å passe med «%s»"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, fuzzy, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volumet «%s» stemmer ikke overens med «%s»"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "Arkiv %s sluttet ikke ved en blokkgrense"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Kunne bare lese %d av %ld bytes"
 msgstr[1] "Kunne bare lese %d av %ld bytes"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 #, fuzzy
 msgid "Contents differ"
 msgstr "Modus er ulik"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Uventet filslutt i arkivet"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 #, fuzzy
 msgid "File type differs"
 msgstr "Størrelse er ulik"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modus er ulik"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid er ulik"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid er ulik"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Modifiseringstid er ulik"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Størrelse er ulik"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ikke linket til %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolsk link er ulik"
 
-#: src/compare.c:317
+#: src/compare.c:318
 #, fuzzy
 msgid "Device number differs"
 msgstr "Enhetsnummer er endret"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifisering "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "Ukjent filtype «%c» for %s, diffet som en vanlig fil"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
 msgstr ""
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet"
 msgstr[1] "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr ""
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr ""
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: er uendret; ikke lagret"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: er uendret; ikke lagret"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "Filen %s krympet med %d bytes, fyller ut med nuller"
 msgstr[1] "Filen %s krympet med %d bytes, fyller ut med nuller"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, fuzzy, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: På et annet filesystem.  Ikke lagret"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 #, fuzzy
 msgid "contents not dumped"
 msgstr " (minnet lagret)"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Ukjent filtype; filen ble ignorert"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " link til %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, fuzzy, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: er uendret; ikke lagret"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, fuzzy, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s er arkivet; ikke lagret"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr ""
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr ""
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr ""
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Hopper til neste startseksjon"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Tar bort ikke-hodedata fra arkivet"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr ""
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr ""
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Ekstraherer sammenhengende filer som vanlige filer"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Forsøker å ekstrahere symbolske linker som harde linker"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, fuzzy, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "Kan ikke ekstrahere «%s» -- filen fortsetter fra et tidligere volum"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Uventet filslutt i arkivfilen"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "Ukjent filtype «%c» for %s, ekstrahert som en vanlig fil"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Kunne ikke lage sikkerhetskopi av denne filen"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Kan ikke endre navn på %s til %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "Filkatalogen %s har endret navn"
 
-#: src/incremen.c:485
-#, fuzzy, c-format
-msgid "%s: Directory has been renamed"
-msgstr "Filkatalogen %s har endret navn"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, fuzzy, c-format
 msgid "%s: Directory is new"
 msgstr "Filkatalogen %s er ny"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: På et annet filesystem.  Ikke lagret"
+
+#: src/incremen.c:587
+#, fuzzy, c-format
+msgid "%s: Directory has been renamed"
+msgstr "Filkatalogen %s har endret navn"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr ""
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Ugyldig modus gitt i flagg"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr ""
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr ""
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "Lesefeil på %s"
-
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Uventet filslutt i arkivfilen"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-#, fuzzy
-msgid "Unexpected field value in snapshot file"
-msgstr "Uventet filslutt i arkivfilen"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Kan ikke gå til filkatalogen %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr ""
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Sletter %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, fuzzy, c-format
 msgid "%s: Cannot remove"
 msgstr "Kan ikke slette %s"
 
-#: src/list.c:190
+#: src/list.c:189
 #, fuzzy, c-format
 msgid "%s: Omitting"
 msgstr "Utelater %s"
 
-#: src/list.c:207
+#: src/list.c:206
 #, fuzzy, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blokk %10ld: ** Blokk med NUL-er **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, fuzzy, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blokk %10ld: ** Slutt på fil **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, fuzzy, c-format
 msgid "block %s: "
 msgstr "blokk %10ld: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr ""
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr ""
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 
-#: src/list.c:840
+#: src/list.c:854
 #, fuzzy, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Dette volumet kommer ute av rekkefølge"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr ""
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " link til %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, fuzzy, c-format
 msgid " unknown file type %s\n"
 msgstr " ukjent filtype «%c»\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Volumhode--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, fuzzy, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Fortsetter ved byte %ld--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Lager filkatalog:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Kan ikke gå til filkatalogen %s"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, fuzzy, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Endret navn på %s til %s"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, fuzzy, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "Kan ikke endre navn på %s til %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, fuzzy, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Endret navn på %s til %s"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr ""
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr ""
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr ""
 
-#: src/names.c:590
+#: src/names.c:360
+msgid "command line"
+msgstr ""
+
+#: src/names.c:378
+#, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr ""
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Kan ikke gjøre «stat» på %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Finnes ikke i arkivet"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Finnes ikke i arkivet"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Arkivet er ikke navngitt for å passe med «%s»"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Flaggene «-%s» and «-%s» vil begge ta standard inn"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "Ugyldig datoformat «%s»"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU-funksjoner forsøkt på inkompatibelt arkiv-format"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1357,10 +1398,10 @@ msgid ""
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1381,80 +1422,80 @@ msgstr ""
 "                  ellers enkle\n"
 "  never, simple   lag enkle sikkerhetskopier\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Uventet filslutt i arkivet"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1462,568 +1503,617 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 #, fuzzy
 msgid "remove files after adding them to the archive"
 msgstr "Tar bort enhetsnavn fra navn i arkivet"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr ""
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Kan ikke verifisere arkiv som går over flere volum"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Arkivér til stdin"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Konflikt i kompresjonsflagg"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "Kan ikke skrive til komprimeringsprogrammet"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "Kan ikke skrive til komprimeringsprogrammet"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Kan ikke gå til filkatalogen %s"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
 #
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Tar bort ledende «/» fra absolutte linker"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "Volumet «%s» stemmer ikke overens med «%s»"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2031,302 +2121,318 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "Ugyldig modus gitt i flagg"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 #, fuzzy
 msgid "ask for confirmation for every action"
 msgstr "Kan ikke lese bekreftelse fra brukeren"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Du kan ikke angi mer enn ett av «-Acdtrux»-flaggene"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Konflikt i kompresjonsflagg"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr "Ukjent mønster «%s»"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr ""
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr ""
 
-#: src/tar.c:1057
+#: src/tar.c:1108
 #, c-format
-msgid "Option %s: Treating date `%s' as %s"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr ""
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr ""
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ugyldig eier gitt i flagg"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr ""
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr ""
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mer enn én grense-dato"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "Ugyldig eier gitt i flagg"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Ugyldig modus gitt i flagg"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr ""
 
-#: src/tar.c:1934
-#, fuzzy
-msgid "Invalid owner"
-msgstr "Ugyldig eier gitt i flagg"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 #, fuzzy
 msgid "Invalid record size"
 msgstr "Ugyldig verdi for record_size"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Blokkstørrelse må være delbart på %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr ""
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "Ukjent mønster «%s»"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Flaggene «-[0-7][lmh]» støttes ikke av *denne* implementasjonen av tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Gammelt flagg «%c» behøver et argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Ved flere arkivfiler behøves «-M»-flagget"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr ""
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Kan ikke verifisere arkiv som går over flere volum"
 
 #
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Kan ikke verifisere komprimerte arkiver"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Kan ikke bruke komprimerte arkiv som går over flere volum"
 
 #
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Kan ikke oppdatere komprimerte arkiver"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "For feig til å lage et tomt arkiv"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Flaggene «-Aru» er inkompatible med «-f -»"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Du må angi ett av «-Acdtrux»-flaggene"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2338,114 +2444,110 @@ msgstr[1] "%s: Filen krympet med %d bytes, (
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr ""
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr ""
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Skriver kontrollpunkt %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Leser kontrollpunkt %d"
@@ -2583,7 +2685,7 @@ msgstr ""
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2612,8 +2714,8 @@ msgstr "Unkjent systemfeil"
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, fuzzy, c-format
 msgid "cannot open `%s'"
 msgstr "Kan ikke åpne %s"
@@ -2628,66 +2730,92 @@ msgstr "Kan ikke eksekvere %s"
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr "Ukjent mønster «%s»"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "Kan ikke gjøre «stat» på %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Kan ikke åpne %s"
+
+#: tests/genfile.c:701
+#, c-format
+msgid "command failed: %s"
+msgstr ""
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "Kan ikke åpne %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr ""
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Ødelagte filnavn--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Kan ikke gå til filkatalogen %s"
+
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Lesefeil på %s"
+
+#, fuzzy
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Uventet filslutt i arkivfilen"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "Ugyldig eier gitt i flagg"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "Filkatalogen %s har endret navn"
index 34aa28cd74b7b741feb4b90c84b2f9561603a820..ade0e31a1f0dde9e812accc81316173fedb151cb 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index eb80308bc414ed6394d71a497c3f100d89904761..d9930e120dc29161c1c58fa8b63ede4f07196784 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,17 +1,17 @@
 # Dutch translations for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright (C) 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 #
-# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011.
 # Erwin Poeze <erwin.poeze@gmail.com>, 2009.
-# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010.
-#: src/create.c:1552
+# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar-1.25\n"
+"Project-Id-Version: tar-1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-12-08 12:01+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-12 17:27+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
@@ -32,36 +32,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argument %s van %s is niet eenduidig"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Geldige argumenten zijn:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: waarde voor '%s' is kleiner of gelijk aan %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Parameter in ARGP_HELP_FMT vereist een waarde"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Rommel in ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -69,31 +68,31 @@ msgstr ""
 "Een argument dat verplicht of optioneel is voor een lange optie, is dat\n"
 "ook voor de overeenkomstige korte optie."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Gebruik: "
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "     of: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPTIE...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "Rapporteer gebreken in het programma aan %s;\n"
 "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Onbekende systeemfout"
 
@@ -105,7 +104,7 @@ msgstr "deze hulptekst tonen"
 msgid "give a short usage message"
 msgstr "een korte gebruikssamenvatting tonen"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAAM"
@@ -126,17 +125,16 @@ msgstr "dit aantal seconden pauzeren (standaard 3600)"
 msgid "print program version"
 msgstr "programmaversie tonen"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "**Interne programmafout**: geen versie bekend!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Te veel argumenten\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
 
@@ -144,62 +142,62 @@ msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
 msgid "write error"
 msgstr "schrijffout"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: optie '%s' is niet eenduidig\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: optie '--%s' staat geen argument toe\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: optie '%c%s' staat geen argument toe\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: optie '--%s' vereist een argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: onbekende optie '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: onbekende optie '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ongeldige optie -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: optie vereist een argument -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: optie '-W %s' is niet eenduidig\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: optie '-W %s' staat geen argument toe\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: optie '-W %s' vereist een argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "onvoldoende geheugen beschikbaar"
 
@@ -215,28 +213,30 @@ msgstr "kan niet terugkeren naar de oorspronkelijke werkmap"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "‘"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "’"
 
@@ -246,7 +246,7 @@ msgstr "’"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[jJyY]"
 
@@ -256,7 +256,7 @@ msgstr "^[jJyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -545,7 +545,12 @@ msgstr "standaarduitvoer"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Kan geen verbinding maken met %s: herleiding is mislukt"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Kan gindse shell niet uitvoeren"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Kan gindse shell niet uitvoeren"
@@ -595,8 +600,8 @@ msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 "Een magneetband manipuleren, en opdrachten accepteren van een ander proces."
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "AANTAL"
 
@@ -604,8 +609,8 @@ msgstr "AANTAL"
 msgid "set debug level"
 msgstr "debug-niveau instellen"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -620,7 +625,7 @@ msgstr "naam van debug-uitvoerbestand instellen"
 msgid "cannot open %s"
 msgstr "kan %s niet openen"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "te veel argumenten"
@@ -629,9 +634,9 @@ msgstr "te veel argumenten"
 msgid "Garbage command"
 msgstr "Ongeldige opdracht"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Dit ziet er niet uit als een tar-archief"
 
@@ -669,64 +674,64 @@ msgstr "Kan archieven op standaardinvoer of -uitvoer niet verifiëren"
 msgid "Archive is compressed. Use %s option"
 msgstr "Archief is gecomprimeerd.  Gebruik optie '%s'."
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Kan ingepakte archieven niet bijwerken"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Aan het begin van de band -- tar sluit nu af."
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Te veel fouten -- tar sluit nu af."
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Recordgrootte = %lu blok"
 msgstr[1] "Recordgrootte = %lu blokken"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Niet-uitgelijnd blok (%lu byte) in archief"
 msgstr[1] "Niet-uitgelijnd blok (%lu bytes) in archief"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Kan niet terugzoeken in archiefbestand; het kan onleesbaar zijn zonder -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek() is niet gestopt op een recordgrens"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: bevat een ongeldig deelnummer"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Deelnummer-overloop"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Zet deel #%d voor %s klaar en druk op Enter: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "een lege tekst, terwijl gebruikersinvoer werd verwacht"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "WAARSCHUWING: Archief is onvolledig"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -738,65 +743,65 @@ msgstr ""
 " q           tar afbreken\n"
 " y of Enter  doorgaan\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !           een subshell starten\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?           dit lijstje tonen\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Geen nieuw deel -- tar sluit af.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Geen bestandsnaam opgegeven.  Probeer het nog eens.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Ongeldige invoer.  Typ ? voor hulp.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Opdracht %s is mislukt"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s gaat mogelijk verder in dit deel: de kop bevat een afgekapte naam"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s gaat niet verder in dit deel"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s heeft een verkeerde grootte (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Dit deel valt buiten de reeks (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Archief bevat geen label, kan niet overeenkomen met %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Deel %s komt niet overeen met %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -804,405 +809,429 @@ msgstr ""
 "%s: bestandsnaam is te lang om opgeslagen te worden in een GNU-meerdelenkop; "
 "afgekapt"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "schrijven is niet gestopt op een recordgrens"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Kon slechts %lu van %lu byte lezen"
 msgstr[1] "Kon slechts %lu van %lu bytes lezen"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Inhouden verschillen"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Onverwacht einde-van-bestand in archief"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Bestandssoort verschilt"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modus verschilt"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "UID verschilt"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "GID verschilt"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Wijzigingstijd verschilt"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Grootte verschilt"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Niet gekoppeld aan %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolische koppeling verschilt"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Apparaatnummer verschilt"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifiëren "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Onbekende bestandssoort '%c'; gedifft als gewoon bestand"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Archief bevat bestandsnamen waarvan de prefixen verwijderd zijn."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Archief bevat ouderwetse grondtal-64 koppen"
+msgstr "Archief bevat getransformeerde bestandsnamen."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Een verificatie kan mogelijk de originele bestanden niet vinden."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "Verificatie is MISLUKT: %d ongeldige kop gevonden"
 msgstr[1] "Verificatie is MISLUKT: %d ongeldige koppen gevonden"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Een los blok met nullen op %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: map bevat cache-markering %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "waarde %s valt buiten bereik voor %s (%s..%s); wordt vervangen door %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "waarde %s valt buiten bereik voor %s (%s..%s)"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Er worden negatieve octale koppen gemaakt"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: bestandsnaam is te lang (max %d); niet gearchiveerd"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: bestandsnaam is te lang (kan niet worden gesplitst); niet gearchiveerd"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: koppelingsnaam is te lang; niet gearchiveerd"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Bestand is gekrompen met %s byte; aangevuld met nullen"
 msgstr[1] "%s: Bestand is gekrompen met %s bytes; aangevuld met nullen"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: bestand staat op een ander bestandssysteem; niet gearchiveerd"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "inhoud niet gearchiveerd"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Onbekende bestandssoort; bestand genegeerd"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Ontbrekende koppelingen naar %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: bestand is ongewijzigd; niet gearchiveerd"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: bestand is het archief zelf; niet gearchiveerd"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "map is niet gearchiveerd"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: bestand is gewijzigd tijdens het lezen"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socket genegeerd"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: deur genegeerd"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Alles tot aan volgende kop wordt overgeslagen"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Niet-kop wordt uit archief verwijderd"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: onwaarschijnlijk oude tijdsstempel %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: tijdsstempel %s ligt %s seconden in de toekomst"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Onverwachte inconsistentie tijdens aanmaken van map"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Map werd hernoemd voordat de status ervan kon worden bepaald"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Aaneengesloten bestanden worden uitgepakt als gewone bestanden"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 "Poging om symbolische koppelingen als harde koppelingen uit te pakken..."
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Kan niet uitpakken -- bestand gaat door vanuit een ander deel"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Onverwachte langenaamkop"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Onbekende bestandssoort '%c'; uitgepakt als gewoon bestand"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Huidige %s is nieuwer of even oud"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Kan geen reservekopie van dit bestand maken"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Kan %s niet tot %s hernoemen"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Map is hernoemd van %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Map is hernoemd"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Map is nieuw"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: bestand staat op een ander bestandssysteem; niet gearchiveerd"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Map is hernoemd"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Ongeldig tijdsstempel"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Ongeldige wijzigingstijd (seconden)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Ongeldige wijzigingstijd (nanoseconden)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Ongeldig apparaatnummer"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Ongeldig inode-nummer"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Veld is te lang, tijdens lezen van snapshot-bestand"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Leesfout tijdens lezen van snapshot-bestand"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Onverwacht einde-van-bestand in snapshot-bestand"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Onverwachte veldwaarde in snapshot-bestand"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Ontbrekende record-afsluiting"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Onjuiste incrementele bestandsindeling"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 "Niet-ondersteunde versie (%<PRIuMAX>) van incrementele bestandsindeling"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Onjuiste archiveringsmap: '%c' werd verwacht maar %#3o gevonden"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Onjuiste archiveringsmap: 'X' staat er dubbel"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Onjuiste archiveringsmap: lege naam in 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Onjuiste archiveringsmap: 'T' werd niet voorafgegaan door 'R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Onjuiste archiveringsmap: lege naam in 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Onjuiste archiveringsmap: '%c' werd verwacht, maar de gegevens houden op"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Onjuiste archiveringsmap: 'X' is nergens gebruikt"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Kan met sjabloon %s geen tijdelijke map aanmaken"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Map wordt niet leeggemaakt: kan de status ervan niet bepalen"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: Map staat op een ander bestandssysteem; niet leeggemaakt"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Verwijderen van %s...\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Kan niet verwijderen"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Overgeslagen"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok van NUL-tekens **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Einde-van-bestand **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Witruimte in kop waar numerieke waarde voor %s werd verwacht"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1210,108 +1239,124 @@ msgstr ""
 "aangenomen"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Octaalwaarde %.*s in archief valt buiten bereik voor %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Archief bevat ouderwetse grondtal-64 koppen"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Tekenreeks %s (met grondtal-64-met-teken) valt buiten bereik voor %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Grondtal-256 waarde in archief valt buiten bereik voor %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Archief bevat %.*s waar numerieke waarde voor %s werd verwacht"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Waarde %s in archief valt buiten bereik voor %s (%s..%s)"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " koppeling naar %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " onbekende bestandssoort %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Lange koppeling--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Lange naam--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Deelkop--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Verder bij byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Aanmaken van map:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Kan werkmap niet achterhalen"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Hernoemen van %s naar %s...\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "Kan %s niet naar %s hernoemen"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Hernoemen van %s terug naar %s...\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "dochterproces"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "interproces-kanaal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Opdracht %s is mislukt"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: bestandenlijst is al gelezen"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Kan tijdsstempel van '%s' niet zetten"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelezen bestandsnaam bevat een NUL-teken"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Bestandsnamen bevatten jokertekens."
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1319,56 +1364,57 @@ msgstr ""
 "Gebruik '--wildcards' om patroonovereenkomsten in te schakelen,\n"
 "of '--no-wildcards' om deze waarschuwing te onderdrukken."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Komt niet voor in archief"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Is vereist maar komt niet voor in archief"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Archieflabel komt niet overeen"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Met '--listed-incremental' is '-C' niet toegestaan binnen een bestandenlijst"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Met '--listed-incremental' is slechts één '-C' toegestaan"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Opties '-%s' en '-%s' willen beide standaardinvoer gebruiken"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Ongeldige archiefindeling"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU-functies gevraagd bij een incompatibele archiefindeling"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Onbekende aanhalingsstijl '%s'.  Probeer '%s --quoting-style=help' voor een "
 "overzicht."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1386,9 +1432,10 @@ msgstr ""
 "  tar -tvf archief.tar         # Alle bestanden in archief.tar opsommen.\n"
 "  tar -xf archief.tar          # Alle bestanden van archief.tar uitpakken.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1407,80 +1454,80 @@ msgstr ""
 "  nil, existing   genummerd als ze al bestaan, anders simpel\n"
 "  never, simple   altijd simpele reservekopieën maken\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Hoofdbewerkingen:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "de inhoud van een archief opsommen"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "bestanden uit een archief uitpakken"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "een nieuw archief aanmaken"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "verschillen tussen archief en bestandssyteem vinden"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "bestanden aan het eind van een archief toevoegen"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 "alleen bestanden toevoegen die nieuwer zijn dan hun versie in het archief"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "tar-bestanden aan een archief toevoegen"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "uit het archief verwijderen (niet gebruiken bij magneetbanden!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "label van archiefdeel controleren en stoppen"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Werkingsaanpassers:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "luchtige bestanden efficiënt verwerken"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "HOOFD[.SUB]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "versie van te gebruiken luchtige indeling (impliceert '--sparse')"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "oude GNU-indeling van incrementeel archief verwerken"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "nieuwe GNU-indeling van incrementeel archief verwerken"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "dump-niveau voor aan te maken incrementeel archief"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "niet afsluiten met een foutcode bij onleesbare bestanden"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1492,128 +1539,139 @@ msgstr ""
 "diff, --extract of --list, en wanneer een lijst van bestanden gegeven is op "
 "de opdrachtregel of via de optie -T; AANTAL is standaard 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "in archief kan worden gesprongen"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "in archief kan niet worden gesprongen"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 "geen apparaatnummers controleren tijdens aanmaken van incrementele archieven"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "apparaatnummers controleren tijdens aanmaken van incrementele archieven "
 "(standaard)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Overschrijvingsopties:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "het archief na het schrijven proberen te verifiëren"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "bestanden na hun toevoeging aan het archief verwijderen"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "bij het uitpakken bestaande bestanden niet vervangen"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "bij het uitpakken bestaande bestanden niet vervangen"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "bestaande bestanden die nieuwer zijn dan die in het archief niet vervangen"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "bestaande bestanden bij het uitpakken overschrijven"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "elk bestand verwijderen alvorens eroverheen uit te pakken"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "bestaande mappen leegmaken alvorens eroverheen uit te pakken"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "metagegevens van bestaande mappen behouden"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "de metagegevens van bestaande mappen bij het uitpakken overschrijven "
 "(standaard)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "bestaande bestanden bij het uitpakken overschrijven"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Selecteren van uitvoerkanaal:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "bestanden uitpakken naar standaarduitvoer"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "OPDRACHT"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "uitgepakte bestanden via pijp naar gegeven programma sluizen"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "afsluitwaardes van dochterprocessen negeren"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 "afsluitwaardes van dochterprocessen die niet nul zijn als fout behandelen"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Behandeling van bestandskenmerken:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "toegevoegde bestanden krijgen NAAM als eigenaar"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "toegevoegde bestanden krijgen NAAM als groep"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATUM-OF-BESTAND"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 "wijzigingstijd zetten van bestanden die wegens DATUM-OF-BESTAND zijn "
 "toegevoegd"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "WIJZIGINGEN"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "toegevoegde bestanden krijgen (symbolische) WIJZIGINGEN in hun modus"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "MANIER"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1623,11 +1681,11 @@ msgstr ""
 "herstellen van de tijdsstempels na het lezen (MANIER='replace'; standaard), "
 "of door de tijdsstempels met rust te laten (MANIER='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "bestandswijzigingstijden niet uitpakken"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1635,19 +1693,19 @@ msgstr ""
 "bestanden proberen uit te pakken met dezelfde eigenaar als in het archief "
 "(standaard voor root)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "bestanden uitpakken als uzelf (standaard voor gewone gebruikers)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "altijd getallen gebruiken voor gebruikers- en groepsnamen"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "bestandspermissies ook uitpakken (standaard voor root)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1655,17 +1713,16 @@ msgstr ""
 "de umask van de gebruiker toepassen bij het uitpakken van bestandspermissies "
 "(standaard voor gewone gebruikers)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
-"uit te pakken namen sorteren zodanig dat ze overeenkomen met de volgorde in "
-"het archief"
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "hetzelfde als -p en -s samen"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1673,139 +1730,180 @@ msgstr ""
 "het zetten van permissies en tijdsstempels van mappen uitstellen tot na het "
 "uitpakken"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "het effect van de optie --delay-directory-restore ongedaan maken"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Behandeling van bestandskenmerken:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Apparaatselectie en -wisseling:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIEF"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "archiefbestand of apparaat ARCHIEF gebruiken"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "archiefbestand is lokaal, zelfs als het een dubbele punt bevat"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "deze OPDRACHT gebruiken in plaats van 'rmt'"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "deze OPDRACHT gebruiken in plaats van 'rsh'"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "schijf en dichtheid opgeven"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "meerdelig archief aanmaken/opsommen/uitpakken"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "band wisselen na schrijven van AANTAL x 1024 bytes"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "script uitvoeren aan einde van elke band (impliceert '-M')"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "het deelnummer in BESTAND gebruiken/bijwerken"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blokverwerking:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKKEN"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOKKEN x 512 bytes per record"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "AANTAL bytes per record (een veelvoud van 512)"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "blokken met nullen in archief negeren (betekenen einde-van-bestand)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "doorgaan met lezen tot blok compleet is (voor 4.2BSD-pijpen)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Archiefindelingskeuze:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "INDELING"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "een archief maken in de gekozen indeling"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "INDELING is een van de volgende:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "oude V7 tar-indeling"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU-indeling van tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU-indeling van tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar-indeling)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax-indeling)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "hetzelfde als pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "hetzelfde als --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "hetzelfde als --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "sleutelwoord[[:]=waarde][,sleutelwoord[[:]=waarde]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "het aangeven van pax-sleutelwoorden"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKST"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1813,78 +1911,78 @@ msgstr ""
 "een archief met deelnaam TEKST maken; bij opsommen/uitpakken TEKST als "
 "zoekpatroon voor de deelnaam gebruiken"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Compressie-opties:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "compressieprogramma afleiden uit bestandsachtervoegsel"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "compressieprogramma niet afleiden uit bestandsachtervoegsel"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROGRAMMA"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "het archief door dit programma filteren (moet '-d' accepteren)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Lokale bestandskeuze:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "het gegeven BESTAND aan het archief toevoegen (handig als de naam begint met "
 "een '-')"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "MAP"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "naar MAP gaan"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "namen van in of uit te pakken bestanden uit BESTAND halen"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "'-T' leest met NUL afgesloten namen, schakelt '-C' uit"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "het resultaat van de vorige '--null'-optie ongedaan maken"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "aanhalingstekens verwijderen rond bestandsnamen gelezen met '-T' (standaard)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "aanhalingstekens niet verwijderen rond bestandsnamen gelezen met '-T'"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATROON"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "bestanden uitsluiten, gegeven als een PATROON"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "uitsluitingspatronen staan opgesomd in BESTAND"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1892,95 +1990,97 @@ msgstr ""
 "inhoud van mappen die CACHEDIR.TAG bevatten uitsluiten, behalve CACHEDIR.TAG "
 "zelf"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "alles onder mappen die CACHEDIR.TAG bevatten uitsluiten"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "mappen die CACHEDIR.TAG bevatten uitsluiten"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "inhoud van mappen die BESTAND bevatten uitsluiten, behalve BESTAND zelf"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "alles onder mappen die BESTAND bevatten uitsluiten"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "mappen die BESTAND bevatten uitsluiten"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "systeemmappen van versiebeheer uitsluiten"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "reservekopieën en vergrendelingsbestanden uitsluiten"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "niet automatisch afdalen in mappen"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "in het lokale bestandssysteem blijven bij maken van archief"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "recursief in mappen afdalen (standaard)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "leidende '/' niet uit bestandsnamen verwijderen"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "symbolische koppelingen volgen; de bestanden waar ze naar verwijzen "
 "archiveren"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "harde koppelingen volgen; de bestanden waar ze naar verwijzen archiveren"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "LIDNAAM"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "beginnen bij lid LIDNAAM in het archief"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "alleen bestanden opslaan die nieuwer zijn dan DATUM-OF-BESTAND"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "datum en tijd alleen vergelijken wanneer gegevens veranderd zijn"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "MANIER"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "voor verwijdering een reservekopie maken, op de aangegeven MANIER"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "TEKENREEKS"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1989,98 +2089,101 @@ msgstr ""
 "(in plaats van '~', die standaard is tenzij door omgevingsvariable "
 "SIMPLE_BACKUP_SUFFIX veranderd)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Bestandsnaam-transformaties:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "dit AANTAL leidende componenten uit bestandsnamen verwijderen"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EXPRESSIE"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 "deze vervangings-EXPRESSIE gebruiken om bestandsnamen met 'sed' te "
 "transformeren"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr "Bestandsnaamselectie-opties (voor zowel in- als uitsluitingspatronen):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "verschil tussen hoofd- en kleine letters negeren"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "patronen komen overeen met begin van bestandsnaam"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "patronen komen overeen met alles na een '/' (is standaard bij uitsluiting)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "hoofdlettergevoelige vergelijking (standaard)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "jokertekens gebruiken (is standaard bij uitsluiting)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "exacte tekenreeksvergelijking"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "jokertekens komen niet overeen met '/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "jokertekens komen overeen met '/' (is standaard bij uitsluiting)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informatieve uitvoer:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "de verwerkte bestanden opsommen"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "SLEUTELWOORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "waarschuwingsbeleid"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "voortgangsberichten tonen voor elk AANTALste record (standaard 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ACTIE"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "bij elk controlepunt deze ACTIE uitvoeren"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "een bericht tonen als niet alle links gearchiveerd werden"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2092,31 +2195,35 @@ msgstr ""
 "ontvangen wordt; mogelijke signalen zijn: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 "
 "en SIGUSR2; de namen zonder het voorvoegsel SIG worden ook geaccepteerd"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "bestandswijzigingstijden in UTC tonen"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "bestandstijden in volledige resolutie tonen"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "gedetailleerde uitvoer naar BESTAND sturen"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "bloknummer binnen archief tonen bij elk bericht"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "bij elke actie om toestemming vragen"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "standaardinstellingen van 'tar' tonen"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2124,33 +2231,33 @@ msgstr ""
 "bij opsommen of uitpakken: elke map opsommen die niet aan zoekcriteria "
 "voldoet"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "bestands- of archiefnamen na transformatie tonen"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STIJL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "aanhalingsstijl voor namen instellen (zie verderop voor geldige waarden van "
 "STIJL)"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "ook de tekens in TEKENREEKS aanhalen"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "de tekens in TEKENREEKS niet aanhalen"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Compatibiliteitsopties:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2158,63 +2265,56 @@ msgstr ""
 "bij aanmaken hetzelfde als --old-archive; bij uitpakken hetzelfde als --no-"
 "same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Andere opties:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 "het gebruik van potentieel gevaarlijke opties of opdrachten uitschakelen"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Slechts één van de opties '-Acdtrux' of '--test-label' is mogelijk"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Conflicterende compressie-opties"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Onbekende signaalnaam: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Voorbeeldbestand voor tijdsstempel niet gevonden"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Onbekende datumopmaak %2$s wordt vervangen door %1$s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Optie %s: datum '%s' wordt begrepen als %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: bestandenlijst is al gelezen"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: gelezen bestandsnaam bevat een NUL-teken"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "het archief door '%s' filteren"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Geldige argumenten van de optie '--quoting-style' zijn:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2222,51 +2322,48 @@ msgstr ""
 "\n"
 "*Deze* tar gebruikt de volgende standaardwaarden:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ongeldige eigenaar"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Ongeldige blokkenfactor"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Ongeldige bandlengte"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Onjuiste waarde van incrementeel niveau"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Meerdere drempeldata"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Ongeldig versienummer voor luchtige indeling"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' is op dit platform niet mogelijk"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "Waarde van '--checkpoint' is geen geheel getal"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Ongeldige groep"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Ongeldige modus gegeven bij optie"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Ongeldig nummer"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Ongeldige eigenaar"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2274,121 +2371,151 @@ msgstr ""
 "De optie '--preserve' is vervallen; gebruik nu '--preserve-permissions --"
 "preserve-order'."
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Ongeldige recordgrootte"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Recordgrootte moet een veelvoud zijn van %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Ongeldig aantal elementen"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Slechts één optie '--to-command' is toegestaan"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Ongeldig dichtheidsargument: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Onbekende dichtheid: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opties '-[0-7][lmh]' worden niet ondersteund door *deze* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[BESTAND]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Oude optie '%c' vereist een argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "Optie '--occurrence' betekent niets zonder een bestandenlijst"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 "Optie '--occurrence' kan niet worden gebruikt in de gevraagde werkingsmodus"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Voor meerdere archiefbestanden is de optie '-M' vereist"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Opties '--listed-incremental' en '--newer' gaan niet samen"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Optie '--level' is betekenisloos zonder '--listed-incremental'"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Deellabel is te lang (grens is %lu byte)"
 msgstr[1] "%s: Deellabel is te lang (grens is %lu bytes)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Kan meerdelige archieven niet verifiëren"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Kan ingepakte archieven niet verifiëren"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Patroon %s kan niet worden gebruikt"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Kan geen meerdelige ingepakte archieven verwerken"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Kan ingepakte archieven niet samenvoegen"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Patroon %s kan niet worden gebruikt"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Deellengte kan niet kleiner zijn dan de recordgrootte"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "Opties '--preserve-order' en '--listed-incremental' gaan niet samen"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Een geheel leeg archief wordt niet aangemaakt"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Opties '-Aru' gaan niet samen met '-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "U dient een van de opties '-Acdtrux' of '--test-label' op te geven"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Gestopt in fouttoestand vanwege eerdere fouten"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2400,51 +2527,47 @@ msgstr[1] "%s: Bestand is gekrompen met %s bytes"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Sleutelwoord %s is onbekend of nog niet geïmplementeerd"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Tijdsstempel valt buiten toegestaan bereik"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Patroon %s kan niet worden gebruikt"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Sleutelwoord %s kan niet worden overstegen"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Onjuiste uitgebreide kop: ontbrekende lengte"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Lengte van uitgebreide kop valt buiten bereik"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Lengte %*s van uitgebreide kop valt buiten bereik"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Onjuiste uitgebreide kop: ontbrekende witruimte na de lengte"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Onjuiste uitgebreide kop: ontbrekend isgelijkteken"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Onjuiste uitgebreide kop: ontbrekend regeleinde"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Genegeerd: onbekend sleutelwoord '%s' in uitgebreide kop"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2453,64 +2576,64 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 "Waarde %2$s in uitgebreide kop valt buiten bereik voor %1$s (%3$s..%4$s)"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Onjuiste uitgebreide kop: ongeldige %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Onjuiste uitgebreide kop: overtollige %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Onjuiste uitgebreide kop: ongeldige %s: onverwacht scheidingsteken %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Onjuiste uitgebreide kop: ongeldige %s: oneven aantal waarden"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: ongeldige tijdswaarde"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: onbekende actie voor controlepunt"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "schrijven"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "lezen"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Schrijfcontrolepunt %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Leescontrolepunt %u"
@@ -2661,7 +2784,7 @@ msgstr "Getal valt buiten toegestaan bereik: %s"
 msgid "Negative size: %s"
 msgstr "Negatieve grootte: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "Kan status van %s niet bepalen"
@@ -2690,8 +2813,8 @@ msgstr "Onbekende datumopmaak"
 msgid "[ARGS...]"
 msgstr "[ARGUMENTEN]..."
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "Kan '%s' niet openen"
@@ -2705,68 +2828,101 @@ msgstr "Kan niet springen"
 msgid "file name contains null character"
 msgstr "Bestandsnaam bevat een NUL-teken"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "Kan geen luchtige bestanden genereren op standaarduitvoer; gebruik de optie "
 "'--file'"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "Onjuist masker (nabij '%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Onbekend veld '%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "Kan tijdsstempel van '%s' niet zetten"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Kan '%s' niet verwijderen"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Opdracht %s is mislukt"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "Kan '%s' niet verwijderen"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Opdracht is succesvol afgesloten\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Opdracht is mislukt met afsluitwaarde %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Opdracht is afgebroken door signaal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Opdracht is gestopt door signaal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Opdracht resulteerde in een core-dump\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Opdracht is afgebroken\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "Optie '--stat' vereist bestandsnamen"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Kan werkmap niet achterhalen"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr ""
+#~ "uit te pakken namen sorteren zodanig dat ze overeenkomen met de volgorde "
+#~ "in het archief"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Veld is te lang, tijdens lezen van snapshot-bestand"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Leesfout tijdens lezen van snapshot-bestand"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Onverwachte veldwaarde in snapshot-bestand"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Lengte van uitgebreide kop valt buiten bereik"
+
+#~ msgid "Invalid group"
+#~ msgstr "Ongeldige groep"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Map werd verwijderd voordat deze gelezen kon worden"
 
index dd98b294ad2da252ecf6e029283ac675bbb2a633..4afec5462f069fb15a8a3c5abebc126f7192ab46 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index 423a2ef107d57dafc448dcced5be3a11ee6be50d..925bc27a2bbcc94a1844d1e1b2780a3f27637a43 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,15 +1,15 @@
 # Polish translation of GNU tar
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
-# Rafał Maszkowski <rzm@icm.edu.pl>, 1996, 1997, 2000, 2001, 2003, 2004, 2006-2010.   „”
-# Thanks to Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008, 2010
-#: src/create.c:1552
+# Rafał Maszkowski <rzm@icm.edu.pl>, 1996, 1997, 2000, 2001, 2003, 2004, 2006-2011.   „”
+# Thanks to Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008, 2010.
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.24\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-10-25 23:10+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-12 18:25+0100\n"
 "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -30,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "niejednoznaczny argument %s opcji %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Prawidłowe argumenty to:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: wartość %s jest mniejsza lub równa %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Parametr ARGP_HELP_FMT wymaga podania wartości"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Parametr ARGP_HELP_FMT musi być dodatni"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Śmieci w ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -67,29 +66,29 @@ msgstr ""
 "Argumenty obowiązkowe lub opcjonalne dla opcji długich są również "
 "obowiązkowe lub opcjonalne również dla odpowiadających im opcji krótkich."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Składnia:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  albo: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr "[OPCJE...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Użyj `%s --help' albo `%s --usage' żeby otrzymać więcej informacji\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Raporty o błędach należy wysyłać do %s .\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Nieznany błąd systemu"
 
@@ -101,7 +100,7 @@ msgstr "wyświetlenie tego opisu"
 msgid "give a short usage message"
 msgstr "krótka informacja o opcjach"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAZWA"
@@ -122,17 +121,16 @@ msgstr "poczekaj SEK sekund (domyślnie 3600)"
 msgid "print program version"
 msgstr "informacja o wersji programu"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Za dużo argumentów\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(BŁĄD PROGRAMU) Opcja powinna była być rozpoznana!?"
 
@@ -140,62 +138,62 @@ msgstr "(BŁĄD PROGRAMU) Opcja powinna była być rozpoznana!?"
 msgid "write error"
 msgstr "błąd zapisu"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opcja '%s' jest niejednoznaczna\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opcja '--%s' nie może mieć argumentu\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opcja '%c%s' nie może mieć argumentu\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opcja '--%s' wymaga argumentu\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: nierozpoznana opcja '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: nierozpoznana opcja '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: błędna opcja -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opcja wymaga argumentu -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opcja '-W %s' nie może mieć argumentu\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opcja '-W %s' wymaga argumentu\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "brak pamięci"
 
@@ -211,28 +209,30 @@ msgstr "nie udało się powrócić do początkowego katalogu bieżącego"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -242,7 +242,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yYtT]"
 
@@ -252,7 +252,7 @@ msgstr "^[yYtT]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -543,7 +543,12 @@ msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 "Nie można połączyć się z %s: nie udało się przetłumaczyć nazwy na adres"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Nie można uruchomić zdalnego shella"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Nie można uruchomić zdalnego shella"
@@ -593,8 +598,8 @@ msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 "Posługiwanie się napędem taśmowym, przyjmowanie poleceń od zdalnego procesu"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "LICZBA"
 
@@ -602,8 +607,8 @@ msgstr "LICZBA"
 msgid "set debug level"
 msgstr "ustawienie poziomu wypisywania informacji diagnostycznych"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -618,7 +623,7 @@ msgstr "plik do zapisywania informacji diagnostycznych"
 msgid "cannot open %s"
 msgstr "nie można otworzyć %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "za dużo argumentów"
@@ -627,9 +632,9 @@ msgstr "za dużo argumentów"
 msgid "Garbage command"
 msgstr "Bezsensowna komenda"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "To nie wygląda jak archiwum tar"
 
@@ -667,19 +672,19 @@ msgstr "Nie można zweryfikować archiwum z/do stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "Archiwum jest skompresowane. Należy użyć opcji %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Nie można uaktualnić archiwum skompresowanego"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Na początku taśmy, teraz kończę"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Za dużo błędów, kończę"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -687,7 +692,7 @@ msgstr[0] "Rozmiar rekordu = %lu blok"
 msgstr[1] "Rozmiar rekordu = %lu bloki"
 msgstr[2] "Rozmiar rekordu = %lu bloków"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -695,38 +700,38 @@ msgstr[0] "Nierówny blok (%lu bajt) w archiwum"
 msgstr[1] "Nierówny blok (%lu bajty) w archiwum"
 msgstr[2] "Nierówny blok (%lu bajtów) w archiwum"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Nie można się cofnąć w pliku archiwum; może nie być czytelny bez -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek nie zatrzymał się na granicy rekordów"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: zawiera błędny numer części"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Przepełnienie numeru części"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Przygotuj część numer %d dla %s i naciśnij return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF kiedy była oczekiwana odpowiedź użytkownika"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "UWAGA: Archiwum jest niekompletne"
 
 # rare case when `for parts' translates into `części' for both sing. and plural in Polish - rzm
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -737,68 +742,68 @@ msgstr ""
 " q             Zakończenie programu tar\n"
 " y albo Enter  Kontynuacja\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Uruchomienie powłoki\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Wypisanie tej listy\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Brak nowej części; zakończenie pracy.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Brak nazwy pliku. Spróbuj jeszcze raz.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 "Błędne dane wejściowe. Wciśnij ? żeby przeczytać informacje pomocnicze\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s polecenie zwróciło błąd"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s prawdopodobnie jest kontynuowany w tej części: nagłówek zawiera skróconą "
 "nazwę"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s nie jest kontynuowany w tej części"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s to zły rozmiar (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Ta część nie jest w kolejności (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Etykieta archiwum nie pasuje do %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Część %s nie pasuje do %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -806,11 +811,11 @@ msgstr ""
 "%s: nazwa pliku jest za długa do zapisania w nagłówku wieloczęściowego "
 "archiwum GNU, zostanie skrócona"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "zapis nie zakończył się na granicy bloków"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -818,76 +823,75 @@ msgstr[0] "Można było przeczytać tylko %lu z %lu bajtu"
 msgstr[1] "Można było przeczytać tylko %lu z %lu bajtów"
 msgstr[2] "Można było przeczytać tylko %lu z %lu bajtów"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Zawartości się różnią"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Nieoczekiwany EOF w archiwum"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Różne typy plików"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Uprawnienia się różnią"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid się różni"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid się różni"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Czas modyfikacji się różni"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Rozmiar się różni"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Nie dołączony do %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Łącze symboliczne się różni"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Różnią się numery urządzeń"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Sprawdzanie "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Nieznany typ pliku `%c' porównywany jako zwykły plik"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Archiwum zawiera nazwy plików bez początkowych elementów ścieżek."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Archiwum zawiera przestarzałe nagłówki base64"
+msgstr "Archiwum zawiera zmienione nazwy plików."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Podczas weryfikacji mogą nie być znalezione pliki lokalne"
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -895,48 +899,48 @@ msgstr[0] "BŁĄD WERYFIKACJI: wykryto %d błędny nagłówek"
 msgstr[1] "BŁĄD WERYFIKACJI: wykryto %d błędne nagłówki"
 msgstr[2] "BŁĄD WERYFIKACJI: wykryto %d błędnych nagłówków"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Samotny blok zerowy przy %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: zawiera znacznik katalogu pamięci podręcznej %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "wartość %s z %s poza zakresem %s..%s; podstawione %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "wartość %s z %s poza zakresem %s..%s"
 
 # hm? - rzm
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Tworzenie ujemnych nagłówków ósemkowych"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: nazwa pliku jest za długa (powyżej %d); nie została zapisana"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 "%s: nazwa pliku jest za długa (nie może być podzielona); nie została zapisana"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: nazwa łącza jest za długa; nie została zapisana"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -944,268 +948,293 @@ msgstr[0] "%s: Plik skurczył się o %s bajt; jest dopełniany zerami"
 msgstr[1] "%s: Plik skurczył się o %s bajty; jest dopełniany zerami"
 msgstr[2] "%s: Plik skurczył się o %s bajtów; jest dopełniany zerami"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: plik w innym systemie plików; nie został zapisany"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "zawartość nie została zapisana"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Nieznany typ pliku; plik zignorowany"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Brakujące łącza do %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: plik jest niezmieniony; nie został zapisany"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: plik jest w tym archiwum; nie został zapisany"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "katalog nie został zapisany"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: plik zmienił się w trakcie czytania"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: zignorowane gniazdo z nazwą"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: zignorowany plik door"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Przeskoczenie do następnego nagłówka"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Kasowanie z archiwum nie-nagłówka"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: niemożliwie stara data %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: znacznik czasowy %s jest przesunięty o %s s w przyszłość"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Nieoczekiwana niespójność przy zakładaniu katalogu"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Katalog zmienił nazwę zanim można było odtworzyć jego status"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Odtwarzanie plików ciągłych (nie sparse) jako zwykłych"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Próba odtworzenia łącza symbolicznego jako zwykłego"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Nie można odtworzyć -- plik jest kontynuowany z innej części"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Niespodziewany nagłówek z długą nazwą"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Nieznany typ pliku `%c', odtworzony jako plik zwykły"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Aktualny %s jest nowszy albo w tym samym wieku"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Nie można było zrobić kopii zapasowej tego pliku"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Nie można przemianować %s na %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Nazwa katalogu została zmieniona z %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Nazwa katalogu została zmieniona"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Katalog jest nowy"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: plik w innym systemie plików; nie został zapisany"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Nazwa katalogu została zmieniona"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Błędny czas pliku"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Błędny czas modyfikacji (sekundy)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Błędny czas modyfikacji (nanosekundy)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Błędny numer urządzenia"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Błędny numer inodu"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Za długie pole w pliku migawkowym"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Błąd czytania pliku migawkowego"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Nieoczekiwany EOF w pliku migawkowym"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Nieoczekiwana wartość pola w pliku migawkowym"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Brakujące zakończenie rekordu"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Zły format pliku przyrostowego"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Nie obsługiwana wersja formatu przyrostowego: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Zły format katalogu zrzutów: powtórzone 'X'"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Zły format katalogu zrzutów: pusta nazwa w 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Zły format katalogu zrzutów: 'T' nie jest poprzedzone przez 'R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Zły format katalogu zrzutów: pusta nazwa w 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono koniec danych"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Zły format katalogu zrzutów: nigdy nie użyte 'X'"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Nie można utworzyć katalogu tymczasowego przy użyciu wzorca %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Bez skasowania katalogu: nie można odczytać stanu"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: katalog na innym urządzeniu: bez skasowania"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Usunięcie %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Nie można usunąć"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Pominięty"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok zer **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok: %s: ** Koniec pliku **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Odstępy w nagłówku zamiast spodziewanej wartości numerycznej %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1213,108 +1242,124 @@ msgstr ""
 "jak uzupełnienie dwójkowe"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Wartość ósemkowa %.*s w archiwum jest spoza zakresu %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Archiwum zawiera przestarzałe nagłówki base64"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "W archiwum jest łańcuch base64 %s spoza zakresu %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Wartość base256 w archiwum jest spoza zakresu %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Archiwum zawiera %.*s tam gdzie oczekiwana była liczba %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Wartość %s w archiwum jest spoza zakresu %s %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " łącze do %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " nieznany typ pliku %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Długie łącze--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Długa nazwa--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Nagłówek części--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Kontynuacja od bajtu %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Tworzony jest katalog:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Nie można odczytać bieżącego katalogu"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Nazwa %s zmieniona na %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Nie można przemianować na %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Nazwa zmieniona z %s z powrotem na %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Plik usunięty zanim został przeczytany"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proces potomny"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "kanał między procesami"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s polecenie zwróciło błąd"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: lista plików już przeczytana"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "nie można ustawić czasu na `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: przeczytana nazwa pliku zawiera znak NUL"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "W nazwach plików użyto znaków dopasowania wzorców"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1322,57 +1367,58 @@ msgstr ""
 "Użyj --wildcards aby włączyć porównywanie wzorców albo --no-wildcards żeby "
 "wyłączyć to ostrzeżenie"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Nie znalazłem w archiwum"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Brak podanego wystąpienia pliku w archiwum"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Nie pasująca etykieta archiwum"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Nie jest dozwolone używanie opcji -C wewnątrz listy plików razem z --listed-"
 "incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Z --listed-incremental można użyć tylko jednej opcji -C"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Opcje `-%s' i `-%s' obie chcą dostępu do standardowego wejścia"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Błędny format archiwum"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Próba użycia rozszerzeń GNU z niekompatybilnym formatem archiwum"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Nieznany styl cytowania `%s'. Użyj `%s --quoting-style=help' żeby zobaczyć "
 "listę."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1389,9 +1435,10 @@ msgstr ""
 "tar.\n"
 "  tar -xf archive.tar          # rozpakowanie plików z archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1412,79 +1459,79 @@ msgstr ""
 "proste\n"
 "  never, simple   proste kopie zapasowe\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Podstawowe tryby działania:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "wypisanie zawartości archiwum"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "rozpakowanie plików z archiwum"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "utworzenie nowego archiwum"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "sprawdzenie różnic między archiwum i plikami na dysku"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "dołączenie plików na końcu archiwum"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "dołączenie tylko plików nowszych niż kopie w archiwum"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "dołączenie plików tar do archiwum"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "skasowanie plików z archiwum (nie na taśmie!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "przetestowanie etykiety archiwum i wyjście"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modyfikatory działania:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "efektywne przetwarzanie plików rzadkich"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "ustawienie wersji używanego formatu plików rzadkich (włącza --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "backup przyrostowy w starym formacie GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "backup przyrostowy w nowym formacie GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "numer poziomu tworzonej albo oglądanej przyrostowej kopii zapasowej"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "bez zakończenia błędem jeżeli niedostępne pliki"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1496,124 +1543,135 @@ msgstr ""
 "plików jest podana w linii poleceń albo przez opcję -T. LICZBA domyślnie "
 "wynosi 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "archiwum o swobodnym dostępie"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "archiwum bez swobodnego dostępu"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "bez sprawdzania numerów urządzeń przy tworzeniu archiwów przyrostowych"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "ze sprawdzaniem numerów urządzeń przy tworzeniu archiwów przyrostowych"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Sterowanie zamazywaniem"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "próba weryfikacji archiwum po zapisaniu"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "usunięcie plików po dodaniu do archiwum"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "bez zamazania istniejących plików rozpakowanymi"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "bez zamazania istniejących plików rozpakowanymi"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "bez zastępowania istniejących plików, które są nowsze niż ich kopie w "
 "archiwum"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "nadpisywanie istniejących plików"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "usunięcie każdego pliku przed zamazaniem go rozpakowanym plikiem"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "opróżnianie starych katalogów przed rozpakowaniem kopii z archiwum"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "zachowanie metadanych istniejących katalogów"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "nadpisywanie metadanych istniejących katalogów przy rozpakowywaniu "
 "(domyslnie)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "nadpisywanie istniejących plików"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Wybór strumienia wyjściowego"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "rozpakowanie plików na standardowe wyjście"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "POLECENIE"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "przekazanie rozpakowywanych plików do innego programu"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "zignorowanie kodów wyjścia procesów potomnych"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 "traktowanie niezerowych kodów wyjściowych procesów potomnych jako błędu"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Przetwarzanie atrybutów plików:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "nadanie właściciela NAZWA dodanym plikom"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "nadanie grupy NAZWA dodanym plikom"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATA_ALBO_PLIK"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "ustawianie czasu modyfikacji dodanych plików z DATA_ALBO_PLIK"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ZMIANY"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "ZMIANA uprawnień dodanych plików (podanych symbolicznie)"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODA"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1623,11 +1681,11 @@ msgstr ""
 "czytaniu (METODA='replace'; domyślnie) albo przez nieustawianie czasu "
 "(METODA='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "bez odtworzenia czasu modyfikacji rozpakowanego pliku"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1635,22 +1693,22 @@ msgstr ""
 "staranie się o odtworzenie właścicieli plików według zapisu w archiwum "
 "(domyślnie dla superusera)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "rozpakowanie plików jako własności rozpakowującego (domyślnie dla zwykłych "
 "użytkowników)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "używanie numerów, nie nazw użytkowników/grup"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "odtworzenie informacji o uprawnieniach plików (domyślnie dla superusera)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1658,15 +1716,16 @@ msgstr ""
 "użycie umask użytkownika przy odtwarzaniu uprawnień z archiwum (domyślnie "
 "dla zwykłych użytkowników)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "pliki do rozpakowania posortowane jak w archiwum"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "to samo co równocześnie -p i -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1674,139 +1733,180 @@ msgstr ""
 "ustawianie czasów zmian i uprawnień odtworzonych katalogów opóźnione do "
 "końca rozpakowywania"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "wyłączenie efektu opcji --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Przetwarzanie atrybutów plików:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Wybór i przełączanie urządzeń:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIWUM"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "użycie pliku lub urządzenia ARCHIWUM"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "plik archiwum lokalny, nawet jeżeli ma dwukropek"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "użyj POLECENIA zamiast /etc/rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "użyj POLECENIA zamiast rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "podanie napędu i gęstości"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "tworzenie/wypisanie/rozpakowanie archiwum wieloczęściowego"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "zmiana taśmy po zapisaniu LICZBA x 1024 bajtów"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "uruchomienie skryptu na końcu taśmy (włącza -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "użycie/uaktualnienie numeru części w PLIKU"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Parametry bloków:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOKI x 512 bajtów na rekord"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "LICZBA bajtów w rekordzie, wielokrotność 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignorowanie wyzerowanych bloków w archiwum (oznacza EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "podzielenie na bloki przy odczycie (dla pipe 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Wybór formatu archiwum:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "utworzenie archiwum w danym formacie."
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT może być jednym z następujących:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "stary format tara z V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "format GNU dla tara <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "format tara GNU 1.13"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "format POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "format POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "to samo co pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "to samo co --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "to samo co --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "słowo_kluczowe[[:]=wartość][,słowo_kluczowe[[:]=wartość]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "ustawianie słów kluczowych formatu pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEKST"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1814,80 +1914,80 @@ msgstr ""
 "utworzenie archiwum z nazwą wolumenu TEKST. Przy wypisywaniu/rozpakowaniu "
 "TEKST będzie użyty jako wzorzec dopasowania dla nazwy"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Opcje kompresji"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "użycie przyrostka nazwy archiwum do ustalenia programu kompresującego"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 "bez używania przyrostka nazwy archiwum do wyznaczenia programu kompresującego"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROGRAM"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtrowanie przez PROGRAM (akceptujący -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Wybór plików lokalnych:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "dodanie podanego PLIKU do archiwum (przydatne jeżeli jego nazwa startuje od "
 "myślnika)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "KATALOG"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "przejście do KATALOGU"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "nazwy plików do rozpakowania lub spakowania z PLIKU"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T czyta nazwy zakończone zerem, wyłącz -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "wyłączenie efektu użycia opcji --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 "usunięcie znaków cytowania z nazw plików czytanych poprzez opcję -T "
 "(domyślnie)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "bez usuwania znaków cytowania z nazw plików czytanych poprzez opcję -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "WZORZEC"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "wykluczenie nazw pasujących do WZORCA"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "wykluczenie nazw pasujących do wzorców w PLIKU"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1895,91 +1995,93 @@ msgstr ""
 "wykluczenie katalogów zawierających znacznik pamięci podręcznej CACHEDIR."
 "TAG, oprócz samych plików znacznika"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG i ich podkatalogów"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "wykluczenie katalogów zawierających PLIK, ale nie samego PLIKU"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "wykluczenie katalogów zawierających PLIK i ich podkatalogów"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "wykluczenie katalogów zawierających PLIK"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "wykluczenie katalogów systemu administrowania wersjami"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "wykluczenie plików kopii zapasowych i rezerwacji zasobów"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "bez automatycznego zagłębiania się w katalogi"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "pozostanie w jednym systemie plików"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "zagłębianie się w podkatalogi (domyślnie)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "bez usuwania początkowego `/' z nazw plików"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "archiwizacja plików, na które wskazują łącza symboliczne"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "archiwizacja plików, na które wskazują łącza zwykłe"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NAZWA-PLIKU"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "zaczęcie od pliku NAZWA-PLIKU w archiwum"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "zapisanie tylko plików nowszych niż DATA albo data PLIKU"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "porównywanie daty i czasu tylko dla zmienionych danych"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "TRYB"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "kopia zapasowa przed usunięciem, wybranie TRYBU zarządzania wersjami"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "NAPIS"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1987,100 +2089,103 @@ msgstr ""
 "kopia zapasowa przed usunięciem, zmiana domyślnego przyrostka ('~', jeżeli "
 "nie zmieniony przez zmienną środowiska SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Zmiany nazwy plików:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "ucięcie przed rozpakowaniem LICZBY początkowych elementów ścieżki z nazw "
 "plików"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "WYRAŻENIE"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "użycie WYRAŻENIA zamiany sed-a do przekształcenia nazw plików"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Opcje filtracji nazw plików (dotyczą zarówno wzorców wykluczania jak "
 "włączania):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "traktowanie tak samo małych i wielkich liter"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "nazwy porównywane od początków nazw plików"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "wzorce odnoszą się do nazw po każdym / (domyślnie)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "odróżnianie małych i wielkich liter (domyślnie)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "używanie wildcards (domyślnie dla wykluczania)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "dosłowne porównywanie napisów"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "wildcards nie są porównywane z `/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "wildcards są porównywane z '/' (domyślnie dla wykluczania)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informacje:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "wypisywanie szczegółów o przetwarzanych plikach"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "SŁOWO KLUCZOWE"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "sterowanie ostrzeżeniami"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "wypisywanie co ILE rekordów informacji o przetwarzaniu (domyslnie co 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "AKCJA"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "wykonanie AKCJI przy każdym punkcie kontrolnym"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "wypisanie komunikatu jeżeli nie wszytkie łącza zostały zapisane"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SYGNAŁ"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2092,31 +2197,35 @@ msgstr ""
 "sygnały: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; nazwy bez prefiksu SIG "
 "są też akceptowane"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "wypisanie czasów modyfikacji plików w UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "wypisanie czasu pliku z pełną dokładnością"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "zapisanie dokładnych informacji w PLIKU"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "pokazanie przy każdym komunikacie numeru bloku w archiwum"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "proszenie o potwierdzenie każdego działania"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "wypisanie domyślnych ustawień tar-a"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2124,33 +2233,33 @@ msgstr ""
 "wypisywanie każdego katalogu nie pasującego do kryteriów szukania przy "
 "wypisywaniu albo rozpakowywaniu archiwum"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "pokazanie nazw plików albo archiwów po przeszktałceniu"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STYL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "ustawienie stylu ujmowania nazw w cudzysłowy; poniżej dozwolone wartości "
 "STYLU"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "dodatkowe ujmowanie w znaki cytowania znaków z ŁAŃCUCHA"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "wyłączenie ujmowania w znaki cytowania znaków z ŁAŃCUCHA"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Opcje kompatybilności:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2158,63 +2267,56 @@ msgstr ""
 "przy tworzeniu: to samo co --old-archive przy odtwarzaniu: to co --no-same-"
 "owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Inne opcje:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "wyłączenie używania potencjalnie szkodliwych opcji"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Nie można podać więcej niż jednej opcji z `-Acdtrux' albo `--test-label'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Niezgodne opcje kompresji"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Nieznana nazwa sygnału: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Nie znaleziono pliku z datą"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Postawienie %s w miejscu nieznanego formatu daty %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Opcja %s: Potraktowanie daty `%s' jako %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: lista plików już przeczytana"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: przeczytana nazwa pliku zawiera znak NUL"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtrowanie archiwum przez %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Prawidłowe argumenty dla opcji --quoting-style:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2222,51 +2324,48 @@ msgstr ""
 "\n"
 "*Ten* tar ma domyślne parametry:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Błędny właściciel"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Błędny współczynnik łączenia w bloki"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Błędna długość taśmy"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Błędny numer poziomu przyrostowej kopii zapasowej"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Więcej niż jedna data graniczna"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Błędna wartość wersji plików rzadkich"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "ten system nie pozwala na użycie --atime-preserve='system'"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "wartość --checkpoint nie jest liczbą całkowitą"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Błędna grupa"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Błędne uprawnienia podane w opcji"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Błędny numer"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Błędny właściciel"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2274,68 +2373,70 @@ msgstr ""
 "Opcja --preserve jest przestarzała, zamiast niej użyj --preserve-permissions "
 "--preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Błędna wielkość rekordu"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Rozmiar rekordu musi być wielokrotnością %d"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Błędna ilość elementów"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Wolno użyć tylko jednej opcji polecenia --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Błędna specyfikacja gęstości: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Nieznana gęstość: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opcje `-[0-7][lmh]' nie są używane w *tym* tarze"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[PLIK]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Stara opcja `%c' wymaga argumentu."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence nie ma znaczenia bez listy plików"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence nie może być użyte w tym trybie"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Archiwum składające się z wielu plików wymaga opcji `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Nie można połączyć --listed-incremental z --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "opcja --level nic nie znaczy bez użycia --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2343,52 +2444,80 @@ msgstr[0] "%s: Za długa etykieta części (może mieć do %lu bajtu)"
 msgstr[1] "%s: Za długa etykieta części (może mieć do %lu bajtów)"
 msgstr[2] "%s: Za długa etykieta części (może mieć do %lu bajtów)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Nie można zweryfikować archiwum wieloczęściowego"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Nie można zweryfikować archiwum skompresowanego"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Nie może być użyty wzorzec %s"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Nie można używać wieloczęściowego archiwum skompresowanego"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Nie można połączyć skompresowanych archiwów"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option może być użyta tylko przy archiwach POSIX-owych"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option może być użyta tylko przy archiwach POSIX-owych"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option może być użyta tylko przy archiwach POSIX-owych"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option może być użyta tylko przy archiwach POSIX-owych"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Nie może być użyty wzorzec %s"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Długość części nie może być mniejsza od wielkości rekordu"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "opcja --preserve-order nie może być używana z --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Tchórzliwie odmawiam utworzenia pustego archiwum"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Opcje `-Aru' są niekompatybilne z `-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Musisz podać jedną z opcji `-Acdtrux' albo `--test-label'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Zakończenie w stanie błędu z powodu uprzednich błędów"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2401,51 +2530,47 @@ msgstr[2] "%s: Plik skurczył się o %s bajtów"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Słowo kluczowe %s jest nieznane albo jeszcze nie zaimplementowane"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Czas spoza dozwolonego zakresu"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Nie może być użyty wzorzec %s"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Słowo kluczowe %s nie może być zastąpione"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Błędny nagłówek rozszerzony: brakuje długości"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Długość nagłówka rozszerzonego jest poza dozwolonym zakresem"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Długośc nagłówka rozszerzonego %*s jest poza zakresem"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Błędny nagłówek rozszerzony: brakuje odstępu po długości"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Błędny nagłówek rozszerzony: brakuje znaku równości"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Błędny nagłówek rozszerzony: brakuje znaku mowej linii"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Zignorowane nieznane słowo kluczowe nagłówka rozszerzonego `%s'"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2454,63 +2579,63 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Nagłówek rozszerzony - %s=%s jest poza zakresem %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Błędny nagłówek rozszerzony: błędny %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Błędny nagłówek rozszerzony: nadmiarowe %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Błędny nagłówek rozszerzony: błędny %s: niespodziewany ogranicznik %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Błędny nagłówek rozszerzony: błędny %s: nieparzysta liczba wartości"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: błędna specyfikacja ograniczenia czasu"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: nieznana akcja przy punkcie kontrolnym"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "zapis"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "odczyt"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Punkt kontrolny zapisu %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Punkt kontrolny czytania %u"
@@ -2655,7 +2780,7 @@ msgstr "Liczba spoza dozwolonego zakresu: %s"
 msgid "Negative size: %s"
 msgstr "Ujemny rozmiar: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "błąd stat(%s)"
@@ -2684,8 +2809,8 @@ msgstr "Nieznany format daty"
 msgid "[ARGS...]"
 msgstr "[ARGUMENTY...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "nie można otworzyć `%s'"
@@ -2699,66 +2824,94 @@ msgstr "nie można ustawić pozycji"
 msgid "file name contains null character"
 msgstr "nazwa pliku zawiera znak NUL"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "nie można utworzyć pliku rzadkiego na standardowym wyjściu, użyj opcji --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "nieprawidłowa maska (koło `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr " Nieznane pole `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "nie można ustawić czasu na `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "nie można usunąć `%s'"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s polecenie zwróciło błąd"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "nie można usunąć `%s'"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Polecenie zakończyło się poprawnie\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Polecenie zakończyło się niepoprawnie z kodem %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Polecenie zostało zakończone sygnałem %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Polecenie zostało zatrzymane sygnałem %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Został zapisany obraz pamięci (core dump) polecenia\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Polecenie zakończone\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat wymaga podania nazwy pliku"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Katalog usunięty zanim został przeczytany"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Nie można odczytać bieżącego katalogu"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "pliki do rozpakowania posortowane jak w archiwum"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Za długie pole w pliku migawkowym"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Błąd czytania pliku migawkowego"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Nieoczekiwana wartość pola w pliku migawkowym"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Długość nagłówka rozszerzonego jest poza dozwolonym zakresem"
+
+#~ msgid "Invalid group"
+#~ msgstr "Błędna grupa"
index 4d5052fe4f0ed5ab73705f0f29c7fd42b7f4f8ff..06fb21811a31e9dafeb63d689515892bf036324e 100644 (file)
Binary files a/po/pt.gmo and b/po/pt.gmo differ
index 3efe6d03a536431aed44193d5caf69bded76a91f..464c2a580b56f10bcfb46ffdbb7387f6965eb268 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -2,12 +2,12 @@
 # Copyright (1995) Free Software Foundation, Inc.
 # António José Coutinho <ajc@di.uminho.pt>
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.11.9\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 1996-04-20 21:50\n"
 "Last-Translator: António José Coutinho <ajc@di.uminho.pt>\n"
 "Language-Team: Portuguese <pt@li.org>\n"
@@ -27,36 +27,35 @@ msgid "ambiguous argument %s for %s"
 msgstr ""
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr ""
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 #, fuzzy
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
@@ -65,32 +64,32 @@ msgstr ""
 "Os argumentos obrigatórios ou opcionais para as opções longas também\n"
 "são obrigatórios ou opcionais para as correspondentes opções curtas.\n"
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Forma de usar: %s [OPÇÃO]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Para mais informação, tente \"%s --help\".\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Erro desconhecido, do sistema"
 
@@ -102,7 +101,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -123,17 +122,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr ""
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -142,62 +140,62 @@ msgstr ""
 msgid "write error"
 msgstr "Escreve-se registo\n"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "Valor inválido para tamanho de registo (record_size)"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr ""
 
@@ -213,28 +211,30 @@ msgstr ""
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr ""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr ""
 
@@ -244,7 +244,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -254,7 +254,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -521,7 +521,12 @@ msgstr ""
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Não se consegue executar uma \"shell\" remota"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Não se consegue executar uma \"shell\" remota"
@@ -574,8 +579,8 @@ msgstr "Fim de ficheiro inesperado nos nomes truncados"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -583,8 +588,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -599,7 +604,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "Não se consegue abrir %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -608,9 +613,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Comando desconhecido"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Isto  não se parece a um arquivo \"tar\""
 
@@ -651,65 +656,65 @@ msgstr "N
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 #, fuzzy
 msgid "Cannot update compressed archives"
 msgstr "Não se pode actualizar o verificar um arquivo comprimido"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "No princípio da fita, pára-se imediatamente"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Erros de mais: termina-se"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Tamanho de bloco (blocksize) = blocos de %d"
 msgstr[1] "Tamanho de bloco (blocksize) = blocos de %d"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 #, fuzzy
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Não se conseguiu recuar o arquivo; pode ser ilegível sem -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr ""
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr ""
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, fuzzy, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "\aPreparar o volume no. %d para  %s e premir \"Return\": "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr ""
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ATENÇÃO: O arquivo está incompleto"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -721,647 +726,684 @@ msgstr ""
 " !          Criar uma \"sub-shell\" (interpretador de comandos)\n"
 " ?          Escrever esta lista\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Não há novo volume; termina-se. \n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr ""
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s não tem continuidade neste volume"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s não tem continuidade neste volume"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, fuzzy, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s não é a dimensão correcta (%ld != %ld + %ld)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Este volume está fora da sequência"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, fuzzy, c-format
 msgid "Archive not labeled to match %s"
 msgstr "O arquivo não tem etiqueta e não condiz com %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, fuzzy, c-format
 msgid "Volume %s does not match %s"
 msgstr "O volume não condiz!  %s!=%s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr ""
 "O fim-de-ficheiro do arquivo %s não se encontra na fronteira de um bloco"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "%s: Só se pôde ler  %d de um total de %ld \"bytes\"\n"
 msgstr[1] "%s: Só se pôde ler  %d de um total de %ld \"bytes\"\n"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 #, fuzzy
 msgid "Contents differ"
 msgstr "Tempo de modificação"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Fim de ficheiro inesperado no arquivo"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 #, fuzzy
 msgid "File type differs"
 msgstr "%s: Ligação (\"link\") simbólica é diferente\n"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr ""
 
-#: src/compare.c:205
+#: src/compare.c:206
 #, fuzzy
 msgid "Uid differs"
 msgstr "%s: %s diferente\n"
 
-#: src/compare.c:207
+#: src/compare.c:208
 #, fuzzy
 msgid "Gid differs"
 msgstr "%s: %s diferente\n"
 
-#: src/compare.c:211
+#: src/compare.c:212
 #, fuzzy
 msgid "Mod time differs"
 msgstr "Tempo de modificação"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 #, fuzzy
 msgid "Size differs"
 msgstr "%s: Ligação (\"link\") simbólica é diferente\n"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, fuzzy, c-format
 msgid "Not linked to %s"
 msgstr "%s: Não está ligado a %s\n"
 
-#: src/compare.c:288
+#: src/compare.c:289
 #, fuzzy
 msgid "Symlink differs"
 msgstr "%s: Ligação (\"link\") simbólica é diferente\n"
 
-#: src/compare.c:317
+#: src/compare.c:318
 #, fuzzy
 msgid "Device number differs"
 msgstr "%s: Os números do periférico mudaram\n"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificação"
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "Tipo de ficheiro \"%c\" desconhecido para %s; comparado como um ficheiro "
 "normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
 msgstr ""
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "ERRO DE VERIFICAÇÃO: Encontraram-se %d cabeçalhos inválidos"
 msgstr[1] "ERRO DE VERIFICAÇÃO: Encontraram-se %d cabeçalhos inválidos"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr ""
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr ""
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: não foi modificado; não será arquivado"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: não foi modificado; não será arquivado"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "O ficheiro %s diminuiu em %d \"bytes\", será completado com zeros"
 msgstr[1] "O ficheiro %s diminuiu em %d \"bytes\", será completado com zeros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, fuzzy, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: Está num outro sistema de ficheiros; não será arquivado"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 #, fuzzy
 msgid "contents not dumped"
 msgstr " (imagem da memória despejada \"core dumped\")"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipo de ficheiro desconhecido; ficheiro ignorado"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " ligação para %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, fuzzy, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: não foi modificado; não será arquivado"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, fuzzy, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s é o arquivo; não será arquivado"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr ""
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr ""
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr ""
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Salta para próximo cabeçalho"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Apaga-se do arquivo um não-cabeçalho"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr ""
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr ""
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Estão-se a extrair ficheiros contíguos como sendo ficheiros normais"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 "Está-se a tentar extrair ligações simbólicas (sym. links) como ligações "
 "físicas (hard links)"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, fuzzy, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr ""
 "Não se pode extraír `%s' -- é a continuação de um ficheiro de outro volume"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr ""
 "Tipo \"%c\" do ficheiro \"%s\" desconhecido; extrai-se como um ficheiro "
 "normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr ""
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Não se consegue mudar o nome de %s para %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "Mudou-se o nome do directoria %s"
 
-#: src/incremen.c:485
-#, fuzzy, c-format
-msgid "%s: Directory has been renamed"
-msgstr "Mudou-se o nome do directoria %s"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, fuzzy, c-format
 msgid "%s: Directory is new"
 msgstr "O directoria %s é novo"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: Está num outro sistema de ficheiros; não será arquivado"
+
+#: src/incremen.c:587
+#, fuzzy, c-format
+msgid "%s: Directory has been renamed"
+msgstr "Mudou-se o nome do directoria %s"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr ""
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
-msgstr ""
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
+msgstr "Valor inválido para tamanho de registo (record_size)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr ""
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr ""
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-#, fuzzy
-msgid "Read error in snapshot file"
-msgstr "Erro de leitura sobre %s"
-
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-#, fuzzy
-msgid "Unexpected field value in snapshot file"
-msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Não se pode mudar para a directoria %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr ""
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Apaga-se  %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, fuzzy, c-format
 msgid "%s: Cannot remove"
 msgstr "Não se consegue apagar %s"
 
-#: src/list.c:190
+#: src/list.c:189
 #, fuzzy, c-format
 msgid "%s: Omitting"
 msgstr "Omite-se %s"
 
-#: src/list.c:207
+#: src/list.c:206
 #, fuzzy, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloco %10ld: ** Bloco de NULs **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, fuzzy, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloco %10ld: ** Fim-de-ficheiro **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, fuzzy, c-format
 msgid "block %s: "
 msgstr "bloco %10ld: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr ""
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr ""
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 
-#: src/list.c:840
+#: src/list.c:854
 #, fuzzy, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Este volume está fora da sequência"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr ""
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " ligação para %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, fuzzy, c-format
 msgid " unknown file type %s\n"
 msgstr " tipo de ficheiro desconhecido \"%c\"\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Cabeçalho de volume--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, fuzzy, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continua no \"byte\" %ld--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Criação de directoria::"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Não se pode mudar para a directoria %s"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, fuzzy, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Mudou-se o nome %s para %s"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, fuzzy, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "Não se consegue mudar o nome de %s para %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, fuzzy, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Mudou-se o nome %s para %s"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr ""
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr ""
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr ""
 
-#: src/names.c:590
+#: src/names.c:360
+msgid "command line"
+msgstr ""
+
+#: src/names.c:378
+#, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr ""
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "Não se consegue executar \"stat\" para o ficheiro %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Não foi encontrado no arquivo"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Não foi encontrado no arquivo"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "O arquivo não tem etiqueta e não condiz com %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Ambas as opções `-%s' e `-%s' precisam do \"standard input\""
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "Formato de data inválido \"%s\""
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 "Estão-se a querer propriedades GNU num arquivo com formato incompatível"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1370,9 +1412,9 @@ msgid ""
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
 
-#: src/tar.c:357
+#: src/tar.c:373
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1382,80 +1424,80 @@ msgid ""
 "  never, simple   always make simple backups\n"
 msgstr ""
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Fim de ficheiro inesperado no arquivo"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1463,566 +1505,616 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 #, fuzzy
 msgid "remove files after adding them to the archive"
 msgstr "Retira-se a especificação do \"drive\" aos nomes no arquivo"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr ""
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr ""
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Não se pode verificar arquivos multi-volume"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Arquivo para stdin"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Há conflitos entre as opções de compressão"
 
-#: src/tar.c:616
+#: src/tar.c:662
 #, fuzzy
 msgid "use archive suffix to determine the compression program"
 msgstr "Não se consegue escrever para o programa de compressão"
 
-#: src/tar.c:618
+#: src/tar.c:664
 #, fuzzy
 msgid "do not use archive suffix to determine the compression program"
 msgstr "Não se consegue escrever para o programa de compressão"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Não se pode mudar para a directoria %s"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Retira-se \"/\" das ligações (\"links\") absolutas "
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
-msgstr ""
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
+msgstr "O volume não condiz!  %s!=%s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2030,300 +2122,317 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr ""
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 #, fuzzy
 msgid "ask for confirmation for every action"
 msgstr "Não se consegue obter confirmação, do utilizador"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Não se pode especificar mais do que uma das opções \"-Acdtrux\""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Há conflitos entre as opções de compressão"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr "Opção \"%c\" desconhecida"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr ""
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr ""
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file list already read"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr ""
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Valor inválido para tamanho de registo (record_size)"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr ""
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr ""
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr ""
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "Valor inválido para tamanho de registo (record_size)"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr ""
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr ""
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr ""
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 #, fuzzy
 msgid "Invalid record size"
 msgstr "Valor inválido para tamanho de registo (record_size)"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "O tamanho dos registos tem que ser múltiplo de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr ""
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 #, fuzzy
 msgid "Only one --to-command option allowed"
 msgstr "Só se permite uma opção de compressão"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "Opção \"%c\" desconhecida"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "As opções \"-[0-7][lmh]\" não são suportadas por *este* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "A antiga opção `%c' exige um argumento."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Para usar vários arquivos é necessária a opção \"-M\""
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr ""
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Não se pode verificar arquivos multi-volume"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 #, fuzzy
 msgid "Cannot verify compressed archives"
 msgstr "Não se pode actualizar o verificar um arquivo comprimido"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Não se pode de usar arquivos multi-volume comprimidos"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Não se pode actualizar o verificar um arquivo comprimido"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Recusa-se, covardemente, a criar um arquivo vazio"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "As opções \"-Aru\" são imcompatíveis com \"-f -\""
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Tem que se especificar uma das opções \"-Acdtrux\""
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2335,114 +2444,110 @@ msgstr[1] "%s: O ficheiro diminui em %d bytes, (desgra
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr ""
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr ""
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Escreve-se o ponto de verificação %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Leu-se o ponto de verificação %d"
@@ -2579,7 +2684,7 @@ msgstr ""
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2608,8 +2713,8 @@ msgstr "Erro desconhecido, do sistema"
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, fuzzy, c-format
 msgid "cannot open `%s'"
 msgstr "Não se consegue abrir %s"
@@ -2624,66 +2729,88 @@ msgstr "N
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr "Opção \"%c\" desconhecida"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "Não se consegue executar \"stat\" para o ficheiro %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "Não se consegue abrir %s"
+
+#: tests/genfile.c:701
+#, c-format
+msgid "command failed: %s"
+msgstr ""
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "Não se consegue abrir %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr ""
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Nomes de ficheiros truncados--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Não se pode mudar para a directoria %s"
+
+#, fuzzy
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Erro de leitura sobre %s"
+
+#, fuzzy
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "Mudou-se o nome do directoria %s"
index c8f42bf4789d0c04129971f8110891494d0147ca..c8c104575b111b6f0e4f8943113fa05e08db11cb 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 3518d555d05568fdc1f70289e6957135f9a95aac..a357fdbf2d0c374c6e76a49c01f0bd640f94b7a7 100644 (file)
@@ -1,5 +1,10 @@
 # tar: translation to Brazilian Portuguese (pt_BR)
 # Copyright (C) 1995, 2002 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Lucas Inojosa C. Ferreira <lucas.inojosa@gmail.com>, 2013.
+# Rodolfo Ferraz <rcaferraz@gmail.com>, 2013.
+# Eduardo Tenorio <embatbr@gmail.com>, 2013.
+# based on the previous translation to pt_BR (1.26) by
 # Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002.
 # based on the previous translation to pt_BR (1.13.17) by
 # João Luiz Barbosa Silva <jl@conectiva.com.br>, 1997.
 # António José Coutinho <ajc@di.uminho.pt>, 1996.
 # Marcus Moreira de Souza <marcusms@frb.br>
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.13.25\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2002-11-27 20:30-0300\n"
-"Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n"
-"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2013-01-24 21:39-0300\n"
+"Last-Translator: Lucas Inojosa C. Ferreira <lucas.inojosa@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-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: gnu/argmatch.c:135
 #, c-format
@@ -32,176 +39,174 @@ msgid "ambiguous argument %s for %s"
 msgstr "argumento %s ambíguo para %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Os argumentos válidos são:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
-msgstr ""
+msgstr "ARGP_HELP_FMT: O valor %s é menor ou igual que %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr ""
+msgstr "%.*s: O parâmetro ARGP_HELP_FMT exige um valor"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-msgstr ""
+msgstr "%.*s: O Parâmetro ARGP_HELP_FMT deve ser positivo"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr ""
+msgstr "%.*s: Parâmetro do ARGP_HELP_FMT desconhecido"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr ""
+msgstr "Lixo no ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
+"Argumentos obrigatórios ou opcionais para opções longas são também "
+"obrigatórios ou opcionais para suas opções curtas correspondentes."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
-msgstr ""
+msgstr "Uso:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
-msgstr ""
+msgstr "  ou: "
 
-#: gnu/argp-help.c:1657
-#, fuzzy
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
-msgstr ""
-"\n"
-"Uso: %s [OPÇÃO]...\n"
+msgstr " [OPÇÃO...]"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "Tente `%s --help' para mais informações.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
+msgstr "Tente `%s --help' ou `%s --usage' para mais informações.\n"
 
-#: gnu/argp-help.c:1712
-#, fuzzy, c-format
+#: gnu/argp-help.c:1714
+#, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
-"\n"
-"Informar erros no programa para <bug-tar@gnu.org>.\n"
-"Informar erros na tradução para <afmenez@terra.com.br>.\n"
+"Informar erros no programa para: %s.\n"
+"Informar erros na tradução para um destes tradutores:\n"
+"<afmenez@terra.com.br>\n"
+"ou <lucas.inojosa@gmail.com>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Erro de sistema desconhecido"
 
 #: gnu/argp-parse.c:83
 msgid "give this help list"
-msgstr ""
+msgstr "exibir esse menu de ajuda"
 
 #: gnu/argp-parse.c:84
 msgid "give a short usage message"
-msgstr ""
+msgstr "exibir uma mensagem curta de uso do programa"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
-msgstr ""
+msgstr "NOME"
 
 #: gnu/argp-parse.c:85
 msgid "set the program name"
-msgstr ""
+msgstr "definir o nome do programa"
 
 #: gnu/argp-parse.c:86
 msgid "SECS"
-msgstr ""
+msgstr "SEGS"
 
 #: gnu/argp-parse.c:87
 msgid "hang for SECS seconds (default 3600)"
-msgstr ""
+msgstr "pausa por SEGS segundos (padrão: 3600)"
 
 #: gnu/argp-parse.c:144
 msgid "print program version"
-msgstr ""
+msgstr "exibe a versão do programa"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
-msgstr ""
+msgstr "(ERRO DO PROGRAMA) Não se sabe a versão!?"
 
-#: gnu/argp-parse.c:613
-#, fuzzy, c-format
+#: gnu/argp-parse.c:614
+#, c-format
 msgid "%s: Too many arguments\n"
-msgstr "%s: a opção `%s' exige um argumento\n"
+msgstr "%s: Argumentos além do necessário\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr ""
+msgstr "(ERRO DO PROGRAMA) A opção deveria ter sido reconhecida!?"
 
 #: gnu/closeout.c:114
 msgid "write error"
-msgstr ""
+msgstr "erro de escrita"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: a opção `%s' é ambígua\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: a opção `--%s' não admite um argumento\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: a opção `%c%s' não admite um argumento\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: a opção `%s' exige um argumento\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opção `--%s' não reconhecida\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opção `%c%s' não reconhecida\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opção inválida -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: a opção exige um argumento -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: a opção `-W %s' é ambígua\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a opção `-W %s' não aceita um argumento\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: a opção `%s' exige um argumento\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memória esgotada"
 
@@ -217,28 +222,30 @@ msgstr "Imposs
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -248,9 +255,9 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
-msgstr ""
+msgstr "^[sS]"
 
 #. TRANSLATORS: A regular expression testing for a negative answer
 #. (english: "no").  Testing the first character may be sufficient.
@@ -258,26 +265,26 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
-msgstr ""
+msgstr "^[nN]"
 
 #: gnu/version-etc.c:76
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Pacote feito por %s (%s)\n"
 
 #: gnu/version-etc.c:79
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Pacote feito 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.
 #: gnu/version-etc.c:86
 msgid "(C)"
-msgstr ""
+msgstr "(C)"
 
 #: gnu/version-etc.c:88
 msgid ""
@@ -288,24 +295,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Licensa GPLv3: versão 3 ou superior da GNU GPL <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Este software é livre: você é livre para modificá-lo e redistribuí-lo.\n"
+"NÃO HÁ GARANTIA, além da permitida pela lei.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: gnu/version-etc.c:104
 #, fuzzy, c-format
 msgid "Written by %s.\n"
-msgstr "Escrito por François Pinard"
+msgstr "Escrito por %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:108
 #, fuzzy, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Escrito por François Pinard"
+msgstr "Escrito por %s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:112
 #, fuzzy, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Escrito por François Pinard"
+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
@@ -316,6 +329,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
@@ -326,6 +341,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
@@ -336,6 +353,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
@@ -346,6 +365,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
@@ -357,6 +378,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
@@ -368,6 +392,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
@@ -379,42 +406,44 @@ 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
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: gnu/version-etc.c:247
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
 "\n"
-"Informar erros no programa para <bug-tar@gnu.org>.\n"
-"Informar erros na tradução para <afmenez@terra.com.br>.\n"
+"Informar erros no programa para: %s.\n"
+"Informar erros na tradução para um destes tradutores:\n"
+"<afmenez@terra.com.br>\n"
+"ou <lucas.inojosa@gmail.com>.\n"
 
 #: gnu/version-etc.c:249
 #, fuzzy, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
-"\n"
-"Informar erros no programa para <bug-tar@gnu.org>.\n"
-"Informar erros na tradução para <afmenez@terra.com.br>.\n"
+msgstr "Informar %s erros no programa para %s\n"
 
 #: gnu/version-etc.c:253
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s página inicial: <%s>\n"
 
 #: gnu/version-etc.c:255
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s página inicial: <http://www.gnu.org/software/%s/>\n"
 
 #: gnu/version-etc.c:258
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "Ajuda para uso de softwares GNU: <http://www.gnu.org/gethelp/>\n"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -423,7 +452,7 @@ msgstr ""
 #: lib/paxerror.c:58 lib/paxerror.c:71
 #, c-format
 msgid "%s: Cannot %s"
-msgstr "%s: Não é possível %s"
+msgstr "%s: Não é possível executar a ação: %s"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -432,7 +461,7 @@ msgstr "%s: N
 #: lib/paxerror.c:84
 #, c-format
 msgid "%s: Warning: Cannot %s"
-msgstr "%s: Atenção: Não é possível %s"
+msgstr "%s: Atenção: Não é possível executar a ação: %s"
 
 #: lib/paxerror.c:93
 #, c-format
@@ -502,7 +531,7 @@ msgstr "Removendo `%.*s' inicial dos nomes dos membros"
 
 #: lib/paxnames.c:155
 msgid "Substituting `.' for empty hard link target"
-msgstr ""
+msgstr "Substituindo `.' por alvo vazio para hard link"
 
 #: lib/rtapelib.c:299
 #, c-format
@@ -522,9 +551,14 @@ msgstr "sa
 #: lib/rtapelib.c:429
 #, c-format
 msgid "Cannot connect to %s: resolve failed"
-msgstr ""
+msgstr "Não foi possível conectar a %s: resolução falhou"
+
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Impossível executar um shell remoto"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Impossível executar um shell remoto"
@@ -569,70 +603,69 @@ msgstr "%s: op
 
 #: rmt/rmt.c:636 rmt/rmt.c:680
 msgid "Operation not supported"
-msgstr ""
+msgstr "Operação não suportada"
 
 #: rmt/rmt.c:664
 #, fuzzy
 msgid "Unexpected arguments"
-msgstr "Final-de-arquivo inesperado no arquivo-tar"
+msgstr "Fim de arquivo inesperado nos nomes cifrados"
 
 #: rmt/rmt.c:689
 msgid "Manipulate a tape drive, accepting commands from a remote process"
-msgstr ""
+msgstr "Manipula uma unidade de fita, aceitando comandos de um processo remoto"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
-msgstr ""
+msgstr "NUMERO"
 
 #: rmt/rmt.c:697
 msgid "set debug level"
-msgstr ""
+msgstr "define nível de debug"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
-msgstr ""
+msgstr "ARQ"
 
 #: rmt/rmt.c:699
 msgid "set debug output file name"
-msgstr ""
+msgstr "define nome do arquivo de saída do debug"
 
 #: rmt/rmt.c:715 rmt/rmt.c:783
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open %s"
-msgstr "%s: Impossível saltar para %s"
+msgstr "impossível fechar %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
-msgstr ""
+msgstr "muitos argumentos"
 
 #: rmt/rmt.c:822
 msgid "Garbage command"
 msgstr "Comando sem sentido"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Este não parece ser um arquivo-tar"
 
 #: src/buffer.c:521 src/buffer.c:530
-#, fuzzy
 msgid "Total bytes written"
-msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n"
+msgstr "Total de bytes escritos"
 
 #: src/buffer.c:528 src/buffer.c:542
 msgid "Total bytes read"
-msgstr ""
+msgstr "Total de bytes lidos"
 
 #: src/buffer.c:532
-#, fuzzy, c-format
+#, c-format
 msgid "Total bytes deleted: %s\n"
-msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n"
+msgstr "Total de bytes apagados: %s\n"
 
 #: src/buffer.c:621
 msgid "(pipe)"
@@ -654,539 +687,572 @@ msgstr ""
 #: src/buffer.c:703
 #, c-format
 msgid "Archive is compressed. Use %s option"
-msgstr ""
+msgstr "O arquivo está compactado. Use a opção %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Impossível atualizar arquivos-tar compactados"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "No princípio da fita, encerrando agora"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Muitos erros, encerrando"
 
-#: src/buffer.c:892
-#, fuzzy, c-format
+#: src/buffer.c:893
+#, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
-msgstr[0] "Tamanho de registro = %lu blocos"
+msgstr[0] "Tamanho de registro = %lu bloco"
 msgstr[1] "Tamanho de registro = %lu blocos"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, fuzzy, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloco desalinhado (%lu bytes) no arquivo-tar"
 msgstr[1] "Bloco desalinhado (%lu bytes) no arquivo-tar"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Impossível recuar no arquivo-tar; pode estar ilegível sem -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
+#, fuzzy
 msgid "rmtlseek not stopped at a record boundary"
-msgstr ""
+msgstr "rmtlseek não está parado numa fronteira de registro"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: contém um número de volume inválido"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Sobrecarga de número de volumes"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Prepare o volume #%d para %s e tecle Enter: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Fim-de-arquivo onde era esperado resposta do usuário"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AVISO: O arquivo-tar está incompleto"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
 " q             Abort tar\n"
 " y or newline  Continue operation\n"
 msgstr ""
-" n [nome]   Dar um novo nome para o próximo volume (e os subseqüentes)\n"
-" q          Abortar tar\n"
-" !          Criar um \"sub-shell\"\n"
-" ?          Mostra esta lista\n"
+" n nome           Dar um novo nome para o(s) próximo(s) volume(s) (e os "
+"subseqüentes)\n"
+" q                Abortar tar\n"
+" y ou nova linha  Continuar operação\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
-msgstr ""
+msgstr " !             Criar um sub-shell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
-msgstr ""
+msgstr " ?             Mostra esta lista\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Nenhum volume novo; encerrando.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
-msgstr ""
+msgstr "Nome de arquivo não foi especificado. Tente novamente.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
-msgstr ""
+msgstr "Entrada inválida. Digite ? para ajuda.\n"
 
-#: src/buffer.c:1258
-#, fuzzy, c-format
+#: src/buffer.c:1259
+#, c-format
 msgid "%s command failed"
-msgstr "comando `%s' falhou"
+msgstr "comando %s falhou"
 
-#: src/buffer.c:1439
-#, fuzzy, c-format
+#: src/buffer.c:1440
+#, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
-msgstr "%s não continua neste volume"
+msgstr ""
+"%s possivelmente é continuado neste volume: o cabeçalho contém o nome "
+"truncado"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
-msgstr "%s não continua neste volume"
+msgstr "%s não é continuado neste volume"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s é o tamanho errado (%s != %s + %s)"
 
-#: src/buffer.c:1472
-#, fuzzy, c-format
+#: src/buffer.c:1473
+#, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
-msgstr "Este volume está fora de sequência"
+msgstr "Este volume está fora de sequência (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "O arquivo-tar não rotulado para casar com %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "O volume %s não casa com %s"
 
-#: src/buffer.c:1674
-#, c-format
+#: src/buffer.c:1675
+#, fuzzy, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
+"%s: nome de arquivo muito longo para ser armazenado num cabeçalho GNU "
+"multivolume, truncado"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
-msgstr ""
+msgstr "escrita não acabou numa fronteira de bloco"
 
-#: src/compare.c:95
-#, fuzzy, c-format
+#: src/compare.c:96
+#, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
-msgstr[0] "Só foi possível ler %lu de %lu bytes"
+msgstr[0] "Só foi possível ler %lu de %lu byte"
 msgstr[1] "Só foi possível ler %lu de %lu bytes"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "O conteúdo é diferente"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Final-de-arquivo inesperado no arquivo-tar"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "O tipo de arquivo é diferente"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Os modos são diferentes"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Os uid são diferentes"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "os gid são diferentes"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Os horários de modificação são diferentes"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Os tamanhos são diferentes"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Não está \"linkado\" a %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "O (\"Link\") simbólico é diferente"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "O número de dispositivo é diferente"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificar "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
-"%s: Tipo de arquivo \"%c\" desconhecido, comparado como um arquivo normal"
+"%s: Tipo de arquivo `%c' desconhecido, comparado como um arquivo normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
+"O arquivo-tar contém nome de arquivos com os prefixos principais removidos"
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
-msgstr "o arquivo-tar contém cabeçalhos base-64 obsoletos"
+msgstr "O arquivo-tar contém nomes de arquivos transformados."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
-msgstr ""
+msgstr "A verificação pode falhar em localizar os arquivos originais."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
-msgstr[0] "ERRO DE VERIFICAÇÃO: detectados %d cabeçalhos inválidos"
+msgstr[0] "ERRO DE VERIFICAÇÃO: detectado %d cabeçalho inválido"
 msgstr[1] "ERRO DE VERIFICAÇÃO: detectados %d cabeçalhos inválidos"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
-msgstr ""
+msgstr "Bloco de zero isolado em %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
-msgstr ""
+msgstr "%s: contém um rótulo %s de diretório cache; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "valor %s fora da faixa %s: %s..%s; substituindo %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "valor %s fora da faixa %s: %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Gerando cabeçalhos octais negativos"
 
-#: src/create.c:612 src/create.c:675
-#, fuzzy, c-format
+#: src/create.c:601 src/create.c:664
+#, c-format
 msgid "%s: file name is too long (max %d); not dumped"
-msgstr "%s: arquivo sem alterações; não será arquivado"
+msgstr "%s: nome de arquivo é muito grande (máximo de %d); não será arquivado"
 
-#: src/create.c:622
-#, fuzzy, c-format
+#: src/create.c:611
+#, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
-msgstr "%s: arquivo sem alterações; não será arquivado"
+msgstr ""
+"%s: nome de arquivo é muito grande (não pode ser dividido); não será "
+"arquivado"
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
-msgstr "%s: arquivo sem alterações; não será arquivado"
+msgstr "%s: Nome de link muito grande; não será arquivado"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: o arquivo diminuiu %s bytes; completando com zeros"
 msgstr[1] "%s: o arquivo diminuiu %s bytes; completando com zeros"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: arquivo está em outro sistema de arquivos; não será arquivado"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
-msgstr ""
+msgstr "conteúdos não depositados"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tipo de arquivo desconhecido; arquivo ignorado"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " link para %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: arquivo sem alterações; não será arquivado"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
-msgstr ""
+msgstr "diretório não depositado"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: arquivo alterado enquanto estava sendo lido"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: \"socket\" ignorado"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: porta ignorada"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Pulando para o próximo cabeçalho"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Removendo um não-cabeçalho do arquivo-tar"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
-msgstr ""
+msgstr "%s: carimbo de tempo implausivelmente velho %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: o carimbo de horário %s está %lu s no futuro"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inconsistência inesperada ao criar diretório"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Diretório renomeado antes de se poder extrair seu estado"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extraindo arquivos contíguos como sendo arquivos normais"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Tentativa de extrair \"links\" simbólicos como \"links\" físicos"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Impossível extrair -- arquivo é a continuação de outro volume"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Fim de arquivo inesperado nos nomes cifrados"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tipo de arquivo '%c' desconhecido; extraindo como arquivo normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
-msgstr ""
+msgstr "%s atual é mais novo ou tem a mesma idade"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Impossível fazer backup deste arquivo"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Impossível renomear para %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Diretório foi renomeado"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Diretório foi renomeado"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: O diretório é novo"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: arquivo está em outro sistema de arquivos; não será arquivado"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Diretório foi renomeado"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Carimbo de horário inválido"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Modo inválido informado na opção"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
-msgstr ""
+msgstr "Tempo de modificação inválido (nanosegundos)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Número de dispositivo inválido"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Número de inode inválido"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Final-de-arquivo inesperado no arquivo-tar"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
 msgstr ""
 
-#: src/incremen.c:1259
-msgid "Missing record terminator"
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
-msgid "Bad incremental file format"
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1257
 #, c-format
-msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgid "%s: byte %s: %s"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1260
+msgid "Missing record terminator"
+msgstr "Faltando registro de terminação"
+
+#: src/incremen.c:1366 src/incremen.c:1369
+msgid "Bad incremental file format"
+msgstr "Formato de arquivo mal incrementável"
+
+#: src/incremen.c:1388
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Versão incremental do formato não suportada: %<PRIuMAX>"
+
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
-msgstr ""
+msgstr "Diretório de despejo malformado: '%c' esperado mas %#3o recebido"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
-msgstr ""
+msgstr "Diretório de despejo malformado: 'X' duplicado"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
-msgstr ""
+msgstr "Diretório de despejo malformado: nome vazio em 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
-msgstr ""
+msgstr "Diretório de despejo malformado: 'T' não precedido por 'R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
-msgstr ""
+msgstr "Diretório de despejo malformado: nome vazio em 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
+"Diretório de despejo malformado: '%c' esperado, mas \"fim de dado\" recebido"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
-msgstr ""
+msgstr "Diretório de despejo malformado: 'X' nunca usado"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Impossível alocar memória para um fator de bloco %d"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
-msgstr ""
+msgstr "%s: Diretório não purgado: impossibilitado de quantificar"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, fuzzy, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: arquivo está em outro sistema de arquivos; não será arquivado"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Removendo %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Impossível remover"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Omitindo"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloco %s: ** Bloco de NULs **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloco %s: ** Fim-de-arquivo **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloco %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Espaço em branco no cabeçalho onde valor numérico `%s' era esperado"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1194,162 +1260,183 @@ msgstr ""
 "complemento de dois"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "O valor octal do arquivo-tar %.*s está fora de faixa %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "o arquivo-tar contém cabeçalhos base-64 obsoletos"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "A string base-64 assinada do arquivo-tar %s está fora de faixa %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "O valor base-256 de arquivo-tar está fora da faixa %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "O arquivo-tar contém %.*s onde valor numérico %s era esperado"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "o valor do arquivo-tar %s está fora da faixa %s: %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " link para %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tipo de arquivo \"%s\" desconhecido\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
-msgstr ""
+msgstr "--Link Longo--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
-msgstr ""
+msgstr "--Nome Longo--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Cabeçalho de volume--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continua no byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Criando de diretório:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Impossível mudar o diretório de trabalho"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Renomeando %s para %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Impossível renomear para %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Renomeando %s de volta para %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: arquivo removido antes de ser lido"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "processo filho"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canal interprocesso"
 
-#: src/names.c:590
-msgid "Pattern matching characters used in file names"
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "comando %s falhou"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ímpossível definir tempo em `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:821
+msgid "Pattern matching characters used in file names"
+msgstr "Padrão correspondente a caracteres usados em nomes de arquivos"
+
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
+"Use --wildcards para habilitar casamento de padrão, ou --no-wildcards para "
+"suprimir este aviso"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Não foi encontrado no arquivo-tar"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Não foi encontrado no arquivo-tar"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "O arquivo-tar não rotulado para casar com %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
+"Usar a opção -C dentro de lista de arquivo não é permitido com --listed-"
+"incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
-msgstr ""
+msgstr "Somente uma opção -C é permitida com --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Ambas as opções `-%s' e `-%s' exigem a entrada padrão"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Grupo inválido"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Desejadas características GNU num arquivo-tar com formato incompatível"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
+"Estilo de citação `%s' desconhecido. Tente `%s --quoting-style=help' para "
+"pegar uma lista."
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1366,10 +1453,10 @@ msgstr ""
 "  %s -tvf arquivo.tar         # Lista todos os arquivos em arquivo.tar.\n"
 "  %s -xf arquivo.tar          # Extrai todos os arquivos de arquivo.tar\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1388,646 +1475,720 @@ msgstr ""
 "  nil, existing   numera se existe backup numerado, se não faz simples\n"
 "  never, simple   sempre faz backups simples\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
-msgstr ""
+msgstr "Modo de operação principal:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
-msgstr ""
+msgstr "lista os conteúdos de um registro de arquivos"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
-msgstr ""
+msgstr "extrai arquivos de um registro de arquivos"
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Final-de-arquivo inesperado no arquivo-tar"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
-msgstr ""
+msgstr "acha diferenças entre um registro de arquivos e o sistema de arquivos"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
-msgstr ""
+msgstr "anexa arquivos ao final de um registro de arquivos"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
-msgstr ""
+msgstr "anexar apenas arquivos mais novos que a cópia em arquivo"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
-msgstr ""
+msgstr "anexar arquivos tar a um arquivo"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
-msgstr ""
+msgstr "apague do arquivo (não em fitas magnéticas!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
-msgstr ""
+msgstr "teste o rótulo de volume do arquivo e saia"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
-msgstr ""
+msgstr "Modificadores de operação:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
-msgstr ""
+msgstr "trata arquivos esparsos eficientemente"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
-msgstr ""
+msgstr "PRINCIPAL[.SECUNDÁRIO]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
-msgstr ""
+msgstr "define versão do formato esparso a ser usado (implica --esparso)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
-msgstr ""
+msgstr "trata formato-GNU de backup incremental antigo"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
-msgstr ""
+msgstr "trata formato-GNU de backup incremental novo"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
-msgstr ""
+msgstr "nível dump para recém criado registro incremental-listado"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
-msgstr ""
+msgstr "não sai com nonzero em arquivos ilegíveis"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
 "diff, --extract or --list and when a list of files is given either on the "
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
+"processa somente a NUMBERª ocorrência de cada arquivo nos registros; esta "
+"opção é válida somente em conjunção com um dos subcomandos --delete, --diff, "
+"--extract ou --list e quando a lista de arquivos é dada tanto por linha de "
+"comando com pela opção -T; NUMBER é 1 por padrão"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
-msgstr ""
+msgstr "registro é procurável"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
-msgstr ""
+msgstr "registro não é procurável"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
-msgstr ""
+msgstr "não checa números de dispositos quando criando registros incrementais"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
+"checa números de dispositos quando criando registros incrementais (padrão)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
-msgstr ""
+msgstr "Sobreescreve controle:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
-msgstr ""
+msgstr "tenta verificar o registro após escrevê-lo"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
-msgstr ""
+msgstr "remove arquivos após adicioná-los ao registro"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
-msgstr ""
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "não substitui arquivos existentes durante extração"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "não substitui arquivos existentes durante extração"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
+"não substitui arquivos existentes que sejam mais novos que suas cópias em "
+"registro"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
-msgstr ""
+msgstr "sobreescreve arquivos existentes durante extração"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
-msgstr ""
+msgstr "remove cada arquivo antes de extrair sobre ele"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
-msgstr ""
+msgstr "esvazia hierarquias antes de extrair diretório"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
-msgstr ""
+msgstr "preserva metadados de diretórios existentes"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
-msgstr ""
+msgstr "sobreescreve metadado de diretório existente ao extrair (padrão)"
+
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "sobreescreve arquivos existentes durante extração"
 
-#: src/tar.c:473
+#: src/tar.c:496
 msgid "Select output stream:"
-msgstr ""
+msgstr "Seleciona fluxo de saída:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 #, fuzzy
 msgid "extract files to standard output"
 msgstr "Erro ao escrever para saída padrão"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
-msgstr ""
+msgstr "COMMAND"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
-msgstr ""
+msgstr "pipe extraiu arquivos para outro programa"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
-msgstr ""
+msgstr "ignora código de saída de filhos"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
-msgstr ""
+msgstr "trata código de saída non-zero de filhos como erro"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
-msgstr ""
+msgstr "Tratando de atributos de arquivo:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
-msgstr ""
+msgstr "força NOME como dono para arquivos adicionados"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
-msgstr ""
+msgstr "força NOME como grupo para arquivos adicionados"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
-msgstr ""
+msgstr "DATA-OU-ARQ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
-msgstr ""
+msgstr "seta mtime para arquivos adicionados de DATA-OU-ARQ"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
-msgstr ""
+msgstr "CHANGES"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
-msgstr ""
+msgstr "força (simbolicamente) modo CHANGES para arquivos adicionados"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
-msgstr ""
+msgstr "METHOD"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
+"preserva tempo de acesso em arquivos despejados, tanto por restaurar os "
+"tempos após leitura (METHOD='replace'; padrão) quanto por não setar os "
+"tempos em primeiro lugar (METHOD='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
-msgstr ""
+msgstr "não extrai o arquivo tempo modificado"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
+"tenta extrair arquivos com mesmo tipo de propriedade como existente em "
+"registro de arquivos (padrão para superusuário)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
-msgstr ""
+msgstr "extrai arquivos como você mesmo (padrão para usuários comuns)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
-msgstr ""
+msgstr "sempre usar números para nomes de usuário/grupo"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
+"extrai informação sobre permissões de arquivos (padrão para superusuário)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
-msgstr ""
+msgstr "o mesmo para ambos -p e -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
+msgstr "cancela o efeito da opção --delay-directory-restore"
+
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Tratando de atributos de arquivo:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
 msgstr ""
 
-#: src/tar.c:530
-msgid "Device selection and switching:"
+#: src/tar.c:559
+msgid "Disable extended attributes support"
 msgstr ""
 
-#: src/tar.c:532
-msgid "ARCHIVE"
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
 msgstr ""
 
-#: src/tar.c:533
-msgid "use archive file or device ARCHIVE"
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
 msgstr ""
 
-#: src/tar.c:535
-msgid "archive file is local even if it has a colon"
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
 msgstr ""
 
-#: src/tar.c:537
-msgid "use given rmt COMMAND instead of rmt"
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
 msgstr ""
 
-#: src/tar.c:539
-msgid "use remote COMMAND instead of rsh"
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
 msgstr ""
 
-#: src/tar.c:543
-msgid "specify drive and density"
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
+msgid "Device selection and switching:"
+msgstr "Seleção e troca de dispositivo"
+
+#: src/tar.c:578
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:579
+msgid "use archive file or device ARCHIVE"
+msgstr "use registro de arquivos ou dispositivo ARCHIVE"
+
+#: src/tar.c:581
+msgid "archive file is local even if it has a colon"
+msgstr "arquivo do registro é local mesmo se tiver dois pontos"
+
+#: src/tar.c:583
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "use COMMAND rmt dado ao invés de rmt"
+
+#: src/tar.c:585
+msgid "use remote COMMAND instead of rsh"
+msgstr "use COMMAND remoto ao invés de rsh"
+
+#: src/tar.c:589
+msgid "specify drive and density"
+msgstr "especifique drive e densidade"
+
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Impossível verificar arquivos-tar multi-volume"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
-msgstr ""
+msgstr "troque a fita após escrever NUMBER x 1024 bytes"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
-msgstr ""
+msgstr "rode o script no final de cada fita (implica -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
-msgstr ""
+msgstr "use/atualize o número do volume no ARQ"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
-msgstr ""
+msgstr "Dispositivo bloqueando:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
-msgstr ""
+msgstr "BLOCKS"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
-msgstr ""
+msgstr "BLOCKS x 512 bytes por gravação"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
-msgstr ""
+msgstr "NUMBER de bytes por gravação, multiplo de 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Opções de formato do arquivo-tar conflitantes"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
-msgstr ""
+msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
-msgstr ""
+msgstr "cria registro de arquivos no formato dado"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
-msgstr ""
+msgstr "FORMAT é um dos seguintes:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
-msgstr ""
+msgstr "formato V7 tar velho"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
-msgstr ""
+msgstr "o mesmo que pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
-msgstr ""
+msgstr "equivalente a --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
-msgstr ""
+msgstr "equivalente a --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
-msgstr ""
+msgstr "palavra-chave[[:]=valor][,palavra-chave[[:]=valor]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
-msgstr ""
+msgstr "controle palavra-chave pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
-msgstr ""
+msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Opções de compressão conflitantes"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
+"usa terminação do registro de arquivos para determinar o programa compressor"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
+"não usa terminação do registro de arquivos para determinar o programa "
+"compressor"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
-msgstr ""
+msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
-msgstr ""
+msgstr "filtra através de PROG (deve aceitar -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
-msgstr ""
+msgstr "Seleção de arquivo local:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
+"adiciona ARQ dado ao registro de arquivos (útil se seu nome inicia-se com um "
+"travessão)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
-msgstr ""
+msgstr "DIR"
 
-#: src/tar.c:642
-#, fuzzy
+#: src/tar.c:688
 msgid "change to directory DIR"
-msgstr "Impossível mudar o diretório de trabalho"
+msgstr "muda para o diretório DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
-msgstr ""
+msgstr "pega nomes para extrair ou criar a partir de ARQ"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
-msgstr ""
+msgstr "-T lê nomes de terminação nula, desabilita -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
-msgstr ""
+msgstr "PADRÂO"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
-msgstr ""
+msgstr "exclua arquivos, dado como um PADRÂO"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
-msgstr ""
+msgstr "exclua padrões listados em ARQ"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
+"exclua conteúdos de diretórios contendo CACHEDIR.TAG, exceto para a própria "
+"etiqueta de arquivo"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
-msgstr ""
+msgstr "exclui conteúdo dos diretórios contendo ARQ, exceto o próprio ARQ"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
-msgstr ""
+msgstr "exclui tudo dentro dos diretórios contendo ARQ"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
-msgstr ""
+msgstr "exclui diretórios contendo ARQ"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
+"permanece no sistema local de arquivos durante criação de registro de "
+"arquivos"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Removendo `%.*s' inicial dos nomes dos membros"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
-msgstr ""
+msgstr "MEMBER-NAME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
-msgstr ""
+msgstr "armazena apenas arquivos mais novos que DATA-OU-ARQ"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
-msgstr ""
+msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
-msgstr ""
+msgstr "compara data e hora apenas quando so dados mudarem"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
-msgstr ""
+msgstr "CONTROLE"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
-msgstr ""
+msgstr "efetua backup antes da remoção, escolhe versão CONTROLE"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
-msgstr ""
+msgstr "STRING"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
-msgstr ""
+msgstr "Transformações de nome de arquivo:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
-msgstr ""
+msgstr "EXPRESSION"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "O volume %s não casa com %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
-msgstr ""
+msgstr "Prestação de informações:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
-msgstr ""
+msgstr "KEYWORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
-msgstr ""
+msgstr "aviso de controle"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
-msgstr ""
+msgstr "exibe mensagens de progresso a cada NUMBERésima gravação (padrão 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
-msgstr ""
+msgstr "ACTION"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
-msgstr ""
+msgstr "Executa ACTION em cada checkpoint"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
-msgstr ""
+msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2035,300 +2196,316 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
-#, fuzzy
+#: src/tar.c:802
 msgid "print file modification times in UTC"
-msgstr "Modo inválido informado na opção"
+msgstr "imprime tempos de modificação de arquivo em UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
-msgstr ""
+msgstr "imprime tempo de arquivo em sua resolução máxima"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr ""
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
+msgstr "mostra padrões do tar"
+
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
-msgstr ""
+msgstr "STYLE"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
-msgstr ""
+msgstr "Outras opções:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
-msgstr ""
+msgstr "desabilitar o uso de alguma opção potencialmente nociva"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Não é possível especificar mais do que uma das opções \"-Acdtrux\""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opções de compressão conflitantes"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " tipo de arquivo \"%s\" desconhecido\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Arquivo de datas não encontrado"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Substituindo %s pelo formato de data desconhecido %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
+#: src/tar.c:1108
 #, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
+msgid "Option %s: Treating date '%s' as %s"
+msgstr "Opção %s: Tratando data `%s' como %s"
 
-#: src/tar.c:1201
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
-#, fuzzy, c-format
 msgid "filter the archive through %s"
-msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
+msgstr ""
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Dono inválido"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Fator de blocagem inválido"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Tamanho da fita inválido"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mais do que uma data limite"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Grupo inválido"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Modo inválido informado na opção"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 #, fuzzy
 msgid "Invalid number"
 msgstr "Número de inode inválido"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Dono inválido"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Tamanho de registro inválido"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "O tamanho dos registros tem que ser múltiplo de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 #, fuzzy
 msgid "Invalid number of elements"
 msgstr "Tamanho da fita inválido"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
-msgstr ""
+msgstr "Somente uma opção --to-command permitida"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr ""
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "Densidade desconhecida: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "As opções \"-[0-7][lmh]\" não são suportadas por *este* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
-msgstr ""
+msgstr "[ARQ]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "A opção antiga `%c' exige um argumento."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Múltiplos arquivos-tar é exigem a opção \"-M\""
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Impossivel combinar --listed-incremental com --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, fuzzy, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: O rótulo do volume é longo demais (o limite é %lu bytes)"
 msgstr[1] "%s: O rótulo do volume é longo demais (o limite é %lu bytes)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Impossível verificar arquivos-tar multi-volume"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Impossível verificar arquivos-tar compactados"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Padrão %s não pode ser usado"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Impossível usar arquivos-tar compactados multi-volume"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Impossível atualizar arquivos-tar compactados"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Padrão %s não pode ser usado"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Recusando a criar um arquivo-tar vazio"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "As opções `-Aru' são incompatíveis com `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Deve ser especificada uma das opções \"-Acdtrux\""
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2338,127 +2515,124 @@ msgstr[1] "%s: O arquivo encolheu %s bytes"
 #: src/xheader.c:164
 #, c-format
 msgid "Keyword %s is unknown or not yet implemented"
-msgstr ""
+msgstr "Palavra-chave %s não é conhecida ou ainda não está implementada"
 
-#: src/xheader.c:174
-#, fuzzy
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
-msgstr "Carimbo de horário fora da faixa"
+msgstr "Carimbo de horário fora da faixa permitida"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
-msgstr ""
+msgstr "Padrão %s não pode ser usado"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
-msgstr ""
+msgstr "Palavra-chave %s não pod ser sobrescrita"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: falta o comprimento"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "A string base-64 assinada do arquivo-tar %s está fora de faixa %s"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: falta espaço após o comprimento"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: falta sinal de igual"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: falta nova-linha"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
-msgstr ""
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
+msgstr "Ignorando chave `%s' desconhecida do cabeçalho estendido"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
-msgstr ""
+msgstr "Par de chave/valor gerado é muito longo (chave=%s, tamanho=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
-#, fuzzy, c-format
+#: src/xheader.c:1042
+#, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
-msgstr "o valor do arquivo-tar %s está fora da faixa %s: %s..%s"
+msgstr "Cabeçalho estendido %s=%s está fora da faixa %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: %s=%s inválido"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: excesso %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: %s inválido: delimitador %c inesperado"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
-msgstr ""
+msgstr "Cabeçalho estendido malformado: %s inválido: número par de valores"
 
-#: src/checkpoint.c:107
-#, fuzzy, c-format
+#: src/checkpoint.c:109
+#, c-format
 msgid "%s: not a valid timeout"
-msgstr "%s: Grupo inválido"
+msgstr "%s: não é um limite de tempo válido"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
-msgstr ""
+msgstr "%s: ação do ponto de verificação desconhecida"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
-msgstr ""
+msgstr "escreva"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
-msgstr ""
+msgstr "leia"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
-#, fuzzy, c-format
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
+#, c-format
 msgid "Write checkpoint %u"
-msgstr "Ponto de verificação de escrita %d"
+msgstr "Ponto de verificação de escrita %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
-#, fuzzy, c-format
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
+#, c-format
 msgid "Read checkpoint %u"
-msgstr "Ponto de verificação de leitura %d"
+msgstr "Ponto de verificação de leitura %u"
 
 #: tests/genfile.c:111
-#, fuzzy
 msgid ""
 "genfile manipulates data files for GNU paxutils test suite.\n"
 "OPTIONS are:\n"
-msgstr "Gera arquivos de dados para pacote de testes GNU tar.\n"
+msgstr ""
+"arquivo-gen manipula dados de arquivos para a suíte de testes do paxutils da "
+"GNU.\n"
+"OPÇÕES são:\n"
 
 #: tests/genfile.c:127
 #, fuzzy
@@ -2467,40 +2641,40 @@ msgstr "Op
 
 #: tests/genfile.c:128 tests/genfile.c:139
 msgid "SIZE"
-msgstr ""
+msgstr "TAM"
 
 #: tests/genfile.c:129
 msgid "Create file of the given SIZE"
-msgstr ""
+msgstr "Cria arquivo com tamanho TAM"
 
 #: tests/genfile.c:131
-#, fuzzy
 msgid "Write to file NAME, instead of standard output"
-msgstr "Erro ao escrever para saída padrão"
+msgstr "Escrever no arquivo NOME ao invés da saída padrão"
 
 #: tests/genfile.c:133
 msgid "Read file names from FILE"
-msgstr ""
+msgstr "Lê nomes de arquivos a partir de ARQ"
 
 #: tests/genfile.c:135
 msgid "-T reads null-terminated names"
-msgstr ""
+msgstr "-T lê nomes com terminação nula"
 
 #: tests/genfile.c:137
 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
-msgstr ""
+msgstr "Preenche o arquivo com o PADRÂO dado. PADRÃO é 'default' ou 'zeros'"
 
 #: tests/genfile.c:140
 msgid "Size of a block for sparse file"
-msgstr ""
+msgstr "Tamanho de um block para arquivo esparso"
 
 #: tests/genfile.c:142
 msgid "Generate sparse file. Rest of the command line gives the file map."
 msgstr ""
+"Gera arquivo esparso. O resto da linha de comando dá o mapa de arquivos."
 
 #: tests/genfile.c:144
 msgid "OFFSET"
-msgstr ""
+msgstr "OFFSET"
 
 #: tests/genfile.c:145
 msgid "Seek to the given offset before writing data"
@@ -2508,7 +2682,7 @@ msgstr ""
 
 #: tests/genfile.c:151
 msgid "File statistics options:"
-msgstr ""
+msgstr "Opções de estatísticas do arquivo:"
 
 #: tests/genfile.c:154
 msgid "Print contents of struct stat for each given file. Default FORMAT is: "
@@ -2519,11 +2693,8 @@ msgid "Synchronous execution options:"
 msgstr ""
 
 #: tests/genfile.c:163
-#, fuzzy
 msgid "OPTION"
-msgstr ""
-"\n"
-"Uso: %s [OPÇÃO]...\n"
+msgstr "OPTION"
 
 #: tests/genfile.c:164
 msgid ""
@@ -2537,56 +2708,62 @@ msgstr ""
 
 #: tests/genfile.c:170
 msgid "Set date for next --touch option"
-msgstr ""
+msgstr "Seta data para próxima opção --touch"
 
 #: tests/genfile.c:173
 msgid "Display executed checkpoints and exit status of COMMAND"
-msgstr ""
+msgstr "Exibe checkpoints executados e status de saída de COMMAND"
 
 #: tests/genfile.c:178
 msgid ""
 "Synchronous execution actions. These are executed when checkpoint number "
 "given by --checkpoint option is reached."
 msgstr ""
+"Ações síncronas de execução. Estes são executados quando o número de "
+"checkpoint informado pela opção --checkpoint é atingido."
 
 #: tests/genfile.c:181
 msgid ""
 "Truncate FILE to the size specified by previous --length option (or 0, if it "
 "is not given)"
 msgstr ""
+"Truncar ARQ para o tamanho especificado pela opção anterior --length (or 0, "
+"se não for informado)"
 
 #: tests/genfile.c:185
 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
 msgstr ""
+"Adiciona TAM bytes ao arquivo ARQ. O TAM é informado pela opção anterior --"
+"length."
 
 #: tests/genfile.c:188
 msgid "Update the access and modification times of FILE"
-msgstr ""
+msgstr "Atualiza o acesso e tempo de modificação de ARQ"
 
 #: tests/genfile.c:191
 msgid "Execute COMMAND"
-msgstr ""
+msgstr "Executa COMMAND"
 
 #: tests/genfile.c:194
 msgid "Unlink FILE"
-msgstr ""
+msgstr "Desfaz o link de ARQ"
 
 #: tests/genfile.c:244
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid size: %s"
-msgstr "Carimbo de horário inválido"
+msgstr "Tamanho inválido: %s"
 
 #: tests/genfile.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Number out of allowed range: %s"
-msgstr "Número do inode fora de faixa"
+msgstr "Número fora do alcance permitido: %s"
 
 #: tests/genfile.c:252
 #, c-format
 msgid "Negative size: %s"
-msgstr ""
+msgstr "Tamanho negativo: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2594,32 +2771,32 @@ msgstr ""
 #: tests/genfile.c:268
 #, c-format
 msgid "requested file length %lu, actual %lu"
-msgstr ""
+msgstr "tamanho de arquivo requisitado %lu, de fato %lu"
 
 #: tests/genfile.c:272
 #, c-format
 msgid "created file is not sparse"
-msgstr ""
+msgstr "arquivo criado não é esparso"
 
 #: tests/genfile.c:361
 #, c-format
 msgid "Error parsing number near `%s'"
-msgstr ""
+msgstr "Erro ao analise o número próximo de `%s'"
 
 #: tests/genfile.c:367
 #, fuzzy, c-format
 msgid "Unknown date format"
-msgstr "Erro de sistema desconhecido"
+msgstr "Formato de data desconhecido"
 
 #: tests/genfile.c:391
 msgid "[ARGS...]"
-msgstr ""
+msgstr "[ARGS...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
-msgstr ""
+msgstr "`%s' não pode ser aberto"
 
 #: tests/genfile.c:434
 #, fuzzy
@@ -2629,139 +2806,103 @@ msgstr "Imposs
 #: tests/genfile.c:451
 #, c-format
 msgid "file name contains null character"
-msgstr ""
+msgstr "nome de arquivo contém caractere nulo"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
-msgstr ""
+msgstr "impossível gerar arquivos esparsos na saída padrão, use a opção --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
-msgstr ""
+msgstr "Máscara incorreta (próximo a `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
-#, fuzzy, c-format
+#: tests/genfile.c:602 tests/genfile.c:635
+#, c-format
 msgid "Unknown field `%s'"
-msgstr " tipo de arquivo \"%s\" desconhecido\n"
+msgstr "Campo `%s' desconhecido"
 
-#: tests/genfile.c:660
-#, fuzzy, c-format
+#: tests/genfile.c:662
+#, c-format
 msgid "cannot set time on `%s'"
-msgstr "%s: Impossível saltar para %s"
+msgstr "ímpossível definir tempo em `%s'"
+
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "impossível desfazer link simbólico `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:701
 #, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "comando %s falhou"
+
+#: tests/genfile.c:706
+#, c-format
 msgid "cannot unlink `%s'"
-msgstr "%s: Impossível saltar para %s"
+msgstr "impossível desfazer link simbólico `%s'"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
-msgstr ""
+msgstr "Comando terminou com sucesso\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "O processo filho morreu com o sinal %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
-msgstr ""
+msgstr "Comando terminou no sinal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
-msgstr ""
+msgstr "Comando parado ao receber o sinal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
-msgstr ""
+msgstr "Comando terminado\n"
 
-#: tests/genfile.c:871
-#, fuzzy, c-format
+#: tests/genfile.c:879
+#, c-format
 msgid "--stat requires file names"
-msgstr "--Nomes de arquivos truncados--\n"
-
-#, fuzzy
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: arquivo removido antes de ser lido"
-
-#, fuzzy
-#~ msgid "Cannot restore working directory"
-#~ msgstr "Impossível salvar diretório de trabalho"
-
-#, fuzzy
-#~ msgid "Cannot resolve hostname %s"
-#~ msgstr "%s: Impossível renomear para %s"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: opção ilegal -- %c\n"
-
-#~ msgid "Reading %s\n"
-#~ msgstr "Lendo %s\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to <%s>.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Informar erros no programa para <bug-tar@gnu.org>.\n"
-#~ "Informar erros na tradução para <afmenez@terra.com.br>.\n"
+msgstr "--stat exige nomes de arquivos"
 
 #, fuzzy
-#~ msgid "filter the archive through compress"
-#~ msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Impossível mudar o diretório de trabalho"
 
-#, fuzzy
-#~ msgid "filter the archive through lzma"
-#~ msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
-
-#, fuzzy
-#~ msgid "filter the archive through lzop"
-#~ msgstr "%s: arquivo é o arquivo-tar; não será arquivado"
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "ordena nome para extração para casar com registro de arquivos"
 
-#~ msgid "rmtd: Cannot allocate buffer space\n"
-#~ msgstr "rmtd: Impossível alocar espaço para buffer\n"
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Campo muito longo durante leitura de arquivo instantâneo"
 
-#~ msgid "Cannot allocate buffer space"
-#~ msgstr "Impossível alocar espaço para buffer"
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Erro de leitura em arquivo instantâneo"
 
-#~ msgid "Try `%s --help' for more information.\n"
-#~ msgstr "Tente `%s --help' para mais informações.\n"
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Campo com valor inesperado em arquivo instantâneo"
 
 #, fuzzy
-#~ msgid ""
-#~ "Usage: %s [OPTION]\n"
-#~ "Manipulate a tape drive, accepting commands from a remote process.\n"
-#~ "\n"
-#~ "  --version  Output version info.\n"
-#~ "  --help     Output this help.\n"
-#~ msgstr ""
-#~ "Uso: %s [OPÇÃO]\n"
-#~ "Manipula uma unidade de fita, aceitando comandos de um processo remoto.\n"
-#~ "\n"
-#~ "  --version  Mostra informações de versão.\n"
-#~ "  --help   Mostra esta ajuda.\n"
+#~ msgid "Invalid group"
+#~ msgstr "%s: Grupo inválido"
 
-#, fuzzy
-#~ msgid "Seek offset error"
-#~ msgstr "Deslocamento de procura fora de faixa"
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Comprimento do cabeçalho estendido está fora da faixa permitida"
 
-#~ msgid "Premature end of file"
-#~ msgstr "Fim de arquivo prematuro"
-
-#~ msgid "Error is not recoverable: exiting now"
-#~ msgstr "Erro não é recuperável: saindo agora"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: opção ilegal -- %c\n"
 
 #~ msgid "block size"
 #~ msgstr "tamanho de bloco"
@@ -2778,6 +2919,9 @@ msgstr "--Nomes de arquivos truncados--\n"
 #~ msgid "tar (grandchild)"
 #~ msgstr "tar (neto)"
 
+#~ msgid "Reading %s\n"
+#~ msgstr "Lendo %s\n"
+
 #~ msgid "WARNING: No volume header"
 #~ msgstr "AVISO: Não há cabeçalho de volume"
 
@@ -2793,6 +2937,9 @@ msgstr "--Nomes de arquivos truncados--\n"
 #~ msgid "Visible long name error"
 #~ msgstr "Erro evidente de nome longo"
 
+#~ msgid "Error is not recoverable: exiting now"
+#~ msgstr "Erro não é recuperável: saindo agora"
+
 #~ msgid "Device number out of range"
 #~ msgstr "Número do dispositivo fora de faixa"
 
@@ -2802,9 +2949,6 @@ msgstr "--Nomes de arquivos truncados--\n"
 #~ msgid "Renamed %s to %s"
 #~ msgstr "Renomeado %s para %s"
 
-#~ msgid "%s: Cannot symlink to %s"
-#~ msgstr "%s: Impossível fazer link simbólico para %s"
-
 #~ msgid "Symlinked %s to %s"
 #~ msgstr "%s ligado simbolicamente a %s (\"link\")"
 
@@ -2814,6 +2958,12 @@ msgstr "--Nomes de arquivos truncados--\n"
 #~ msgid "Missing file name after -C"
 #~ msgstr "Falta um nome de arquivo após \"-C\""
 
+#~ msgid "rmtd: Cannot allocate buffer space\n"
+#~ msgstr "rmtd: Impossível alocar espaço para buffer\n"
+
+#~ msgid "Cannot allocate buffer space"
+#~ msgstr "Impossível alocar espaço para buffer"
+
 #~ msgid ""
 #~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
 #~ "You may redistribute it under the terms of the GNU General Public "
@@ -2824,6 +2974,9 @@ msgstr "--Nomes de arquivos truncados--\n"
 #~ "Pode ser redistribuído sob os termos da Licença Publica Geral GNU;\n"
 #~ "veja o arquivo COPYING para maiores detalhes."
 
+#~ msgid "Premature end of file"
+#~ msgstr "Fim de arquivo prematuro"
+
 #~ msgid "rmtd: Garbage command %c\n"
 #~ msgstr "rmtd: Comando \"%c\" não faz sentido\n"
 
index 7a011b6f13fca6077e2ac2f5492656cf5a11b78c..6257e34b284491bbe88a862861b12c7131baf33a 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index c6c17dd64283a619fee7cbcb766ff4590a13d549..76ead35018aaed442c77b798d3ef44c314a62a9b 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -3,12 +3,12 @@
 # Laurentiu Buzdugan <lbuz@rolix.org>>, 2005.
 #
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.15.1\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2005-07-15 12:00-0500\n"
 "Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -29,36 +29,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "argument ambiguu %s pentru %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Argumente valide sunt:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: parametrul ARGP_HELP_FMT necesitã o valoare"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, fuzzy, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: parametrul ARGP_HELP_FMT necesitã o valoare"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: parametru ARGP_HELP_FMT necunoscut"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Gunoi în ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -66,30 +65,30 @@ msgstr ""
 "Argumentele obligatorii sau opþionale pentru opþiunile lungi sunt "
 "obligatorii sau opþionale ºi pentru opþiunile corespunzãtoare scurte."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Folosire:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " sau: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [OPÞIUNE...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 "Încercaþi `%s --help' sau `%s --usage'  pentru informaþii suplimentare.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Raportaþi bug-uri la %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Eroare sistem necunoscutã"
 
@@ -103,7 +102,7 @@ msgstr "Afi
 msgid "give a short usage message"
 msgstr "Afiºeazã un scurt mesaj despre folosire"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NUME"
@@ -125,17 +124,16 @@ msgstr ""
 msgid "print program version"
 msgstr "Afiºeazã versiunea programului"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: opþiunea `%s' necesitã un argument\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -143,62 +141,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opþiunea `%s' este ambiguã\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `--%s' nu permite un argument\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `%c%s' nu permite un argument\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opþiunea `%s' necesitã un argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opþiunea `--%s' nu este recunoscutã\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opþiunea `%c%s' bu este recunoscutã\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opþiune invalidã -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opþiunea necesitã un argument -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opþiunea `-W %s' este ambiguã\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `-W %s' nu permite un argument\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opþiunea `%s' necesitã un argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "memorie epuizatã"
 
@@ -214,28 +212,30 @@ msgstr "Nu pot salva directorul 
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -245,7 +245,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -255,7 +255,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -516,7 +516,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Nu pot executa shell remote"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Nu pot executa shell remote"
@@ -572,8 +577,8 @@ msgstr "EOF nea
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMÃR"
 
@@ -581,8 +586,8 @@ msgstr "NUM
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -597,7 +602,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s: Nu pot cãuta (seek) cãtre %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -606,9 +611,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Comandã gunoi"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Aceasta nu pare a fi o arhivã tar"
 
@@ -647,64 +652,64 @@ msgstr "Nu pot verifica arhive atdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "Arhiva este compresatã. Folosiþi opþiunea %s."
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Nu pot actualiza arhive comprimate"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "La începutul benzii, ieºim acum"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Prea multe erori, ieºim"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Dimensiune înregistrare = %lu bloc"
 msgstr[1] "Dimensiune înregistrare = %lu blocuri"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Bloc ne-aliniat (%lu octet) în arhivã"
 msgstr[1] "Bloc ne-aliniat (%lu octeþi) în arhivã"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Nu pot backspace fiºierul arhivã; acesta ar putea fi de necitit fãrã -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek nu s-a oprit la limita unei înregistrãri"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: conþine numãr volum invalid"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Depãºire domeniu numãr volum"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Preparã volum #%d pentru %s ºi apasã tasta return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "EOF unde era aºteptat rãspunsul utilizatorului"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "AVERTISMENT: Arhiva este incompletã"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -716,474 +721,498 @@ msgstr ""
 " !          Lanseazã un subshell\n"
 " ?          Afiºeazã aceastã listã de opþiuni\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Nici un volum nou; terminãm.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "`%s' comanda a eºuat"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s nu este continuat pe acest volum"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s nu este continuat pe acest volum"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s este de dimensiune greºitã (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Acest volum este în afara secvenþei"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arhiva nu este etichetatã sã se potriveascã cu %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volumul %s nu se potriveºte cu %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, fuzzy, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 "%s: nume fiºier prea lung pentru a fi storat într-un antet GNU multivolum"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 #, fuzzy
 msgid "write did not end on a block boundary"
 msgstr "rmtlseek nu s-a oprit la limita unei înregistrãri"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Am putut citi doar %lu din %lu octet"
 msgstr[1] "Am putut citi doar %lu din %lu octeþi"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Conþinuturile diferã"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "EOF neaºteptat în arhivã"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Tipul fiºierelor diferã"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Modurile diferã"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid diferã"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid diferã"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Timp modificare diferã"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Dimensiunea diferã"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Nu este link-at cãtre %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symlink diferã"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Numãr dispozitiv diferã"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verificã "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 "%s: Tip de fiºier necunoscut '%c', folosesc diff ca pentru un fiºier normal"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arhiva conþine nume de fiºiere cu prefixele îndepãrtate."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Arhiva conþine antete în baza-64 depãºite"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Verificare ar putea eºua sã gãseascã fiºierele originale."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "VERIFICàEªEC: detectat %d antet invalid"
 msgstr[1] "VERIFICàEªEC: detectat %d antete invalide"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Un bloc zero singuratic la %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, fuzzy, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: conþine o etichetã de director cache; nimic generat"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "valoarea %s în afara %s intervalului %s..%s; înlocuiesc %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "valoarea %s în afara %s intervalului %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Generez antete octale negative"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: numele fiºierul este prea lung (maxim %d); nimic generat"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: numele fiºierul este prea lung (nu poate fi spart); nimic generat"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: numele link-ului este prea lung; nimic generat"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Fiºier scurtat cu %s octet; completat cu zerouri"
 msgstr[1] "%s: Fiºier scurtat cu %s octeþi; completat cu zerouri"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: fiºierul este pe un sistem de fiºiere diferit; nimic generat"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Tip de fiºier necunoscut; fiºier ignorat"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr "Link lipsã cãtre '%s'.\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: fiºierul este neschimbat; nimic generat"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: fiºierul este în arhivã; nimic generat"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 #, fuzzy
 msgid "directory not dumped"
 msgstr "%s: conþine o etichetã de director cache; nimic generat"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: fiºier schimbat în timp ce îl citeam"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socket ignorat"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: uºã ignoratã"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Sãrim la urmãtorul antet"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "ªtergem non-antet din arhivã"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: înregistrare de timp neverosimilã %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: înregistrare timp %s este %lu sec în viitor"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Inconsistenþã neaºteptatã când cream directorul"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Director redenumit înainte de a fi putut extrage starea sa"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extragem fiºiere contigue ca fiºiere normale"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Încerc extragerea link-urilor simbolice ca link-uri hard"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Nu pot extrage -- fiºierul este continuat din altã arhivã"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "EOF neaºteptat în numele amestecate"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Tip de fiºier necunoscut '%c', extras ca fiºier normal"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, fuzzy, c-format
 msgid "Current %s is newer or same age"
 msgstr "`%s' curent este mai nou"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Nu am putut arhiva (backup) acest fiºier"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: Nu pot redenumi ca %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Directorul a fost redenumit"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Directorul a fost redenumit"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Directorul este nou"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: fiºierul este pe un sistem de fiºiere diferit; nimic generat"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Directorul a fost redenumit"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Înregistrare timp invalidã"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Mod invalid furnizat ca opþiune"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Numãr dispozitiv invalid"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Numãr inode invalid"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "EOF neaºteptat în arhivã"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Argument densitate malformat: '%s'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 #, fuzzy
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Argument densitate malformat: '%s'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr ""
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Nu curãþ director: nu pot determina statistici"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: directorul este pe un dispozitiv (device) diferit; necurãþat"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: ªtergem %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Nu pot ºterge"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Omis"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "bloc %s: ** Bloc de NUL-uri **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "bloc %s: ** Sfârºit de fiºier **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "bloc %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Spaþii libere în antet unde valoare %s numericã aºteptatã"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1191,163 +1220,178 @@ msgstr ""
 "lui doi"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Valoare octalã arhivã %.*s este în afara %s intervalului"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arhiva conþine antete în baza-64 depãºite"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "ªir în baza-64 (semnãtura arhivei) %s este în afara %s intervalului"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Valoare baza-256 a arhivei este în afara %s intervalului"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arhiva conþine %.*s unde valoare %s numericã aºteptatã"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, fuzzy, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Valoare arhivã %s este în afara %s intervalului %s.%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " link cãtre %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " tip fiºier necunoscut %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Link Lung--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Nume Lung--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Antet Volum--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Continuat la octet %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Creez director:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Nu pot schimba directorul în care lucrez"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Redenumesc %s ca %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Nu pot redenumi ca %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Redenumesc %s înapoi ca %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fiºier ºters înainte de a-l putea citi"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proces copil"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "canal între-procese"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "`%s' comanda a eºuat"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: fiºierul este în arhivã; nimic generat"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s: Nu pot cãuta (seek) cãtre %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 #, fuzzy
 msgid "Pattern matching characters used in file names"
 msgstr "pattern-urile de excludere potrivesc începutul numelor de fiºiere"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Nu a fost gãsit în arhivã"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Lucrul cerut nu a fost gãsit în arhivã"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Arhiva nu este etichetatã sã se potriveascã cu %s"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Opþiunile `-%s' ºi `-%s' vor amândouã intrarea standard"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Format arhivã invalid"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Capabilitãþi GNU cerute pentru un format de arhivã incompatibil"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1372,10 +1416,10 @@ msgstr ""
 "  nil, existing   numeroteazã dacã existã backup numerotat, altfel simplu\n"
 "  never, simple   întotdeauna creazã backup simplu\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1401,79 +1445,79 @@ msgstr ""
 "  nil, existing   numeroteazã dacã existã backup numerotat, altfel simplu\n"
 "  never, simple   întotdeauna creazã backup simplu\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Mod de operare principal:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "listeazã conþinutul unei arhive"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "extrage fiºiere dintr-o arhivã"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "creazã o nouã arhivã"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "gãseºte diferenþele dintre arhive ºi sistemul de fiºiere"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "adaugã fiºiere la sfârºitul unei arhive"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "adaugã numai fiºierele mai noi decât copia din arhivã"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "adaugã fiºiere tar la o arhivã"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "ºterge din arhivã (nu pe benzi magnetice!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modificatori operaþie:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "manipuleazã eficient fiºierele rerefiate (sparse)"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "foloseºte vechiul format GNU pentru backup incremental"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "foloseºte noul format GNU pentru backup incremental"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "nu termina cu non-zero pentru fiºiere ce nu pot fi citite"
 
-#: src/tar.c:429
+#: src/tar.c:445
 #, fuzzy
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
@@ -1486,314 +1530,367 @@ msgstr ""
 "--diff, --extract sau --list ºi când o listã de fiºiere este datã fie în "
 "linia de comandã sau folosind opþiunea -T.  Implicit, NUMBER=1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 #, fuzzy
 msgid "archive is seekable"
 msgstr "Arhiva este cãutabilã"
 
-#: src/tar.c:437
+#: src/tar.c:453
 #, fuzzy
 msgid "archive is not seekable"
 msgstr "Arhiva este cãutabilã"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "încearcã sã verifici arhiva dupã scrierea sa"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "ºterge fiºierele dupã ce acestea sunt adãugate la arhivã"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "nu înlocui fiºierele existente la extragere"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "nu înlocui fiºierele existente la extragere"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "nu înlocui fiºierele existente care sunt mai noi decât copiile acestora din "
 "arhivã"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "supra-scrie fiºierele existente la extragere"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "ºterge fiecare fiºier înainte de a extrage peste acesta"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "goleºte ierarhiile înainte de a extrage un director"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "pãstrazã metadata directoarelor existente"
 
-#: src/tar.c:467
+#: src/tar.c:487
 #, fuzzy
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "supra-scrie fiºierele existente la extragere"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "supra-scrie fiºierele existente la extragere"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "extrage fiºierele la ieºirea standard"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMANDÃ"
 
-#: src/tar.c:478
+#: src/tar.c:501
 #, fuzzy
 msgid "pipe extracted files to another program"
 msgstr "extrage fiºierele la ieºirea standard"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Manipulare atribute fiºiere:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "forþeazã NUME ca proprietar pentru fiºierele adãugate"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "forþeazã NUME ca grup pentru fiºierele adãugate"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATA-FIªIERULUI"
 
-#: src/tar.c:494
+#: src/tar.c:517
 #, fuzzy
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "stocheazã numai fiºiere mai noi decât DATA-FIªIERULUI"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "SCHIMBÃRI"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "forþeazã mod (simbolic) SCHIMBÃRI pentru fiºierele adãugate"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "nu extrage timpul de modificare al fiºierului"
 
-#: src/tar.c:505
+#: src/tar.c:528
 #, fuzzy
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "încearcã extragerea fiºierelor cu aceleaºi drepturi (ownership)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 #, fuzzy
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "extrage fiºierele ca dvs. însuºi"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "foloseºte întotdeauna numere pentru numele utilizator/grup"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "sorteazã numele de extras sã se potriveascã cu arhiva"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "la fel ca -p ºi -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Manipulare atribute fiºiere:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Selectare ºi schimbare unitate:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARHIVÃ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "foloseºte fiºier arhivã sau unitate ARHIVÃ"
 
-#: src/tar.c:535
+#: src/tar.c:581
 #, fuzzy
 msgid "archive file is local even if it has a colon"
 msgstr "fiºier arhivã este local chiar când are un :"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "foloseºte rmt COMANDàîn loc de rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "foloseºte remote COMANDàîn loc de rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "specificã unitate ºi densitate"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "creazã/listeazã/extrage arhiva pe volume multiple"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "schimbã banda dupã scriere a NUMÃR x 1024 octeþi"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "ruleazã script la terminarea fiecãrei benzi (implicã -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "foloseºte/actualizeazã numãrul de volum în FIªIER"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blocuri unitate:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCURI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOCURI x 512 octeþi pe întregistrare"
 
-#: src/tar.c:574
+#: src/tar.c:620
 #, fuzzy
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "DIMENSIUNE octeþi pe înregistrare, multiplu de 12"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignorã blocuri zero-uate în arhivã (înseamnã EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "redimensioneazã bloc în timpul citirii (pentru pipe-uri BSD4.2"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Selecþie format arhivã:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 #, fuzzy
 msgid "create archive of the given format"
 msgstr "creazã arhiva de formatul dat."
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT este unul din urmãtoarele"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "vechiul format tar V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "oldgnu    formatul GNU format ca pentru tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "formatul GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "formatul POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "formatul POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 #, fuzzy
 msgid "same as pax"
 msgstr "ca ºi pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "ca ºi --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "ca ºi --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 #, fuzzy
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "cuvânt_cheie[[:]=valoare][,cuvânt_cheie[[:]=valoare], ...]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "controleazã cuvintele cheie pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 #, fuzzy
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
@@ -1802,173 +1899,175 @@ msgstr ""
 "creazã arhivã nu nume volum NUME. La listare/extragere, foloseºte TEXT ca "
 "pattern de globbing"
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Opþiunile de compresie sunt în conflict"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtreazã prin PROG (trebuie sã accepte -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Selecþie fiºier local:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "schimbã în directorul DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 #, fuzzy
 msgid "get names to extract or create from FILE"
 msgstr "obþine numele de extras sau creat din fiºierul NUME"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T citeºte nume terminate cu null, deactiveazã cu -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATTERN"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "exclude fiºiere, date ca un PATTERN"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "pattern-urile de excludere sunt listate în FIªIER"
 
-#: src/tar.c:658
+#: src/tar.c:704
 #, fuzzy
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:661
+#: src/tar.c:707
 #, fuzzy
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:664
+#: src/tar.c:710
 #, fuzzy
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:666
+#: src/tar.c:712
 #, fuzzy
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:669
+#: src/tar.c:715
 #, fuzzy
 msgid "exclude everything under directories containing FILE"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:671
+#: src/tar.c:717
 #, fuzzy
 msgid "exclude directories containing FILE"
 msgstr "exclude directoarele ce conþin o etichetã cache"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "evitã coborârea automatã în directoare"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "stai în sistemul de fiºire local la creare arhivei"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "coboarã recursiv în directoare (implicit)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "nu elimina primul `/' din numele fiºierelor"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NUME-MEMBRU"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "începe la membrul NUME-MEMBRU în arhivã"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "stocheazã numai fiºiere mai noi decât DATA-FIªIERULUI"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATA"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "comparã data ºi timpul numai când a fost schimbatã data"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "fã backup înainte de ºtergere, alege CONTROL pentru versiuni"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "ªIR"
 
-#: src/tar.c:698
+#: src/tar.c:744
 #, fuzzy
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
@@ -1977,103 +2076,103 @@ msgstr ""
 "fã backup înainte de ºtergere, înlocuieºte prefixul normal ('~' în afarã de "
 "cazul când este determinat de variabila de mediu SIMPLE_BACKUP_SUFFIX"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 #, fuzzy
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "eliminã NUMÃR componente de la începutul numelor fiºierelor"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 #, fuzzy
 msgid "ignore case"
 msgstr "în excluderi ignorã cazul caracterelor (minuscule/majuscule)"
 
-#: src/tar.c:719
+#: src/tar.c:765
 #, fuzzy
 msgid "patterns match file name start"
 msgstr "pattern-urile de excludere potrivesc începutul numelor de fiºiere"
 
-#: src/tar.c:721
+#: src/tar.c:767
 #, fuzzy
-msgid "patterns match after any `/' (default for exclusion)"
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "pattern-urile de excludere potrivesc dupã orice / (implicit)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 #, fuzzy
 msgid "case sensitive matching (default)"
 msgstr "excluderea depinde de caz (minuscule/majuscule) (implicit)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "wildcard-urile în pattern-urile de excludere nu potrivesc '/'"
 
-#: src/tar.c:731
+#: src/tar.c:777
 #, fuzzy
-msgid "wildcards match `/' (default for exclusion)"
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "wildcard-urile din pattern-urile de excludere potrivesc '/' (implicit)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Ieºire informativã:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "listeazã cu amãnunte fiºierele procesate"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 #, fuzzy
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "afiºeazã mesaje despre progres la fiecare al 10-a înregistrare"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "afiºeazã un mesaj dacã nu toate link-urile sunt prelucrate"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2081,33 +2180,37 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "afiºeazã datele de modificare a fiºierelor în UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "trimite ieºire detaliatã în FIªIER"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "aratã numãrul blocului din arhivã pentru fiecare mesaj"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "cere confirmare pentru fiecare acþiune"
 
-#: src/tar.c:767
+#: src/tar.c:813
 #, fuzzy
 msgid "show tar defaults"
 msgstr "Aratã valorire implicite folosite de tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 #, fuzzy
 msgid ""
 "when listing or extracting, list each directory that does not match search "
@@ -2116,95 +2219,87 @@ msgstr ""
 "La listare sau extragere, listeazã fiecare director care nu se potriveºte cu "
 "criteriile de cãutare"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Opþiuni compatibilitate:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 #, fuzzy
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "la creare, ca ºi --old-archive.  La extragere, ca ºi --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Alte opþiuni:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Nu puteþi specifica mai mult de una dintre opþiunile `-Acdtrux'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Opþiunile de compresie sunt în conflict"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " tip fiºier necunoscut %s\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Fiºier date nu a fost gãsit"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Înlocuim %s pentru format de datã necunoscut %s"
 
-#: src/tar.c:1057
+#: src/tar.c:1108
 #, fuzzy, c-format
-msgid "Option %s: Treating date `%s' as %s"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Tratez data `%s' ca %s + %ld nanosecundã"
 
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: fiºierul este în arhivã; nimic generat"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "filtreazã arhiva prin gzip"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2212,174 +2307,199 @@ msgstr ""
 "\n"
 "*Acest* tar foloseºte implicit:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Proprietar invalid"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Factor blocuri invalid"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Lungime de bandã invalidã"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mai mult de o singurã datã limitã"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Grup invalid"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Mod invalid furnizat ca opþiune"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Numãr invalid"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Proprietar invalid"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Dimensiune înregistrare invalidã"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Dimensiune înregistrare trebuie sã fie un multiplu de %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Numãr invalid de elemente"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, fuzzy, c-format
 msgid "Malformed density argument: %s"
 msgstr "Argument densitate malformat: '%s'"
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, fuzzy, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr "Densitate necunoscutã: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Opþiunile `-[0-7][lmh]' nu sunt suportate de *acest* tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FIªIER]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Vechea opþiune `%c' necesitã un argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence n-are sens fãrã o listã de fiºiere"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence nu poate fi folosit în modul de operare cerut"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Fiºiere de arhivã multiple necesitã opþiunea `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Nu puteþi combina --listed-incremental cu --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 #, fuzzy
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--occurrence n-are sens fãrã o listã de fiºiere"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Eticheta volumului este prea lungã (limita este %lu octet)"
 msgstr[1] "%s: Eticheta volumului este prea lungã (limita este %lu octeþi)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Nu pot verifica arhive pe volume multiple"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Nu pot verifica arhive comprimate"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Pattern-ul %s nu poate fi folosit"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Nu pot folosi arhive comprimate pe volume multiple"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Nu pot actualiza arhive comprimate"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Pattern-ul %s nu poate fi folosit"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Refuz categoric sã creez o arhivã goalã"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Opþiunile `-Aru' sunt incompatibile cu `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Trebuie sã specificaþi una din opþiunile `-Acdtrux'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2391,118 +2511,114 @@ msgstr[1] "%s: Fi
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Cuvânt_cheie %s necunoscut sau încã neimplementat"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Înregistrare timp în afara domeniului"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Pattern-ul %s nu poate fi folosit"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Cuvânt_cheie %s nu poate fi înlocuit (overridden)"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 #, fuzzy
 msgid "Malformed extended header: missing length"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "ªir în baza-64 (semnãtura arhivei) %s este în afara %s intervalului"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 #, fuzzy
 msgid "Malformed extended header: missing blank after length"
 msgstr "Antet extins malformat: lipseºte spaþiu liber dupã lungime"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 #, fuzzy
 msgid "Malformed extended header: missing newline"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Valoare arhivã %s este în afara %s intervalului %s.%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, fuzzy, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, fuzzy, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Antet extins malformat: lipseºte semnul egal"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Grup invalid"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Scrie punct de verificare %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Citeºte punct de verificare %d"
@@ -2642,7 +2758,7 @@ msgstr "Num
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2671,8 +2787,8 @@ msgstr "Eroare sistem necunoscut
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2687,66 +2803,87 @@ msgstr "%s: Nu pot c
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr " tip fiºier necunoscut %s\n"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s: Nu pot cãuta (seek) cãtre %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s: Nu pot cãuta (seek) cãtre %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "`%s' comanda a eºuat"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s: Nu pot cãuta (seek) cãtre %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr ""
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Amestecat numele fiºierelor--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Nu pot schimba directorul în care lucrez"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "sorteazã numele de extras sã se potriveascã cu arhiva"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Grup invalid"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Fiºier ºters înainte de a-l putea citi"
index f9ee7dbb04b0c3e60acb5b5c8c7fdc693de3fda8..ea045fc95d4e7930c542d8e09a63a0f4b309ca10 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 24ef953ec18814ee3f8c09d931b50f0b130fb522..1210dfb87a687aa9c4439c0b7a0eff7cf2cece30 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,12 +6,12 @@
 # Yuri Kozlov <yuray@komyakino.ru>, 2009.
 # Pavel Maryanov <acid@jack.kiev.ua>, 2010.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.24\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2010-10-25 12:19+0200\n"
 "Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -33,36 +33,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "неоднозначный аргумент %s для %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Допустимые аргументы:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: Значение %s меньше или равно %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Для параметра ARGP_HELP_FMT требуется значение"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Параметра ARGP_HELP_FMT должен быть положительным"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Неизвестный параметр ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Мусор в ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -71,31 +70,31 @@ msgstr ""
 "являются обязательными или необязательными для соответствующих коротких "
 "параметров."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Использование:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " или: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [ПАРАМЕТР...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 "Попробуйте `%s --help' или `%s --usage' для получения дополнительных "
 "сведений.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Отчёты об ошибках отправляйте по адресу: %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Неизвестная системная ошибка"
 
@@ -107,7 +106,7 @@ msgstr "вывод этой справки"
 msgid "give a short usage message"
 msgstr "вывод короткого сообщения об использовании"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "ИМЯ"
@@ -128,17 +127,16 @@ msgstr "ожидание в течение заданных СЕКУНД (по 
 msgid "print program version"
 msgstr "вывод версии программы"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ОШИБКА ПРОГРАММЫ) Неизвестная версия?!"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Слишком много аргументов\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был быть распознан?!"
 
@@ -146,62 +144,62 @@ msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был 
 msgid "write error"
 msgstr "ошибка записи"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: параметр «%s» не однозначен\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: с параметром «--%s» нельзя использовать аргумент\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: с параметром «%c%s» нельзя использовать аргумент\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: для параметра «--%s» требуется аргумент\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: нераспознанный параметр «--%s»\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: нераспознанный параметр «%c%s»\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: недопустимый параметр -- «%c»\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: для параметра требуется аргумент -- «%c»\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: параметр «-W %s» неоднозначен\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: с параметром «-W %s» нельзя использовать аргумент\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: для параметра «-W %s» требуется аргумент\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "недостаточно памяти"
 
@@ -217,28 +215,30 @@ msgstr "не удалось вернуться в первоначальный 
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "«"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "»"
 
@@ -248,7 +248,7 @@ msgstr "»"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yY]"
 
@@ -258,7 +258,7 @@ msgstr "^[yY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -545,7 +545,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Не удаётся подключиться к %s: ошибка разрешения"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Не удаётся запустить удалённый командный процессор"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Не удаётся запустить удалённый командный процессор"
@@ -596,8 +601,8 @@ msgstr ""
 "Работа с накопителем на магнитной ленте с приёмом команд от удалённого "
 "процесса"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "N"
 
@@ -605,8 +610,8 @@ msgstr "N"
 msgid "set debug level"
 msgstr "задайте уровень отладки"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -621,7 +626,7 @@ msgstr "задайте имя выходного файла отладки"
 msgid "cannot open %s"
 msgstr "не удаётся открыть %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "слишком много аргументов"
@@ -630,9 +635,9 @@ msgstr "слишком много аргументов"
 msgid "Garbage command"
 msgstr "Неверная команда"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Это не похоже на tar-архив"
 
@@ -670,19 +675,19 @@ msgstr "Не удаётся проверить архив на stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "Архив сжат. Используйте параметр %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Не удаётся обновить сжатые архивы"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Начало ленты, завершение работы"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Слишком много ошибок, завершение работы"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -690,7 +695,7 @@ msgstr[0] "Размер записи = %lu блок"
 msgstr[1] "Размер записи = %lu блока"
 msgstr[2] "Размер записи = %lu блоков"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -698,39 +703,39 @@ msgstr[0] "Невыровненный блок (%lu байт) в архиве"
 msgstr[1] "Невыровненный блок (%lu байта) в архиве"
 msgstr[2] "Невыровненный блок (%lu байт) в архиве"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Невозможно вернуться назад на один архивный файл; он может быть нечитаемым "
 "без -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek не остановился на границе записи"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: содержит неверный номер тома"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Переполнение номера тома"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Приготовьте том Номер %d для %s и нажмите Enter: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Конец файла вместо ожидаемого ответа пользователя"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: Архив не полный"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -742,66 +747,66 @@ msgstr ""
 " q             Выход из tar\n"
 " y или [нов.строка] Продолжение операции\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Порождение подпроцесса командного процессора\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Вывод этого списка\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Нет нового тома, завершение работы.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Не указано имя имя файла. Попробуйте ещё раз.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Неверные входные данные. Наберите ? для получения справки.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Сбой команды %s"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s, возможно, продолжается на этом томе - в заголовке находится усечённое имя"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s не продолжается на этом томе"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s является неверным размером (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Этот том вне последовательности (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Метка архива не соответствует %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Том %s не соответствует %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -809,11 +814,11 @@ msgstr ""
 "%s: слишком длинное имя файла для сохранения в многотомном заголовке GNU; "
 "обрезано"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "запись не остановилась на границе блока"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -821,76 +826,76 @@ msgstr[0] "Можно было прочитать только %lu байт из
 msgstr[1] "Можно было прочитать только %lu байта из %lu"
 msgstr[2] "Можно было прочитать только %lu байт из %lu"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Содержимое различно"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Неожиданный конец файла в архиве"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Типы файлов отличаются"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Права доступа отличаются"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid отличаются"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid отличаются"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Время изменения отличается"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Размеры отличаются"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Не ссылается на %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Символические ссылки отличаются"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Номера устройств отличаются"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Проверка "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Неизвестный тип файла `%c', сравнён как обычный файл "
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Архив содержит файлы с именами, из которых удалены префиксы."
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Архив содержит устаревающие заголовки base-64"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "При проверке оригинальные файлы могут быть не найдены."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -898,46 +903,46 @@ msgstr[0] "СБОЙ ПРОВЕРКИ: обнаружен %d неверный з
 msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовка"
 msgstr[2] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Нулевой блок в %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: содержит каталог с кэшем тегов %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "значение %s за пределами %s диапазона %s..%s; заменяется на %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "значение %s за пределами %s диапазона %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Создаются отрицательные восьмеричные заголовки"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: имя файла слишком длинное (максимум %d); не сброшено"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: имя файла слишком длинное (не может быть разделено); не сброшено"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: имя ссылки слишком длинное; не сброшено"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -945,268 +950,293 @@ msgstr[0] "%s: Файл урезан на %s байт; дополнен нуля
 msgstr[1] "%s: Файл урезан на %s байта; дополнен нулями"
 msgstr[2] "%s: Файл урезан на %s байт; дополнен нулями"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: файл находится на другой файловой системе; не сброшен"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "содержимое не сброшено"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Неизвестный тип файла; файл проигнорирован"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Отсутствуют ссылки на %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: файл не изменён; не сброшен"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: файл является архивом; не сброшен"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "каталог не сброшен"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: файл изменился во время чтения"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: сокет проигнорирован"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door проигнорирован"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Пропускается до следующего заголовка"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Удаляется не-заголовок из архива"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: невероятно старая временная метка %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: временная метка %s - %s с в будущем "
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Неожиданная противоречивость при создании каталога"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Каталог переименован до того, как мог быть извлечен его статус"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Непрерывные файлы извлекаются как обычные"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Выполняется попытка извлечь символические ссылки как жесткие"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Невозможно извлечь -- файл продолжается с другого тома"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Непредвиденный длинный заголовок имени"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Неизвестный тип файла `%c', извлечён как обычный файл"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Текущий %s более новый или такого же возраста"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Невозможно было выполнить резервное копирование этот файла"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Невозможно переименовать %s в %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Каталог был переименован из %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Каталог был переименован"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Каталог новый"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: файл находится на другой файловой системе; не сброшен"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог был переименован"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Неверная временная метка"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Неверное время изменения (секунды) "
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Неверное время изменения (наносекунды)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Неверный номер устройства"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Неверный номер inode"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Слишком длинное поле при чтении из snapshot-файла"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Ошибка чтения snapshot-файла"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Неожиданный конец файла snapshot-файле"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Неожиданное значения поля в snapshot-файле"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Отсутствует указатель конца записи"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Неверный формат инкрементного файла"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Неподдерживаемая версия инкрементного формата: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Неверно сформирован dump-каталог: 'X' повторяется"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Неверно сформирован dump-каталог: пустое имя в 'R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Неверно сформирован dump-каталог: перед 'T' не стоит 'R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Неверно сформирован dump-каталог: пустое имя в 'T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден конец данных"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Неверно сформирован dump-каталог: 'X' ни разу не использован"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Невозможно создать временный каталог с помощью шаблона %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Каталог не удалён: невозможно выполнить stat"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: Каталог находится на другом устройстве: не удален"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Удаляется %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Невозможно удалить"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Пропускается"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "блок %s: ** Блок нулей **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "блок %s: ** Конец файла **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "блок %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "В заголовке пустое поле вместо ожидаемого числового значения %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1214,108 +1244,124 @@ msgstr ""
 "дополнение до двух"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Восьмеричное значение архива %.*s за пределами диапазона %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Архив содержит устаревающие заголовки base-64"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Архив подписан строкой base-64 %s за пределами диапазона %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Значение base-256 архива за пределами диапазона %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Заголовок содержит %.*s вместо ожидаемого числового значения %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Значение архива %s за пределами %s диапазона %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " ссылка на %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " неизвестный тип файла %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Длинная ссылка--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Длинное имя--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Заголовок тома--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Продолжение с позиции %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Создание каталога:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Не удаётся получить рабочий каталог"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s переименован в %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Невозможно переименовать в %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "%s переименовывается назад в %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Файла удален до его считывания"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "дочерний процесс"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "межпроцессорный канал"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Сбой команды %s"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: список файлов уже прочитан"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "невозможно установить время в `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: в прочитанном имени файла присутствует пустой символ"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "В именах файлов используются символы подстановки"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1323,58 +1369,59 @@ msgstr ""
 "Используйте --wildcards, чтобы задействовать эти символы, или --no-"
 "wildcards, чтобы убрать это предепреждение."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Не найден в архиве"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Требуемое вхождение не найдено в архиве"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Несоответствиве метки архива"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Параметра -C в списке файлов нельзя Использовать с параметром --listed-"
 "incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 "С параметром --listed-incremental можно использовать только параметр -C"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Для обоих параметров «-%s» и «-%s» используется стандартный ввод"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Неверный формат архива"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Запрошены расширения GNU для несовместимого формата архива"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Неизвестный стиль цитирования «%s». Воспользуйтесь параметром «%s --quoting-"
 "style=help» для получения полного списка. "
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1391,9 +1438,10 @@ msgstr ""
 "архиве archive.tar.\n"
 "  tar -xf archive.tar          # Извлечение всех файлов из archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1412,80 +1460,80 @@ msgstr ""
 "простые\n"
 "  never, simple   всегда создавать простые резервные копии\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Основной режим работы:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "вывод списка содержимого архива"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "извлечение файлов из архива"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "создание нового архива"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "поиск различий между архивом и файловой системой"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "добавление файлов в конец архива"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "добавление в архив только более новых файлов"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "присоединение tar-файлов к архиву"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "удаление из архива (не на магнитных лентах!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "проверка метки тома архива и выход"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Модификаторы:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "эффективная обработка разрежённых файлов"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "установить версию используемого формата разрежения (подразумевает --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "обработка добавочного резервирования старого формата GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "обработка добавочного резервирования нового формата GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "уровень копирования для созданного разностного архива со списком"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "не завершать работу при ненулевом статусе для нечитаемых файлов"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1497,125 +1545,136 @@ msgstr ""
 "list, и когда список файлов задан либо в командной строке, либо через опцию -"
 "T. По умолчанию N равен 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "доступен поиск по архиву"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "поиск по архиву недоступен"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "не проверять номера устройств при создании инкрементных архивов"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "проверять номера устройств при создании инкрементных архивов (по умолчанию)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Управление перезаписью:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "попытка проверить архив после его записи"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "удаление файлов после их добавления в архив"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "не перезаписывать существующие файлы при извлечении"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "не перезаписывать существующие файлы при извлечении"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 "не перезаписывать существующие файлы, которые более новые, чем их копии в "
 "архиве"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "перезапись существующих файлов при извлечении"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "удаление каждого файла до извлечения поверх него"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "очистка всей иерархии до извлечения каталога"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "сохранение метаданных существующих каталогов"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "перезапись существующих файлов при извлечении (по умолчанию)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "перезапись существующих файлов при извлечении"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Выбор выходного потока:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "извлекать файлы на стандартный вывод"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "КОМАНДА"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "перенаправлять извлечённые файлы в другую программу"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "игнорировать коды завершения дочерних процессов"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "считать ненулевые коды завершения дочерних процессов как ошибку"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Обработка атрибутов файлов:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 "принудительно устанавливать ИМЯ в качестве владельца для добавленных файлов"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 "принудительно устанавливать ИМЯ в качестве группы для добавленных файлов"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "ДАТА-ИЛИ-ФАЙЛ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "устанавливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "РЕЖИМ"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 "принудительно устанавливать (символьный) РЕЖИМ доступа для добавляемых файлов"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "СПОСОБ"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1625,11 +1684,11 @@ msgstr ""
 "после чтения (СПОСОБ='replace'; используется по умолчанию) или не установки "
 "времени в первую очередь (СПОСОБ='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "не извлекать время изменения файла"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1637,22 +1696,22 @@ msgstr ""
 "попытаться извлечь файлы с тем же владельцем, что и в архиве (по умолчанию "
 "для супепользователя)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "извлекать файлы как свои собственные (по умолчанию для обычных пользователей)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "использовать числа вместо имён владельца/группы"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "извлекать информацию о правах доступа к файлу (по умолчанию для "
 "суперпользователя)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1660,15 +1719,16 @@ msgstr ""
 "применять umask пользователя при извлечении прав доступа из архива (по "
 "умолчанию для обычных пользователей)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "сортировать извлекаемые имена в том же порядке, что и в архиве"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "эквивалент -p и -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1676,140 +1736,181 @@ msgstr ""
 "не устанавливать время изменения и права доступа извлечённых каталогов до "
 "завершения процесса извлечения"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "отменить действие параметра --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Обработка атрибутов файлов:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Выбор и переключение устройств:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "АРХИВ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "использовать файл или устройство АРХИВ"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "файл архива является локальным, даже если содержит двоеточие"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "использовать указанную КОМАНДУ rmt вместо rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "использовать удалённую КОМАНДУ вместо rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "указать устройство и плотность"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "создание/листинг/извлечение многотомных архивов"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "сменить ленту после записи ЧИСЛО x 1024 байт"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 "запустить скрипт по окончании каждой ленты (подразумевается использование -М)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "использовать/обновлять номера тома в ФАЙЛЕ"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Разбиение на блоки:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "БЛОКИ"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "число БЛОКОВ x 512 байт на запись"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "ЧИСЛО байт на запись, кратное 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "игнорировать нулевые блоки в архиве (т.е. EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "заново разбивать на блоки при чтении (для каналов 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Формата архива:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "ФОРМАТ"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "создать архив в указанном формате"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "ФОРМАТОМ может быть:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "старый формат tar V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "формат GNU как в tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "формат GNU tar 1.13.х"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "формат POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "формат POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "эквивалент pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "эквивалент --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "эквивалент --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "keyword[[:]=значение][,keyword[[:]=значение]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "управляющие ключевые слова pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "ТЕКСТ"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1817,76 +1918,76 @@ msgstr ""
 "создать архив с именем тома ТЕКСТ; при листинге/извлечении использовать "
 "ТЕКСТ в качестве шаблона подстановки"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Опции сжатия:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "использовать суффикс архива для определения программы сжатия"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "не использовать суффикс архива для определения программы сжатия"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "ПРОГ"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "пропустить архив через ПРОГ (должна поддерживать -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Выбор локальных файлов:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "добавить указанный ФАЙЛ в архив (полезно, если имя начинается с дефиса)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "КАТАЛОГ"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "перейти в КАТАЛОГ"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "загрузить из ФАЙЛА имена для извлечения или создания"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T читает строки, оканчивающиеся нулём, отключает опцию -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "выключить воздействие предыдущей опции --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "убрать кавычки с имён файлов, прочитанных с опцией -T (по умолчанию)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "не убирать кавычки с имён файлов, прочитанных с опцией -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "ШАБЛОН"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "исключать файлы, определённые ШАБЛОНОМ"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "исключать шаблоны, перечисленных в ФАЙЛЕ"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1894,93 +1995,95 @@ msgstr ""
 "исключать содержимое каталогов с файлом CACHEDIR.TAG за исключением самого "
 "файла с тегами"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "исключать всё содержимое каталогов, содержащих файл CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "исключать каталоги, содержащие файл CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "исключать каталоги, содержащие ФАЙЛ, за исключением самого ФАЙЛА"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "исключать всё содержимое каталогов, содержащих ФАЙЛ"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "исключать каталоги с ФАЙЛОМ"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "исключать каталоги CVS"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "исключать резервные файлы и файлы блокировки"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "отключить автоматический спуск в каталоги"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "оставаться в локальной файловой системе при создании архива"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "рекурсивный спуск по каталогам (по умолчанию)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "не удалять начальные `/' из имен файлов"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "следовать по символьным ссылкам и сохранять файлы, на которые они указывают"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 "следовать по жёстким ссылкам и сохранять файлы, на которые они указывают"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "ИМЯ-ЧЛЕНА"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "начинать с члена ИМЯ-ЧЛЕНА в архиве"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "сохранять только те файлы, которые новее ДАТЫ-ИЛИ-ФАЙЛА"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "ДАТА"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "сравнивать дату и время, только если изменены данные"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "УПРАВЛЕНИЕ"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "делать копию перед удалением, УПРАВЛЕНИЕ выбора версий"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "СТРОКА"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1988,101 +2091,104 @@ msgstr ""
 "делать копию перед удалением, переопределяет обычный суффикс ('~', если "
 "только он не переопределён переменной окружения SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Преобразование имён файлов:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "удалять указанное ЧИСЛО начальных компонентов из имён файлов перед "
 "извлечением"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "РАСШИРЕНИЕ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "использовать замену РАСШИРЕНИЯ sed'ом для преобразования имён файлов"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Опции шаблонов подстановки для имён файлов (влияют на шаблоны включения и "
 "исключения):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "игнорировать регистр"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "шаблоны начала имени файла"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "шаблоны после любого '/' (по умолчанию для исключаемых)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "с учётом регистра (по умолчанию)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "использовать маски (по умолчанию для исключаемых)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "точное соответствие строке"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "маски не соответствуют '/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "маски соответствуют '/' (по умолчанию для исключаемых)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Вывод информации:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "подробный листинг обрабатываемых файлов"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "КЛЮЧЕВОЕ СЛОВО"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "управление предупреждением"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "вывод сообщений о ходе выполнения через каждые ЧИСЛО записей (по умолчанию "
 "10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ДЕЙСТВИЕ"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "выполнять ДЕЙСТВИЕ на каждой контрольной точке"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "вывод сообщений, если сохранены не все ссылки"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "СИГНАЛ"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2094,31 +2200,35 @@ msgstr ""
 "SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2. Также разрешается использовать имена без "
 "префикса SIG"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "вывод времени изменения файла в формате UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "вывод имени файла и его полного разрешения"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "отправить подробный вывод данных в FILE"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "выводить номера блоков архива в каждом сообщении"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "запрашивать подтверждение для каждого действия"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "показать значения tar по умолчанию"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2126,31 +2236,31 @@ msgstr ""
 "при выводе листинга или извлечении показывать все каталоги, не "
 "соответствующем условию поиска"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "показывать имена файлов или архивов после преобразования"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "СТИЛЬ"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "установить стиль цитирования имён. Значения для СТИЛЯ см. ниже"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "дополнительно цитировать символы из СТРОКИ"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "отключить цитирование символов из СТРОКИ"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Опции совместимости:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2158,62 +2268,55 @@ msgstr ""
 "при создании, эквивалент --old-archive; при извлечении, эквивалент --no-same-"
 "owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Другие опции:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "отключить использование некоторых потенциально опасных опций"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Указать можно только один из параметров «-Acdtrux» или «--test-label»"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Конфликт опций сжатия"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Неизвестное название сигнала: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Файл с образцом даты не найден"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "%s заменяется на неизвестный формат даты %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Опция `%s': дата '%s' рассматривается как %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: список файлов уже прочитан"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: в прочитанном имени файла присутствует пустой символ"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "пропустить архив через %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Допустимые аргументы для параметра --quoting-style:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2221,51 +2324,48 @@ msgstr ""
 "\n"
 "Значения по умолчанию *этого* tar:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Неверный владелец"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Неверный размер ёмкости блока"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Неверная длина ленты"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Недопустимое значение добавочного уровня"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Больше одной пороговой даты"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Неверное значение версии разрежения"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' не поддерживается на этой платформе"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "значение --checkpoint не является целым числом"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Недопустимая группа"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "В опции указан неверный режим доступа"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Неверное число"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Неверный владелец"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2273,68 +2373,70 @@ msgstr ""
 "Опция --preserve устарела, используйте --preserve-permissions --preserve-"
 "order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Неверный размер записи"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Размер записи должен быть кратен %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Неверное число элементов"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Разрешается использовать только одну опцию --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Неверно сформирован аргумент плотности: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Неизвестная плотность: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Опции `-[0-7][lmh]' не поддерживаются *этим* tar'ом"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[ФАЙЛ]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Для старой опции `%c' нужно указать аргумент."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence бесполезна без списка файлов"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence не может быть использована запрошенном режиме работы"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Для нескольких файлов архивов требуется опция `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Нельзя комбинировать --listed-incremental с --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "параметр --level не имеет смыла без --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2342,52 +2444,80 @@ msgstr[0] "%s: Метка тома слишком длинная (максиму
 msgstr[1] "%s: Метка тома слишком длинная (максимум %lu байта)"
 msgstr[2] "%s: Метка тома слишком длинная (максимум %lu байт)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Невозможно проверить многотомные архивы"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Невозможно проверить сжатые архивы"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Шаблон %s не может быть использован"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Невозможно использовать многотомные сжатые архивы"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Невозможно объединить сжатые архивы"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option может быть использована только с архивами POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option может быть использована только с архивами POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option может быть использована только с архивами POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option может быть использована только с архивами POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Шаблон %s не может быть использован"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Размер тома не может быть меньше размера записи"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order несовместим с --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Робкий отказ от создания пустого архива"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Параметры «-Aru» не совместимы с «-f -»"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Необходимо указать один из параметров -Acdtrux или --test-label"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Завершение работы с состоянием неисправности с из-за возникших ошибок"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2400,53 +2530,49 @@ msgstr[2] "%s: Файл урезан на %s байт"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Неизвестное или ещё не реализованное ключевое слово %s"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Метка времени за пределами допустимого диапазона"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Шаблон %s не может быть использован"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Ключевое слово %s не может быть перекрыто"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Неверно сформирован расширенный заголовок: отсутствует длина"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Длина расширенного заголовка за пределами допустимого диапазона"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Длина расширенного заголовка %*s за пределами допустимого диапазона"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 "Неверно сформирован расширенный заголовок: после длины отсутствует пробел"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства "
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 "Неверно сформирован расширенный заголовок: отсутствует знак новой строки"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Игнорируется неизвестное ключевое слово расширенного заголовка `%s'"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
@@ -2455,67 +2581,67 @@ msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Расширенный заголовок %s=%s за пределами диапазона %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Неверно сформирован расширенный заголовок: неверный %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Неверно сформирован расширенный заголовок: превышен %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Неверно сформирован расширенный заголовок: неверный %s: непредвиденный "
 "разделитель %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 "Неверно сформирован расширенный заголовок: неверный %s: нечётное число "
 "значений"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: недопустимое время ожидания"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: неизвестное действие контрольной точки"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "запись"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "чтение"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Контрольная точка записи %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Контрольная точка чтения %u"
@@ -2662,7 +2788,7 @@ msgstr "Число за пределами допустимого диапазо
 msgid "Negative size: %s"
 msgstr "Отрицательный размер: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "Сбой stat(%s)"
@@ -2691,8 +2817,8 @@ msgstr "Неизвестный формат даты"
 msgid "[ARGS...]"
 msgstr "[АРГУМЕНТЫ...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "невозможно открыть `%s'"
@@ -2706,68 +2832,99 @@ msgstr "невозможно найти"
 msgid "file name contains null character"
 msgstr "в имени файла присутствует пустой символ"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "невозможно вывести разрежённые файлы на стандартный вывод; используйте опцию "
 "--file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "неверная маска (возле `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Неизвестное поле `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "невозможно установить время в `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "не удаётся разорвать связь с «%s»"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Сбой команды %s"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "не удаётся разорвать связь с «%s»"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Команда успешно выполнена\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Сбой команды; состояние: %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Команда завершена по сигналу %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Команда остановлена по сигналу %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Команда сбросила дамп памяти\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Команда завершена\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "для опции --stat нужны имена файлов"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Не удаётся получить рабочий каталог"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "сортировать извлекаемые имена в том же порядке, что и в архиве"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Слишком длинное поле при чтении из snapshot-файла"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Ошибка чтения snapshot-файла"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Неожиданное значения поля в snapshot-файле"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Длина расширенного заголовка за пределами допустимого диапазона"
+
+#~ msgid "Invalid group"
+#~ msgstr "Недопустимая группа"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: каталог удалён до его чтения"
 
index f60c0ee15470c912af3dfd89fde3d7d8ac64225a..87772c613c8f188d9e13b3532602f36c0ffe9ab1 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index d748940ecff31b903eb88ae2d035219bfed9d148..95c5d4d56bc5a2a68e12899a603948ce27ce81fc 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -2,12 +2,12 @@
 # Copyright (C) 1997 Free Software Foundation, Inc.
 # Martin Lacko <lacko@host.sk>, 2001.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar- \n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2002-02-10 12:00CEST\n"
 "Last-Translator: Martin Lacko <lacko@host.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -28,62 +28,61 @@ msgid "ambiguous argument %s for %s"
 msgstr "argument %s nie je pre %s jednoznaèný"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Platné argumenty sú:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 #, fuzzy
 msgid " [OPTION...]"
 msgstr ""
 "\n"
 "Pou¾itie: %s [PREPÍNAÈ]...\n"
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, fuzzy, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Viac informácií získate príkazom `%s --help'.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, fuzzy, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
@@ -92,7 +91,7 @@ msgstr ""
 "pripomienky k pkekladu zasielajte na adresu <sk-i18n@lists.linux.sk> "
 "(slovensky).\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Neznáma systémová chyba"
 
@@ -104,7 +103,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -125,17 +124,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, fuzzy, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: prepínaè `%s' vy¾aduje argument\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -143,62 +141,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: prepínaè %s nie je jednoznaèný\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: prepínaè `--%s' musí by» zadaný bez argumentov\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: prepínaè `%c%s' musí by» zadaný bez argumentu\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: prepínaè `%s' vy¾aduje argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: neznámy prepínaè `--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: neznámy prepínaè `%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: neznámy prepínaè -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: prepínaè vy¾aduje argument -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: prepínaè `-W %s' nie je jednoznaèný\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: prepínaè `-W %s' musí by» zadaný bez argumentu\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: prepínaè `%s' vy¾aduje argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "Pamä» vyèerpaná"
 
@@ -214,28 +212,30 @@ msgstr "Pracovn
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -245,7 +245,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -255,7 +255,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -523,7 +523,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Vzdialený shell nie je mo¾né spusti»"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Vzdialený shell nie je mo¾né spusti»"
@@ -579,8 +584,8 @@ msgstr "Neo
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -588,8 +593,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -604,7 +609,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr "%s: Nedá sa zmeni» pozícia v súbore na %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -613,9 +618,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr "Neznámy príkaz"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Toto pravdepodobne nie je tar archiv"
 
@@ -654,63 +659,63 @@ msgstr "Stdin/Stdout arch
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Komprimovaný archív nie je mo¾né aktualizova»"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Páska na zaèiatku, konèím"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Príli¹ mnoho chýb, konèím"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, fuzzy, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Veµkos» záznamu = %lu blokov"
 msgstr[1] "Veµkos» záznamu = %lu blokov"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, fuzzy, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Nezarovnaný blok (%lu bajtov) v archíve"
 msgstr[1] "Nezarovnaný blok (%lu bajtov) v archíve"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "V archíve sa nie je mo¾né vráti», bez -i mô¾e by» neèitateµný"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: vracia chybné èíslo zväzku"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Èíslo zväzku preteèené"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Pripravte zväzok #%d pre archív %s a stlaète return:"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Namiesto u¾ívateµskej odpovede bol zadaný koniec súboru"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "VAROVANIE: Archiv je nekompletný"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, fuzzy, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -722,469 +727,493 @@ msgstr ""
 " !          Vytvorenie podshellu\n"
 " ?          Vypísanie tejto nápovedy\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Nie je nový zväzok; konèím.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, fuzzy, c-format
 msgid "%s command failed"
 msgstr "'%s' príkaz zlyhal"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, fuzzy, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s nepokraèuje na tomto zväzku"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s nepokraèuje na tomto zväzku"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s je chybnej då¾ky (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, fuzzy, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Tento zväzok nie je následníkem predchádzajúceho"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Pre vyhodnotenie vzorky `%s' musí by» archív pomenovaný"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Zväzok %s nezodpovedá vzorke %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr ""
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, fuzzy, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Dá sa èíta» iba %lu z %lu bajtov"
 msgstr[1] "Dá sa èíta» iba %lu z %lu bajtov"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Obsah sa lí¹i"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Neoèekávaný koniec archívu"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Typ súboru sa lí¹i"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Práva sa lí¹ia"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid sa lí¹i"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid sa lí¹i"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Èas poslednej úpravy sa lí¹i"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Veµkos» sa lí¹i"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Nie je odkazom na %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symbolický odkaz sa lí¹i"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Èíslo zariadenia sa lí¹i"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Overujem "
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Neznámy typ súboru '%c', porovnávaný ako normálny súbor"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Archív obsahuje zastaralé base-64 hlavièky"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, fuzzy, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "CHYBNÉ OVERENIE: nájdených chybných hlavièiek: %d"
 msgstr[1] "CHYBNÉ OVERENIE: nájdených chybných hlavièiek: %d"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "hodnota %s typu %s je mimo rozsah %s..%s; nahradzujem za %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Generujem záporné osmièkové hlavièky"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, fuzzy, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: súbor nie je zmenený; neaktualizovaný"
 
-#: src/create.c:622
+#: src/create.c:611
 #, fuzzy, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: súbor nie je zmenený; neaktualizovaný"
 
-#: src/create.c:649
+#: src/create.c:638
 #, fuzzy, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: súbor nie je zmenený; neaktualizovaný"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Súbor je krat¹í o : %s bajtov; Doplòujem nulami."
 msgstr[1] "%s: Súbor je krat¹í o : %s bajtov; Doplòujem nulami."
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: súbor je na inom súborovom systéme; nearchivovaný"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Neznámy typ súboru; súbor ignorovaný"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, fuzzy, c-format
 msgid "Missing links to %s."
 msgstr " odkaz na %s\n"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: súbor nie je zmenený; neaktualizovaný"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: súbor je archiv; nearchivovaný"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: súbor bol poèas èítania zmenený"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: soket ignorovaný"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: dvere ignorované"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Preskakujem na ïal¹iu hlavièku"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Z archívu je mazané to, èo nie je hlavièka"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, fuzzy, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: èasová nálepka %s je %lu z dátumu budúcnosti"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Neoèakávaná nekonzistencia, pri vytvárení adresára"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 "%s: Prieèinok bol premenovaný predtým, ako mohol by» extrahovaný jeho stav"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Súvisle ulo¾ené súbory rozbaµujem ako obyèajné súbory"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Skú¹am rozbali» symbolické odkazy ako pevné odkazy"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Nedá sa rozbali» -- súbor je pokraèovaním iného zväzku"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 #, fuzzy
 msgid "Unexpected long name header"
 msgstr "Neoèakávaný koniec v rozsekanom mene"
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, fuzzy, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Neznámy typ súboru `%c', rozbalený ako normálny súbor"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Tento súbor nebolo mo¾né zálohova»"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, fuzzy, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s: nie je mo¾né premenova» na %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, fuzzy, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Adresár bol premenovaný"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Adresár bol premenovaný"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Adresár je nový"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: súbor je na inom súborovom systéme; nearchivovaný"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresár bol premenovaný"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Neplatný èas súboru"
 
-#: src/incremen.c:1007
+#: src/incremen.c:1045
 #, fuzzy
-msgid "Invalid modification time (seconds)"
+msgid "Invalid modification time"
 msgstr "Zadáné chybné práva"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Neplatné èíslo zariadenia"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Neplatné èíslo i-uzlu"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr ""
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 #, fuzzy
 msgid "Unexpected EOF in snapshot file"
 msgstr "Neoèekávaný koniec archívu"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, fuzzy, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Pre blokový faktor (blokov na záznam) %d nie je mo¾né alokovat pamä»"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, fuzzy, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: súbor je na inom súborovom systéme; nearchivovaný"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Ma¾em %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Nedá sa zmaza»"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Vynechávam"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Konec súboru **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Medzery v hlavièke na mieste, kde je oèakávaná èíselná hodnota typu %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1192,162 +1221,177 @@ msgstr ""
 "complement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Osmièková hodnota %.*s typu %s je mimo rozsah"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Archív obsahuje zastaralé base-64 hlavièky"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Hodnota base-64 typu %s je mimo %s rozsah"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Hodnota base-256 typu %s je mimo rozsah"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Archív obsahuje %.*s tam, kde je oèakaváná èísalná hodnota typu %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Hodnota %s typu %s je mimo rozsah %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " odkaz na %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " neznámy typ súboru %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Hlavièka zväzku--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Pokraèované od %s bajtu--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Vytváram adresár:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Pracovný adresár nie je mo¾né zmeni»"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Premenovávam %s na %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: nie je mo¾né premenova» na %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Premenovávám %s spä» na %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Súbor zmazaný skôr ako mohl by» èítaný"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "potomok"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "meziprocesový kanál"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "'%s' príkaz zlyhal"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: súbor je archiv; nearchivovaný"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "%s: Nedá sa zmeni» pozícia v súbore na %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: V archíve nenájdený"
 
-#: src/names.c:611
+#: src/names.c:842
 #, fuzzy, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: V archíve nenájdený"
 
-#: src/names.c:645
+#: src/names.c:876
 #, fuzzy, c-format
 msgid "Archive label mismatch"
 msgstr "Pre vyhodnotenie vzorky `%s' musí by» archív pomenovaný"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Prepínaèe `-%s' a `-%s' vy¾adujú ¹tandardný vstup"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, fuzzy, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Chybná skupina"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU roz¹írenia po¾adované na nekompatibilnom formáte archívu"
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 #, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1363,10 +1407,10 @@ msgstr ""
 "  %s -tvf archív.tar         # Podrobne vypí¹e v¹etky súbory v archív.tar.\n"
 "  %s -xf archív.tar          # Rozbalí v¹etky súbory z archív.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
 #, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1389,80 +1433,80 @@ msgstr ""
 "                  existujú, inak tvorí jednoduché\n"
 "  never, simple   tvorí v¾dy jednoduché zálo¾né kópie súborov\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 #, fuzzy
 msgid "create a new archive"
 msgstr "Neoèekávaný koniec archívu"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1470,565 +1514,614 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr ""
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 #, fuzzy
 msgid "extract files to standard output"
 msgstr "Chyba pri zápise na ¹tandardný výstup"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 #, fuzzy
 msgid "create/list/extract multi-volume archive"
 msgstr "Víczväzkový archív nie je mo¾né otvori»"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 #, fuzzy
 msgid "Archive format selection:"
 msgstr "Odporujúce si archívne formáty"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 #, fuzzy
 msgid "Compression options:"
 msgstr "Odporujúce si kompresné prepínaèe"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 #, fuzzy
 msgid "change to directory DIR"
 msgstr "Pracovný adresár nie je mo¾né zmeni»"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
+#: src/tar.c:729
 #, fuzzy
-msgid "don't strip leading `/'s from file names"
+msgid "don't strip leading '/'s from file names"
 msgstr "Odstraòujem úvodné `%.*s' z názvov súborov"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
+#: src/tar.c:775
 #, fuzzy
-msgid "wildcards do not match `/'"
+msgid "wildcards do not match '/'"
 msgstr "Zväzok %s nezodpovedá vzorke %s"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2036,300 +2129,317 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 #, fuzzy
 msgid "print file modification times in UTC"
 msgstr "Zadáné chybné práva"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr ""
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Viac ako jeden prepínaè `-Acdtrux' nemô¾e by» zadaných"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Odporujúce si kompresné prepínaèe"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, fuzzy, c-format
 msgid "Unknown signal name: %s"
 msgstr " neznámy typ súboru %s\n"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 #, fuzzy
 msgid "Date sample file not found"
 msgstr "Dátumový súbor nebol nájdený"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Zamieòam %s za neznámy dátumový formát %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
-#, fuzzy, c-format
-msgid "%s: file list already read"
-msgstr "%s: súbor je archiv; nearchivovaný"
-
-#: src/tar.c:1201
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file name read contains nul character"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, fuzzy, c-format
 msgid "filter the archive through %s"
 msgstr "%s: súbor je archiv; nearchivovaný"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Neplatný vlastník"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Neplatný poèet bajtov na záznam"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Neplatná då¾ka pásky"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Viac ako jeden poèiatoèný dátum"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: Chybná skupina"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Zadáné chybné práva"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 #, fuzzy
 msgid "Invalid number"
 msgstr "Neplatné èíslo i-uzlu"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Neplatný vlastník"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Chybná veµkos» záznamu"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Veµkos» záznamu musí by» násobok %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 #, fuzzy
 msgid "Invalid number of elements"
 msgstr "Neplatná då¾ka pásky"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr ""
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr " neznámy typ súboru %s\n"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Prepínaè `-[0-7][lmh]' nie je podporovaný týmto tarom"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Prepínaè `%c' vy¾aduje argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
+#: src/tar.c:2408
 #, fuzzy
-msgid "Multiple archive files require `-M' option"
+msgid "Multiple archive files require '-M' option"
 msgstr "Viac archivaèných súborov vy¾aduje prepínaè `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental a --newer nie je mo¾né kombinova»"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, fuzzy, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Meno zväzku je príli¹ dlhé (limit je %lu bajtov)"
 msgstr[1] "%s: Meno zväzku je príli¹ dlhé (limit je %lu bajtov)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Víczväzkový archív nie je mo¾né otvori»"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Komprimovaný archív nie je mo¾né otvori»"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Viaczväzkový komprimovaný archív nie je mo¾né vytvori»"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 #, fuzzy
 msgid "Cannot concatenate compressed archives"
 msgstr "Komprimovaný archív nie je mo¾né aktualizova»"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Vytvorenie prázdneho archívu odmietnuté."
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Prepínaèe `-Aru' a `--delete' sú nezlúèiteµné s prepínaèom `-f -'"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Musíte zada» jeden z prepínaèov `-Acdtrux'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, fuzzy, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2341,115 +2451,111 @@ msgstr[1] "%s: S
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 #, fuzzy
 msgid "Time stamp is out of allowed range"
 msgstr "Èas súboru mimo rozsah"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, fuzzy, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Hodnota base-64 typu %s je mimo %s rozsah"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, fuzzy, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Hodnota %s typu %s je mimo rozsah %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, fuzzy, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: Chybná skupina"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, fuzzy, c-format
 msgid "Write checkpoint %u"
 msgstr "Zapisujem testovací bod %d"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, fuzzy, c-format
 msgid "Read checkpoint %u"
 msgstr "Èítanie testovacieho bodu %d"
@@ -2587,7 +2693,7 @@ msgstr "
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2616,8 +2722,8 @@ msgstr "Nezn
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2632,66 +2738,84 @@ msgstr "Ned
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, fuzzy, c-format
 msgid "Unknown field `%s'"
 msgstr " neznámy typ súboru %s\n"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, fuzzy, c-format
 msgid "cannot set time on `%s'"
 msgstr "%s: Nedá sa zmeni» pozícia v súbore na %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "%s: Nedá sa zmeni» pozícia v súbore na %s"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "'%s' príkaz zlyhal"
+
+#: tests/genfile.c:706
 #, fuzzy, c-format
 msgid "cannot unlink `%s'"
 msgstr "%s: Nedá sa zmeni» pozícia v súbore na %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, fuzzy, c-format
 msgid "Command failed with status %d\n"
 msgstr "Potomok bol ukonèený signálom %d"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, fuzzy, c-format
 msgid "--stat requires file names"
 msgstr "--Rozdelené meno súboru--\n"
 
+#, fuzzy
+#~ msgid "Cannot get working directory"
+#~ msgstr "Pracovný adresár nie je mo¾né zmeni»"
+
+#, fuzzy
+#~ msgid "Invalid group"
+#~ msgstr "%s: Chybná skupina"
+
 #, fuzzy
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Súbor zmazaný skôr ako mohl by» èítaný"
index 6c142eabdd66009be1b539e7ff2014c30040a04e..e9ac3a4585a799d88874c6fe895f36b48e6870c2 100644 (file)
Binary files a/po/sl.gmo and b/po/sl.gmo differ
index 893df4366c379fef4912c3ca35fd67c971778ed5..049c1b3bd8110d2b6315794792ae958fb3536477 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the tar package.
 # Primož Peterlin <primozz.peterlin@gmail.com>, 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009, 2011.
 #
-# $Id: tar-1.25.sl.po,v 1.4 2011/01/14 13:29:40 peterlin Exp $
-#: src/create.c:1552
+# $Id: tar-1.26.sl.po,v 1.2 2011/03/12 16:30:39 peterlin Exp $
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.25\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2011-01-14 14:29+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-12 17:30+0100\n"
 "Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
 "Language: sl\n"
@@ -31,36 +31,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "dvoumen argument %s za %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Veljavni argumenti so:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: vrednost %s je manj ali enako od %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: parameter ARGP_HELP_FMT zahteva podano vrednost"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: vrednost parametra ARGP_HELP_FMT mora biti pozitivna"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: neznan parameter ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Smetje v ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -68,29 +67,29 @@ msgstr ""
 "Argumenti, ki so bodisi obvezni bodisi neobvezni za dolge oblike izbir, so "
 "obvezni/neobvezni tudi za kratke oblike."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Uporaba:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  ali: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [IZBIRA...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Poskusite »%s --help« ali »%s --usage« za izčrpnejša navodila.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Poročila o napakah javite na %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Neznana sistemska napaka"
 
@@ -102,7 +101,7 @@ msgstr "poda ta seznam pomoči"
 msgid "give a short usage message"
 msgstr "poda kratka navodila za uporabo"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "IME"
@@ -123,17 +122,16 @@ msgstr "premor SEK sekund (privzeto 3600)"
 msgid "print program version"
 msgstr "izpis izdaje programa"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMSKA NAPAKA) Različica ni poznana?!"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Preveč argumentov\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMSKA NAPAKA) Izbira bi morala biti prepoznana?!"
 
@@ -141,62 +139,62 @@ msgstr "(PROGRAMSKA NAPAKA) Izbira bi morala biti prepoznana?!"
 msgid "write error"
 msgstr "napaka pri pisanju"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: izbira »%s« ni enopomenska\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: izbira »--%s« zahteva argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: neprepoznana izbira »--%s«\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: neprepoznana izbira »%c%s«\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: neveljavna izbira -- »%c«\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: izbira zahteva argument -- »%c«\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: izbira »-W %s« ni enopomenska\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: izbira »-W %s« zahteva argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "pomnilnik porabljen"
 
@@ -212,28 +210,30 @@ msgstr "vrnitev v začetni delovni imenik ni mogoča"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "»"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "«"
 
@@ -243,7 +243,7 @@ msgstr "«"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[dDjJ]"
 
@@ -253,7 +253,7 @@ msgstr "^[dDjJ]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -547,7 +547,12 @@ msgstr "standardni izhod"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Priklop na %s ni mogoč: razrešitev ni uspela"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Ni mogoče pognati nelokalne ukazne lupine"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Ni mogoče pognati nelokalne ukazne lupine"
@@ -596,8 +601,8 @@ msgstr "Nepričakovani argumenti"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Nadzor tračne enote, ki bere ukaze iz drugega procesa"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "N"
 
@@ -605,8 +610,8 @@ msgstr "N"
 msgid "set debug level"
 msgstr "nastavi raven iskanja napak"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -621,7 +626,7 @@ msgstr "določi datoteko za izpis iskanja napak"
 msgid "cannot open %s"
 msgstr "ni mogoče odpreti %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "preveč argumentov"
@@ -630,9 +635,9 @@ msgstr "preveč argumentov"
 msgid "Garbage command"
 msgstr "Neveljaven ukaz"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "To ne deluje kot arhiv ,tar'"
 
@@ -670,19 +675,19 @@ msgstr "Arhivov na stdin/stdout ni mogoče preveriti"
 msgid "Archive is compressed. Use %s option"
 msgstr "Arhiv je stisnjen. Uporabite izbiro %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Stisnjenega arhiva ni mogoče ažurirati"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Na začetku traku, končujem"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Preveč napak, končujem"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -691,7 +696,7 @@ msgstr[1] "Dolžina zapisa = %lu blok"
 msgstr[2] "Dolžina zapisa = %lu bloka"
 msgstr[3] "Dolžina zapisa = %lu bloki"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -700,37 +705,37 @@ msgstr[1] "Neporavnan blok (%lu bajt) v arhivu"
 msgstr[2] "Neporavnan blok (%lu bajta) v arhivu"
 msgstr[3] "Neporavnan blok (%lu bajti) v arhivu"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Nazaj po arhivu ne gre, morda ni berljiv brez izbire -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek se ni ustavil na meji zapisa"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: vsebuje neveljavno številko dela"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Prekoračitev številke dela"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Pripravite del #%d za %s in pritisnite Return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Znak EOF na mestu, kjer se pričakuje odgovor uporabnika"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "POZOR: Arhiv nepopoln"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -741,65 +746,65 @@ msgstr ""
 " q             Končamo tar\n"
 " y, newline    Nadaljujemo z delovanjem\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Poženemo ukazno podlupino\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             Ta seznam uzazov\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Novega dela ni, konec.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Ime datoteke ni določeno. Poskusite znova.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Neveljaven vnos. Vtipkajte ? za pomoč.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "ukaz %s neuspešen"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s se morda nadaljuje v tem delu: zaglavje vsebuje porezano ime"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s se ne nadaljuje v tem delu"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s je napačne velikosti (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Ta del ne sodi v zaporedje (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arhiv ni označen skladno z %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Del %s ne ustreza %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -807,11 +812,11 @@ msgstr ""
 "%s: ime datoteke je predolgo za zapis v zaglavje GNU večdelnega arhiva; "
 "porezano"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "pisanje se ni končalo s koncem bloka"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -820,76 +825,75 @@ msgstr[1] "Prebrati je bilo moč samo %lu od %lu bajta"
 msgstr[2] "Prebrati je bilo moč samo %lu od %lu bajtov"
 msgstr[3] "Prebrati je bilo moč samo %lu od %lu bajtov"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Vsebina se razlikuje"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Nepričakovan znak za konec datoteke v arhivu"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Zvrst datoteke se razlikuje"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Način se razlikuje"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Številka uporabnika (UID) se razlikuje"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Številka skupine (GID) se razlikuje"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Čas zadnje spremembe se razlikuje"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Velikost se razlikuje"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Ni povezana z %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Simbolna povezava se razlikuje"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Številka enote se razlikuje"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Preverjanje "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Neznana vrsta datoteke »%c«, diff kot na navadni datoteki"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arhiv vsebuje imena datotek z odstranjenimi vodilnimi predponami."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arhiv vsebuje časovno oznako iz prihodnosti: %s"
+msgstr "Arhiv vsebuje transformirana imena datotek."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Verifikacija morda ne bo uspela locirati izvornih datotek."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -898,46 +902,46 @@ msgstr[1] "NAPAKA PRI PREVERJANJU: najdena %d neveljavna glava"
 msgstr[2] "NAPAKA PRI PREVERJANJU: najdeni %d neveljavni glavi"
 msgstr[3] "NAPAKA PRI PREVERJANJU: najdene %d neveljavne glave"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Osamljeni ničelni blok pri %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: vsebuje značko medpomnilniškega imenika %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "vrednost %s od %s obseg %s..%s; zamenjano %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "vrednost %s od %s obseg %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Ustvarjanje negativnih osmiških glav"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: ime datoteke je predolgo (največ %d); brez iznosa"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: ime datoteke je predolgo (ni mogoče deliti); brez iznosa"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: ime povezave je predolgo; brez iznosa"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -946,383 +950,424 @@ msgstr[1] "%s: Datoteka skrčena za %s bajt; dopolnjeno z ničlami"
 msgstr[2] "%s: Datoteka skrčena za %s bajta; dopolnjeno z ničlami"
 msgstr[3] "%s: Datoteka skrčena za %s bajte; dopolnjeno z ničlami"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: datoteka je na drugem datotečnem sistemu; brez iznosa"
 
 # POZOR Imamo za to kak izraz?
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "vsebina ni iznešena"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Neznan tip datoteke; datoteka ignorirana"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Manjkajo povezave na %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: datoteka je nespremenjena; brez iznosa"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: datoteka je arhiv; brez iznosa"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "imenik ni iznešen"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: Datoteka je bila spremenjena med branjem"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: vtičnica ignorirana"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: vrata ignorirana"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Preskok na naslednjo glavo"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Brisanje ne-glave iz arhiva"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: neverjetno stara časovna oznaka %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: oznaka časa %s je %s s v prihodnosti"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Nepričakovana neskladnost pri ustvarjanju imenika"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Imenik preimenovan, preden je bilo moč restavrirati njegov status"
 
 # POZOR! "contiguous files" so datoteke, ki so zapisane na disku
 # na zaporednih sektorjih (na tistih OS, ki jih podpirajo).
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Neprekinjene datoteke restavriramo kot navadne"
 
 # POZOR! Grdo!
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Simbolne povezave poskusimo dearhivirati kot trde"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Dearhivacija ni mogoča - datoteka se nadaljuje iz prejšnjega dela"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Nepričakovano zaglavje z dolgim imenom"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Neznana vrsta datoteke »%c«, dearhiviramo kot navadno datoteko"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Obstoječa »%s« je novejša ali enako stara"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Varnostne kopije te datoteke ni moč napraviti"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Preimenovanje %s v %s ni mogoče"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Imenik je bil preimenovan z %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Imenik je bil preimenovan"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Imenik je nov"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: datoteka je na drugem datotečnem sistemu; brez iznosa"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Imenik je bil preimenovan"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Neveljavna oznaka časa"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Neveljaven čas spremembe (sekunde)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Neveljaven čas spremembe (nanosekunde)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Neveljavna številka enote"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Neveljavna številka inoda"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Predolgo polje pri branju trenutnega posnetka"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Napaka pri branju trenutnega posnetka"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Nepričakovan znak za konec datoteke v trenutnem posnetku"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Nepričakovana vrednost polja v trenutnem posnetku"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, fuzzy, c-format
+msgid "%s: byte %s: %s %s"
+msgstr "%s: Simbolna povezava %s %s ni mogoča"
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Manjkajoč zaključek zapisa"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Okvarjen inkrementalni zapis datoteke"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Nepodprta različica inkrementalnega zapisa: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Skladenjska napaka pri imeniku za iznos: »X« podvojen"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »R«"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 "Skladenjska napaka pri imeniku za iznos: polja »T« ne predhodi polje »R«"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »T«"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden konec "
 "podatkov"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Skladenjska napaka pri imeniku za iznos: »X« ni uporabljen"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Ni mogoče ustvariti začasnega imenika po šabloni %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Imenika ne čistimo: statistika zanj ni dosegljiva"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: imenik je na drugi napravi; brez čiščenja"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Brišemo %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Odstranitev ni mogoča"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Izpuščeno"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** Blok znakov NUL **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Konec datoteke **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Na mestu v glavi, kjer pričakujemo številčno vrednost %s, so presledki"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 "Osmiška vrednost arhiva %.*s izven obsega %s; privzemamo dvojiški komplement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Osmiška vrednost arhiva %.*s izven obsega %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arhiv vsebuje zastarele glave oblike base-64"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Podpis %s oblike base-64 v arhivu je izven obsega %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Vrednost base-256 v arhivu izven obsega %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arhiv vsebuje %.*s na mestu, kjer pričakujemo številčno vrednost %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Vrednost arhiva %s je izven obsega %s: %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " povezava na %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " neznan tip datoteke %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Dolga povezava--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Dolgo ime--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Glava dela--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Nadaljevanje pri bajtu %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Ustvarjamo imenik:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Delovnega imenika ni mogoče ugotoviti"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Preimenujemo %s v %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Preimenovanje v %s ni mogoče"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Preimenujemo %s nazaj v %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "proces naslednik"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "medprocesni kanal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "ukaz %s neuspešen"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: seznam datotek je že prebran"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "ni mogoče nastaviti časa za »%s«"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: prebrano ime datoteke vsebuje znak \\0"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Z vzorcem ujemajoči se znaki, uporabljeni v imenih datotek"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1330,55 +1375,56 @@ msgstr ""
 "Uporabite --wildcards, da bi omogočili ujemanje vzorcev, ali --no-wildcards, "
 "da izklopite to opozorilo"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Ni najdeno v arhivu"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Zahtevane pojavitve ni moč najti v arhivu"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Neskladje v oznaki arhiva"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Izbira -C znotraj seznama datotek pri --listed-incremential ni dovoljena"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Samo ena izbira -C je dovoljena pri --listed-incremential"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Izbiri »-%s« in »-%s« obe zahtevata standardni vhod"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Neveljavna oblika arhiva"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Razširitve GNU izbrane na nezdružljivem formatu arhiva"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Neznan slog narekovajev »%s«. Poskusite »%s --quoting-style=help« za seznam."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1397,9 +1443,10 @@ msgstr ""
 "  tar -xf arhiv.tar             # Restavriramo vse datoteke iz arhiva arhiv."
 "tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1420,79 +1467,79 @@ msgstr ""
 "                  sicer enostavne\n"
 "  never, simple   vedno enostavne varnostne kopije\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Glavni načini delovanja:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "izpiši vsebino arhiva"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "restavriraj datoteke iz arhiva"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "ustvarjanje novega arhiva"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "iskanje razlik med arhivom in datotečnim sistemom"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "dodajanje datotek na konec arhiva"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "dodajanje novih datotek, če so novejše od že arhiviranih"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "zlivanje arhivov"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "brisanje datotek iz arhiva (ne deluje na traku!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "preizkusi oznako dela arhiva in zaključi"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Določila delovanja:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "ekonomično ravnanje z razpršenimi datotekami"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "GLAVNI[.POMOŽNI]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "izberi uporabljeno različico razpršenega zapisa (implicira --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "stari zapis GNU za inkrementalne arhive"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "novi zapis GNU za inkrementalne arhive"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "raven izmeta za ustvarjene inkrementalne arhive"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "nadaljuj z branjem, tudi če datoteke ni moč prebrati"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1504,123 +1551,134 @@ msgstr ""
 "list, pri čemer je seznam datotek podan bodisi v ukazni vrstici, bodisi z "
 "izbiro -T. Privzeta vrednost N je 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "po arhivu je mogoče iskati"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "po arhivu ni mogoče iskati"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "pri izdelavi inkrementalnega arhiva ne preverjaj številke naprav"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "pri izdelavi inkrementalnega arhiva preverjaj številke naprav (privzeto)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Nadzor nad pisanjem prek:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "s poskusom preverjanja zapisanega arhiva"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "pobriši datoteke, potem ko so arhivirane"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "pri restavriranju ne piši prek obstoječih datotek"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "pri restavriranju ne piši prek obstoječih datotek"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "ne piši prek obstoječih datotek, novejših od arhiviranih"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "pri restavriranju piši prek obstoječih datotek"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 "s poprejšnjim brisanjem obstoječih datotek pri restavriranju istoimenskih "
 "novih"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "izprazni hierarhije pred restavriranjem imenikov"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "ohrani metainformacije o obstoječih imenikih"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "pri restavriranju piši prek metapodatkov obstoječih imenikov (privzeto)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "pri restavriranju piši prek obstoječih datotek"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Izbira izhodnega toka:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "datoteke restavriraj na standardni izhod"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "UKAZ"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "datoteke napelji na vhod drugega programa"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "prezri izhodne kode hčerinskih procesov"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "obravnavaj neničelne izhodne kode hčerinskih procesov kot napako"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Ravnanje z atributi datotek:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "pri dodajanju datotek spremenimo lastnika v IME"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "pri dodajanju datotek spremenimo skupino v IME"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATUM-ČAS"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "nastavi mtime za dodane datoteke iz DATUM-ALI-DATOTEKA"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "SPREMEMBE"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "zahtevaj (simbolne) SPREMEMBE zaščite za dodane datoteke"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METODA"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1630,11 +1688,11 @@ msgstr ""
 "branju (METODA=replace, privzeto) ali tako, da se časa sploh ne nastavi "
 "(METODA=system)"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "brez restavriranja časa spremembe"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1642,23 +1700,23 @@ msgstr ""
 "skušaj restavrirati datoteke tako, da se ohrani njihov lastnik iz arhiva "
 "(privzeto za administratorja)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "restavriraj datoteke tako, da postanemo njihov lastnik (privzeto za navadne "
 "uporabnike)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "s številčnimi vrednostmi UID/GID namesto imen"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "restavriraj podatke o dovoljenjih za dostop do datotek (privzeto za "
 "administratorja)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1666,15 +1724,16 @@ msgstr ""
 "uporabi uporabnikovo masko umask pri restavriranju dovoljenj za dostop do "
 "datotek (privzeto za uporabnike)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "imena razvrstimo tako, da se ujemajo z arhivom"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "isto kot -p in -s skupaj"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1682,139 +1741,180 @@ msgstr ""
 "z nastavljanjem časa sprememb in dovoljenja za dostop za restavrirane "
 "imenike počakaj do zaključka restavriranja"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "prekliči učinek izbire --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Ravnanje z atributi datotek:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Izbira enote in preklapljanje:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARHIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "uporabi datoteko ali enoto ARHIV"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "arhiv je lokalen kljub dvopičju v imenu datoteke"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "uporabi navedeni UKAZ rmt namesto rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "uporabi nelokalen UKAZ namesto rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "določi enoto in gostoto zapisa"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "ustvari/preglej/restavriraj arhiv v več delih"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "menjava traku po ŠT x 1024 zapisanih bajtih"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "poženi SKRIPT po koncu traku (privzema -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "uporabimo/ažuriramo število dela v DATOTEKI"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Bločna razdelitev enote:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOKI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "dolžina zapisa BLOKI × 512 bajtov"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "ŠTEVILO bajtov v zapisu (večkratnik 512)"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ne meni se za bloke ničel (EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "razdeli na bloke ob branju (cevovodi 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Izbira oblike arhiva:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "OBLIKA"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "ustvari arhiv v navedeni obliki"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "OBLIKA je nekaj od naštetega:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "oblika starega V7 tar"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "stara oblika GNU tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "oblika GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "oblika POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "oblika POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "isto kot pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "isto kot --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "isto kot --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "ključ[[:]=vrednost][,ključ[[:]=vrednost]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "krmilni ključi pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "VZOREC"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1822,169 +1922,171 @@ msgstr ""
 "ustvari arhiv z imenom dela IME; pri izpisu seznama/restavriranju je lahko "
 "IME regularni izraz za ime dela"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Izbire glede stiskanja:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "program za stiskanje ugotovi iz pripone arhiva"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "ne ugotavljaj programa za stiskanje iz pripone arhiva"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROGRAM"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtriraj skozi PROGRAM (sprejemati mora izbiro -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Izbira lokalne datoteke:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "dodaj navedeno DATOTEKO v arhiv (za imena datotek, ki se začnejo z »-«)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "IMENIK"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "pomik v navedeni IMENIK"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "preberi seznam datotek z navedene DATOTEKE"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T prebere z \\000 terminirana imena; onemogoči -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "prekliči učinek prejšnje izbire --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "odstrani narekovaje iz imen datotek, prebranih s -T (privzeto)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "ne odstrani narekovajev iz imen datotek, prebranih s -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "VZOREC"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "brez datotek, ki jih opisuje VZOREC"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "brez datotek, ustrezajočim vzorcem, prebranih z DATOTEKE"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 "brez vsebine imenikov, ki vsebujejo značko CACHEDIR.TAG, razen značke same"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 "brez imenikov, ki vsebujejo značko CACHEDIR.TAG, in vseh njihovih podimenikov"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "brez vsebine imenikov, ki vsebujejo DATOTEKO, razen DATOTEKE same"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "brez imenikov, ki vsebujejo DATOTEKO, in vseh njihovih podimenikov"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "brez imenikov, ki vsebujejo DATOTEKO"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "brez imenikov sistema za nadzor različic"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "brez varnostnih kopij in zaklepnih datotek"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "podimenikov ne vključujemo avtomatično"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "pri arhiviranju izpusti datoteke na nelokalnih datotečnih sistemih"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "rekurzivno vključi vse podimenike"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "ne odstrani vodilnih »/« iz imen datotek"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "sledi trdim povezavam; arhiviraj/iznesi ciljne datoteke"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "IME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "začenši z navedenim IMENOM v arhivu"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "shrani le datoteke, novejše od DATUM-ČAS"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "primerjaj datum in uro le, kadar se podatki spremenijo"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "TIP"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 "varnostna kopija pred brisanjem, z možnostjo izbire TIPA varnostne kopije"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "NIZ"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1992,98 +2094,101 @@ msgstr ""
 "varnostna kopija pred brisanjem; prekličemo običajno PRIPONO (»~«, razen če "
 "lupinska spremenljivka SIMPLE_BACKUP_SUFFIX določa drugače)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Pretvorbe imen datotek:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "pri restavriranju poreži ŠTEVILO vodilnih komponent iz imen datotek"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "IZRAZ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "uporabi nadomestitveni IZRAZ programa sed za pretvorbo imen datotek"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Izbire ujemanja imen datotek (vpliva tako na vključitvene kot na "
 "izključitvene vzorce):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "brez razlike med malimi in velikimi črkami"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "vzorci se ujemajo z začetkom imena datoteke"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "vzorci se ujemajo od kateregakoli znaka »/« dalje (privzeto pri izključitvi)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "pri ujemanje se razlikuje med malimi in velikimi črkami (privzeto)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "uporabi nadomestne znake (privzeto za izključitvi)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "dobesedno ujemanje nizov"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "nadomestni znaki se ne ujemajo z »/«"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "nadomestni znaki se ujemajo z »/« (privzeto pri izključitvi)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informativni izpisi:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "z izčrpnim izpisom obdelanih datotek"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KLJUČ"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "nadzor opozorila"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "izpiši poročilo o napredku pri vsakem N-tem zapisu (privzeto 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "DEJANJE"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "na vsaki kontrolni točki izvedi DEJANJE"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "izpiši sporočilo, če niso zapisane vse povezave"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2095,31 +2200,35 @@ msgstr ""
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 in SIGUSR2, prepoznana so tudi imena "
 "signalov brez predpone SIG-"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "izpiši čase sprememb datotek v UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "izpiši čas datoteke v polni ločljivosti"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "zapiši izčrpno poročilo v DATOTEKO"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "z izpisom zaporednega bloka v arhivu ob vsakem sporočilu"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "vprašaj za potrditev pri vsakem koraku"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "prikaži privzete nastavitve"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2127,31 +2236,31 @@ msgstr ""
 "pri izpisu seznama ali restavriranju izpiši vsak imenik, ki ne ustreza "
 "iskalnim pogojem"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "prikaži imena datotek ali arhivov po pretvorbi"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "SLOG"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "nastavi slog navajanja imen; glej spodaj za veljavne SLOGE"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "dodatno navedi znake iz NIZA"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "onemogoči navajanje znakov iz NIZA"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Združljivostne izbire:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2159,62 +2268,55 @@ msgstr ""
 "ob ustvarjanju arhiva isto kot --old-archive; ob restavriranju isto kot --no-"
 "same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Druge izbire:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "onemogoči rabo nekaterih potencialno škodljivih izbir"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Podate lahko največ eno od izbir »-Acdtrux« ali »--test-label«"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Nasprotujoče si izbire glede stiskanja arhiva"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Neznano ime signala: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Datoteke z vzorcem datuma ni najti"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Nadomeščamo %s za neznan format datuma %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Izbira %s: Datum »%s« obravnavamo kot %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: seznam datotek je že prebran"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: prebrano ime datoteke vsebuje znak \\0"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtriraj arhiv skozi %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Veljavni argumenti pri izbiri --quoting-style so:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2222,51 +2324,48 @@ msgstr ""
 "\n"
 "Privzete vrednosti *tega* programa tar:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Neveljaven lastnik"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Neveljaven faktor blokiranja"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Neveljavna dolžina traku"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Okvarjena vrednost inkrementalne ravni"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Več kot en pražni podatek"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Neveljavna vrednost razpršene različice"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "izbira --atime-preserve='system' na tem sistemu ni podprta"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "vrednost --checkpoint ni celo število"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Neveljavna skupina"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Podana zaščita ni veljavna"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Neveljavno število"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Neveljaven lastnik"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2274,68 +2373,70 @@ msgstr ""
 "Raba izbire --preserve je odsvetovana, uporabite --preserve-permissions --"
 "preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Neveljavna dolžina zapisa"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Dolžina zapisa mora biti večkratnik %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Neveljavno število elementov"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Dovoljena je le ena izbira --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Okvarjen argument gostote: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Neznana gostota: »%c«"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "*Ta* izvedba tar ne podpira izbir »-[0-7][lmh]«"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[DATOTEKA]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Stara izbira »%c« zahteva argument."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence nima pomena brez seznama datotek"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence ni mogoče uporabiti v zahtevanem načinu delovanja"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Več arhivskih datotek zahteva izbiro »-M«"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Izbire --listed-incremental ni mogoče kombinirati z --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Izbira --level je brez pomena brez izbire --listed-incremential"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2344,52 +2445,80 @@ msgstr[1] "%s: Oznaka dela je predolga (omejitev je %lu bajt)"
 msgstr[2] "%s: Oznaka dela je predolga (omejitev je %lu bajta)"
 msgstr[3] "%s: Oznaka dela je predolga (omejitev je %lu bajti)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Arhivov v več delih ni mogoče preveriti"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Stisnjenega arhiva ni mogoče preveriti"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Vzorca %s ni mogoče uporabiti"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Stisnjeni arhivi v več delih niso mogoči"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Stisnjenega arhiva ni mogoče združevati"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Vzorca %s ni mogoče uporabiti"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Dolžina dela ne more biti manjša od velikosti zapisa"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Zahteva po odprtju praznega arhiva bojazljivo zavrnjena"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Izbire »-Aru« so nezdružljive z »-f -«"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Ena od izbir »-Acdtrux« ali »--test-label« je obvezna"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Zaradi predhodnih napak zaključujemo s statusom napake"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2403,117 +2532,113 @@ msgstr[3] "%s: Datoteka skrčena za %s bajte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Ključ %s je bodisi neznan, bodisi še ni izveden"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Oznaka časa izven obsega"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Vzorca %s ni mogoče uporabiti"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Ključa %s ni mogoče preklicati"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Poškodovana razširjena glava: manjka dolžina"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Dolžina razširjene glave je izven dovoljenega obsega"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Dolžina razširjene glave %*s je izven dovoljenega obsega"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Poškodovana razširjena glava: za dolžino manjka presledek"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Poškodovana razširjena glava: manjka enačaj"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Poškodovana razširjena glava: manjka znak za novo vrstico"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ne upoštevamo neznanega ključa razširjene glave »%s«"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Ustvarjeni par ključ/vrednost je predolg (ključ=%s, dolžina=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Par %s=%s v razširjeni glavi je izven obsega %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Poškodovana razširjena glava: neveljavni %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Poškodovana razširjena glava: odvečni %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Poškodovana razširjena glava: neveljavni %s: nepričakovani razmejilnik %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Poškodovana razširjena glava: neveljavni %s: liho število vrednosti"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: neveljaven čas preteka"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: neznano dejanje za kontrolno točko"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "zapiši"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "preberi"
 
 #  POZOR Poglej v source!
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Oznaka pisanja %u"
 
 #  POZOR Poglej v source!
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Oznaka branja %u"
@@ -2658,7 +2783,7 @@ msgstr "Številka izven dovoljenega obsega: %s"
 msgid "Negative size: %s"
 msgstr "Negativna velikost: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "klic stat(%s) ni uspel"
@@ -2687,8 +2812,8 @@ msgstr "Neznana format datuma"
 msgid "[ARGS...]"
 msgstr "[ARGUMENT...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "ni mogoče odpreti »%s«"
@@ -2702,69 +2827,100 @@ msgstr "klic seek() ni mogoč"
 msgid "file name contains null character"
 msgstr "datoteka vsebuje znak NUL"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "razpršenih datotek ni mogoče ustvariti na standardnem izhodu, uporabite "
 "izbiro --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "nepravilna maska (pri »%s«)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Neznano polje »%s«"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "ni mogoče nastaviti časa za »%s«"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "ni mogoče odstraniti »%s«"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "ukaz %s neuspešen"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "ni mogoče odstraniti »%s«"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Ukaz se je uspešno zaključil\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Ukaz se je zaključil neuspešno s statusom %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Ukaz je bil prekinjen s signalom %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Ukaz je bil ustavljen s signalom %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Ukaz je izvrgel pomnilniško sliko\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Ukaz je bil prekinjen\n"
 
 #  POZOR  Je to res to?
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat zahteva imena datotek"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Delovnega imenika ni mogoče ugotoviti"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "imena razvrstimo tako, da se ujemajo z arhivom"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Predolgo polje pri branju trenutnega posnetka"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Napaka pri branju trenutnega posnetka"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Nepričakovana vrednost polja v trenutnem posnetku"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Dolžina razširjene glave je izven dovoljenega obsega"
+
+#~ msgid "Invalid group"
+#~ msgstr "Neveljavna skupina"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Imenik je bil odstranjen, preden smo ga prebrali"
 
@@ -3447,9 +3603,6 @@ msgstr "--stat zahteva imena datotek"
 #~ msgid "Removing `%.*s' prefix from member names"
 #~ msgstr "Odstranjujemo predpono ,%.*s` iz imen elementov"
 
-#~ msgid "%s: Cannot symlink %s %s"
-#~ msgstr "%s: Simbolna povezava %s %s ni mogoča"
-
 #~ msgid "Invalid group given on option"
 #~ msgstr "Podana skupina ni veljavna"
 
index 0ecbdf9375daa3100700359a00edfd45da6d330d..aabcf98b41db76edde15f846c7055c95165becb8 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index b022314ca1eaaab721e3d81a07d4395dac208728..f3f5b3094771387c9594b0d065672848b08dd358 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,16 +1,16 @@
 # Swedish messages for tar
-# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
-# Jan Djärv <jan.h.d@swipnet.se>, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010
-# Revision: 1.105
+# Jan Djärv <jan.h.d@swipnet.se>, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011
+# Revision: 1.107
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.24\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-05 11:14+0100\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-03-13 19:23+0100\n"
 "Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -30,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "tvetydigt argument %s för %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Giltiga argument är:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s värde är mindre eller lika med %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: Parameter från ARGP_HELP_FMT kräver ett värde."
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: Parameter från ARGP_HELP_FMT måste vara positiv."
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Skräp i ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -67,24 +66,24 @@ msgstr ""
 "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska "
 "repektive valfria även för motsvarande korta."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Användning:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  eller: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [FLAGGA...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Försök med \"%s --help\" eller \"%s --usage\" för mer information.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
@@ -92,7 +91,7 @@ msgstr ""
 "Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv."
 "se>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Okänt systemfel"
 
@@ -104,7 +103,7 @@ msgstr "visa denna hjälptext"
 msgid "give a short usage message"
 msgstr "ge ett kort hjälpmeddelande"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "NAMN"
@@ -125,17 +124,16 @@ msgstr "vänta i SEK sekunder (standardvärde 3600)"
 msgid "print program version"
 msgstr "visa programversion"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(PROGRAMFEL) Ingen version känd!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: För många argument\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(PROGRAMFEL) Flagga borde ha känts igen!?"
 
@@ -143,62 +141,62 @@ msgstr "(PROGRAMFEL) Flagga borde ha känts igen!?"
 msgid "write error"
 msgstr "skrivfel"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: flaggan \"%s\" är tvetydig\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"--%s\" tar inget argument\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: flaggan \"--%s\" kräver ett argument\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: okänd flagga \"--%s\"\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: okänd flagga \"%c%s\"\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ogiltig flagga -- \"%c\"\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: flaggan kräver ett argument -- \"%c\"\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: flaggan \"-W %s\" kräver ett argument\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "minnet slut"
 
@@ -214,28 +212,30 @@ msgstr "kan inte gå tillbaka till initial arbetskatalog"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "\""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "\""
 
@@ -245,7 +245,7 @@ msgstr "\""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yYjJ]"
 
@@ -255,7 +255,7 @@ msgstr "^[yYjJ]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -544,7 +544,12 @@ msgstr "standard ut"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Kan inte ansluta till %s: namnuppslagning misslyckades"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Kan inte exekvera fjärrskal"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Kan inte exekvera fjärrskal"
@@ -593,8 +598,8 @@ msgstr "Oväntade argument"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Styr en bandstation, acceptera kommandon från en fjärrprocess"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMMER"
 
@@ -602,8 +607,8 @@ msgstr "NUMMER"
 msgid "set debug level"
 msgstr "sätt felsökningsnivå"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -618,7 +623,7 @@ msgstr "sätt felsökningsfilnamn"
 msgid "cannot open %s"
 msgstr "kan inte öppna \"%s\""
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "för många argument"
@@ -627,9 +632,9 @@ msgstr "för många argument"
 msgid "Garbage command"
 msgstr "Okänt kommando"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Det här ser inte ut som ett tar-arkiv"
 
@@ -667,63 +672,63 @@ msgstr "Kan inte verifiera standard in/ut-arkiv"
 msgid "Archive is compressed. Use %s option"
 msgstr "Arkivet är komprimerat. Använd flaggan %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Komprimerade arkiv kan inte uppdateras"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Vid bandets början, avslutar nu"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "För många fel, avslutar"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Poststorlek = %lu block"
 msgstr[1] "Poststorlek = %lu block"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Block ej vid blockgräns (%lu byte) i arkivet"
 msgstr[1] "Block ej vid blockgräns (%lu byte) i arkivet"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Kunde inte söka bakåt i arkivfilen, den kan vara oläsbar utan -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek stannade inte på en postgräns"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: innehåller ogiltigt volymnummer"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Volymnummer flödade över"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Gör iordning volym nummer %d för %s och tryck vagnretur:"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Filslut vid förväntat användarsvar"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "VARNING: Arkivet är ofullständigt"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -734,66 +739,66 @@ msgstr ""
 " q              Avsluta programmet\n"
 " y eller nyrad  Fortsätt\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !              Starta ett underskal\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?              Skriv denna lista\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Ingen ny volym; avslutar.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Filnamn inte angivet, försök igen.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Ogiltig indata. Skriv ? för hjälp.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "kommandot \"%s\" misslyckades"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s fortsätter möjligen i denna volym: huvudet innehåller ett trunkerat namn"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s fortsätter inte i denna volym"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s har fel storlek (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Denna volym kommer inte i rätt ordning (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arkivet är inte märkt för att stämma med %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Volym %s överensstämmer inte med %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -801,402 +806,426 @@ msgstr ""
 "%s: filnamnet är för långt för att lagras i huvudet för ett GNU "
 "multivolymsarkiv, trunkerat"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "skrivning stannade inte på en blockgräns"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Kunde bara läsa %lu av %lu byte"
 msgstr[1] "Kunde bara läsa %lu av %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Innehållet är olika"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Oväntat filslut i arkivet"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Filtyper är olika"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Rättigheterna är olika"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid är olika"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid är olika"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Modifieringstiderna är olika"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Storlekarna är olika"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Inte länkad till %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Symboliska länkar är olika"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Enhetsnummer är olika"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Verifierar "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Okänd filtyp \"%c\" jämförd som en normal fil"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arkivet innehåller filnamn med inledande prefix borttaget."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arkivet innehåller föråldrade \"base-64\"-huvuden"
+msgstr "Arkivet innehåller konverterade filnamn."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Verifiering kan misslyckas med att hitta originalfiler."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "VERIFIKATIONSFEL: %d felaktigt arkivhuvud upptäckt"
 msgstr[1] "VERIFIKATIONSFEL: %d felaktiga arkivhuvuden upptäckta"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Ett ensamt nollblock vid %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: innehåller en cachekatalog-tagg %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "%s är utanför intervallet för %s: %s..%s, byter till %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "%s är utanför intervallet för %s: %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Genererar negativa oktala värden i arkivhuvudet"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: filnamnet är för långt (max %d); inte arkiverad"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: filnamnet är för långt (kan ej delas); inte arkiverad"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: länknamn är för långt; inte arkiverad"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Fil krympte med %s byte, fyller ut med nolltecken"
 msgstr[1] "%s: Fil krympte med %s byte, fyller ut med nolltecken"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: filen finns på ett annat filsystem; inte arkiverad"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "innehållet inte arkiverat"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Okänd filtyp; filen ignorerad"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Det fattas länkar till %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: filen är oförändrad; inte arkiverad"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: filen är själva arkivet; inte arkiverad"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "katalog inte arkiverad"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: fil ändrades under tiden vi läste den"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socketfil ignorerad"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: door-fil ignorerad"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Hoppar till nästa filhuvud"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Tar bort icke-huvuddata från arkivet"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: orimligt gammal tidsstämpel %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: tidsvärde %s är %s sekunder i framtiden"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Oväntad inkonsistens när katalog skapades"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Katalog bytte namn innan dess status kunde extraheras"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Extraherar sammanhängande filer som vanliga filer"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Försöker extrahera symboliska länkar som hårda länkar"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Kan inte extrahera -- filen fortsätter från en annan volym"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Oväntat huvud för långt filnamn"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Okänd filtyp \"%c\", extraherad som en normal fil"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Nuvarade \"%s\" är nyare eller lika gammal"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Kunde inte säkerhetskopiera denna fil"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Kan inte byta namn på %s till %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Katalogen har bytt namn från %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Katalogen har bytt namn"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Katalogen är ny"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: filen finns på ett annat filsystem; inte arkiverad"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Katalogen har bytt namn"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Ogiltigt värde på tidsvärde"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Ogiltig modifikationstid (sekunder)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Ogiltig modifikationstid (nanosekunder)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Ogiltigt enhetsnummer"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Ogiltigt inodnummer"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Fält för långt när ögonblicksfil lästes"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Läsfel i ögonblicksfil"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Oväntat filslut i ögonblicksfil"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Oväntat fältvärde i ögonblicksfil"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Postavslutare fattas"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Felaktigt filformat för inkrementell säkerhetskopiering"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 "Formatversion för inkrementell säkerhetskopiering stöds inte: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Felaktig dumpkatalog: \"X\" duplicerad"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Felaktig dumpkatalog: tomt namn i \"R\""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Felaktig dumpkatalog: \"T\" föregås inte av \"R\""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Felaktig dumpkatalog: tomt namn i \"T\""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade dataslut"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Felaktig dumpkatalog: \"X\" används inte"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Kan inte skapa temporärkatalog med mall %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Rensar inte katalog: kunde inte ta status"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: katalogen finns på ett annat filsystem; inte rensad"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Tar bort %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Kan inte ta bort"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Utelämnad"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "block %s: ** Block av nolltecken **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "block %s: ** Filslut **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "block %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Blanka i huvud där numeriskt värde av typ %s förväntades"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1204,108 +1233,124 @@ msgstr ""
 "komplement"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Arkivets oktala värde %.*s är utanför intervallet för %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arkivet innehåller föråldrade \"base-64\"-huvuden"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Arkivets \"base-64\"-sträng \"%s\" är utanför intervallet för %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Arkivets \"base-256\"-värde är utanför intervallet för %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arkivet innehåller %.*s där ett numeriskt värde av typ %s förväntades"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Arkivets värde %s är utanför intervallet för %s: %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " länk till %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " okänd filtyp \"%s\"\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Lång länk--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Långt namn--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Volymhuvud--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Fortsätter vid byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Skapar katalog:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Kan inte avgöra arbetskatalog"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Byter namn på %s till %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Kan inte byta namn till %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Byter namn på %s tillbaka till %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Fil borttagen innan vi läste den"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "barnprocess"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "interprocesskanal"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "kommandot \"%s\" misslyckades"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: fillistan redan läst"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "kan inte sätta tid på \"%s\""
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnamnet som lästes innehåller nolltecken"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Mönstermatchningstecken används i filnamn"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1313,55 +1358,56 @@ msgstr ""
 "Använd --wildcards för att slå på mönstermatchning, eller --no-wildcards för "
 "att undertrycka denna varning"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Fanns inte i arkivet"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Nödvändig förekomst hittades inte i arkivet"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Arkivmärkning stämmer inte överrens"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr "Att används -C i en fillista är inte tillåtet med --listed-incremental"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Bara en -C-flagga är tillåtet med --listed-incremental"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Flaggorna \"-%s\" och \"-%s\" vill båda läsa från standard in"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Ogiltigt arkivformat"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU-tillägg önskade i ett inkompatibelt arkivformat"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Okänd citeringsstil \"%s\". Gör \"%s --quoting-style=help för att få en "
 "lista."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1377,9 +1423,10 @@ msgstr ""
 "  tar -tvf arkiv.tar         # Visa filer i arkiv.tar, all information.\n"
 "  tar -xf arkiv.tar          # Extrahera alla filer i arkiv.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1399,80 +1446,80 @@ msgstr ""
 "annars\n"
 "  never, simple   gör alltid enkla säkerhetskopior\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Operationsläge:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "visa innehållet i arkivet"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "extrahera filer från arkivet"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "skapa ett nytt arkiv"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "visa skillnader mellan filsystemet och arkivet"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "lägg till filer på slutet av arkivet"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "lägg till filer som är nyare än de i arkivet"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "lägg till innehållet i en arkivfil till arkivet"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "ta bort från arkivet (inte för arkiv på magnetband!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "verifiera arkivets volymnamn och avsluta."
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Modifiera operationslägen:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "hantera filer med hål mer effektivt"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "ÖVRE[.UNDRE]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 "ange vilken formatversion som ska hantera filer med hål (implicerar --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "hantera gamla GNU-formatet för inkrementell säkerhetskopiering"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "hantera nya GNU-formatet för inkrementell säkerhetskopiering"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "dumpa nivå för \"listed-incremental\" arkiv"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "avsluta inte med felslutstatus p.g.a. oläsbara filer"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1484,121 +1531,132 @@ msgstr ""
 "list och när en lista av filer anges antingen på kommandoraden eller med "
 "flaggan -T. Standardvärde för NUMMER är 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "arkivet är sökbart"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "arkivet är inte sökbart"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "kontrollera inte enhetsnummer när inkrementella arkiv skapas"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "kontrollera enhetsnummer när inkrementella arkiv skapas (standardvärde)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Kontrollera överskrivning:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "försök verifiera arkivet efter det skapats"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "ta bort filer efter de sparats i arkivet"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "ersätt inte befintliga filer vid extrahering"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "ersätt inte befintliga filer vid extrahering"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "ersätt inte befintliga filer som är nyare än de som finns i arkivet"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "skriv över befintliga filer vid extrahering"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "ta bort befintliga filer innan de nya extraheras"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "töm kataloghierarkier före extrahering av katalog"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "bevara befintliga katalogers metadata"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "skriv över metadata för befintliga kataloger vid extrahering (standardvärde)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "skriv över befintliga filer vid extrahering"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Välj utdataström:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "extrahera filer till standard ut"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KOMMANDO"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "extrahera filer till standard in för ett annat program"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ignorera barnprocessers slutstatus"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "behandla slutstats från barnprocesser skiljt ifrån noll som fel"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Hantering av filattribut:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "sätt NAMN som ägare för adderade filer"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "sätt NAMN som grupp för adderade filer"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATUM-ELLER-FIL"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "sätt modifieringstid på adderade filer från DATUM-ELLER-FIL"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "RÄTTIGHET"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "sätt (symbolisk) RÄTTIGHET för adderade filer"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METOD"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1608,11 +1666,11 @@ msgstr ""
 "tiderna efter läsning (METOD=\"replace\", standardvärde) eller genom att "
 "inte sätta tiderna alls (METOD=\"system\")"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "extrahera inte filers modifieringstid"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1620,21 +1678,21 @@ msgstr ""
 "försök extrahera filer med samma ägare som i arkivet (standardvärde för "
 "superanvändaren)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "extrahera filer med dig själv som ägare (standardvärde för vanliga användare)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "använd alltid tal för användar- och gruppnamn"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "extrahera information om filrättigheter (standardvärde för superanvändare)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1642,15 +1700,16 @@ msgstr ""
 "applicera användarens umask när rättigheter extraheras från arkivet "
 "(standardvärde för vanliga användare)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "sortera namn som ska extraheras så de passar ihop med arkivet"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "samma som både -p och -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1658,139 +1717,180 @@ msgstr ""
 "fördröj sättandet av modifikationstider och rättigheter på extraherade "
 "kataloger till slutet på arkivextraheringen."
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "ta bort effekten av flaggan --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Hantering av filattribut:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Enhetsval och enhetsbyte:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARKIV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "använd arkivfil eller enhet ARKIV"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "arkivfilen är lokal även om namnet har kolon"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "använd KOMMANDO istället för rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "använd KOMMANDO istället för rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "ange enhet och densitet"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "skapa/visa/extrahera ett flervolymsarkiv"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "byt band efter det att NUMMER x 1024 byte skrivits"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "kör kommandofil vid slutet av varje band (flaggan -M sätts också)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "använd/uppdatera volymnummer i FIL"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Blockhantering:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCK"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "BLOCK x 512 byte per post"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "NUMMER byte per post, multipel av 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ignorera block med enbart nolltecken (betyder filslut)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "omblocka vid läsning (för 4.2BSD-rör)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Val av arkivformat:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "skapa ett arkiv med givet format"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT är ett av följande:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "gammalt V7 format"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU-format enligt tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "Format från GNU tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) format"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) format"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "samma som pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "samma som --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "samma som --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "nyckelord[[:]=värde][,nyckelord[[:]=värde], ...]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "ange nyckelord för pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "NAMN"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1798,76 +1898,76 @@ msgstr ""
 "skapa ett arkiv med volymnamnet NAMN. Vid visning/extrahering är NAMN ett "
 "skalmönster (\"globbing\")"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Komprimeringsflaggor:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "använd arkivsuffix för att bestämma komprimeringsprogram"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "använd inte arkivsuffix för att bestämma komprimeringsprogram"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "filtrera genom PROG (måste förstå -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Filval:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "lägg till angiven FIL till arkivet (användbart om FIL börjar med \"-\")"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "KATALOG"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "byt katalog till KATALOG"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "hämta namn att extrahera eller skapa från FIL"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T läser namn åtskilda med nolltecken, -C obrukbar"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "ta bort effekten av föregående --null-flagga"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "avcitera filnamn som lästs med -T (standardvärde)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "avcitera inte filnamn som lästs med -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MÖNSTER"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "utelämna filer som matchar MÖNSTER"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "utelämna filer som matchar mönster i FIL"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1875,91 +1975,93 @@ msgstr ""
 "utelämna innehållet i kataloger som innehåller CACHEDIR.TAG, förutom "
 "CACHEDIR.TAG själv"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "utelämna allt i kataloger som innehåller CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "utelämna kataloger som innehåller CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "utelämna innehållet i kataloger som innehåller FIL, förutom FIL själv"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "utelämna allting i kataloger som innehåller FIL"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "utelämna kataloger som innehåller FIL"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "uteslut kataloger från versionshanteringssystem"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "exkludera säkerhetskopior och låsfiler"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "gå inte automatiskt ned i kataloger"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "byt inte filsystem när arkivet skapas"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "gå rekursivt ned i kataloger (standardvärde)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "tag inte bort inledande \"/\" från namn"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "följ symboliska länkar, arkivera filerna de pekar på"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "följ hårda länkar, arkivera filerna de pekar på"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "NAMN"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "börja med fil NAMN i arkivet"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "arkivera bara filer nyare än DATUM-ELLER-FIL"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATUM"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "jämför datum och tid endast för dataändringar"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "KONTROLL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "gör säkerhetskopior före borttagning, välj typ av versionshantering"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRÄNG"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1968,99 +2070,102 @@ msgstr ""
 "säkerhetskopieändelsen (\"~\" om inte ändrad med miljövariabeln "
 "SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Filnamnstransformationer:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 "ta bort NUMMER stycken inledande komponenter från filnamn före extrahering"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "UTTRYCK"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "använd seds ersättnings-UTTRYCK för att transformera filnamn"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Flaggor för filnamnsmatchning (påverkar både uteslutnings- och "
 "inkluderingsmönster):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "matcha gemener och versaler lika"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "mönster måste matcha i början på filnamn"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "mönster matchas efter \"/\" i filnamn (standardvärde vid uteslutning)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "matcha gemener och versaler olika (standardvärde)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "använd jokertecken (standardvärde för uteslutning)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "ordagrann strängjämförelse"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "jokertecken matchar inte \"/\""
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "jokertecken matchar \"/\" (standardvärde för uteslutning)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Informativ utskrift:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "visa namn på alla filer som behandlas"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "NYCKELORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "varningskontroll"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 "visa förloppsmeddelande efter varje grupp om NUMMER poster (standardvärde 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ÅTGÄRD"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "utför ÅTGÄRD vid vare kontrollpunkt"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "visa ett meddelande om inte alla länkar arkiverats"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2071,31 +2176,35 @@ msgstr ""
 "totalt antal byte när SIGNAL levereras. Tillåta signaler är: SIGHUP, "
 "SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Namn utan SIG-prefix accepteras också."
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "visa filers modifieringstid i UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "visa full upplösning på filtider"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "skicka informativa meddelanden till FIL"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "visa blocknummer inom arkivet för varje meddelande"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "fråga efter bekräftelse för varje steg"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "visa standardvärden för \"tar\""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2103,31 +2212,31 @@ msgstr ""
 "vid visning eller extrahering, visa varje katalog som inte matchar "
 "sökkriterium"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "visa fil- eller arkivnamn efter transformering"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STIL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "sätt citatstil för namn. Se nedan för giltiga vären på STIL."
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "citera även tecken i STRÄNG"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "citera inte tecken i STRÄNG"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Kompatibilitetsflaggor:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2135,62 +2244,55 @@ msgstr ""
 "vid skapande, samma som --old-archive.  Vid extrahering, samma som --no-same-"
 "owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Andra flaggor:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "begränsa användningen av eventuellt farliga flaggor"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Du kan endast ange en av flaggorna \"-Acdtrux eller \"--test-label\""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Motstridiga komprimeringsflaggor"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Okänt signalnamn: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Tidsfil hittades inte"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Använder %s istället för okänt datumformat %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Flagga %s: Tolkar tidsangivelse \"%s\" som %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: fillistan redan läst"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: filnamnet som lästes innehåller nolltecken"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "filtrera arkivet genom %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Giltiga argument till flaggan --quoting-style är:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2198,51 +2300,48 @@ msgstr ""
 "\n"
 "*Denna* tar har standardvärdena:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Ogiltig ägare"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Ogiltig blockfaktor"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Ogiltig bandlängd"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Felaktigt värde fär inkrementell nivå"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Mer än en datumgräns"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Ogiltig version för filer med hål"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve=\"system\" stöds inte på denna plattform"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint-värdet är inte ett heltal"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Ogiltig grupp"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Ogiltiga rättigheter givna för flagga"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Ogiltigt nummer"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Ogiltig ägare"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2250,120 +2349,150 @@ msgstr ""
 "Flaggan --preserve är föråldrad, använd --preserve-permissions --preserve-"
 "order istället"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Ogiltig poststorlek"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Poststorlek måste vara en multipel av %d"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Ogiltig antal element"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Endast en --to-command flagga tillåten"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Ogiltig densitetsangivelse: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Okänd densitet: \"%c\""
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Flaggorna \"-[0-7][lmh]\" stöds inte av *detta* tar-program"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FIL]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Gammal flagga \"%c\" kräver ett argument"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence är meningslöst utan en fillista"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence kan inte användas i det begärda operationsläget."
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Multipla arkivfiler kräver \"-M\" flaggan"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Kan inte kombinera --listed-incremental med --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "--level är meningslös utan --listed-incremental"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Volymnamn är för långt (maxlängd är %lu byte)"
 msgstr[1] "%s: Volymnamn är för långt (maxlängd är %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Flervolymsarkiv kan inte verifieras"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Komprimerade arkiv kan inte verifieras"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Mönster %s kan inte användas"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Kan inte använda komprimerade flervolymsarkiv"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Komprimerade arkiv kan inte slås samman"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option kan bara användas på POSIX-arkiv"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option kan bara användas på POSIX-arkiv"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option kan bara användas på POSIX-arkiv"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option kan bara användas på POSIX-arkiv"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Mönster %s kan inte användas"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Volymlängden kan inte vara mindre än poststorleken"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order är inte kompatibel med --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Vägrar fegt att skapa ett tomt arkiv"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Flaggorna \"-Aru\" är inkompatibla med \"-f -\""
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Du måste ange en av flaggorna \"-Acdtrux\" eller --test-label"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Avslutar med felstatus på grund av tidigare fel"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2375,114 +2504,110 @@ msgstr[1] "%s: Filen krympte med %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Nyckelordet %s är okänt eller inte ännu implementerat"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Tidsstämpel är utanför giltigt intervall"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Mönster %s kan inte användas"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Nyckelord %s kan inte ersättas"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Felaktigt utökat huvud: längd saknas"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Längd på utökat huvud är utanför giltigt intervall"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Längd %.*s på utökat huvud är utanför giltigt intervall"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Felaktigt utökat huvud: blanktecken efter längdangivelse saknas"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Felaktigt utökat huvud: likamedtecken saknas"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Felaktigt utökat huvud: nyrad saknas"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Ignorerar nykelord \"%s\" i utökat huvud"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Genererat nyckel/värde-par är för långt (nyckel=%s, längd=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Utökat huvud %s=%s är utanför intervallet %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Felaktigt utökat huvud: ogiltig %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Felaktigt utökat huvud: för många %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Felaktigt utökat huvud: ogiltigt %s: oväntad avskiljare %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Felaktigt utökat huvud: ogiltigt %s: udda antal värden"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: ogiltig timeout"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: okänd kontrollpunktsåtgärd"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "skriv"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "läs"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Kontrollpunkt för skrivning %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Kontrollpunkt för läsning %u"
@@ -2626,7 +2751,7 @@ msgstr "Nummer utanför giltigt intervall: %s"
 msgid "Negative size: %s"
 msgstr "Negativ storlek: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "status (stat) kunde ej tas på %s"
@@ -2655,8 +2780,8 @@ msgstr "Okänt datumformat"
 msgid "[ARGS...]"
 msgstr "[ARGUMENT...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "kan inte öppna \"%s\""
@@ -2670,65 +2795,93 @@ msgstr "kan inte flytta (seek)"
 msgid "file name contains null character"
 msgstr "filnamnet innehåller nolltecken"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr "kan inte skapa filer med hål till standard ut, använd flaggan --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "felaktig mask (nära \"%s\")"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Okänt fält \"%s\""
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "kan inte sätta tid på \"%s\""
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "kan inte ta bort \"%s\""
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "kommandot \"%s\" misslyckades"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "kan inte ta bort \"%s\""
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Kommandot avslutades utan fel\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Kommandot misslyckades med slutstatus %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Kommandot terminerades av signal %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Kommandot stoppades av signal %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Kommandot dumpade minnet\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Kommandot avslutade\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat kräver filnamn"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Katalog borttagen innan vi läste den"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Kan inte avgöra arbetskatalog"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "sortera namn som ska extraheras så de passar ihop med arkivet"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Fält för långt när ögonblicksfil lästes"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Läsfel i ögonblicksfil"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Oväntat fältvärde i ögonblicksfil"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Längd på utökat huvud är utanför giltigt intervall"
+
+#~ msgid "Invalid group"
+#~ msgstr "Ogiltig grupp"
index fd497c59b9f148004765c477f83d38be490d337d..7b89ef3a548bf16e332657e86e7a7636f5d3cf1a 100644 (file)
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\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"
@@ -30,64 +30,63 @@ msgid "ambiguous argument %s for %s"
 msgstr ""
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr ""
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr ""
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr ""
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr ""
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr ""
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr ""
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr ""
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr ""
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr ""
 
-#: gnu/argp-help.c:1684
+#: gnu/argp-help.c:1686
 #, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr ""
 
@@ -99,7 +98,7 @@ msgstr ""
 msgid "give a short usage message"
 msgstr ""
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr ""
@@ -120,17 +119,16 @@ msgstr ""
 msgid "print program version"
 msgstr ""
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr ""
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr ""
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr ""
 
@@ -138,62 +136,62 @@ msgstr ""
 msgid "write error"
 msgstr ""
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr ""
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr ""
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr ""
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr ""
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr ""
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr ""
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr ""
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr ""
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr ""
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr ""
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr ""
 
@@ -209,28 +207,30 @@ msgstr ""
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr ""
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr ""
 
@@ -240,7 +240,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr ""
 
@@ -250,7 +250,7 @@ msgstr ""
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr ""
 
@@ -509,7 +509,12 @@ msgstr ""
 msgid "Cannot connect to %s: resolve failed"
 msgstr ""
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr ""
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr ""
@@ -558,8 +563,8 @@ msgstr ""
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr ""
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr ""
 
@@ -567,8 +572,8 @@ msgstr ""
 msgid "set debug level"
 msgstr ""
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -583,7 +588,7 @@ msgstr ""
 msgid "cannot open %s"
 msgstr ""
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr ""
@@ -592,9 +597,9 @@ msgstr ""
 msgid "Garbage command"
 msgstr ""
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr ""
 
@@ -632,63 +637,63 @@ msgstr ""
 msgid "Archive is compressed. Use %s option"
 msgstr ""
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr ""
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr ""
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr ""
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr ""
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr ""
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr ""
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr ""
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr ""
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr ""
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -696,623 +701,662 @@ msgid ""
 " y or newline  Continue operation\n"
 msgstr ""
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr ""
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr ""
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr ""
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr ""
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr ""
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr ""
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr ""
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr ""
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr ""
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr ""
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr ""
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr ""
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr ""
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr ""
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr ""
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr ""
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr ""
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr ""
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr ""
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr ""
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr ""
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr ""
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr ""
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr ""
 
-#: src/compare.c:464
+#: src/compare.c:471
 #, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr ""
 
-#: src/compare.c:526
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
 msgstr ""
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr ""
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr ""
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr ""
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr ""
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr ""
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr ""
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr ""
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr ""
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr ""
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr ""
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr ""
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr ""
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr ""
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr ""
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr ""
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr ""
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr ""
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr ""
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr ""
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr ""
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr ""
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr ""
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr ""
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr ""
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr ""
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr ""
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr ""
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr ""
 
-#: src/extract.c:1379
+#: src/extract.c:1542
 #, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr ""
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr ""
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr ""
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr ""
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr ""
 
-#: src/incremen.c:485
+#: src/incremen.c:549
 #, c-format
-msgid "%s: Directory has been renamed"
+msgid "%s: Directory is new"
 msgstr ""
 
-#: src/incremen.c:530
+#: src/incremen.c:566
 #, c-format
-msgid "%s: Directory is new"
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr ""
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
 msgstr ""
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr ""
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+msgid "Invalid modification time"
 msgstr ""
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr ""
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr ""
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr ""
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
 msgstr ""
 
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
+msgid "Unexpected EOF in snapshot file"
 msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
-msgid "Unexpected EOF in snapshot file"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
 msgstr ""
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
 msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr ""
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr ""
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr ""
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr ""
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr ""
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr ""
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr ""
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr ""
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr ""
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr ""
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr ""
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr ""
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr ""
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr ""
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr ""
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr ""
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr ""
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr ""
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr ""
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr ""
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr ""
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr ""
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr ""
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr ""
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr ""
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr ""
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr ""
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr ""
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr ""
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr ""
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr ""
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr ""
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr ""
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr ""
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr ""
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr ""
 
-#: src/names.c:590
+#: src/names.c:360
+msgid "command line"
+msgstr ""
+
+#: src/names.c:378
+#, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr ""
+
+#: src/names.c:448
+#, c-format
+msgid "cannot split string '%s': %s"
+msgstr ""
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr ""
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr ""
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr ""
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr ""
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr ""
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:81
+#: src/tar.c:86
 #, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr ""
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr ""
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr ""
 
-#: src/tar.c:250
+#: src/tar.c:255
 #, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 
-#: src/tar.c:348
+#: src/tar.c:364
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1321,9 +1365,9 @@ msgid ""
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
 
-#: src/tar.c:357
+#: src/tar.c:373
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1333,79 +1377,79 @@ msgid ""
 "  never, simple   always make simple backups\n"
 msgstr ""
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr ""
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr ""
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr ""
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr ""
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr ""
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr ""
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr ""
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr ""
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr ""
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr ""
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr ""
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr ""
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr ""
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr ""
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr ""
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr ""
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr ""
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1413,558 +1457,607 @@ msgid ""
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr ""
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr ""
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr ""
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr ""
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr ""
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr ""
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr ""
+
+#: src/tar.c:474
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr ""
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr ""
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr ""
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr ""
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr ""
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr ""
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 
-#: src/tar.c:473
+#: src/tar.c:490
+msgid "preserve existing symlinks to directories when extracting"
+msgstr ""
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr ""
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr ""
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr ""
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr ""
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr ""
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr ""
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr ""
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr ""
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr ""
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr ""
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr ""
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr ""
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr ""
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr ""
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr ""
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr ""
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
 msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr ""
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr ""
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr ""
 
-#: src/tar.c:530
+#: src/tar.c:554
+msgid "Handling of extended file attributes:"
+msgstr ""
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr ""
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr ""
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr ""
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr ""
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr ""
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr ""
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr ""
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr ""
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr ""
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr ""
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr ""
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr ""
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr ""
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr ""
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr ""
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr ""
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr ""
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr ""
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr ""
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr ""
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr ""
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr ""
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr ""
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr ""
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr ""
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr ""
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr ""
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr ""
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr ""
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr ""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr ""
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr ""
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr ""
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr ""
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr ""
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr ""
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr ""
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr ""
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr ""
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr ""
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr ""
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr ""
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr ""
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr ""
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr ""
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr ""
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr ""
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr ""
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr ""
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr ""
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr ""
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr ""
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr ""
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr ""
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+msgid "don't strip leading '/'s from file names"
 msgstr ""
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr ""
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr ""
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr ""
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr ""
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr ""
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr ""
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr ""
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr ""
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr ""
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr ""
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr ""
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr ""
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr ""
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr ""
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr ""
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr ""
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+msgid "wildcards do not match '/'"
 msgstr ""
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+msgid "wildcards match '/' (default for exclusion)"
 msgstr ""
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr ""
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr ""
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr ""
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr ""
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr ""
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr ""
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr ""
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr ""
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr ""
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -1972,291 +2065,307 @@ msgid ""
 "accepted"
 msgstr ""
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr ""
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr ""
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr ""
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr ""
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr ""
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr ""
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr ""
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr ""
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr ""
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr ""
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr ""
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr ""
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr ""
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr ""
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr ""
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr ""
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr ""
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr ""
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr ""
-
-#: src/tar.c:1135
+#: src/tar.c:1108
 #, c-format
-msgid "%s: file list already read"
+msgid "Option %s: Treating date '%s' as %s"
 msgstr ""
 
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr ""
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr ""
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr ""
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
 msgstr ""
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+msgid "Invalid owner or group ID"
+msgstr ""
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr ""
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr ""
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr ""
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr ""
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr ""
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr ""
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr ""
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr ""
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr ""
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr ""
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr ""
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr ""
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr ""
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr ""
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr ""
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr ""
 
-#: src/tar.c:2145
+#: src/tar.c:2133
 #, c-format
-msgid "Unknown density: `%c'"
+msgid "Unknown density: '%c'"
 msgstr ""
 
-#: src/tar.c:2162
+#: src/tar.c:2150
 #, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr ""
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr ""
 
-#: src/tar.c:2293
+#: src/tar.c:2306
 #, c-format
-msgid "Old option `%c' requires an argument."
+msgid "Old option '%c' requires an argument."
 msgstr ""
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr ""
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+msgid "Multiple archive files require '-M' option"
 msgstr ""
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr ""
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr ""
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr ""
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, c-format
+msgid "--verify cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr ""
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr ""
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr ""
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+msgid "--acls can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2483
+msgid "--selinux can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2488
+msgid "--xattrs can be used only on POSIX archives"
+msgstr ""
+
+#: src/tar.c:2493
+#, c-format
+msgid "--%s option cannot be used with %s"
+msgstr ""
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr ""
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr ""
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr ""
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr ""
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2268,114 +2377,110 @@ msgstr[1] ""
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr ""
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr ""
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr ""
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr ""
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr ""
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr ""
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr ""
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr ""
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr ""
 
-#: src/xheader.c:621
+#: src/xheader.c:740
 #, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr ""
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr ""
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr ""
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr ""
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr ""
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr ""
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr ""
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr ""
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr ""
@@ -2507,7 +2612,7 @@ msgstr ""
 msgid "Negative size: %s"
 msgstr ""
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr ""
@@ -2536,8 +2641,8 @@ msgstr ""
 msgid "[ARGS...]"
 msgstr ""
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr ""
@@ -2551,62 +2656,72 @@ msgstr ""
 msgid "file name contains null character"
 msgstr ""
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr ""
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr ""
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr ""
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, c-format
+msgid "cannot truncate `%s'"
+msgstr ""
+
+#: tests/genfile.c:701
+#, c-format
+msgid "command failed: %s"
+msgstr ""
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr ""
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr ""
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr ""
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr ""
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr ""
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr ""
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr ""
index 149cc32b6d6f78fb23d28d2e173eb93d34037e65..0a893fd820af9e6c3537c46467cb4fb115110806 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index abf2ec7cef81c998b38a4e17c3900a43a4a4ef46..ab630f15ce3010baed0c5d0c38e0f7d0629c0cdb 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,22 +1,23 @@
 # Turkish translations for GNU tar messages.
 # Copyright (C) 2007 Free Software Foundation, Inc.
-#
+# This file is distributed under the same license as the tar package.
 # Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007.
-#: src/create.c:1552
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.18\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2007-07-09 11:30+0300\n"
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2013-03-09 15:51+0100\n"
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
 "Language: tr\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: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.5\n"
 
 #: gnu/argmatch.c:135
 #, c-format
@@ -29,36 +30,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "`%2$s' için %1$s argümanı belirsiz"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Geçerli argümanlar:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s değeri %s değerinden küçük ya da ona eşit"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT parametresi bir değer gerektirir"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT parametresi pozitif olmalı"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: ARGP_HELP_FMT ile belirtilen parametre bilinmiyor"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "ARGP_HELP_FMT bozuk: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -66,31 +66,31 @@ msgstr ""
 "Uzun seçenekler için zorunlu veya isteğe bağlı olan argümanlar kısa "
 "seçenekler için de geçerlidir."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Kullanımı:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
-msgstr "    veya: "
+msgstr "  veya: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [SEÇENEK...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Daha fazla bilgi için `%s --help' veya `%s --usage' yazın.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr ""
 "Yazılım hatalarını <%s> adresine,\n"
 "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Bilinmeyen sistem hatası"
 
@@ -102,7 +102,7 @@ msgstr "bu yardım iletisi gösterilir"
 msgid "give a short usage message"
 msgstr "kısa bir kullanım iletisi gösterilir"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "İSİM"
@@ -123,117 +123,118 @@ msgstr "SANİYE saniye bekler (öntanımlı 3600)"
 msgid "print program version"
 msgstr "sürüm bilgisi gösterilir"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(YAZILIM HATASI) Sürümünü bilmiyor!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: argüman sayısı fazla\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(YAZILIM HATASI) Seçenek tanınmak zorunda!?"
 
 #: gnu/closeout.c:114
 msgid "write error"
-msgstr ""
+msgstr "yazma hatası"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: `%s' seçeneği belirsiz\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
-#, fuzzy, c-format
+#: gnu/getopt.c:626 gnu/getopt.c:630
+#, 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"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
-#, fuzzy, c-format
+#: gnu/getopt.c:639 gnu/getopt.c:644
+#, 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"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
-#, fuzzy, c-format
+#: gnu/getopt.c:687 gnu/getopt.c:706
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
-#, fuzzy, c-format
+#: gnu/getopt.c:744 gnu/getopt.c:747
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: `--%s' seçeneği bilinmiyor\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
-#, fuzzy, c-format
+#: gnu/getopt.c:755 gnu/getopt.c:758
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: `%c%s' seçeneği bilinmiyor\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
-#, fuzzy, c-format
+#: gnu/getopt.c:807 gnu/getopt.c:810
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: geçersiz seçenek -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
-#, fuzzy, c-format
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: seçenek bir argümanla kullanılır -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
-#, fuzzy, c-format
+#: gnu/getopt.c:936 gnu/getopt.c:952
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: `-W %s' seçeneği belirsiz\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
-#, fuzzy, c-format
+#: gnu/getopt.c:976 gnu/getopt.c:994
+#, 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"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
-#, fuzzy, c-format
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "bellek tükendi"
 
 #: gnu/openat-die.c:40
-#, fuzzy, c-format
+#, c-format
 msgid "unable to record current working directory"
-msgstr "Çalışma dizini değiştirilemez"
+msgstr "geçerli çalışma dizini kaydedilemiyor"
 
 #: gnu/openat-die.c:59
-#, fuzzy, c-format
+#, c-format
 msgid "failed to return to initial working directory"
-msgstr "Çalışılan dizin kaydedilemez"
+msgstr "başlangıç çalışma dizinine dönülemedi"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -243,7 +244,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[eEyY]"
 
@@ -253,26 +254,26 @@ msgstr "^[eEyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[hHnN]"
 
 #: gnu/version-etc.c:76
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "%s (%s) tarafından paketlenmiş\n"
 
 #: gnu/version-etc.c:79
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "%s tarafından paketlenmiş\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.
 #: gnu/version-etc.c:86
 msgid "(C)"
-msgstr ""
+msgstr "(C)"
 
 #: gnu/version-etc.c:88
 msgid ""
@@ -283,24 +284,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Lisans GPLv3+: GNU GPL sürüm 3 veya sonrası <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Bu ücretsiz bir yazılımdır: değiştirmekte ve tekrar dağıtmakta özgürsünüz.\n"
+"İzin verilen yasalar kapsamında hiçbir GARANTİSİ BULUNMAMAKTADIR.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: gnu/version-etc.c:104
 #, c-format
 msgid "Written by %s.\n"
-msgstr ""
+msgstr "Yazan %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:108
 #, c-format
 msgid "Written by %s and %s.\n"
-msgstr ""
+msgstr "Yazanlar %s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:112
 #, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr ""
+msgstr "Yazanlar %s, %s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -311,6 +318,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -321,6 +330,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -331,6 +342,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s, %s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -341,6 +354,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s, %s, %s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -352,6 +367,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -363,6 +381,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s ve %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -374,41 +395,42 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
+"Yazanlar %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s ve diğerleri.\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).
 #: gnu/version-etc.c:247
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
-"Yazılım hatalarını <%s> adresine,\n"
-"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
+"\n"
+"Hataları şuraya bildirin: %s\n"
 
 #: gnu/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
-"\n"
-"Yazılım hatalarını <%s> adresine,\n"
-"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
+msgstr "%s hatalarını şuraya bildirin: %s\n"
 
 #: gnu/version-etc.c:253
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s ana sayfası: <%s>\n"
 
 #: gnu/version-etc.c:255
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s ana sayfası: <http://www.gnu.org/software/%s/>\n"
 
 #: gnu/version-etc.c:258
 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"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -517,9 +539,14 @@ msgstr "stdÇ"
 #: lib/rtapelib.c:429
 #, c-format
 msgid "Cannot connect to %s: resolve failed"
-msgstr ""
+msgstr "%s bağlantısı yapılamadı: çözme başarısız"
+
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Uzak kabuk çalıştırılamıyor"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Uzak kabuk çalıştırılamıyor"
@@ -529,63 +556,56 @@ msgid "Seek direction out of range"
 msgstr "Arama yönü kapsamdışı"
 
 #: rmt/rmt.c:438
-#, fuzzy
 msgid "Invalid seek direction"
-msgstr "Seçenekte verilen kip geçersiz"
+msgstr "Geçersiz arama yönü"
 
 #: rmt/rmt.c:446
-#, fuzzy
 msgid "Invalid seek offset"
-msgstr "Geçersiz boyut: %s"
+msgstr "Geçersiz arama başlangıcı"
 
 #: rmt/rmt.c:452
 msgid "Seek offset out of range"
 msgstr "Arama başlangıcı kapsamdışı"
 
 #: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
-#, fuzzy
 msgid "Invalid byte count"
-msgstr "Kayıt ortamının uzunluğu geçersiz"
+msgstr "Geçersiz bayt sayısı"
 
 #: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
-#, fuzzy
 msgid "Byte count out of range"
-msgstr "Arama başlangıcı kapsamdışı"
+msgstr "Bayt aralığı aralık dışında"
 
 #: rmt/rmt.c:558
-#, fuzzy
 msgid "Premature eof"
-msgstr "rmtd: Dosya sonu belirsiz\n"
+msgstr "Erken dosya sonu"
 
 #: rmt/rmt.c:601
-#, fuzzy
 msgid "Invalid operation code"
-msgstr "Ana işlem kipi:"
+msgstr "Geçersiz işlem kodu"
 
 #: rmt/rmt.c:636 rmt/rmt.c:680
 msgid "Operation not supported"
-msgstr ""
+msgstr "İşlem desteklenmiyor"
 
 #: rmt/rmt.c:664
-#, fuzzy
 msgid "Unexpected arguments"
-msgstr "Arşivde beklenmeyen dosya sonu"
+msgstr "Beklenmeyen argümanlar"
 
 #: rmt/rmt.c:689
 msgid "Manipulate a tape drive, accepting commands from a remote process"
-msgstr ""
+msgstr "Uzak bir işlem komutları kabul eden, bir kaset sürücüsü değiştir"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "SAYI"
 
 #: rmt/rmt.c:697
 msgid "set debug level"
-msgstr ""
+msgstr "hata ayıklama seviyesini ayarla"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -593,14 +613,14 @@ msgstr "DOSYA"
 
 #: rmt/rmt.c:699
 msgid "set debug output file name"
-msgstr ""
+msgstr "hata ayıklama çıktı dosyasının adını ayarla"
 
 #: rmt/rmt.c:715 rmt/rmt.c:783
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open %s"
-msgstr "`%s' açılamıyor"
+msgstr "%s açılamıyor"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "argüman sayısı çok fazla"
@@ -609,9 +629,9 @@ msgstr "argüman sayısı çok fazla"
 msgid "Garbage command"
 msgstr "Bozuk komut"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Bu bir tar arşivi gibi görünmüyor"
 
@@ -649,63 +669,63 @@ msgstr "stdG/stdÇ arşivi doğrulanamaz"
 msgid "Archive is compressed. Use %s option"
 msgstr "Aeşiv sıkıştırılmış. %s seçeneğini kullanın"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Sıkıştırılmış arşivler güncellenemez"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Bandın başlangıcında, şimdilik çıkıyor"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Çok hata var, çıkıyor"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Kayıt uzunluğu = %lu blok"
 msgstr[1] "Kayıt uzunluğu = %lu blok"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Arşivde hizalanmamış blok (%lu bayt)"
 msgstr[1] "Arşivde hizalanmamış blok (%lu bayt)"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "Arşiv dosyası geri alınamaz; -i olmaksızın okunamayabilir"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek bir kaydın sınırında durmadı"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: geçersiz bölüm numarası içeriyor"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Bölüm numarası kapsamdışı"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "#%d. bölümü %s için hazırlamak istiyorsanız return tuşuna basınız: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Kullanıcı cevabı beklenirken dosya sonuna gelindi"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "UYARI: Arşiv eksik"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -716,468 +736,491 @@ msgstr ""
 " q                   Uygulama sonlandırılır\n"
 " y veya <enter>      İşlem sürdürülür\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !                   bir alt kabuk açılır\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?                    Bu listeyi basar\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Yeni bölüm yok; çıkıyor.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Dosya ismi belirtilmemiş. Tekrar deneyin.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Girdi geçersiz, Yardım için ? yazın.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s komutu başarısız"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s belki de bu bölümde devam ediyor: başlıktaki isim kırpılmış"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s bu bölümde devam etmiyor"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s yanlış uzunluk (%s != %s + %s)"
 
-#: src/buffer.c:1472
-#, fuzzy, c-format
+#: src/buffer.c:1473
+#, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
-msgstr "Bu bölüm sıralama dışı"
+msgstr "Bu hacim sıranın dışında (% s -% s =% s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Arşiv etiketi %s ile eşleşmiyor"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "%s bölümü %s ile eşleşmiyor"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr ""
 "%s: dosya ismi GNU çoklu bölüm başlığında saklanamayacak kadar uzun, kırpıldı"
 
-#: src/buffer.c:1865
-#, fuzzy
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
-msgstr "rmtlseek bir kaydın sınırında durmadı"
+msgstr "yazma bir blok sınırında bitmiyor"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Sadece %2$lu baytın %1$lu baytı okunabildi"
 msgstr[1] "Sadece %2$lu baytın %1$lu baytı okunabildi"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "İçerikler farklı"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Arşivde beklenmeyen dosya sonu"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Dosya türleri farklı"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Kipleri farklı"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Kullanıcı-kimlikler farklı"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Grup-kimlikler farklı"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Değişiklik zamanları farklı"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Uzunlukları farklı"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "%s'e bağlı değil"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Sembolik bağlar farklı"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Aygıt numaraları farklı"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Doğrulama "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: '%c' dosya türü bilinmiyor, normal dosya olarak karşılaştırıldı"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Arşivdeki dosya isimleri dosya yolu içermiyor."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Arşiv atıl base-64 başlıklar içeriyor"
+msgstr "Arşiv dönüştürülmüş dosya adları içeriyor."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Doğrulama, özgün dosyaların konumlanmasında başarısız olabilir."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "DOĞRULAMA BAŞARISIZ: %d geçersiz başlık saptandı"
 msgstr[1] "DOĞRULAMA BAŞARISIZ: %d geçersiz başlık saptandı"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "%s de tek başına sıfır bloğu"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: %s arabellekleme dizini yaftasını içeriyor; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr ""
 "%1$s değeri, %3$s..%4$s aralığının %2$s dışında; yerine %5$s kullanılıyor"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "%1$s değeri, %3$s..%4$s aralığının %2$s dışında"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Negatif sekizlik başlık üretiliyor"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: dosya ismi çok uzun (en çok %d olabilir); dökümlenmedi"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: dosya ismi çok uzun (parçalanamıyor); dökümlenmedi"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: bağ ismi çok uzun; dökümlenmedi"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Dosya %s baytta kaldı; sıfırlarla dolduruluyor"
 msgstr[1] "%s: Dosya %s baytta kaldı; sıfırlarla dolduruluyor"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: dosya farklı bir dosya sisteminde; dökümlenmedi"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "içerik dökümlenmedi"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Bilinmeyen dosya türü; dosya yoksayıldı"
 
-#: src/create.c:1529
-#, fuzzy, c-format
+#: src/create.c:1549
+#, c-format
 msgid "Missing links to %s."
-msgstr "%s için bağlar kayıp.\n"
+msgstr "%s için bağlar kayıp."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: dosya değişmedi; dökümlenmedi"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: dosya arşivdir; dökümlenmedi"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "dizin dökümlenmedi"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: dosya okundu olarak imlendi"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: soket yoksayıldı"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: kapı yoksayıldı"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Sonraki başlığa atlanıyor"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Arşivden başlık-olmayan siliniyor"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: makul olmayan eski tarih damgası %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: zaman damgası %s %s s gelecekte"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Dizin oluşturulurken anlaşılamayan uyumsuzluk"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: durumu çıkarılamadan dizin ismi değiştirildi"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Bitişik dosyaları normal dosyalar olarak çıkarıyor"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Sembolik bağlar, sabit bağlar olarak çıkarılmaya çalışılıyor"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Dosya çıkarılamaz -- dosyanın başı diğer bölümde"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Umulmadık uzun isim başlığı"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Bilinmeyen dosya türü '%c', normal dosya olarak çıkartılıyor"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Mevcut %s daha yeni ya da yaşıt"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Bu dosyayı yedeklemek mümkün olmadı"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "%s ismi %s olarak değiştirilemez"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Dizinin eski adı %s idi"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Dizin adı değiştirilmişti"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Dizin yeni"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: dosya farklı bir dosya sisteminde; dökümlenmedi"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Dizin adı değiştirilmişti"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Geçersiz zaman damgası"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Değişiklik zamanı (saniye cinsinden) geçersiz"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Değişiklik zamanı (nanosaniye cinsinden) geçersiz"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Geçersiz aygıt numarası"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Geçersiz düğüm numarası"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Anlık görüntü dosyası okunurken alan çok uzun"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Anlık görüntü dosyasında okuma hatası"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Anlık görüntü dosyasında beklenmeyen dosya sonu"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Anlık görüntü dosyasında beklenmeyen alan değeri"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Kayıt sonlandırıcı eksik"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Arttırımlı dosya biçimi hatalı"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Desteklenmeyen arttırımlı biçim sürümü: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "dumpdir bozuk: umulan '%c' ama bulunan %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "dumpdir bozuk: 'X' yinelenmiş"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "dumpdir bozuk: 'R'deki isim boş"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "dumpdir bozuk: 'T' 'R' ile öncelenmemiş"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "dumpdir bozuk: 'T'deki isim boş"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "dumpdir bozuk: umulan'%c' ama bulunan veri sonu"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "dumpdir bozuk: 'X' hiç kullanılmamış"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "%s şablonu kullanılarak geçici dizin oluşturulamıyor"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: dizin temizlenmiyor: durumlama yapılamadı"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: dizin farklı bir aygıtta: temizlenmiyor"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: %s siliniyor\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Kaldırılamaz"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Geçiliyor"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "blok %s: ** NUL bloku **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "blok %s: ** Dosya Sonu **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "blok %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Sayısal %s değeri beklenirken başlıkta boşluklar bulundu"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1185,165 +1228,184 @@ msgstr ""
 "ediliyor"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Arşiv sekizlik değeri %.*s aralığın %s dışında"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Arşiv atıl base-64 başlıklar içeriyor"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Arşiv imzalı base-64 dizge %s, %s aralığının dışında"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Arşiv base-256 değeri %s aralığının dışında"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Arşiv %.*s içeriyor, halbuki orada sayısal %s değeri bekleniyor"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Arşiv değeri %s %s türünün %s..%s aralığının dışında"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " bağı -> %s \n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " bilinmeyen dosya türü %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Uzun  Bağ--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Uzun İsim--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Bölüm Başlığı--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Devamı bayt %s de--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Oluşturulan dizin:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Çalışma dizini değiştirilemez"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "%s %s olarak değiştiriliyor\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: İsmi %s olarak değiştirilemez"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Gerisin geriye %s %s olarak değiştiriliyor\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Dosya okunamadan kaldırıldı"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "alt süreç"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "süreçlerarası kanal"
 
-#: src/names.c:590
+#: src/names.c:360
 #, fuzzy
+msgid "command line"
+msgstr "%s komutu başarısız"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: dosya listesi zaten okundu"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "zaman `%s' olarak ayarlanamaz"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: okunan dosya ismi boş karakter içeriyor"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
-msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış. Lütfen,"
+msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış"
 
-#: src/names.c:592
-#, fuzzy
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
-msgstr "ya kalıp eşlemeyi etkin kılmak için --wildcards  kullanın,"
+msgstr ""
+"Lütfen ya kalıp eşlemeyi etkin kılmak için --wildcards ya da bu uyarıyı "
+"yoksaymak için --no-wildcards kullanın."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Arşivde yok"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Arşivde bulunması gerekirken yok"
 
-#: src/names.c:645
-#, fuzzy, c-format
+#: src/names.c:876
+#, c-format
 msgid "Archive label mismatch"
-msgstr "Arşiv etiketi %s ile eşleşmiyor"
+msgstr "Arşiv etiketi uyumsuzluğu"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
+"Bir dosya listesi içerisinde --listed-incremental ile -C seçeneği kullanmaya "
+"izin verilmiyor"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr ""
+"--listed-incremental seçeneği ile sadece bir -C seçeneği kullanılabilir"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "`-%s' ve `-%s' seçeneklerinin ikisi de standart girdi istiyor"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Geçersiz arşiv biçimi"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "GNU özellikleri ile uyumsuz arşiv biçimi"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Sarmalama şekli `%s' bilinmiyor. Listeyi almak için `%s --quoting-"
 "style=help' yazın."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1360,9 +1422,10 @@ msgstr ""
 "  tar -tvf arşiv.tar         # arşiv.tar içindeki dosyalar listelenir\n"
 "  tar -xf arşiv.tar          # arşiv.tar'dan tüm dosyalar çıkarılır\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1381,79 +1444,79 @@ msgstr ""
 "  nil, existing   numaralıysa numaralı, değilse basit yedekleme yapılır\n"
 "  never, simple   daima basit yedekleme yapılır\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Ana işlem kipi:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "bir arşiv içeriğini listeler"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "bir arşivdeki dosyaları çıkarır"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "yeni bir arşiv oluşturur"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "arşiv ile dosya sistemi arasındaki farklar bulunur"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "dosyaları arşivin sonuna ekler"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "sadece arşivdeki kopyasından daha yeni dosyalar eklenir"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "bir arşive tar dosyaları ekler"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "arşivden siler (teyplerde değil!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "arşiv bölüm etiketini sınar ve çıkar"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "İşlem değiştiriciler:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "seyrek dosyalar verimli şekilde elde edilir"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "ANA[.ALT]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "kullanılacak seyrek biçim sürümü ayarlanır (--sparse uygular)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "GNU eski tarz arttırımlı yedekleme tanınır"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "GNU yeni tarz arttırımlı yedekleme tanınır"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
-msgstr ""
+msgstr "oluşturulan listed-incremental arşivi için döküm seviyesi"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "dosyalar okunamadığında sıfırdan farklı bir değerle çıkılmaz"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1465,121 +1528,131 @@ msgstr ""
 "ve dosyaların listelenmesi sırasında ya komut satırından ya da -T seçeneği "
 "üzerinden belirtilir. SAYI öntanımlı olaral 1'dir."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "arşiv arama yapılabilen türde"
 
-#: src/tar.c:437
-#, fuzzy
+#: src/tar.c:453
 msgid "archive is not seekable"
-msgstr "arşiv arama yapılabilen türde"
+msgstr "arşiv aranabilir değil"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
-msgstr ""
+msgstr "artımlı arşivler oluştururken aygıt numaralarını denetleme"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
-msgstr ""
+msgstr "artımlı arşivler oluştururken aygıt numaralarını denetle (öntanımlı)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Üsteyazma denetimi:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "yazdıktan sonra arşivi doğrulamaya çalışır"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "arşive eklendikten sonra dosyalar silinir"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "çıkarılırken mevcut dosyalar değiştirilmez"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "çıkarılırken mevcut dosyalar değiştirilmez"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "arşivdeki kopyalaraından daha yeni dosyalar değiştirilmez"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "çıkarılırken mevcut dosyaların üzerine yazılır"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "çıkarılmadan önce mevcut dosya silinir"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "dizin çıkarılmadan önce alt dizinleri silinir"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "mevcut dizinlerin öznitelikleri korunur"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "çıkarılırken mevcut dizinlerin metaverisinin üzerine yazılır (öntanımlı)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "çıkarılırken mevcut dosyaların üzerine yazılır"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Çıktı akımını seçiniz:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "dosyalar standart çıktıya çıkarılır"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "KOMUT"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "çıkarılan dosyaları başka bir uygulamaya borular"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "altsüreçlerin çıkış kodları yoksayılır"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "altsüreçlerin çıkış kodları sıfırdan farklıysa hata olarak ele alınır"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Dosya özniteliklerinin elde edilmesi:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "İSİM eklenen dosyaların sahibi yapılır"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "İSİM eklenen dosyaların grubu yapılır"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DOSYA-TARİHİ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "DOSYA-TARİHİnde eklenen dosyalar için mtime ayarlanır"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "KİP"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "KİP eklenen dosyaların (sembolik) kipi yapılır"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "YÖNTEM"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1589,32 +1662,33 @@ msgstr ""
 "değerine getirerek (YÖNTEM='replace' öntanımlıdır) ya da ilk yerindeki "
 "zamanı değiştirmeyerek (YÖNTEM='system')."
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "dosya değişiklik zamanı çıkarılmaz"
 
-#: src/tar.c:505
-#, fuzzy
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
-msgstr "sahibi aynı olan dosyalar çıkarılmaya çalışılır"
+msgstr ""
+"dosyaları arşivde bulunduğu gibi aynı sahiplikle çıkarmayı deneyin (yetkili "
+"kullanıcı için öntanımlı)"
 
-#: src/tar.c:507
-#, fuzzy
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
-msgstr "dosyalar sizin sahipliğinizde çıkarılır"
+msgstr ""
+"dosyalar sizin sahipliğinizde çıkarın (normal kullanıcılar için öntanımlı)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "kullanıcı/grup isimleri yerine daima numaraları kullanılır"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "dosya izinleri ile ilgili bilgileri çıkarır (root kullanıcısı için öntanımlı)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1622,15 +1696,16 @@ msgstr ""
 "arşivden çıkarılırken izinlere kullanıcıların umask'ı uygulanır (sıradan "
 "kullanıcılar için öntanımlı)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "isimler arşivdeki sırasına göre çıkarılır"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "-p ve -s birlikte verilmiş gibi olur"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1638,139 +1713,180 @@ msgstr ""
 "herşey çıkarılana kadar çıkarılan dizinlerin izinleri ve değişiklik "
 "zamanlarının değiştirilmesi geciktirilir"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "--delay-directory-restore seçeneğinin etkisi iptal edilir."
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Dosya özniteliklerinin elde edilmesi:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Aygıt seçimi ve aygıt değiştirme:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARŞİV"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "arşiv dosyası ya da ARŞİV aygıtı kullanılır"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "bir iki nokta üstüste içerse bile arşiv dosyası yereldir"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "rmt yerine rmt KOMUT kullanılır"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "rsh yerine uzak uçta KOMUT kullanılır"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "sürücü ve yoğunluk belirtilir"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "çok bölümlü arşivi oluşturur/listeler/çıkarır"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "SAYI x 1024 bayt yazıldıktan sonra band değiştirilir"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "her bandın sonunda betiği çalıştırır (-M uygular)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "DOSYAda bölüm numarası kullanılır/güncellenir"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Aygıtın blok düzeni:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOK"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "kayıt başına BLOK x 512 bayt"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "512'nin katları olarak kayıt başına BOYUT bayt"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "arşivdeki sıfırlı bloklar yoksayılır (dosyasonu anlamında)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "okunmuş olarak yeniden bloklanır (4.2 BSD boruları için)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Arşiv biçimi seçimi:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "BİÇİM"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "belirtilen biçimin arşivi oluşturulur."
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "BİÇİM şunlardan biri olabilir:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "eski V7 tar biçimi"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "tar <= 1.12 için GNU biçimi"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x biçimi"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) biçimi"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) biçimi"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "pax ile aynı"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr " --format=v7 ile aynı"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "--format=posix ile aynı"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "isim[[:]=değer][,isim[[:]=değer]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "pax anahtar sözcüklerini denetler"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "METİN"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1778,171 +1894,172 @@ msgstr ""
 "arşivi METİN bölüm ismiyle oluşturur; listeleme/çıkarma sırasında METİN, "
 "bölüm ismini genelleme kalıbı olarak kullanılır"
 
-#: src/tar.c:614
-#, fuzzy
+#: src/tar.c:660
 msgid "Compression options:"
-msgstr "Sıkıştırma seçenekleri çelişiyor"
+msgstr "Sıkıştırma seçenekleri:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
-msgstr ""
+msgstr "sıkıştırma programını bulmak için arşiv sonekini kullan"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
-msgstr ""
+msgstr "sıkıştırma programını bulmak için arşiv sonekini kullanma"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "UYG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "arşivi UYG üzerinden geçirir (UYG -d kabul etmeli)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Yerel dosya seçimi:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "belirtilen DOSYA arşive eklenir (isim bir tire ile başlıyorsa kullanışlıdır)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DİZİN"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "DİZİN dizinine geçilir"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "çıkarılacak ya da oluşturulacak isimler DOSYAdan alınır"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T boş karakter sonlandırmalı isimleri okur, -C iptal edilir"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
-msgstr ""
+msgstr "önceki --null seçeneği etkisini devre dışı bırak"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanır"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanmaz"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "ŞABLON"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "belirtilen ŞABLONa uyan dosyalar hariç tutulur"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "DOSYAdaki şablonlara uyan isimler hariç tutulur"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "yafta dosyası hariç, CACHEDIR.TAG içeren dizinler dışlanır"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG içeren dizinlerin altındaki herşey hariç tutulur"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "CACHEDIR.TAG içeren dizinler hariç tutulur"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "DOSYA'nın kendisi hariç, DOSYA içeren dizinlerin içerikleri hariç tutulur"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "DOSYA içeren dizinlerin altındaki herşey hariç tutulur"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "DOSYA içeren dizinler hariç tutulur"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
-msgstr ""
+msgstr "sürüm denetimi sistem dizinlerini hariç tut"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
-msgstr ""
+msgstr "yedek ve kilit dosyalarını hariç tut"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "dizinlerde özdevinimli olarak azalan sıralamadan kaçınılır"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "arşiv oluşturulurken yerel dosya sisteminde kalınır"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "dizinlerin alt dizinlerine inilir (öntanımlı)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "dosya isimlerinin başındaki `/'lar ayrılmaz"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr ""
 "sembolik bağlar izlenir; hedeflerindeki dosyalar arşivlenir ve dökümlenir"
 
-#: src/tar.c:687
-#, fuzzy
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr ""
-"sembolik bağlar izlenir; hedeflerindeki dosyalar arşivlenir ve dökümlenir"
+"sembolik bağları izle; hedeflerindeki dosyaları arşivle ve şuraya atıfta "
+"bulunan dosyaları dökümle"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "ÜYE-İSMİ"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "arşivin ÜYE-İSMİ üyesinden başlanır"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "sadece DOSYA-TARİHİnden daha yeni dosyalar saklanır"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "TARİH"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "sadece veri değişecekse tarih ve saat karşılaştırılır"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "DENETİM"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "kaldırılmadan önce DENETİM sürümü seçilerek yedeklenir"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "DİZGE"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1950,98 +2067,100 @@ msgstr ""
 "kaldırmadan önce uygun sonekle yedekleme yapılır (SIMPLE_BACKUP_SUFFIX ortam "
 "değişkeni ile belirlenmemişse sonek olarak '~' kullanılır"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Dosya ismi dönüşümleri:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "çıkarılırken dosya isimlerinden baştaki SAYI bileşen ayrılır"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "İFADE"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "dosya isimleri dönüştürülürken sed değiştirme İFADEsi kullanılır"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Dosya ismi eşleştirme seçenekleri\n"
 "(içerme ve dışlama kalıplarının her ikisi de etkili):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "harf büyüklükleri önemsenmez"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "dosya isminin başlangıcına uyan kalıplar"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "bir /'dan sonra şablonla eşleşen kalıplar (dışlama için öntanımlı)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "harf büyüklüklerine duyarlı eşleşme (öntanımlı)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "genelleme kalıpları kullanılır (dışlama için öntanımlı)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "birebir dizge eşleme"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "'/' ile eşleşmeyen genelleme kalıpları"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "'/' ile eşleşen genelleme kalıpları (dışlama için öntanımlı)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Bilgilendirme çıktısı:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "işlenen dosyalar ayrıntılı listelenir"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
-msgstr ""
+msgstr "ANAHTAR SÖZCÜK"
 
-#: src/tar.c:741
-#, fuzzy
+#: src/tar.c:787
 msgid "warning control"
-msgstr "Üsteyazma denetimi:"
+msgstr "uyarı denetimi"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "her SAYIncı kayıtta gelişim iletisi gösterilir (öntanımlı: 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
-msgstr ""
+msgstr "İŞLEM"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
-msgstr ""
+msgstr "her kontrol noktasında İŞLEM çalıştır"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "tüm bağlar dökümlenmezse bir ileti basılır"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SiNYAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2052,126 +2171,122 @@ msgstr ""
 "alındığında bayt toplamını basar; İzin verilen sinyaller: SIGHUP, SIGQUIT, "
 "SIGINT, SIGUSR1 ve SIGUSR2; SIG ile başlamayanları da kabul edilir"
 
-#: src/tar.c:756
-#, fuzzy
+#: src/tar.c:802
 msgid "print file modification times in UTC"
-msgstr "dosya değişiklik zamanları UTC'ye göre basılır"
+msgstr "dosya değişiklik zamanlarını UTC'ye göre bas"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
-msgstr ""
+msgstr "tüm çözünürlüğü kullanarak dosya zamanını bas"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "ayrıntılı çıktı DOSYAya gönderilir"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "her iletide arşiv içindeki blok sayısı gösterilir"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "her eylemden önce doğrulama istenir"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "tar öntanımlıları gösterilir"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr ""
 "listeleme ya da çıkarma sırasında arama koşuluna uymayan dizinler listelenir"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "dönüşümden sonra dosya ve arşiv isimlerini gösterir"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "ŞEKİL"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "sarmalama şeklinin ismi; geçerli ŞEKİL değerleri için aşağıya bakınız"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "DİZGEdeki sarmalama karakterlerine ek olarak"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "DİZGEdeki karakterler için sarmalamayı iptal eder"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Uyumluluk seçenekleri:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "oluştururken --old-archive ile, çıkarırken --no-same-owner ile aynı"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Diğer seçenekler:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "bozuculuk olasılığı olan bazı seçeneklerin kullanımı iptal edilir"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
-msgstr "`-Acdtrux' seçenekleri birden fazla belirtilemez"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
+msgstr ""
+"Aynı anda `-Acdtrux' veya `--test-label' seçeneklerinin sadece birini "
+"kullanabilirsiniz"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Sıkıştırma seçenekleri çelişiyor"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Bilinmeyen  sinyal ismi: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Tarih örnekleri dosyası bulunamadı"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Bilinmeyen tarih biçemi %2$s yerine %1$s kullanılıyor"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Seçenek %s: `%s' tarihi %s olarak ele alınıyor"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: dosya listesi zaten okundu"
-
-#: src/tar.c:1201
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: okunan dosya ismi boş karakter içeriyor"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
-#, fuzzy, c-format
 msgid "filter the archive through %s"
-msgstr "arşivi gzip üzerinden geçirir"
+msgstr "arşivi %s üzerinden filtrele"
 
-#: src/tar.c:1296
-#, fuzzy
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
-msgstr "--quoting-style seçeneği için geçerli değerler:"
+msgstr "--quoting-style seçeneği için geçerli argümanlar:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2179,174 +2294,201 @@ msgstr ""
 "\n"
 "*Bu* tar için öntanımlılar:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Sahip geçersiz"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Bloklama çarpanı geçersiz"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Kayıt ortamının uzunluğu geçersiz"
 
-#: src/tar.c:1529
-#, fuzzy
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
-msgstr "Arttırımlı dosya biçimi hatalı"
+msgstr "Geçersiz arttırımlı seviye değeri"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Birden fazla eşik tarihi"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Seyrek sürüm değeri geçersiz"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' seçeneği bu platformda desteklenmiyor"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint değeri bir tamsayı değil"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s: geçersiz grup"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Seçenekte verilen kip geçersiz"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Sayı geçersiz"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Sahip geçersiz"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
 msgstr ""
+"--preserve seçeneği kullanılmıyor, yerine --preserve-permissions --preserve-"
+"order kullanın"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Kayıt uzunluğu geçersiz"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Kayıt uzunluğu %d nin katları olmalı"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Elemen sayısı geçersiz"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Sadece tek bir --to-command seçeneği kullanılabilir"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Hatalı yoğunluk argümanı: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Bilinmeyen yoğunluk: '%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "`-[0-7][lmh]' seçeneği *bu* tar ile desteklenmiyor"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[DOSYA]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Eski seçenek `%c' bir argümanla kullanılır."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence istenen işlem kipinde kullanılamaz"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Çok sayıda arşiv dosyası `-M' seçeneği gerektirir"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "--listed-incremental ile --newer birlikte kullanılamaz"
 
-#: src/tar.c:2406
-#, fuzzy
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
-msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil"
+msgstr "--listed-incremental olmadan --level anlamsızdır"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Bölüm etiketi çok uzun (sınır: %lu bayt)"
 msgstr[1] "%s: Bölüm etiketi çok uzun (sınır: %lu bayt)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Çok sayıda bölüm içeren arşivler doğrulanamaz"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Sıkıştırılmış arşivler doğrulanamaz"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "%s şablonu kullanılamıyor"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Çok sayıda bölüm içeren sıkıştırılmış arşivler kullanılamıyor"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Sıkıştırılmış arşivler birleştirilemez"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "%s şablonu kullanılamıyor"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
-msgstr ""
+msgstr "Hacim uzunluğu kayıt boyutundan daha az olamaz"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
-msgstr ""
+msgstr "--preserve-order, --listed-incremental ile uyumlu değil"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Bir boş arşivin oluşturulması ister istemez reddediliyor"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "`-Aru' seçenekleri `-f -' ile uyumsuz"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
-msgstr "`-Acdtrux' seçeneklerinden biri belirtilmeli"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
+msgstr ""
+"Aynı anda `-Acdtrux' veya `--test-label' seçeneklerinin sadece birini "
+"kullanmalısınız"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
-msgstr ""
+msgstr "Önceki hatalar nedeniyle başarısız durumla çıkılıyor"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2358,115 +2500,110 @@ msgstr[1] "%s: Dosya %s baytta kırpılmış"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "%s anahtar sözcüğü ya bilinmiyor ya da henüz gerçeklenmemiş"
 
-#: src/xheader.c:174
-#, fuzzy
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
-msgstr "Numara izin verilen aralığın dışında: %s"
+msgstr "Zaman damgası izin verilen aralığın dışında"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "%s şablonu kullanılamıyor"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "%s anahtar sözcüğü çakıştırılamaz"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Ek başlık bozuk: uzunluk eksik"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Ek başlık uzunluğu izin verilen aralığın dışında"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Ek başlık uzunluğu %*s aralık dışında"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Ek başlık bozuk: uzunluktan sonra boşluk yok"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Ek başlık bozuk: eşit işareti eksik"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Ek başlık bozuk: satırsonu eksik"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Bilinmeyen ek başlık anahtar sözcüğü `%s' yoksayılıyor"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Üretilen isim/değer çifti çok uzun (isim=%s, uzunluk=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Ek başlık %s=%s, %s..%s aralığının dışında"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Ek başlık bozuk: %s=%s geçersiz"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Ek başlık bozuk: %s=%s aşırıya kaçmış"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "Ek başlık bozuk: %s geçersiz: umulmadık %c ayracı"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Ek başlık bozuk: %s geçersiz: değerler tek sayıda"
 
-#: src/checkpoint.c:107
-#, fuzzy, c-format
+#: src/checkpoint.c:109
+#, c-format
 msgid "%s: not a valid timeout"
-msgstr "%s: geçersiz grup"
+msgstr "%s: geçerli bir zaman çıktısı değil"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
-msgstr ""
+msgstr "%s: bilinmeyen kontrol noktası işlemi"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
-msgstr ""
+msgstr "yazma"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
-msgstr ""
+msgstr "okuma"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Yazma sınama yeri %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Okuma sınaması yeri %u"
@@ -2539,17 +2676,15 @@ msgid "Synchronous execution options:"
 msgstr "İcra eşzamanlama seçenekleri:"
 
 #: tests/genfile.c:163
-#, fuzzy
 msgid "OPTION"
-msgstr " [SEÇENEK...]"
+msgstr "SEÇENEK"
 
 #: tests/genfile.c:164
-#, fuzzy
 msgid ""
 "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, "
 "--unlink"
 msgstr ""
-"Belirtilen KOMUT çalıştırılır. --checkpoint ile ve --cut, --append, --touch "
+"Belirtilen ARGları çalıştır. --checkpoint ile ve --cut, --append, --touch "
 "seçeneklerinden biri ile birlikte kullanışlıdır"
 
 #: tests/genfile.c:167
@@ -2594,7 +2729,7 @@ msgstr "KOMUT çalıştırılır"
 
 #: tests/genfile.c:194
 msgid "Unlink FILE"
-msgstr ""
+msgstr "DOSYA bağlantısını kes"
 
 #: tests/genfile.c:244
 #, c-format
@@ -2611,7 +2746,7 @@ msgstr "Numara izin verilen aralığın dışında: %s"
 msgid "Negative size: %s"
 msgstr "Negatif boyut: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) başarısız"
@@ -2619,12 +2754,12 @@ msgstr "stat(%s) başarısız"
 #: tests/genfile.c:268
 #, c-format
 msgid "requested file length %lu, actual %lu"
-msgstr ""
+msgstr "istenen dosya uzunluğu %lu, asıl %lu"
 
 #: tests/genfile.c:272
 #, c-format
 msgid "created file is not sparse"
-msgstr ""
+msgstr "oluşturulan dosya seyrek değil"
 
 #: tests/genfile.c:361
 #, c-format
@@ -2640,8 +2775,8 @@ msgstr "Bilinmeyen tarih biçimi"
 msgid "[ARGS...]"
 msgstr "[ARGÜMANLAR...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "`%s' açılamıyor"
@@ -2655,112 +2790,103 @@ msgstr "konumlanamıyor"
 msgid "file name contains null character"
 msgstr "dosya ismi boş karakter içeriyor"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "seyrek dosyalar standart çıktıda üretilemez, --file seçeneğini kullanın"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "kalıp yanlış (`%s' yakınında)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Bilinmeyen alan `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "zaman `%s' olarak ayarlanamaz"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "`%s' bağlantısı kesilemiyor"
+
+#: tests/genfile.c:701
 #, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s komutu başarısız"
+
+#: tests/genfile.c:706
+#, c-format
 msgid "cannot unlink `%s'"
-msgstr "`%s' açılamıyor"
+msgstr "`%s' bağlantısı kesilemiyor"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Komut başarıyla sonlandı\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Komut %d çıkış durumu ile başarısız oldu\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Komut %d sinyali ile sonlandırıldı\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Komut %d sinyali ile durduruldu\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Komut bellek dökümü verdi\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Komut sonlandı\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat seçeneği dosya isimleri gerektirir"
 
-#, fuzzy
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Dosya okunamadan kaldırıldı"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Çalışma dizini alınamıyor"
 
-#, fuzzy
-#~ msgid "Cannot restore working directory"
-#~ msgstr "Çalışılan dizin kaydedilemez"
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "isimler arşivdeki sırasına göre çıkarılır"
 
-#, fuzzy
-#~ msgid "Cannot resolve hostname %s"
-#~ msgstr "%s ismi %s olarak değiştirilemez"
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Anlık görüntü dosyası okunurken alan çok uzun"
 
-#~ msgid "suppress this warning."
-#~ msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın."
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Anlık görüntü dosyasında okuma hatası"
 
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: kuraldışı seçenek -- %c\n"
-
-#~ msgid "Reading %s\n"
-#~ msgstr "%s okunuyor\n"
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Anlık görüntü dosyasında beklenmeyen alan değeri"
 
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to <%s>.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Yazılım hatalarını <%s> adresine,\n"
-#~ "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
-
-#~ msgid "filter the archive through bzip2"
-#~ msgstr "arşivi bzip2 üzerinden geçirir"
+#~ msgid "Invalid group"
+#~ msgstr "Geçersiz grup"
 
-#~ msgid "filter the archive through gzip"
-#~ msgstr "arşivi gzip üzerinden geçirir"
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Ek başlık uzunluğu izin verilen aralığın dışında"
 
-#~ msgid "filter the archive through compress"
-#~ msgstr "arşivi compress üzerinden geçirir"
-
-#, fuzzy
-#~ msgid "filter the archive through lzma"
-#~ msgstr "arşivi gzip üzerinden geçirir"
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: kuraldışı seçenek -- %c\n"
 
-#, fuzzy
-#~ msgid "filter the archive through lzop"
-#~ msgstr "arşivi gzip üzerinden geçirir"
+#~ msgid "block size"
+#~ msgstr "blok uzunluğu"
 
 #~ msgid "Input string too long"
 #~ msgstr "Girdi dizgesi çok uzun"
@@ -2790,17 +2916,34 @@ msgstr "--stat seçeneği dosya isimleri gerektirir"
 #~ "  --version   Sürümü basar.\n"
 #~ "  --help      Bu iletiyi basar.\n"
 
+#~ msgid ""
+#~ "\n"
+#~ "Report bugs to <%s>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Yazılım hatalarını <%s> adresine,\n"
+#~ "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
+
 #~ msgid "Seek offset error"
 #~ msgstr "Arama başlangıcı hatası"
 
 #~ msgid "Premature end of file"
 #~ msgstr "Dosya sonu belirsiz"
 
+#~ msgid "Reading %s\n"
+#~ msgstr "%s okunuyor\n"
+
 #~ msgid "Error is not recoverable: exiting now"
 #~ msgstr "Hata kurtarılabilir değil: şimdilik çıkılıyor"
 
-#~ msgid "block size"
-#~ msgstr "blok uzunluğu"
+#~ msgid "suppress this warning."
+#~ msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın."
+
+#~ msgid "filter the archive through bzip2"
+#~ msgstr "arşivi bzip2 üzerinden geçirir"
+
+#~ msgid "filter the archive through compress"
+#~ msgstr "arşivi compress üzerinden geçirir"
 
 #~ msgid "[.]NUMBER"
 #~ msgstr "[.]SAYI"
index ec478670a22384c53e91ca14ddc51302639b7242..a198bae55d51bd3ba65c11ba6cb70c1d7a7bb3f5 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 1bc42cfc20936e0b08df78dc85d8e76b52dcb361..3f4fe333e8e595ecc5fdff14fc6bb5f4f09d238a 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -3,12 +3,12 @@
 # Copyright (C) 2010 Free Software Foundation, Inc.
 # Sergey Poznyakoff <gray@gnu.org>, 2005, 2006, 2007, 2008, 2009, 2010.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
 "Project-Id-Version: tar 1.24\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
 "PO-Revision-Date: 2010-10-25 15:22+0300\n"
 "Last-Translator: Sergey Poznyakoff <gray@gnu.org>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -30,66 +30,65 @@ msgid "ambiguous argument %s for %s"
 msgstr "неоднозначний аргумент %s для %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Дозволені аргументи такі:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: значення %s є менше ніж або дорівнює %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Хибні дані в ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr ""
 "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Використання:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " чи: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [ОПЦІЯ...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr ""
 "Спробуйте `%s --help' або `%s --usage' для отримання докладнішого опису.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "Про помилки звітуйте на <%s>.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Невідома системна помилка"
 
@@ -101,7 +100,7 @@ msgstr "вивести цю довідку"
 msgid "give a short usage message"
 msgstr "вивести коротке повідомлення про використання"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "НАЗВА"
@@ -122,17 +121,16 @@ msgstr "зачекати вказану кількість секунд (тип
 msgid "print program version"
 msgstr "вивести версію програми"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Забагато аргументів\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Опція мала бути розпізнана!?"
 
@@ -140,62 +138,62 @@ msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Опція мала бути
 msgid "write error"
 msgstr "помилка запису"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: опція '%s' неоднозначна\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: опція '--%s' не може мати аргументу\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: опція '%c%s' не може мати аргументу\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: опція '%s' вимагає аргументу\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: невідома опція '--%s'\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: невідома опція '%c%s'\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: недійсна опція -- '%c'\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: опція вимагає аргументу -- '%c'\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: опція '-W %s' неоднозначна\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: опція '-W %s' не може мати аргументу\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: опція '%s' вимагає аргументу\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "пам'ять вичерпана"
 
@@ -211,28 +209,30 @@ msgstr "не вдається зберегти поточний каталог"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -242,7 +242,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yYтТ]"
 
@@ -252,7 +252,7 @@ msgstr "^[yYтТ]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nNнН]"
 
@@ -542,7 +542,12 @@ msgstr "stdout"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Не вдалося під'єднатись до %s: неможливо встановити адресу хоста"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Не вдалося запустити віддалену оболонку"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Не вдалося запустити віддалену оболонку"
@@ -591,8 +596,8 @@ msgstr "Неочікувані аргументи"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "ЧИСЛО"
 
@@ -600,8 +605,8 @@ msgstr "ЧИСЛО"
 msgid "set debug level"
 msgstr "встановити рівень налагоджування"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -616,7 +621,7 @@ msgstr "встановити назву файлу для виходу нала
 msgid "cannot open %s"
 msgstr "не вдається відкрити %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "забагато аргументів"
@@ -625,9 +630,9 @@ msgstr "забагато аргументів"
 msgid "Garbage command"
 msgstr "Хибна команда"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Це не схоже на архів tar"
 
@@ -665,19 +670,19 @@ msgstr "Неможливо перевіряти архів, записаний 
 msgid "Archive is compressed. Use %s option"
 msgstr "Архів стиснений. Використовуйте опцію %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Не можна оновлювати стиснені архіви"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "На початку стрічки, закінчуємо"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Надто багато помилок, виконання перервано"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
@@ -685,7 +690,7 @@ msgstr[0] "Розмір запису = %lu блок"
 msgstr[1] "Розмір запису = %lu блоки"
 msgstr[2] "Розмір запису = %lu блоків"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
@@ -693,39 +698,39 @@ msgstr[0] "Невірне вирівнювання блоку (%lu байт) в
 msgstr[1] "Невірне вирівнювання блоку (%lu байти) в архіві"
 msgstr[2] "Невірне вирівнювання блоку (%lu байтів) в архіві"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Не вдалося переміститись назад у архіві; можливо архів не можна прочитати "
 "без опції -i"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek не зупинився на межі запису"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: містить невірний номер тому"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Переповнення номера тому"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Підготуйте том #%d архіву %s ї натиснить return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Кінець файлу, замість очікуваної відповіді"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "ПОПЕРЕДЖЕННЯ: Незавершений архів"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -736,66 +741,66 @@ msgstr ""
 " q          Перервати роботу\n"
 " у або новий рядок  Продовжувати\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !          Викликати оболонку\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?          Вивести цю довідку\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Новий том відсутній. Завершення.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Не вказано назви файлу. Спробуйте ще раз.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Недійсні вхідні дані. Наберіть ? щоб отримати підказку.\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "збій виконання `%s'"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr ""
 "%s можливо продовжується у цьому томі: заголовок містить обрізану назву"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s не продовжується у цьому томі"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s є неправильним розміром (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Цей том є за межами послідовності (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Назви тому відсутня в архіві. Не можна порівняти з %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Етикетка тому %s не співпадає з %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -803,11 +808,11 @@ msgstr ""
 "%s: назва файлу надто довга щоб зберегти її у заголовку тому GNU; назву "
 "обрізано"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "запис не закінчився на межі блоку"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
@@ -815,77 +820,77 @@ msgstr[0] "Вдалося прочитати тільки %lu з %lu байта"
 msgstr[1] "Вдалося прочитати тільки %lu з %lu байтів"
 msgstr[2] "Вдалося прочитати тільки %lu з %lu байтів"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Різниця у змісті"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Неочікуваний кінець файла в архіві"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Різниця у типі файлу"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Різниця у правах доступу"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Різниця у значенні UID"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Різниця у значенні GID"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "Різниця у часі модифікації"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "Різниця у розмірі"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Не є посиланням до %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "Різниця у символічному посиланні"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Різниця у номері пристрою"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Перевірка "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s: Невідомий тип файлу `%c', перевірюється як звичайний файл"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Архів містить назви файлів без попереджуючих префіксів."
 
 # FIXME: base=64?
-#: src/compare.c:526
+#: src/compare.c:533
 #, fuzzy
 msgid "Archive contains transformed file names."
 msgstr "Архів містить застарілі заголовки з основою 64"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Перевірка може не знайти первинних файлів."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
@@ -893,47 +898,47 @@ msgstr[0] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірни
 msgstr[1] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовки"
 msgstr[2] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовків"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Самотній блок нулів, зсув %s"
 
 # Не подобається мені це "кешування"...
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: містить мітку каталогу кешування `%s'; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "Значення %s поза межами діапазону типа %s %s..%s; заміна на %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "значення %s за межами діапазону типа %s %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Створення від'ємних вісімкових заголовків"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s: назва файлу занадто довга (макс. %d); не архівується"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: назва файлу занадто довга (не вдається розділити); не архівується"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: назва посилання занадто довга; не архівується"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
@@ -941,272 +946,297 @@ msgstr[0] "%s: Файл скоротився на %s байт; заповнен
 msgstr[1] "%s: Файл скоротився на %s байти; заповнення нулями"
 msgstr[2] "%s: Файл скоротився на %s байтів; заповнення нулями"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: файл знаходиться в іншої файлової системі; не архівується"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "вміст не архівується"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Невідомий тип файла; Файл проігноровано"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Відсутні деякі посилання до %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: файл не змінено; не архівується"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: файл є архівом; не архівується"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "каталог не архівується"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: файл змінився під час читання"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: гніздо ігнорується"
 
 # FIXME: door?
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: двері ігноруються"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Перехід до наступного заголовка"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Видалення не-заголовка з архіву"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: неймовірно стара дата %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: мітка часу %s зсунута на %s сек. до майбутнього"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Неочікувана суперечність під час створення каталогу"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Каталог перейменовано перед тим, як tar встиг витягнути його стан"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Витягування безперервних файлів у звичайні"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Спроба перетворити символічні посилання на жорсткі"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Не вдається витягнути -- файл починається в іншому томі"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Неочікуваний кінець файла у заголовку довгої назви"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Невідомий тип файлу `%c', спроба витягнути його як звичайний файл"
 
 # FIXME: або сучасний?
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "Існуючий файл `%s' є новіший"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Не вдалося створити резервну копію цього файла"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Не вдається перейменувати %s на %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s: Каталог перейменовано з %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Каталог перейменовано"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Новий каталог"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: файл знаходиться в іншої файлової системі; не архівується"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог перейменовано"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "Невірний час файлу"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Невірна дата модифікації (секунди)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Недійсний час модифікації (наносекунди)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Невірний номер пристрою"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Невірний номер і-вузла"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "З файла-знімка прочитано надто довге поле"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Помилка читання файла-знімка"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Неочікуваний кінець файла-знімка"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Неочікуваний кінець файла-знімка"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Бракує ознаки кінця запису"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Неправильний формат файла знімку"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "Такий інкрементний формат не підтримується: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr ""
 "Неправильно сформований dumpdir: очікувалося '%c' натомість знайдено %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Неправильно сформований dumpdir: 'X' вказаний двічі"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Невірний формат dumpdir: пуста назва у `R'"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Невірний формат dumpdir: `T' без попереднього `R'"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Невірний формат dumpdir: пуста назва у `T'"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr ""
 "Невірний формат dumpdir: очікувалося `%c', натомість знайдено кінець файла"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Невірний формат dumpdir: `X' не використаний"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Не вдається створити тимчасовий каталог використовуючи шаблон %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Каталог не очищується: не вдалося виконати stat"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: Каталог знаходиться на іншому пристрої: не очищується"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Стирання %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Не вдається видалити"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Пропускається"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "блок %s: ** Містить нулі **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "блок %s: ** Кінець файлу **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "блок %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Пробіли у заголовку замість очікуваного числового значення типу %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
@@ -1214,17 +1244,17 @@ msgstr ""
 "вважається, що це є двійкове доповнення"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Вісімкове значення %.*s знаходиться поза межами діапазону типу %s"
 
 # FIXME: base=64?
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Архів містить застарілі заголовки з основою 64"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr ""
@@ -1232,94 +1262,110 @@ msgstr ""
 "типу %s"
 
 # FIXME: base-256
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Значення з основою 256 поза допустимими межами типу %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "Знайдено %.*s замість числового значення типу %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Значення %s поза допустимими межами типу %s %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr "посилання до %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr "невідомий тип файла %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Довге посилання--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Довга назва--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Заголовок тому--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Продовжується з байту %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Створення каталогу:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "Не вдається отримати поточний каталог"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Перейменовано %s у %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Не вдається перейменувати на %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Перейменовано %s назад у %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Файл було видалено перед тим як tar встиг його прочитати"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "процес-нащадок"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "канал між процесами"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "збій виконання `%s'"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: перелік файлів уже прочитано"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "не вдається встановити час файла `%s'"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: прочитана назва файла містить нульовий символ"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Назви файлів містять символи-шаблони"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1327,57 +1373,58 @@ msgstr ""
 "Користайтеся опцією --wildcards аби увімкнути шаблони, або опцією --no-"
 "wildcards, щоб позбутися цього повідомлення"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Не знайдено в архіві"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Потрібну копію у архіві не знайдено"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Незгідність назви тому"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Використання опції -C у переліку файлів разом з опцією --listed-incremental "
 "не дозволяється"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Разом з --listed-incremental дозволяється лише одна опція -C"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Обидві опції -%s і -%s вимагають доступу до стандартного входу"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Невірний формат архіву"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Формат архіву є несумісним з розширеними властивостями GNU"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Невідомий стиль цитування `%s'. Наберіть `%s --quoting-style=help' аби "
 "отримати перелік стилів."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1394,9 +1441,10 @@ msgstr ""
 "                               # archive.tar\n"
 "  tar -xf archive.tar          # Витягує усі файли з archive.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1416,81 +1464,81 @@ msgstr ""
 "                  інакше - прості\n"
 "  never, simple   завжди створювати прості резервні копії\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Режими роботи:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "вивести вміст архіву"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "витягнути файли з архіву"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "створити новий архів"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "порівняти файли в архіві з файлами у файлової системі"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "долучити файли до існуючого архіву"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "долучати тільки такі файли, що є новішими за їх копії в архіві"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "долучити архів до архіву"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "видалити файли з архіву (не на стрічці!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "перевірити мітку тому та вийти"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Модифікатори режиму роботи:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "заощаджувати простір під час зберігання розсіяних файлів"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "ГОЛОВНИЙ[.ДРУГОРЯДНИЙ]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "встановлює версію формату розсіяних файлів (вмикає --sparse)"
 
 # FIXME: incremental
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "обробка старого формату інкрементного архіву GNU"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "обробка нового формату інкрементного архіву GNU"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "рівень архівної копії для створення інкрементного архіву"
 
 # FIXME: хммм...
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "ігнорувати помилки читання файлів"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1502,122 +1550,133 @@ msgstr ""
 "з переліком файлів (у командному рядку або за допомогою опції -T). Типове "
 "ЧИСЛО: 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "архів підтримує операцію seek"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "архів не підтримує операцію seek"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "не перевіряти номери пристрою під час створювання інкрементних архівів"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr ""
 "перевіряти номери пристрою під час створювання інкрементних архівів (типово)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Керування перезаписом:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "перевірити архів після запису в нього"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "видаляти файли після додавання до архіву"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "не заміняти існуючи файли під час витягування"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "не заміняти існуючи файли під час витягування"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "не заміняти існуючи файли що є новішими за їх копії у архіві"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "перезаписувати існуючі файли під час витягування"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "видаляти кожний файл перед витягуванням його копії"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "спорожняти старий каталог перед витягуванням його копії з архіву"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "зберігати мета-дані існуючих каталогів"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "перезаписувати метадані існуючих каталогів під час витягування (типово)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "перезаписувати існуючі файли під час витягування"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Вибір вихідного потоку:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "витягувати файли у стандартний вивід"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "КОМАНДА"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "передавати витягнуті файли до стандартного вводу іншої програми"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "ігнорувати коди завершення процесів-нащадків"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "вважати ненульовий код завершення нащадка помилкою"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Обробка атрибутів файлу:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "встановлення вказаного користувача власником доданих файлів"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "встановлення групи з вказаною назвою групою власника доданих файлів"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "ДАТА-АБО-ФАЙЛ"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "встановлення часу останньої зміни доданих файлів"
 
 # Ну, і чому це CHANGES??
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "ПРАВА"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "встановлення вказаних символічно прав доступу для доданих файлів"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "МЕТОД"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1627,11 +1686,11 @@ msgstr ""
 "читання (типово, МЕТОД='replace'), або через запобігання оновленню часу "
 "(МЕТОД='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "не витягувати час модифікації файлів"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1639,21 +1698,21 @@ msgstr ""
 "встановлювати власників файлів за даними з архіву (типово для супер-"
 "користувача)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "стати власником витягнутих файлів (типово для звичайного користувача)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "завжди використовувати числа замість назв власника/групи"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "встановлювати права доступу згідно з даними архіву (типово для супер-"
 "користувача)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1661,15 +1720,16 @@ msgstr ""
 "встановлювати права доступу згідно зі значенням umask (типово для звичайного "
 "користувача)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "витягувати файли у порядку їх з'явлення в архіві"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "те ж, що -p -s разом"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1677,139 +1737,180 @@ msgstr ""
 "затримати встановлення часу модифікації та прав доступу до каталогів до "
 "кінця витягування"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "відмінити дії опції --delay-directory-restore"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Обробка атрибутів файлу:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Вибір та зміна пристрою:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "АРХІВ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "використовувати вказаний файл або пристрій"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "файл архіву є локальним, навіть якщо його назва містить двокрапку"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "використовувати вказану команду замість rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "використовувати вказану команду замість rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "визначає пристрой та густину"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "створити, виводити зміст або витягувати файли з багатотомного архіву"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "змінити стрічку після запису ЧИСЛА x 1024 байтів"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "запускати сценарій наприкінці кожної стрічки (вмикає -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "використовувати/обновляти номер тому у ФАЙЛІ"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Блокування пристрою:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "ЧИСЛО-БЛОКІВ"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "розмір запису ЧИСЛО-БЛОКІВ x 512 байтів"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "встановити розмір запису у блоках по 512 байтів"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "ігнорувати нульові блоки в архіві (звичайно вказують кінець файлу)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "розбивати на блоки під час читання (для каналів 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Вибір формату архіву:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "ФОРМАТ"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "створити архів у вказаному форматі"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "ФОРМАТ будь-який з наступних:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "старий формат V7"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "формат GNU, сумісний з версією tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "формат GNU, сумісний з версією tar 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "формат POSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "формат POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "те ж, що і pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "те ж, що і --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "те ж, що і --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "ключове_слово[[:]=значення][,ключове_слово[[:]=значення], ...]\""
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "керування ключовими словами pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "ТЕКСТ"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1817,77 +1918,77 @@ msgstr ""
 "створити архів з назвою тому \"ТЕКСТ\". Під час виводу змісту або "
 "витягування, використовувати ТЕКСТ як шаблон пошуку тому"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Опції стиснення:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "вибирати програму стиснення за суфіксом архіву"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "не використовувати суфікс для вибору програми стиснення"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "ПРОГРАМА"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "використовувати ПРОГРАМУ для стиснення/розтискання архіву"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Вибір файлів:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "долучити ФАЙЛ до архіву (корисне, якщо його назва починається з -)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "КАТАЛОГ"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "перейти до вказаного каталогу"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "читати назви файлів для додання/витягування з вказаного файла"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr ""
 "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами. "
 "Ця опція вимикає -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "відмінити дію попередньої опції --null"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "усувати цитування з назв файлів прочитаних за допомогою -T (типово)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "не усувати цитування з назв файлів прочитаних за допомогою -T"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "ШАБЛОН"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "не обробляти файли, назви яких відповідають вказаному шаблону"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "виключити назви що відповідають шаблонам, вказаним у файлі"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
@@ -1895,92 +1996,94 @@ msgstr ""
 "не архівувати файли в каталогах, що містять CACHEDIR.TAG, з винятком самого "
 "файлу"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "не архівувати жодні файли в каталогах, що містять CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "не архівувати каталоги, що містять CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr ""
 "не архівувати файли в каталогах, що містять ФАЙЛ, з винятком самого файлу"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "не архівувати жодні файли в каталогах, що містять ФАЙЛ"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "не архівувати каталоги, що містять ФАЙЛ"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "не архівувати каталоги систем керування версіями"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "не архівувати резерві файли та файли блокування"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "не заходити автоматично у каталоги"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "залишатися у локальної файлової системі під час створення архіву"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "рекурсивно проходити каталоги (типово)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "не видаляти початкову косу риску `/' з назв файлів"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "Йти за символьними посиланнями: долучати файли, на яки вони вказують"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "Йти за жорсткими посиланнями: долучати файли, на яки вони вказують"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "НАЗВА-ФАЙЛУ"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "починати обслуговування архіву з вказаного файлу"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "долучати тільки такі файли, що є новіші за вказану дату або файл"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "ДАТА"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "порівнювати тільки дату і час зміни даних"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "РЕЖИМ"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "перед видаленням створювати резервні файли у вказаному режимі"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "РЯДОК"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1988,98 +2091,101 @@ msgstr ""
 "перед видаленням створювати резервні файли з указаним суфіксом (типово '~', "
 "якщо не перевизначено змінною середовища SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Перетворювання назв файлів:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "видаляти вказане ЧИСЛО компонентів з початку назв файлів"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "ВИРАЗ"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "перетворювати назви файлів за допомогою вказаного виразу заміни"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Керування порівнюванням назв (впливає на взірці як вилучення, так і "
 "долучення):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "шаблони ігнорують відмінності у регістрі символів"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "порівнювати шаблони з назвами файлів починаючи від початку назви"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr ""
 "порівнювати шаблони з назвами файлів починаючи від будь-якого / (типово)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "шаблони враховують регістр (типово)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "користатися шаблонами (типово для вилучення)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "порівнювати назви буквально"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "шаблони не стосуються до '/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "шаблони стосуються до '/' (типово)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Інформативний вивід:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "виводити докладну інформацію про оброблені файли"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "КЛ.-СЛОВО"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "керування попередженнями"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "виводити контрольне повідомлення кожне ЧИСЛО записів (типово 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ДІЯ"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "виконати вказану дію у контрольному пункті"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "виводити повідомлення якщо до архіву було додано не всі посилання"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "СИГНАЛ"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2090,31 +2196,35 @@ msgstr ""
 "- друкувати статистику по отриманню цього сигналу; дозволеними сигналами є "
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 і SIGUSR2, а також ці назви без префікса SIG"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "друкувати час модифікації файлів у UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "друкувати час модифікації файлів у повній вирізняльної здатності"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "виводити детальну інформацію у ФАЙЛ"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "попереджувати кожне повідомлення номером блоку в архіві"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "Запитувати підтвердження кожної дії"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "вивести типові налаштування"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2122,31 +2232,31 @@ msgstr ""
 "під час виведення змісту або витягування файлів друкувати назви каталогів що "
 "не відповідають критеріям пошуку"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "показувати перетворені назви файлів"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "СТИЛЬ"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "встановити стиль цитування; дозволені стилі див. нижче"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "цитувати також вказані символи"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "вимкнути цитування вказаних символів"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Опції сумісності:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2154,63 +2264,56 @@ msgstr ""
 "під час створення архіву, те ж саме, що і --old-archive. Під час "
 "витягування, те ж саме, що --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Інші опції:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "заборонити користування деякими потенційно небезпечними опціями"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr ""
 "Не можна вказувати більш ніж одну з опцій `-Acdtrux' або `--test-label'"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Опції стиснення конфліктують одна з другою"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "Невідомий тип файла %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Не знайдено файл-зразок дати"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Використовується %s замість невідомого формату дати %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Опція %s: Дату `%s' сприйнято як %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: перелік файлів уже прочитано"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: прочитана назва файла містить нульовий символ"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "фільтрувати архів через %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Допустимими аргументами опції --quoting-style є:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2218,51 +2321,48 @@ msgstr ""
 "\n"
 "Типові налаштування *цієї* копії програми:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Невірний власник"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Неправильний фактор блокування"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Неправильна довжина стрічки"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Недійсне значення для рівня архівації"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Більш ніж одна гранична дата"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Недійсна версія формату розсіяних файлів"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "опція --atime-preserve='system' не підтримується на цій платформі"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "аргумент --checkpoint мусить бути цілим числом"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Недійсна група"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Невірний формат прав доступу"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Невірне число"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Невірний власник"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2270,69 +2370,71 @@ msgstr ""
 "Опція --preserve є застарілою, замість неї використовуйте --preserve-"
 "permissions --preserve-order"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Невірний розмір запису"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Розмір запису має ділитися на %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Невірна кількість елементів"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Дозволяється лише одна опція --to-command"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Невірний аргумент вказання густини: `%s'"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "Невідома густина: `%c'"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "Опції `-[0-7][lmh]' не підтримуються *цією* версією tar"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[ФАЙЛ]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Стара опція `%c' потребує аргументу"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "вказання --occurrence не має сенсу без вказання переліку файлів"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr ""
 "опцію --occurrence не можна використовувати у зазначеному режимі роботи"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Вказання декількох файлів потребує вказання опції `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Не можна використовувати --listed-incremental разом з --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Використання --level разом з --listed-incremental не має сенсу"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
@@ -2340,52 +2442,80 @@ msgstr[0] "%s: Мітка тому є надто довга (обмеження
 msgstr[1] "%s: Мітка тому є надто довга (обмеження в %lu байти)"
 msgstr[2] "%s: Мітка тому є надто довга (обмеження в %lu байтів)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Не можна перевіряти багатотомні архіви"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Не можна перевіряти стиснені архіви"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Шаблон %s забороняється уживати"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Не можна використовувати стиснення багатотомних архівів"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Не можна з'єднувати стиснені архіви"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Шаблон %s забороняється уживати"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Розмір тому не може бути більшим від розміру запису"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "Опція --preserve-order несумісна з --listed-incremental"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Полохливо відмовляюся створювати пустий архів"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Опції `-Aru' несумісні з `-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "Необхідно вказати одну з опцій `-Acdtrux' або `--test-label'"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Невдачне завершення внаслідок попередніх помилок"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2398,119 +2528,115 @@ msgstr[2] "%s: Файл скоротився на %s байтів"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Ключове слово %s не є відоме або ще не реалізоване"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Значення позначки часу поза допустимими межами"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Шаблон %s забороняється уживати"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Не можна перевизначити ключове слово %s"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Невірно сформований розширений заголовок: бракує довжини"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Довжина розширеного заголовку є за межами діапазону"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Довжина розширеного заголовку %*s є за межами діапазону"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr ""
 "Невірно сформований розширений заголовок: відсутній пробіл після довжини"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Невірно сформований розширений заголовок: відсутній знак рівняння"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Невірно сформований розширений заголовок: відсутній знак нового рядка"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Невідоме ключове слово `%s' іґнорується"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Створена пара ключове слово/значення є за довга (ключ=%s, довжина=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr ""
 "Значення розширеного заголовку %s=%s лежить поза допустимими межами типу %s.."
 "%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Невірно сформований розширений заголовок: недійсна змінна %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Невірно сформований розширений заголовок: зайвий %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Невірно сформований розширений заголовок: змінна %s: неочікуваний розділювач "
 "%c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Невірно сформований розширений заголовок %s: непарна кількість значень"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: недійсний ліміт часу"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: незнана дія"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "запис"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "читання"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Контрольна відмітка запису %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Контрольна відмітка читання %u"
@@ -2653,7 +2779,7 @@ msgstr "Число поза допустимими межами: %s"
 msgid "Negative size: %s"
 msgstr "Від'ємний розмір: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "збій виконання stat(%s)"
@@ -2682,8 +2808,8 @@ msgstr "Невідомий формат дати"
 msgid "[ARGS...]"
 msgstr "[АРГУМЕНТИ...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "не вдається відкрити `%s'"
@@ -2697,67 +2823,98 @@ msgstr "не вдається виконати lseek"
 msgid "file name contains null character"
 msgstr "назва файла містить нульовий символ"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "неможливо створювати розсіяні файли на стандартному виводі; користайтеся "
 "опцією --file"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "недійсна маска (біля `%s')"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Невідоме поле `%s'"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "не вдається встановити час файла `%s'"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "не вдається видалити `%s'"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "збій виконання `%s'"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "не вдається видалити `%s'"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Команда завершилася успішно\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Команда завершилася з кодом %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Команда завершилася по сигналу %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Команда зупинилася по сигналу %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Команда скинула відбиток пам'яті\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Команда завершилася\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "опція --stat вимагає назв файлів"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "Не вдається отримати поточний каталог"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "витягувати файли у порядку їх з'явлення в архіві"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "З файла-знімка прочитано надто довге поле"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Помилка читання файла-знімка"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Неочікуваний кінець файла-знімка"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Довжина розширеного заголовку є за межами діапазону"
+
+#~ msgid "Invalid group"
+#~ msgstr "Недійсна група"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: Каталог було видалено перед тим як tar встиг його прочитати"
index bd446637d6e0d80c1181ed783b0b0f1f082ae008..fd5f38238e7a18f1dc9a84edf1bf066994e901dc 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index e1289912e51f23e474498a0beb5332a3aebe22ce..d94ec295d2f00ca5df074e8fa45942ba5c32abcd 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,17 +1,18 @@
 # Vietnamese translation for Tar.
-# Copyright © 2010 Free Software Foundation, Inc.
+# Copyright © 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
 # Phan Vinh Thinh <teppi82@gmail.com>, 2005.
 # Clytie Siddall <clytie@riverland.net.au>, 2007-2010.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.23.90\n"
+"Project-Id-Version: tar-1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-10-03 18:13+1030\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2012-03-31 13:53+0700\n"
+"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
@@ -19,6 +20,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
 #: gnu/argmatch.c:135
 #, c-format
@@ -31,36 +35,35 @@ msgid "ambiguous argument %s for %s"
 msgstr "tham số không rõ ràng %s cho %s"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "Các tham số đúng là:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: giá trị %s nhỏ hơn hay bằng %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: tham số ARGP_HELP_FMT yêu cầu một giá trị"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: tham số ARGP_HELP_FMT phải là số dương"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: Tham số không rõ ARGP_HELP_FMT"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "Có rác trong ARGP_HELP_FMT: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
@@ -68,29 +71,29 @@ msgstr ""
 "Tham số ủy nhiệm hay tham số không bắt buộc cho các tùy chọn dài cũng đồng "
 "thời là ủy nhiệm hay không bắt buộc cho các tùy chọn ngắn tương ứng."
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "Sử dụng:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  hoặc: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [TÙY CHỌN...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "Hãy thử `%s --help' hoặc `%s --usage' để biết thêm thông tin.\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
-msgstr "Báo cáo lỗi tới %s.\n"
+msgstr "Thông báo lỗi cho %s.\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "Lỗi hệ thống không rõ"
 
@@ -102,7 +105,7 @@ msgstr "hiển thị trợ giúp này"
 msgid "give a short usage message"
 msgstr "hiển thị cách sử dụng ngắn gọn"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "TÊN"
@@ -123,17 +126,16 @@ msgstr "treo trong vòng GIÂY giây (mặc định 3600)"
 msgid "print program version"
 msgstr "In ra phiên bản chương trình"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(LỖI CHƯƠNG TRÌNH) Không rõ phiên bản !?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s: Quá nhiều đối số\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(LỖI CHƯƠNG TRÌNH) Tùy chọn nên được nhận ra !?"
 
@@ -141,62 +143,62 @@ msgstr "(LỖI CHƯƠNG TRÌNH) Tùy chọn nên được nhận ra !?"
 msgid "write error"
 msgstr "lỗi ghi"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: tùy chọn « %s » vẫn mơ hồ\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, 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"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, 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"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, 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"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: không nhận ra tuỳ chọn « --%s »\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: không nhận ra tuỳ chọn « %c%s »\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: tùy chọn sai -- « %c »\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, 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"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: tùy chọn « -W %s » vẫn mơ hồ\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, 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"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, 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"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "cạn bộ nhớ"
 
@@ -212,28 +214,30 @@ msgstr "không trở được về thư mục làm việc đầu tiê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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "`"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "'"
 
@@ -243,7 +247,7 @@ msgstr "'"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[cCyY]"
 
@@ -253,7 +257,7 @@ msgstr "^[cCyY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[kKnN]"
 
@@ -284,9 +288,9 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Giấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 và sau:\n"
+"Giấy phép GPLv3+: Giấy phép Công cộng GNU phiên bản 3 hay mới hơn:\n"
 "<http://gnu.org/licenses/gpl.html>\n"
-"Đây là phần mềm tự do : bạn có quyền thay đổi và phát hành lại nó.\n"
+"Đây là phần mềm tự do: bạn có quyền thay đổi và phát hành lại nó.\n"
 "KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
 "\n"
 
@@ -294,19 +298,19 @@ msgstr ""
 #: gnu/version-etc.c:104
 #, c-format
 msgid "Written by %s.\n"
-msgstr "Tác giả: %s.\n"
+msgstr "Viết bởi %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:108
 #, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Tác giả: %s và %s.\n"
+msgstr "Viết bởi %s và %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: gnu/version-etc.c:112
 #, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Tác giả: %s, %s và %s.\n"
+msgstr "Viết bởi %s, %s và %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -425,12 +429,12 @@ msgstr "Trang chủ %s: <%s>\n"
 #: gnu/version-etc.c:255
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Trang chủ %s : <http://www.gnu.org/software/%s/>\n"
+msgstr "Trang chủ %s: <http://www.gnu.org/software/%s/>\n"
 
 #: gnu/version-etc.c:258
 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"
+"Trợ giúp chung về cách sử dụng phần mềm GNU: <http://www.gnu.org/gethelp/>\n"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -496,17 +500,17 @@ msgstr "%s: Không tạo được liên kết mềm tới %s"
 #, c-format
 msgid "%s: Wrote only %lu of %lu byte"
 msgid_plural "%s: Wrote only %lu of %lu bytes"
-msgstr[0] "%s: Chỉ ghi nhớ %lu từ %lu byte"
+msgstr[0] "%s: Chỉ ghi %lu trong số %lu byte"
 
 #: lib/paxnames.c:140
 #, c-format
 msgid "Removing leading `%s' from member names"
-msgstr "Xóa bỏ phần dẫn đầu `%s' từ tên của các thành viên"
+msgstr "Đang bỏ đi phần dẫn đầu `%s' từ tên của các thành viên"
 
 #: lib/paxnames.c:141
 #, c-format
 msgid "Removing leading `%s' from hard link targets"
-msgstr "Xóa bỏ phần dẫn đầu `%s' từ đích đến của các liên kết cứng"
+msgstr "Đang bỏ đi phần dẫn đầu `%s' từ đích của các liên kết cứng"
 
 #: lib/paxnames.c:154
 msgid "Substituting `.' for empty member name"
@@ -536,7 +540,12 @@ msgstr "đầu ra tiêu chuẩn"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "Không thể kết nối tới %s: lỗi giải quyết"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "Không thể chạy shell ở xa"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "Không thể chạy shell ở xa"
@@ -585,8 +594,8 @@ msgstr "Gặp đối số bất thường"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "Thao tác một ổ băng từ, chấp nhận lệnh từ một tiến trình ở xa"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "SỐ"
 
@@ -594,8 +603,8 @@ msgstr "SỐ"
 msgid "set debug level"
 msgstr "đặt cấp gỡ rối"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -610,7 +619,7 @@ msgstr "đặt tên tập tin kết xuất gỡ rối"
 msgid "cannot open %s"
 msgstr "không thể mở %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "quá nhiều đối số"
@@ -619,9 +628,9 @@ msgstr "quá nhiều đối số"
 msgid "Garbage command"
 msgstr "Câu lệnh rác"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "Đây có vẻ không phải là một kho lưu tar"
 
@@ -659,63 +668,63 @@ msgstr "Không kiểm tra được kho lưu stdin/stdout"
 msgid "Archive is compressed. Use %s option"
 msgstr "Kho lưu được nén. Hãy sử dụng tùy chọn %s"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "Không cập nhật được kho lưu đã nén"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "Tại đầu băng ghi âm, thoát ra bây giờ"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "Quá nhiều lỗi, đang thoát"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "Kích cỡ mục ghi = %lu khối"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "Khối chưa sắp hàng (%lu byte) trong kho lưu"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr ""
 "Không thể \"tua\" lại tập tin kho lưu; nó có thể không đọc được khi không có "
 "« -i »"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek không dừng lại tại một ranh giới bản ghi"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s: chứa số thứ tự khối không đúng"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "Số thứ tự khối thừa ra"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "Chuẩn bị khối #%d cho %s và nhấn Enter: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "Kết thúc tập tin (EOF) khi mong đợi trả lời của người dùng"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "CẢNH BÁO: Kho lưu không hoàn thành"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -726,65 +735,65 @@ msgstr ""
 " q          Dừng tar\n"
 " y hay dòng mới\tTiếp tục lại chạy tiến trình\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             Tạo một trình bao con\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             In ra danh sách này\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "Không có khối mới; đang thoát.\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "Chưa ghi rõ tên tập tin: hãy thử lại.\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "Gõ sai. (Gỏ ? để xem trợ giúp.)\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "Câu lệnh %s không thành công"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s có thể tiếp tục trên khối tin này: phần đầu chứa tên bị cắt ngắn"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s không tiếp tục trên khối này"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s là kích thước sai (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "Khối tin này vượt quá dãy cho phép (%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "Kho lưu không có nhãn tương ứng với %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "Khối %s không tương ứng %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
@@ -792,508 +801,547 @@ msgstr ""
 "%s: tên tập tin quá dài để chứa trong một phần đầu đa khối GNU nên bị cắt "
 "ngắn"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "tiến trình ghi (write) không dừng lại tại một ranh giới khối"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "Chỉ đọc được %lu từ %lu byte"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "Diff nội dung"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "Kết thúc tập tin không mong đợi trong kho lưu"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "Diff dạng tập tin"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "Diff chế độ"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
-msgstr "Diff Uid"
+msgstr "Khác biệt Uid"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
-msgstr "Diff Gid"
+msgstr "Khác biệt Gid"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
-msgstr "Diff thời gian sửa đổi"
+msgstr "Khác biệt thời gian sửa đổi"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
-msgstr "Diff kích thước"
+msgstr "Khác biệt kích thước"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "Không liên kết tới %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
-msgstr "Diff liên kết mềm"
+msgstr "Khác biệt liên kết mềm"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "Diff số thứ tự của thiết bị"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "Kiểm tra "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr ""
-"%s: không rõ dạng tập tin '%c' nên khác biệt (diff) như tập tin thông thường"
+"%s: Không rõ dạng tập tin '%c' nên khác biệt (diff) như tập tin thông thường"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "Kho lưu chứa tên tập tin không có tiền tố ở đầu."
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "Kho lưu chứa phần đầu base-64 không còn dùng nữa"
+msgstr "Tài liệu được nén có chứa tên tệp tin chuyển đổi."
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "Sự kiểm tra có thể không định vị được các tập tin gốc."
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "LỖI KIỂM TRA: tìm thấy %d phần đầu không đúng"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "Một khối không đơn lẻ tại %s"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: chứa một thẻ thư mục ghi nhớ tạm %s: %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "giá trị %s vượt quá %s phạm vi %s..%s; đang thay thế %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "giá trị %s vượt quá %s phạm vi %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "Đang tạo phần đầu hệ tám âm"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
-msgstr "%s: tên tập tin quá dài (max %d); không được dump"
+msgstr "%s: tên tập tin quá dài (tối đa là %d); không được dump"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s: tên tập tin quá dài (không chia được); không được dump"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s: tên liên kết quá dài; không được dump"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s: Tập tin được rút ngắn %s byte; độn vào bắng các số không"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s: tập tin trên một hệ thống tập tin khác; không được dump"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "chưa đổ nội dung"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s: Không rõ dạng tập tin; tập tin bị lờ đi"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "Thiếu liên kết tới %s."
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: tập tin chưa thay đổi; không được dump"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: tập tin là kho lưu; không được đổ"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "chưa đổ thư mục"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: tập tin đã thay đổi khi chúng ta đọc nó"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: socket bị lờ đi"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: cửa (door) bị lờ đi"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "Nhảy tới phần đầu tiếp theo"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "Xóa không phải phần đầu từ kho lưu"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s: tem thời gian cũ không hợp lý %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s: tem thời gian %s là %s giây trong tương lai"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s: Sự mâu thuẫn không mong đợi khi tạo thư mục"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s: Đổi tên thư mục trước khi có thể giải phóng trạng thái của nó"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "Giải nén các tập tin liền nhau thành những tập tin thông thường"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "Đang thử giải nén liên kết mềm thành liên kết cứng"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s: Không giải nén được -- tập tin tiếp tục từ khối khác"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "Phần đầu tên dài không mong đợi"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s: Dạng tập tin không rõ '%c' nên giải nén như tập tin thông thường"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "%s hiện thời là mới hay hay cùng thời"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s: Không thể sao lưu tập tin này"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "Không thể đổi tên %s thành %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
-msgstr "%s: Đã đổi tên thư mục từ %s"
+msgstr "%s: Thư mục đã bị đổi tên từ %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s: Đã đổi tên thư mục"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s: Thư mục là mới"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s: tập tin trên một hệ thống tập tin khác; không được dump"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Thư mục đã bị đổi tên"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
-msgstr "Tem thời gian không đúng"
+msgstr "Dấu vết thời gian không hợp lệ"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "Thời gian sửa đổi không hợp lệ (giây)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "Thời gian sửa đổi không hợp lệ (nanô-giây)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "Số thứ tự thiết bị không đúng"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "Số thứ tự chỉ mục inode sai"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "Trường quá dài trong khi đọc tập tin ảnh chụp"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "Lỗi đọc trong tập tin ảnh chụp"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "Kết thúc tập tin (EOF) không mong đợi trong tập tin ảnh chụp"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "Giá trị trường không mong đợi trong tập tin ảnh chụp"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "Thiếu dấu giới hạn mục ghi"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "Định dạng tập tin dần sai"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
-msgstr "Phiên bản định dạng dần không được hỗ trợ : %<PRIuMAX>"
+msgstr "Phiên bản định dạng dần không được hỗ trợ: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "Thư mục đổ dạng sai: mong đợi « %c » còn tìm %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "Thư mục đổ dạng sai: « X » đã nhân đôi"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "Thư mục đổ dạng sai: tên rỗng trong « R »"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "Thư mục đổ dạng sai: « T » không có « R » đi trướ"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "Thư mục đổ dạng sai: tên rỗng trong « T »"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "Thư mục đổ dạng sai: mong đợi « %c » còn tìm kết thúc dữ liệu"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "Thư mục đổ dạng sai: « X » không bao giờ dùng"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "Không thể tạo thư mục tạm bằng mẫu %s"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s: Không làm sạch thư mục: không thể lấy trạng thái (stat)"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: thư mục trên một thiết bị khác: không làm sạch"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s: Đang xóa %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s: Không thể xóa bỏ"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s: Đang bỏ đi"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "khối %s: ** Khối của các số không (NUL) **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "khối %s: ** Kết thúc tập tin **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "khối %s: "
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "Khoảng trống trong Phần đầu trong khi mong đợi một giá trị số %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr ""
 "Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s; coi như phần bù của hai"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "Kho lưu chứa phần đầu base-64 không còn dùng nữa"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "Kho lưu ký chuỗi base-64 %s vượt ra ngoài vùng %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "Giá trị base-256 của kho lưu vượt ra ngoài vùng %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
-msgstr "Kho lưu chứa %.*s ở chỗ mong đợi giá trị số %s"
+msgstr "Kho lưu chứa %.*s nơi mà lại mong đợi giá trị số %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "Giá trị kho lưu %s vượt quá phạm vi %s (%s..%s)"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " liên kết tới %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
-msgstr " dạng tập tin không rõ %s\n"
+msgstr " kiểu tập tin không rõ %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--Liên kết Dài--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--Tên Dài--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--Phần đầu Khối--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--Tiếp tục tại byte %s--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "Đang tạo thư mục:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "Không thay đổi được thư mục làm việc"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Đang đổi tên %s thành %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s: Không thể đổi tên thành %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "Đang đổi tên %s ngược lại thành %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s: Tập tin bị xóa trước khi chúng ta đọc nó"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "tiến trình con"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "kênh (channel) giữa các tiến trình"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "Câu lệnh %s không thành công"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: danh sách tập tin đã được đọc"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "không thể đặt thời gian trên « %s »"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: đọc tên tập tin chứa ký tự vô giá trị"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "Tên tập tin chứa ký tự khớp mẫu"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
@@ -1301,57 +1349,58 @@ msgstr ""
 "Dùng « --wildcards » (ký tự đặi diện) để hiệu lực chức năng khớp mẫu,\n"
 "hoặc « --no-wildcards » để thu hồi cảnh báo này."
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s: Không tìm thấy trong kho lưu"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s: Không tìm thấy phần tử yêu cầu trong kho lưu"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "Sai khớp nhãn kho lưu"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr ""
 "Sử dụng tuỳ chọn « -C » bên trong danh sách tập tin không được phép với « --"
 "listed-incremental »"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "Chỉ cho phép một tuỳ chọn « -C » với « --listed-incremental »"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "Cả hai tùy chọn `-%s' và `-%s' đều muốn dữ liệu nhập vào tiêu chuẩn"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s: Định dạng kho lưu không đúng"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "Muốn tính năng GNU trên định dạng kho lưu không tương thích"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr ""
 "Không rõ kiểu dáng trích dẫn « %s ». Hãy thử lệnh « %s --quoting-style=help "
 "» để xem danh sách."
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1359,18 +1408,19 @@ msgid ""
 "  tar -tvf archive.tar         # List all files in archive.tar verbosely.\n"
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
-"Chương trình `tar' của GNU ghi nhớ nhiều tập tin vào cùng một kho lưu băng "
-"từ hay lên đĩa, và có thể phục hồi từng tập tin riêng rẽ từ kho lưu này.\n"
+"Chương trình `tar' của GNU ghi nhiều tập tin vào cùng một kho lưu băng từ "
+"hay lên đĩa, và có thể phục hồi từng tập tin riêng rẽ từ kho lưu này.\n"
 "\n"
-"Ví dụ :\n"
+"Ví dụ:\n"
 "  tar -cf kho.tar foo bar  # Tạo kho.tar từ các tập tin foo và bar.\n"
 "  tar -tvf kho.tar         # Liệt kê chi tiết tất cả các tập tin có trong "
 "kho.tar.\n"
 "  tar -xf kho.tar          # Giải phóng tất cả các tập tin ra từ kho.tar.\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1389,79 +1439,79 @@ msgstr ""
 "  nil, existing   đánh số nếu kho lưu tồn tại, nếu không thì đơn giản\n"
 "  never, simple   luôn luôn tạo kho lưu đơn giản\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "Chế độ thao tác chính:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "liệt kê nội dung của một kho lưu"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "giải phóng các tập tin từ một kho lưu"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "tạo một kho lưu mới"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "tìm sự khác nhau giữa kho lưu và hệ thống tập tin"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "thêm các tập tin vào cuối một kho lưu"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "chỉ thêm những tập tin mới hơn bản sao trong kho lưu"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "thêm các tập tin tar vào một kho lưu"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "xóa từ kho lưu (không dùng trên các băng ghi âm mag!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "thử nhãn khối tin kho lưu rồi thoát"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "Từ khóa bổ nghĩa thao tác:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "điều khiển các tập tin thưa thớt một cách có hiệu quả"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "CHÍNH[.PHỤ]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "đặt phiên bản của định dạng sparse cần dùng (ngụ ý « --sparse »)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "điều khiển sao lưu incremental có định dạng GNU cũ"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "điều khiển sao lưu incremental có định dạng GNU mới"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "cấp đổ cho kho lưu liệt kê tăng dần được tạo"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "đừng thoát với giá trị khác không trên tập tin không thể đọc"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1478,120 +1528,131 @@ msgstr ""
 "T ».\n"
 "Mặc định SỐ có giá trị bằng 1."
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "có thể tìm nơi trong kho lưu"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "không thể tìm nơi trong kho lưu"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "đừng kiểm tra số thứ tự thiết bị khi tạo kho nén dần"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "kiểm tra số thứ tự thiết bị khi tạo kho nén dần"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "Điều khiển ghi đè:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "thử kiểm tra kho lưu sau khi ghi nó"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "xóa bỏ các tập tin sau khi thêm chúng vào kho lưu"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
+msgstr "không thay thế những tập tin đã có khi giải phóng"
+
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
 msgstr "không thay thế những tập tin đã có khi giải phóng"
 
-#: src/tar.c:457
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "không thay thế những tập tin đã có mà mới hơn bản sao trong kho lưu"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "ghi đè lên những tập tin đã có khi giải phóng"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "xóa bỏ quyền ưu tiên của mỗi tập tin để giải phóng và ghi đè lên nó"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "xóa sạch quyền ưu tiên trong cây thư mục để giải phóng thư mục"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "bảo quản dữ liệu mêta của các thư mục đã có"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr ""
 "ghi đè lên siêu dữ liệu của những thư mục đã có khi giải phóng (mặc định)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "ghi đè lên những tập tin đã có khi giải phóng"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "Chọn luồng xuất:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "giải phóng tập tin ra đầu ra tiêu chuẩn"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "CÂU LỆNH"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "gửi các tập tin đã giải nén qua ống dẫn cho chương trình khác"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "bỏ qua mã thoát của tiến trình con"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "xử lý mã thoát khác số không của tiến trình con như lỗi"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "Điều khiển thuộc tính tập tin:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "bắt buộc dùng TÊN làm người sở hữu cho những tập tin thêm vào"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "bắt buộc dùng TÊN làm nhóm sở hữu cho những tập tin thêm vào"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "NGÀY-CỦA-TẬP-TIN"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "đặt từ DATE-OR-FILE thời gian mtime cho các tập tin đã thêm"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "THAY ĐỔI"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "bắt buộc THAY ĐỔI chế độ (tượng trưng) cho những tập tin thêm vào"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "PHƯƠNG PHÁP"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1601,11 +1662,11 @@ msgstr ""
 "thời gian sau khi đọc (PHƯƠNG PHÁP='replace'; mặc định), hoặc bằng cách "
 "không đặt thời gian như vậy (PHƯƠNG PHÁP='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "không giải phóng thời gian sửa đổi của tập tin"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
@@ -1613,23 +1674,23 @@ msgstr ""
 "thử giải phóng tập tin cùng quyền sở hữu với tập tin trong kho lưu (mặc định "
 "cho siêu người dùng)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr ""
 "giải phóng tập tin dưới tên người dùng riêng (mặc định cho người dùng bình "
 "thường)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "luôn luôn sử dụng số cho tên người dùng/nhóm"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr ""
 "cũng giải nén thông tin về quyền truy cập tập tin (mặc định cho siêu người "
 "dùng)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
@@ -1637,15 +1698,16 @@ msgstr ""
 "áp dụng umask của người dùng khi giải nén quyền truy cập ra từ kho lưu (mặc "
 "định cho người dùng bình thường)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "sắp xếp tên để giải phóng tới kho lưu tương ứng"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "giống như khi có hai tùy chọn -p và -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
@@ -1653,139 +1715,180 @@ msgstr ""
 "hoãn đến kết thúc tiến trình giải nén việc đặt thời gian sửa đổi và quyền "
 "truy cập các thư mục đã giải nén"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "hủy hiệu ứng của tùy chọn « --delay-directory-restore »"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "Điều khiển thuộc tính tập tin:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "Lựa chọn và chuyển đổi thiết bị:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "LƯU TRỮ"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "sử dụng tập tin kho lưu hoặc thiết bị LƯU TRỮ"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "tập tin kho lưu là cục bộ thậm chí nếu có một dấu hai chấm"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "sử dụng CÂU LỆNH rmt đưa ra thay cho rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "sử dụng CÂU LỆNH từ xa thay cho rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "chỉ ra ổ và mật độ ghi dữ liệu"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "tạo/liệt kê/giải phóng kho lưu nhiều khối"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
-msgstr "thay băng ghi âm (tape) sau khi ghi nhớ SỐ X 1024 byte"
+msgstr "thay băng từ (tape) sau khi ghi SỐ X 1024 byte"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "chạy script tại cuối mỗi băng ghi âm (có nghĩa -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "sử dụng/cập nhật số thứ tự khối trong TẬP TIN"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "Khối của thiết bị:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "KHỐI"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "KHỐI X 512 byte cho mỗi bản ghi"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "SỐ byte cho mỗi mục ghi, bội số cho 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "lờ đi những khối không (zero) trong kho lưu (có nghĩa EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "đặt khối lại khi chúng ta đọc (cho đường ống 4.2BSD)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "Lựa chọn định dạng kho lưu:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "ĐỊNH DẠNG"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "tạo lưư trữ với định dạng đưa ra"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "ĐỊNH DẠNG là một trong số sau:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "định dạng tar V7 cũ"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "định dạng GNU theo như tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "định dạng tar GNU 1.13.x"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "định dạng PoSIX 1003.1-1988 (ustar)"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "định dạng POSIX 1003.1-2001 (pax)"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "bằng pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "giống như --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "giống như --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "từ_khoá[[:]=giá_trị][,từ_khoá[[:]=giá_trị]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "từ khóa điều khiển pax"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "VĂN BẢN"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
@@ -1793,169 +1896,171 @@ msgstr ""
 "tạo kho lưu với tên khối tin VĂN BẢN. Tại thời điểm liệt kê/giải phóng, sử "
 "dụng VĂN BẢN làm mẫu glob cho tên khối tin"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "Tùy chọn nén:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "dùng hậu tố kho lưu để xác định chương trình nén"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "không nên dùng hậu tố kho lưu để xác định chương trình nén"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "TRÌNH"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "lọc qua chương TRÌNH (phải chấp nhận -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "Lựa chọn tập tin nội bộ:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr ""
 "thêm vào kho lưu TẬP TIN đã cho (có ích nếu tên nó bắt đầu với dấu gạch)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "THƯ MỤC"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "thay đổi tới thư mục THƯ MỤC"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "lấy các tên tập tin cần giải phóng hay tạo từ TẬP TIN"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T đọc tên kết thúc vô hiệu lực, tắt -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "tắt hiệu ứng của tùy chọn « --null » đi trước"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "hủy trích dẫn các tên tập tin được đọc bằng « -T » (mặc định)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "đừng hủy trích dẫn các tên tập tin được đọc bằng « -T »"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "MẪU"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "loại trừ những tập tin tương ứng với MẪU"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "loại trừ những mẫu liệt kê trong TẬP TIN"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr ""
-"loại trữ nội dung của thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG, trừ tập tin "
+"loại trừ nội dung của thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG, trừ tập tin "
 "thẻ chính nó"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr ""
-"loại trữ mọi thứ đều nằm dưới thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG"
+"loại trừ mọi thứ đều nằm dưới thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
-msgstr "loại trữ thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG"
+msgstr "loại trừ thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
-msgstr "loại trữ nội dung của thư mục chứa TẬP TIN, trừ TẬP TIN chính nó"
+msgstr "loại trừ nội dung của thư mục chứa TẬP TIN, trừ TẬP TIN chính nó"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
-msgstr "loại trữ mọi thứ đều nằm dưới thư mục chứa TẬP TIN"
+msgstr "loại trừ mọi thứ đều nằm dưới thư mục chứa TẬP TIN"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
-msgstr "loại trữ thư mục chứa TẬP TIN"
+msgstr "loại trừ thư mục chứa TẬP TIN"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
-msgstr "trừ thư mục của hệ thống điều khiển phiên bản (v.d. « .svn »)"
+msgstr "loại trừ thư mục của hệ thống điều khiển phiên bản (v.d. « .svn »)"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "loại trừ tập tin kiểu sao lưu và khoá"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "tránh sự giảm dần một cách tự động trong các thư mục"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "nằm trong hệ thống tập tin nội bộ khi tạo kho lưu"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "đệ quy vào các thư mục (mặc định)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "đừng bỏ `/' ở đầu tên tập tin"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "theo liên kết tượng trưng; kho lưu và đổ tập tin tới đó nó chỉ"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "theo liên kết cứng; kho lưu và đổ tập tin tới đó nó chỉ"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "TÊN-THÀNH-VIÊN"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "bắt đầu tại thành viên TÊN-THÀNH-VIÊN trong kho lưu"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "chỉ chứa những tập tin mới hơn NGÀY-CỦA-TẬP-TIN"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "NGÀY"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "so sánh ngày và thời gian chỉ khi dữ liệu thay đổi"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "ĐIỀU KHIỂN"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "sao lưu trước khi xóa, chọn phiên bản ĐIỀU KHIỂN"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "CHUỖI"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
@@ -1963,96 +2068,99 @@ msgstr ""
 "sao lưu trước khi xóa, ghi đè hậu tố thông thường ('~' trừ khi ghi đè bằng "
 "biến môi trường SIMPLE_BACKUP_SUFFIX)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "Chuyển dạng tên tập tin:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "bỏ đi SỐ thành phần đứng đầu ra tên tập tin khi giải nén"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "BIỂU THỨC"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "dùng « sed replace BIỂU THỨC » để chuyển dạng tên tập tin"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr ""
 "Tùy chọn khớp tên tập tin (có tác động mẫu kiểu cả hai loại trừ và bao gồm):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "không phân biệt chữ hoa/thường"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "mẫu tương ứng với bắt đầu tên tập tin"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "mẫu tương ứng sau bất kỳ / nào (mặc định để loại trừ)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "khớp có phân biệt chữ hoa/ thường (mặc định)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "dùng ký tự đại diện (mặc định để loại trừ)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "khớp chuỗi nghĩa chữ"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "ký tự đại diện không tương ứng '/'"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "ký tự đại diện tương ứng '/' (mặc định để loại trừ)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "Dữ liệu kết quả có tính thông tin:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "liệt kê một cách tỉ mỉ những tập tin được tiến hành"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "TỪ_KHOÁ"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "điều khiển cảnh báo"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "hiển thị thông báo về tiến triển sau mỗi mục ghi thứ SỐ (mặc định 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "HÀNH_ĐỘNG"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "thực hiện HÀNH_ĐỘNG này ở mỗi điểm kiểm"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "in ra một thông báo nếu không phải tất cả các liên kết được dump"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "TÍN HIỆU"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2065,31 +2173,35 @@ msgstr ""
 "SIGHUP, SIGQUIT, SIGINT, SIGUSR1, SIGUSR2;\n"
 "cũng chấp nhận tên không có tiền tố « SIG »."
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "in ra giờ sửa đổi tập tin theo UTC"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
 msgstr "in ra giờ tập tin đến độ phân giải đầy đủ"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "gửi kết quả chi tiết tới TẬP TIN"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "hiên thị số thứ tự khối trong kho lưu với mỗi thông báo"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "hỏi xác nhận trước mỗi hành động"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "hiển thị các giá trị mặc định của tar"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
@@ -2097,32 +2209,32 @@ msgstr ""
 "khi liệt kê hay giải phóng, liệt kê mỗi thư mục không tương ứng với tiêu chí "
 "tìm kiếm"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "hiển thị các tên tập tin hay kho lưu sau khi chuyển dạng"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "KIỂU DÁNG"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr ""
 "đặt kiểu dáng trích dẫn tên; xem dưới để tìm các giá trị KIỂU DÁNG hợp lệ"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "cũng trích dẫn các ký tự của CHUỖI"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "tắt trích dẫn các ký tự của CHUỖI"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "Tùy chọn tương thích:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
@@ -2130,62 +2242,55 @@ msgstr ""
 "khi tạo, giống như « --old-archive »\n"
 "khi giải phóng, giống như « --no-same-owner »"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "Những tùy chọn khác:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "tắt sử dụng một số tùy chọn có thể gây tai hại"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "Chỉ cho phép đưa ra một tùy chọn « -Acdtrux » hay « --test-label »"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "Mâu thuẫn giữa các tùy chọn nén"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
-msgstr "Không rõ tên tín hiệu : %s"
+msgstr "Không rõ tên tín hiệu: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "Không tìm thấy tập tin mẫu ngày tháng"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "Đang thay thế %s cho dạng ngày tháng không rõ %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "Tùy chọn %s: đang xử lý ngày tháng « %s » như %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: danh sách tập tin đã được đọc"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: đọc tên tập tin chứa ký tự vô giá trị"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "lọc kho lưu qua %s"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "Các đối số thích hợp với tùy chọn « --quoting-style »:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2193,51 +2298,48 @@ msgstr ""
 "\n"
 "tar *này* mặc định tới:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "Chủ sở hữu không đúng"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "Nhân tố khối không đúng"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "Chiều dài băng ghi âm không đúng"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "Sai đặt giá trị cấp tăng dần"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "Có nhiều ngày bắt đầu"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "Giá trị phiên bản sparse không hợp lệ"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "--atime-preserve='system' không được hỗ trợ trên nền tảng này"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "giá trị « --checkpoint » không phải số nguyên"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "Nhóm không đúng"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "Đưa ra chế độ không đúng trên tùy chọn"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "Số không đúng"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "Chủ sở hữu không đúng"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2245,121 +2347,151 @@ msgstr ""
 "Tùy chọn « --preserve » bị phản đối, hãy sử dụng tùy chọn « --preserve-"
 "permissions » « --preserve-order » để thay thế"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "Kích thước bản ghi không đúng"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "Kích thước bản ghi phải là bội số của %d."
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "Số thứ tự của nguyên tố không đúng"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "Cho phép chỉ một tùy chọn « --to-command »"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "Tham số mật độ dạng sai: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr "Mật độ không rõ : « %c »"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "Mật độ không rõ: « %c »"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "tar *này* không hỗ trợ tùy chọn `-[0-7][lmh]'"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[TẬP TIN]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "Tùy chọn cũ `%c' yêu cầu một tham số."
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "--occurrence không có giá trị khi không đưa ra một danh sách tập tin"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence không được sử dụng trong chế độ thao tác đã yêu cầu"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "Tập tin nhiều kho lưu yêu cầu tùy chọn `-M'"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "Không thể kết hợp --listed-incremental với --newer"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "Tùy chọn « --level » vô ích mà không có « --listed-incremental »"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s: Nhãn khối quá dài (giới hạn là %lu byte)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "Không thể kiểm tra kho lưu nhiều khối"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "Không thể kiểm tra kho lưu đã nén"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "Không thể dùng mẫu (pattern) %s"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "Không thể sử dụng kho lưu nhiều khối đã nén"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "Không thể ghép nối các kho nén"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "Không thể dùng mẫu (pattern) %s"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "Chiều dài khối tin không thể nhỏ hơn kích cỡ mục ghi"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr ""
 "Tùy chọn « --preserve-order » không tương thích với « --listed-incremental »"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "Từ chối tạo một kho lưu trống rỗng"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "Các tùy chọn `-Aru' không tương thích với `-f -'"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr ""
 "Bạn phải chỉ ra một trong hai tùy chọn « -Acdtrux » và « --test-label »"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "Đang thoát với trạng thái thất bại do lỗi xảy ra trước"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2370,115 +2502,111 @@ msgstr[0] "%s: Tập tin được rút ngắn %s byte"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "Từ khóa %s không rõ hoặc chưa được thực hiện"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "Nhãn thời gian ở ngoại phạm vi"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "Không thể dùng mẫu (pattern) %s"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "Không thể ghi chèn lên từ khóa %s"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "Phần đầu mở rộng dạng sai: thiếu chiều dài"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "Chiều dài phần đầu mở rộng ở ngoại phạm vi được phép"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "Chiều dài phần đầu mở rộng %*s ở ngoại phạm vi được phép"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "Phần đầu mở rộng dạng sai: thiếu khoảng trắng ở sau chiều dài"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "Phần đầu mở rộng bị lỗi: thiếu dấu bằng"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "Phần đầu mở rộng dạng sai: thiếu dòng mới"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "Bỏ qua từ khoá phần đầu mở rộng không rõ « %s »"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "Cặp từ khoá/giá trị đã tạo ra quá dài (từ khoá=%s, chiều dài=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "Phần đầu mở rộng %s=%s ở ngoại phạm vi (%s..%s)"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "Phần đầu mở rộng dạng sai: %s=%s không hợp lệ"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "Phần đầu mở rộng dạng sai: %s=%s thừa"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr ""
 "Phần đầu mở rộng dạng sai: %s không hợp lệ: dấu giới hạn không mong đợi %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "Phần đầu mở rộng dạng sai: %s không hợp lệ: số giá trị lẻ"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: không phải quá hạn hợp lệ"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: không rõ hành động điểm kiểm"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "ghi"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "đọc"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "Điểm kiểm tra ghi %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "Điểm kiểm tra đọc %u"
@@ -2628,7 +2756,7 @@ msgstr "Số nằm ngoài phạm vi cho phép: %s"
 msgid "Negative size: %s"
 msgstr "Kích cỡ âm: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) bị lỗi"
@@ -2657,8 +2785,8 @@ msgstr "Không rõ định dạng ngày tháng"
 msgid "[ARGS...]"
 msgstr "[ĐỐI SỐ...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "không thể mở « %s »"
@@ -2672,70 +2800,101 @@ msgstr "không thể tìm nơi"
 msgid "file name contains null character"
 msgstr "tên tập tin chứa ký tự vô giá trị"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr ""
 "không thể tạo ra tập tin sparse trên thiết bị gõ chuẩn: dùng tùy chọn « --"
 "file »"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "mặt nạ không đúng (gần « %s »)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "Không rõ trường « %s »"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "không thể đặt thời gian trên « %s »"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "không thể bỏ liên kết « %s »"
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "Câu lệnh %s không thành công"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "không thể bỏ liên kết « %s »"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "Lệnh đã thoát thành công\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "Lệnh bị lỗi với trạng thái %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "Lệnh đã chấm dứt khi nhận tín hiệu %d\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "Lệnh đã dừng chạy khi nhận tín hiệu %d\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "Lệnh đã đổ lõi\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "Lệnh đã chấm dứt\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat yêu cầu tên tập tin"
 
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s: Thư mục bị xoá trước khi chúng ta đọc nó"
+#~ msgid "Cannot get working directory"
+#~ msgstr "Không lấy được thư mục làm việc"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "sắp xếp tên để giải phóng tới kho lưu tương ứng"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "Trường quá dài trong khi đọc tập tin ảnh chụp"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "Lỗi đọc trong tập tin ảnh chụp"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "Giá trị trường không mong đợi trong tập tin ảnh chụp"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "Chiều dài phần đầu mở rộng ở ngoại phạm vi được phép"
+
+#~ msgid "Invalid group"
+#~ msgstr "Nhóm không đúng"
 
 #~ msgid "Cannot save working directory"
 #~ msgstr "Không thể ghi nhớ thư mục làm việc"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Thư mục bị xoá trước khi chúng ta đọc nó"
index 8a584d157c09997b716c5db9b269780f43a4c244..5b8752dbf02b2817275a4add77905bf2a2f488d3 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index a1c7614a2563c927877a066d8230e280e39cdb03..07b62346f83c927749a5e75f6338bc4e9b4db4d3 100644 (file)
@@ -3,15 +3,15 @@
 # This file is distributed under the same license as the tar package.
 # Wang Li <charles@linux.net.cn>, 2002.
 # Rongjun Mu <rongjunmu+i18n@gmail.com>, 2004.
-# Ji ZhengYu <zhengyuji@gmail.com>, 2008, 2009, 2010.
+# Ji ZhengYu <zhengyuji@gmail.com>, 2008, 2009, 2010, 2011.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.25\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2010-11-12 09:33+0800\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2011-04-28 20:42+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -31,64 +31,63 @@ msgid "ambiguous argument %s for %s"
 msgstr "%2$s 的参数 %1$s 具有歧义"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "有效的参数为:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT: %s 的值小于或者等于 %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT 参数值必须为正"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "ARGP_HELP_FMT 中的参数错误: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr "长选项和相应短选项具有相同的强制参数或可选参数。"
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "用法:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr " 或: "
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [选项...]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
 msgstr "请用“%s --help”或“%s --usage”获得更多信息。\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "将错误报告发送到 %s。\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "未知的系统错误"
 
@@ -100,7 +99,7 @@ msgstr "显示此帮助列表"
 msgid "give a short usage message"
 msgstr "显示简短的用法说明"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "名称"
@@ -121,17 +120,16 @@ msgstr "挂起 SECS 秒(默认 3600)"
 msgid "print program version"
 msgstr "打印程序版本"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(程序错误)未知版本!?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s:参数太多\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(程序错误)选项可否被识别!?"
 
@@ -139,62 +137,62 @@ msgstr "(程序错误)选项可否被识别!?"
 msgid "write error"
 msgstr "写错误"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
-#, c-format
-msgid "%s: option '%s' is ambiguous\n"
+#: gnu/getopt.c:549 gnu/getopt.c:578
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: 选项\"%s\"具有歧义\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
+#: gnu/getopt.c:626 gnu/getopt.c:630
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: 选项\"--%s\"不需要参数\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
+#: gnu/getopt.c:639 gnu/getopt.c:644
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: 选项\"%c%s\"不需要参数\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
+#: gnu/getopt.c:687 gnu/getopt.c:706
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: 选项\"%s\"需要带参数\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
+#: gnu/getopt.c:744 gnu/getopt.c:747
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: 无法识别的选项\"--%s\"\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
+#: gnu/getopt.c:755 gnu/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: 无法识别的选项\"%c%s\"\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
+#: gnu/getopt.c:807 gnu/getopt.c:810
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: 无效选项 -- \"%c\"\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: 选项需要参数 -- \"%c\"\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
+#: gnu/getopt.c:936 gnu/getopt.c:952
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: 选项\"-W %s\"具有歧义\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
+#: gnu/getopt.c:976 gnu/getopt.c:994
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: 选项\"-W %s\"不要参数\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: 选项\"%s\"需要带参数\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "内存耗尽"
 
@@ -210,28 +208,30 @@ msgstr "无法回到起始的工作目录"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "“"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "”"
 
@@ -241,7 +241,7 @@ msgstr "”"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yY]"
 
@@ -251,7 +251,7 @@ msgstr "^[yY]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN]"
 
@@ -532,7 +532,12 @@ msgstr "标准输出"
 msgid "Cannot connect to %s: resolve failed"
 msgstr "无法连接至 %s: 解析失败"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "无法执行远程 shell"
+
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "无法执行远程 shell"
@@ -581,8 +586,8 @@ msgstr "参数异常"
 msgid "Manipulate a tape drive, accepting commands from a remote process"
 msgstr "接受远程程序的命令操作磁带机"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "NUMBER"
 
@@ -590,8 +595,8 @@ msgstr "NUMBER"
 msgid "set debug level"
 msgstr "设定调试级别"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -606,7 +611,7 @@ msgstr "设定调试输出文件名"
 msgid "cannot open %s"
 msgstr "无法打开 %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "参数过多"
@@ -615,9 +620,9 @@ msgstr "参数过多"
 msgid "Garbage command"
 msgstr "垃圾命令"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
 msgstr "它似乎不像是一个 tar 归档文件"
 
@@ -655,61 +660,61 @@ msgstr "无法验证标准输入/标准输出归档文件"
 msgid "Archive is compressed. Use %s option"
 msgstr "归档被压缩。使用 %s 选项"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
 msgstr "无法更新压缩归档文件"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
 msgstr "处于磁带的起点,现在退出"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "错误过多,退出"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "记录大小 = %lu 块"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
 msgstr[0] "归档中未对齐的块 (%lu 字节)s"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
 msgstr "无法倒回归档文件;如果没有 -i 可能无法读入它"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek 未停在记录边界处"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s:包含无效的卷编号"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "卷编号溢出"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "为 %2$s 准备卷 #%1$d 并按回车:"
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "需得到用户应答时文件结束"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
 msgstr "警告:归档文件不完整"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -720,621 +725,662 @@ msgstr ""
 " q\t\t终止 tar\n"
 " y or newline\t继续操作\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             衍生出一个子 shell\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             打印此列表\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "没有新的卷;退出。\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "未指定文件名。重试。\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "无效输入。输入 ? 显示帮助。\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s 命令失败"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s 在本卷可能连续: 头部包含截短的名字"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s 在本卷中不连续"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s 的大小错误 (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "此卷次序有误(%s - %s != %s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
 msgstr "归档未被标记为匹配 %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "卷标 %s 不匹配 %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr "%s: 文件名太长而无法贮存在 GNU 多卷头,已被截短"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "写操作未在记录边界处终止"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "仅能读入 %2$lu 中的 %1$lu 个字节"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "内容不同"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
 msgstr "归档文件中异常的 EOF"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "文件类型不同"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "访问模式不同"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid 不同"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid 不同"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "修改时间不同"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "大小不同"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "没有连接到 %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "符号连接不同"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "设备号不同"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "校验"
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
 msgstr "%s:未知的文件类型“%c”,与普通文件不同"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
 msgstr "归档包含带有被移除前导字符的文件名。"
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "归档包含过时的 base-64 头"
+msgstr "归档中有文件被改名。"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "位于原始文件中的验证可能失败。"
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "校验失败:检测到 %d 个无效的头"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "在 %s 处一个单独的零块"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s: 包含一个缓存目录标识 %s;%s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "值 %s 超出了 %s 的范围 %s..%s;正在替换 %s"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "值 %s 超出了 %s 的范围 %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "正在生成负八进制头"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s:文件名太长(最长 %d);未输出"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s:文件名太长(不能被分割);未输出"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s:连接名太长;未输出"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s:文件缩小 %s 字节;用零填充"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s:文件在不同的文件系统上;未输出"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "未输出内容"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s:未知的文件类型;忽略文件"
 
-#: src/create.c:1529
+#: src/create.c:1549
 #, c-format
 msgid "Missing links to %s."
 msgstr "缺少到 %s 的连接。"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s: 文件未改变;未输出"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
 msgstr "%s: 文件是归档文件;未输出"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "未输出目录"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s: 在我们读入文件时文件发生了变化"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s: 忽略套接字(socket)"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s: 忽略权限"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "跳转到下一个头"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
 msgstr "从归档文件中删除非头信息"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s:不可信的旧时间戳 %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s:时间戳 %s 是未来的 %s 秒之后"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s:创建目录时出现意外的不一致"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s:目录名在状态信息被获取之前改变了"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "展开紧邻的文件为普通文件"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "正试图将符号连接展开为硬连接"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s:无法展开 -- 文件一直延伸至另一卷中"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "异常的长名字头部"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
 msgstr "%s:未知的文件类型“%c”,作为普通文件展开"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "当前的“%s”更新或一样新"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s:无法备份该文件"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "无法将 %s 重命名为 %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s:目录已改名,不再是 %s"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s:目录已被改名"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s:目录是新的"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s:文件在不同的文件系统上;未输出"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目录已被改名"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "无效的时间戳"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "无效的修改时间(秒)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "无效的修改时间(纳秒)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "无效的设备号"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "无效的 inode 号"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "读取目录文件时字段太长"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "目录文件读取错误"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "目录文件中异常的文件结尾(EOF)"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "目录文件中异常的字段值"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
+
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "缺少记录终止符"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "文件格式错误增量"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "不支持增量格式版本: %<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
 msgstr "错误的 dumpdir: 需要“%c”但实际为 %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
 msgstr "错误的 dumpdir: 重复的“X”"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
 msgstr "错误的 dumpdir: “R”中有空名字"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
 msgstr "错误的 dumpdir: “R”后未紧接着用“T”"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
 msgstr "错误的 dumpdir: “T”中有空名字"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
 msgstr "错误的 dumpdir: 需要“%c”但实际为数据结尾"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
 msgstr "错误的 dumpdir: 从未用过“X”"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "无法通过模板 %s 创建临时目录"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s:未清除目录:无法 stat"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s: 目录在不同的设备上: 未清除"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s:正在删除 %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s:无法删除"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s:忽略"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "块 %s:** 空块 **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "块 %s:** 文件结束 **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "块 %s:"
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "头中需要数值 %s 处为空白符"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
 msgstr "归档的八进制值 %.*s 超出范围 %s;假定为其二进制补码"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
 msgstr "归档八进制值 %.*s 超出 %s 的范围"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
 msgstr "归档包含过时的 base-64 头"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
 msgstr "归档签署的 base-64 字符串 %s 超出范围 %s"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
 msgstr "归档的 base-256 值超出范围 %s"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
 msgstr "归档包含 %.*s 而需要数字值 %s"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
 msgstr "归档值 %s 超出 %s 的范围 %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " 连接到 %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " 未知的文件类型 %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--长连接--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--长名--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--卷头--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--从 %s 字节继续--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "正在创建目录:"
 
-#: src/misc.c:297
-msgid "Cannot get working directory"
-msgstr "无法获取工作目录"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "将 %s 改名为 %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s:无法重命名为 %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "将 %s 的名字改回 %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s:文件在我们读入之前被删除了"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
 msgstr "子进程"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
 msgstr "进程内通道"
 
-#: src/names.c:590
+#: src/names.c:360
+#, fuzzy
+msgid "command line"
+msgstr "%s 命令失败"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s: 文件列表已经读取"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "无法设定“%s”的时间"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: 读取的文件名含有空字符"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
 msgstr "文件名中所使用的字符匹配模式"
 
-#: src/names.c:592
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
 msgstr "使用 --wildcards 打开模式匹配,或是 --no-wildcards 来关闭之"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
 msgstr "%s:归档中找不到"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
 msgstr "%s:没有在归档中找到需要的"
 
-#: src/names.c:645
+#: src/names.c:876
 #, c-format
 msgid "Archive label mismatch"
 msgstr "归档卷标不匹配"
 
-#: src/names.c:949
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
 msgstr "在文件列表中 -C 选项与 --listed-incremental 选项不许合用"
 
-#: src/names.c:955
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
 msgstr "仅一个 -C 选项允许与  --listed-incremental 合用"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
 msgstr "选项“-%s”和“-%s”都需要标准输出"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
 msgstr "%s:无效的归档格式"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
 msgstr "在不兼容的归档格式上需要 GNU 特征"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
 msgstr "未知的引用形式‘%s’。尝试用‘%s --quoting-style=help’获取列表。"
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1352,9 +1398,10 @@ msgstr ""
 "件。\n"
 "  tar -xf archive.tar          # 展开归档文件 archive.tar 中的所有文件。\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1371,79 +1418,79 @@ msgstr ""
 "  nil, existing   如果编号备份存在则进行编号备份,否则进行简单备份\n"
 "  never, simple   总是使用简单备份\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "主操作模式:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
 msgstr "列出归档内容"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
 msgstr "从归档中解出文件"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
 msgstr "创建一个新归档"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
 msgstr "找出归档和文件系统的差异"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
 msgstr "追加文件至归档结尾"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
 msgstr "仅追加比归档中副本更新的文件"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
 msgstr "追加 tar 文件至归档"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
 msgstr "从归档(非磁带!)中删除"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
 msgstr "测试归档卷标并退出"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "操作修饰符:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "高效处理离散文件"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "设置所用的离散格式版本(隐含 --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "处理老式的 GNU 格式的增量备份"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "处理新式的 GNU 格式的增量备份"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
 msgstr "所创建的增量列表归档的输出级别"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "当遇上不可读文件时不要以非零值退出"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
@@ -1454,119 +1501,130 @@ msgstr ""
 "extract 或是 --list 中的一个联合使用时,此选项才有效。而且不管文件列表是以命"
 "令行形式给出或是通过 -T 选项指定的;NUMBER 值默认为 1"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
 msgstr "归档可检索"
 
-#: src/tar.c:437
+#: src/tar.c:453
 msgid "archive is not seekable"
 msgstr "归档不可检索"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "当创建增量归档时不要检查设备号"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "当创建增量归档时检查设备号(默认)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "重写控制:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
 msgstr "在写入以后尝试校验归档"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
 msgstr "在添加文件至归档后删除它们"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "解压时不要替换存在的文件"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "解压时不要替换存在的文件"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
 msgstr "不要替换比归档中副本更新的已存在的文件"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "解压时重写存在的文件"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "在解压要重写的文件之前先删除它们"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "解压目录之前先清除目录层次"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "保留已存在目录的元数据"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "解压时重写已存在目录的元数据(默认)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "解压时重写存在的文件"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "选择输出流:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "解压文件至标准输出"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "COMMAND"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "将解压的文件通过管道传送至另一个程序"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
 msgstr "忽略子进程的退出代码"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
 msgstr "将子进程的非零退出代码认为发生错误"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "操作文件属性:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "强制将 NAME 作为所添加的文件的所有者"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "强制将 NAME 作为所添加的文件的组所有者"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "DATE-OR-FILE"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "从 DATE-OR-FILE 中为添加的文件设置 mtime"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "CHANGES"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "强制将所添加的文件(符号)更改为权限 CHANGES"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "METHOD"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
@@ -1575,440 +1633,487 @@ msgstr ""
 "在输出的文件上保留访问时间,要么通过在读取(默认 METHOD=‘replace’)后还原时间,"
 "要不就不要在第一次(METHOD=‘system’)设置时间"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "不要解压文件的修改时间"
 
-#: src/tar.c:505
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
 msgstr "尝试解压时保持所有者关系一致(超级用户默认此项)"
 
-#: src/tar.c:507
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
 msgstr "将文件解压为您所有(普通用户默认此项)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "总是以数字代表用户/组的名称"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "解压文件权限信息(默认只为超级用户服务)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
 msgstr "从归档中解压权限时使用用户的掩码位(默认为普通用户服务)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "为解压至匹配归档排序名称"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "与 -p 和 -s 一样"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr "直到解压结束才设置修改时间和所解目录的权限"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "取消 --delay-directory-restore 选项的效果"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "操作文件属性:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "设备选择和切换:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
 msgstr "ARCHIVE"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "使用归档文件或 ARCHIVE 设备"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
 msgstr "即使归档文件存在副本还是把它认为是本地归档"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "使用指定的 rmt COMMAND 代替 rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "使用远程 COMMAND 代替 rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "指定驱动器和压缩率"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
 msgstr "创建/列出/解压多卷归档文件"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "写入 NUMBER × 1024 字节后更换磁带"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "在每卷磁带最后运行脚本(隐含 -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "使用/更新 FILE 中的卷数"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "设备分块:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "BLOCKS"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "每个记录 BLOCKS x 512 字节"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "每个记录的字节数 NUMBER,乘以 512"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
 msgstr "忽略归档中的零字节块(即文件结尾)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "读取时重新分块(只对 4.2BSD 管道有效)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
 msgstr "选择归档格式:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "FORMAT"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
 msgstr "创建指定格式的归档"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "FORMAT 是以下格式中的一种:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "old V7 tar 格式"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "GNU 格式 as per tar <= 1.12"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x 格式"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) 格式"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) 格式"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "等同于 pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "等同于 --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "等同于 --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "关键字[[:]=值][,关键字[[:]=值]]..."
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "控制 pax 关键字"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "TEXT"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr "创建带有卷名 TEXT 的归档;在列出/解压时,使用 TEXT 作为卷名的模式串"
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "压缩选项:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
 msgstr "使用归档后缀名来决定压缩程序"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
 msgstr "不使用归档后缀名来决定压缩程序"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "PROG"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "通过 PROG 过滤(必须是能接受 -d 选项的程序)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "本地文件选择:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
 msgstr "添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "DIR"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "改变至目录 DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "从 FILE 中获取文件名来解压或创建文件"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T 读取以空终止的名字,-C 禁用"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "禁用上一次的效果 --null 选项"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "以 -T 读取的文件名作为引用结束(默认)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "不以 -T 读取的文件名作为引用结束"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
 msgstr "PATTERN"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
 msgstr "排除以 PATTERN 指定的文件"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
 msgstr "排除 FILE 中列出的模式串"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "除标识文件本身外,排除包含 CACHEDIR.TAG 的目录中的内容"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "排除包含 CACHEDIR.TAG 的目录中所有内容"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "排除包含 CACHEDIR.TAG 的目录"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "除 FILE 自身外,排除包含 FILE 的目录中的内容"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "排除包含 FILE 的目录中的所有内容"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "排除包含 FILE 的目录"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "排除版本控制系统目录"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
 msgstr "排除备份和锁文件"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "避免目录中的自动降级"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
 msgstr "创建归档时保存在本地文件系统中"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "目录递归(默认)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "不要从文件名中清除引导符‘/’"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
 msgstr "跟踪符号链接;将它们所指向的文件归档并输出"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
 msgstr "跟踪硬链接;将它们所指向的文件归档并输出"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "MEMBER-NAME"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
 msgstr "从归档中的 MEMBER-NAME 成员处开始"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "只保存比 DATE-OR-FILE 更新的文件"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "DATE"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "当只有数据改变时比较数据和时间"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "CONTROL"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "在删除前备份,选择 CONTROL 版本"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "STRING"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
 "在删除前备份,除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖,否则覆盖常用后缀(‘’)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "文件名变换:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "解压时从文件名中清除 NUMBER 个引导部分"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "EXPRESSION"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "使用 sed 代替 EXPRESSION 来进行文件名变换"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
 msgstr "文件名匹配选项(同时影响排除和包括模式串):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "忽略大小写"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
 msgstr "模式串匹配文件名头部"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
 msgstr "模式串匹配任意‘/’后字符(默认对 exclusion 有效)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "匹配大小写(默认)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "使用通配符(默认对 exclusion )"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "逐字匹配字符串"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
 msgstr "通配符不匹配‘/’"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
 msgstr "通配符匹配‘/’(默认对排除操作有效)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "提示性输出:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "详细地列出处理的文件"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
 msgstr "KEYWORD"
 
-#: src/tar.c:741
+#: src/tar.c:787
 msgid "warning control"
 msgstr "警告控制:"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "每隔 NUMBER 个记录显示进度信息(默认为 10 个)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "ACTION"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "在每个检查点上执行 ACTION"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "只要不是所有链接都被输出就打印信息"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "SIGNAL"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
@@ -2019,123 +2124,119 @@ msgstr ""
 "号为: SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和 SIGUSR2;同时也接受不带 SIG 前缀的"
 "信号名称"
 
-#: src/tar.c:756
+#: src/tar.c:802
 msgid "print file modification times in UTC"
 msgstr "以 UTC 格式打印文件修改时间"
 
-#: src/tar.c:758
-#, fuzzy
+#: src/tar.c:804
 msgid "print file time to its full resolution"
-msgstr "将文件时间打印至显示器"
+msgstr "按文件原本时间格式打印"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "将详细输出发送至 FILE"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
 msgstr "每个信息都显示归档内的块数"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "每次操作都要求确认"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "显示 tar 默认选项"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr "列表或解压时,列出每个不匹配查找标准的目录"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
 msgstr "显示变换后的文件名或归档名"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "STYLE"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "设置名称引用风格;有效的 STYLE 值请参阅以下说明"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "来自 STRING 的额外的引用字符"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "禁用来自 STRING 的字符引用"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "兼容性选项:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "创建归档时,相当于 --old-archive;展开归档时,相当于 --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "其它选项:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "禁用某些潜在的有危险的选项"
 
-#: src/tar.c:930
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+#: src/tar.c:978
+#, fuzzy
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
 msgstr "您不能指定超过一个\"-Acdtrux\"或是\"--test-label\"外的选项"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "压缩选项冲突"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "未知的信号名称: %s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "找不到数据样板文件"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "把未知的时间格式 %2$s 替换为 %1$s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
 msgstr "选项 %s: 将日期 ‘%s’ 当作 %s"
 
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s: 文件列表已经读取"
-
-#: src/tar.c:1201
-#, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s: 读取的文件名含有空字符"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
 msgid "filter the archive through %s"
 msgstr "通过 %s 过滤归档"
 
-#: src/tar.c:1296
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
 msgstr "--quoting-style 选项的有效参数为:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2143,53 +2244,50 @@ msgstr ""
 "\n"
 "此 tar 默认为:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "无效的所有者"
+
+#: src/tar.c:1339
 #, fuzzy
 msgid "Invalid blocking factor"
 msgstr "无效的块因子"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "无效的磁带长度"
 
-#: src/tar.c:1529
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
 msgstr "无效的增量度"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "多于一个时间阈值"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 #, fuzzy
 msgid "Invalid sparse version value"
 msgstr "无效的稀疏版本值"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
 msgstr "此平台不支持 --atime-preserve=‘system’ "
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint 值不是个整数"
 
-#: src/tar.c:1848
-msgid "Invalid group"
-msgstr "无效的组"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "选项中给出无效的访问模式"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "无效的数字"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "无效的所有者"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2197,119 +2295,149 @@ msgstr ""
 "--preserve 选项已经废弃了,请使用 --preserve-permissions --preserve-order 代"
 "替"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "无效的记录大小"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "记录大小必须是 %d 的倍数。"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "无效的元素数"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "仅允许使用一个 --to-command 选项"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "错误的压缩参数: %s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
 msgstr "未知的压缩参数: ‘%c’"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
 msgstr "本 tar 不支持选项“-[0-7][lmh]”"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FILE]..."
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
 msgstr "旧选项“%c”需要参数。"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "没有一个文件列表时 --occurrence 是没有意义的"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence 不能用于请求的操作模式中"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
 msgstr "多个归档文件需要使用“-M”选项"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "无法在使用 --newer 的时候使用 --listed-incremental"
 
-#: src/tar.c:2406
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
 msgstr "没有 --listed-incremental 选项的话 --level 选项是无意义的"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s:卷标过长 (限制为 %lu 字节)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
 msgstr "无法检验多卷归档文件"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
 msgstr "无法检验压缩归档文件"
 
-#: src/tar.c:2444
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "不能使用模式 %s"
+
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
 msgstr "无法使用多卷压缩归档文件"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "无法联结压缩归档文件"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
 msgstr "--pax-option 只能用于 POSIX 归档中"
 
-#: src/tar.c:2492
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option 只能用于 POSIX 归档中"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option 只能用于 POSIX 归档中"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option 只能用于 POSIX 归档中"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "不能使用模式 %s"
+
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "卷长度不可小于记录大小"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order 与 --listed-incremental 不匹配"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
 msgstr "谨慎地拒绝创建空归档文件"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
 msgstr "选项“-Aru”与“-f -”不兼容"
 
-#: src/tar.c:2621
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
+#: src/tar.c:2660
+#, fuzzy
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
 msgstr "您必须从\"-Acdtrux\"或是\"--test-label\"选项中指定一个"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "由于前次错误,将以上次的错误状态退出"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2320,114 +2448,110 @@ msgstr[0] "%s:文件缩小 %s 字节"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "关键字 %s 未知或还未实现"
 
-#: src/xheader.c:174
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
 msgstr "时间标记超出允许范围"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
 msgstr "不能使用模式 %s"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "不能覆盖关键字 %s"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "错误的扩展头: 缺少 length"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "扩展头长度超出所允许的范围"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "扩展头长度 %*s 超出范围"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "错误的扩展头: length 后缺少空白符"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "错误的扩展头: 缺少等于符号"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "错误的扩展头: 缺少空行"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
 msgstr "忽略未知的扩展头关键字‘%s’"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "生成的关键字/值对太长了(keyword=%s, length=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "扩展头 %s=%s 超出范围 %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "错误的扩展头: %s=%s 无效"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "错误的扩展头: %s=%s 溢出"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "错误的扩展头: %s 无效: 非预期的分隔符 %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "错误的扩展头: %s 无效: 奇怪的数值"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s: 无效的超时设置"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s: 未知的检查点操作"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "写入"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "读取"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "写入操作的检查点 %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "读取操作的检查点 %u"
@@ -2564,7 +2688,7 @@ msgstr "数值超出所允许的范围: %s"
 msgid "Negative size: %s"
 msgstr "负值: %s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "stat(%s) 错误"
@@ -2593,8 +2717,8 @@ msgstr "未知的数据格式"
 msgid "[ARGS...]"
 msgstr "[ARGS...]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
 msgstr "无法打开“%s”"
@@ -2608,66 +2732,97 @@ msgstr "无法定位"
 msgid "file name contains null character"
 msgstr "文件名包含空字符"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr "使用 --file 选项无法在标准输出上生成离散文件"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
 msgstr "不正确的掩码(“%s”附近)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
 msgstr "未知的文件掩码位“%s”"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
 msgstr "无法设定“%s”的时间"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "无法删除 \"%s\""
+
+#: tests/genfile.c:701
+#, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s 命令失败"
+
+#: tests/genfile.c:706
 #, c-format
 msgid "cannot unlink `%s'"
 msgstr "无法删除 \"%s\""
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "命令成功退出\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "命令出错,状态 %d\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "命令由信号 %d 终止了\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "命令由信号 %d 停止了\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "命令输出 core\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "命令终止\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat 选项需要文件名"
 
+#~ msgid "Cannot get working directory"
+#~ msgstr "无法获取工作目录"
+
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "为解压至匹配归档排序名称"
+
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "读取目录文件时字段太长"
+
+#~ msgid "Read error in snapshot file"
+#~ msgstr "目录文件读取错误"
+
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "目录文件中异常的字段值"
+
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "扩展头长度超出所允许的范围"
+
+#~ msgid "Invalid group"
+#~ msgstr "无效的组"
+
 #~ msgid "%s: Directory removed before we read it"
 #~ msgstr "%s: 文件在读入之前被删除了"
 
index 4fe3aba3bd037a80b12dc0540587a43b095f96d3..04cf629d1d90d7645f7d5b8b1d50761eef13a13f 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index 435b10bdade44ea3129f8570eedbd41fc4b43456..3aae1eb0b3764a7fd803467b6d5c322373ccd50b 100644 (file)
@@ -1,16 +1,16 @@
 # Traditional Chinese Messages for tar.
 # Copyright (C) 2005 Free Software Foundation, Inc.
 # This file is distributed under the same license as the tar package.
-# Wei-Lun Chao <chaoweilun@gmail.com>, 2009.
+# Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013.
 #
-#: src/create.c:1552
+#: src/create.c:1572
 msgid ""
 msgstr ""
-"Project-Id-Version: tar 1.22\n"
+"Project-Id-Version: tar 1.26\n"
 "Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
-"POT-Creation-Date: 2011-03-12 11:53+0200\n"
-"PO-Revision-Date: 2009-08-30 00:17+0800\n"
-"Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\n"
+"POT-Creation-Date: 2013-10-05 23:10+0300\n"
+"PO-Revision-Date: 2013-05-31 23:39+0800\n"
+"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
@@ -29,64 +29,63 @@ msgid "ambiguous argument %s for %s"
 msgstr "%2$s 的引數 %1$s 是模稜兩可的"
 
 #: gnu/argmatch.c:155
-#, c-format
 msgid "Valid arguments are:"
 msgstr "有效的引數為:"
 
-#: gnu/argp-help.c:149
+#: gnu/argp-help.c:150
 #, c-format
 msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
 msgstr "ARGP_HELP_FMT:%s 值是少於或等於 %s"
 
-#: gnu/argp-help.c:222
+#: gnu/argp-help.c:223
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 msgstr "%.*s: ARGP_HELP_FMT 參數需要一個值"
 
-#: gnu/argp-help.c:228
+#: gnu/argp-help.c:229
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
 msgstr "%.*s: ARGP_HELP_FMT 參數必須是正值"
 
-#: gnu/argp-help.c:237
+#: gnu/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 msgstr "%.*s: 不明的 ARGP_HELP_FMT 參數"
 
-#: gnu/argp-help.c:249
+#: gnu/argp-help.c:250
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
 msgstr "ARGP_HELP_FMT 中無用的資訊: %s"
 
-#: gnu/argp-help.c:1248
+#: gnu/argp-help.c:1250
 msgid ""
 "Mandatory or optional arguments to long options are also mandatory or "
 "optional for any corresponding short options."
 msgstr "長選項的必須或可選用的引數也是相對應短選項的必須或可選用的引數。"
 
-#: gnu/argp-help.c:1641
+#: gnu/argp-help.c:1643
 msgid "Usage:"
 msgstr "用法:"
 
-#: gnu/argp-help.c:1645
+#: gnu/argp-help.c:1647
 msgid "  or: "
 msgstr "  或:"
 
-#: gnu/argp-help.c:1657
+#: gnu/argp-help.c:1659
 msgid " [OPTION...]"
 msgstr " [選項…]"
 
-#: gnu/argp-help.c:1684
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "試試「%s --help」或「%s --usage」以獲得更多資訊。\n"
+#: gnu/argp-help.c:1686
+#, fuzzy, c-format
+msgid "Try '%s --help' or '%s --usage' for more information.\n"
+msgstr "試試 %s --help 或 %s --usage 以獲得更多資訊。\n"
 
-#: gnu/argp-help.c:1712
+#: gnu/argp-help.c:1714
 #, c-format
 msgid "Report bugs to %s.\n"
 msgstr "請向 %s 回報錯誤。\n"
 
-#: gnu/argp-help.c:1931 gnu/error.c:183
+#: gnu/argp-help.c:1933 gnu/error.c:190
 msgid "Unknown system error"
 msgstr "不明的系統錯誤"
 
@@ -98,7 +97,7 @@ msgstr "給出這個使用方式列表"
 msgid "give a short usage message"
 msgstr "給出簡短的使用訊息"
 
-#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: gnu/argp-parse.c:85 src/tar.c:512 src/tar.c:514 src/tar.c:606
 #: tests/genfile.c:130
 msgid "NAME"
 msgstr "名稱"
@@ -119,17 +118,16 @@ msgstr "掛斷若干秒 (預設 3600)"
 msgid "print program version"
 msgstr "印出程式版本"
 
-#: gnu/argp-parse.c:160
-#, c-format
+#: gnu/argp-parse.c:161
 msgid "(PROGRAM ERROR) No version known!?"
 msgstr "(程式錯誤) 沒有已知版本 !?"
 
-#: gnu/argp-parse.c:613
+#: gnu/argp-parse.c:614
 #, c-format
 msgid "%s: Too many arguments\n"
 msgstr "%s:太多引數\n"
 
-#: gnu/argp-parse.c:756
+#: gnu/argp-parse.c:757
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
 msgstr "(程式錯誤) 選項應該已被辨識 !?"
 
@@ -137,62 +135,62 @@ msgstr "(程式錯誤) 選項應該已被辨識 !?"
 msgid "write error"
 msgstr "寫入錯誤"
 
-#: gnu/getopt.c:529 gnu/getopt.c:545
+#: gnu/getopt.c:549 gnu/getopt.c:578
 #, fuzzy, c-format
-msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s:選項「%s」是模稜兩可的\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s:選項 %s 是模稜兩可的\n"
 
-#: gnu/getopt.c:578 gnu/getopt.c:582
-#, fuzzy, c-format
+#: gnu/getopt.c:626 gnu/getopt.c:630
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s:選項「--%s」不允許引數\n"
+msgstr "%s:選項 --%s 不允許引數\n"
 
-#: gnu/getopt.c:591 gnu/getopt.c:596
-#, fuzzy, c-format
+#: gnu/getopt.c:639 gnu/getopt.c:644
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s:選項「%c%s」不允許引數\n"
+msgstr "%s:選項 %c%s 不允許有引數\n"
 
-#: gnu/getopt.c:639 gnu/getopt.c:658
-#, fuzzy, c-format
+#: gnu/getopt.c:687 gnu/getopt.c:706
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s:選項「%s」需要一個引數\n"
+msgstr "%s:選項 --%s 需要一個引數\n"
 
-#: gnu/getopt.c:696 gnu/getopt.c:699
-#, fuzzy, c-format
+#: gnu/getopt.c:744 gnu/getopt.c:747
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s:無法辨識的選項「--%s」\n"
+msgstr "%s:無法辨識的選項 --%s\n"
 
-#: gnu/getopt.c:707 gnu/getopt.c:710
-#, fuzzy, c-format
+#: gnu/getopt.c:755 gnu/getopt.c:758
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s:無法辨識的選項「%c%s」\n"
+msgstr "%s:無法辨識的選項 %c%s\n"
 
-#: gnu/getopt.c:759 gnu/getopt.c:762
-#, fuzzy, c-format
+#: gnu/getopt.c:807 gnu/getopt.c:810
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s:無效的選項 -- %c\n"
 
-#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
-#, fuzzy, c-format
+#: gnu/getopt.c:863 gnu/getopt.c:880 gnu/getopt.c:1090 gnu/getopt.c:1108
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s:選項需要一個引數 -- %c\n"
 
-#: gnu/getopt.c:885 gnu/getopt.c:901
-#, fuzzy, c-format
+#: gnu/getopt.c:936 gnu/getopt.c:952
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s:選項「-W %s」是模稜兩可的\n"
+msgstr "%s:選項 -W %s 是模稜兩可的\n"
 
-#: gnu/getopt.c:925 gnu/getopt.c:943
-#, fuzzy, c-format
+#: gnu/getopt.c:976 gnu/getopt.c:994
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s:選項「-W %s」不允許引數\n"
+msgstr "%s:選項 -W %s 不允許有引數\n"
 
-#: gnu/getopt.c:964 gnu/getopt.c:982
-#, fuzzy, c-format
+#: gnu/getopt.c:1015 gnu/getopt.c:1033
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s:選項「%s」需要一個引數\n"
+msgstr "%s:選項 -W %s 需要一個引數\n"
 
-#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+#: gnu/obstack.c:415 gnu/obstack.c:417 gnu/xalloc-die.c:36
 msgid "memory exhausted"
 msgstr "記憶體已耗盡"
 
@@ -208,28 +206,30 @@ msgstr "回到初始工作目錄時失敗"
 
 #. 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
-#. "'".  If the catalog has no translation,
-#. locale_quoting_style quotes `like this', and
-#. clocale_quoting_style quotes "like this".
+#. "'".  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.
 #.
-#. For example, an American English Unicode locale should
-#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
-#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
-#. MARK).  A British English Unicode locale should instead
-#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK)
-#. and U+2019 (RIGHT SINGLE 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_mark#Glyphs>
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: gnu/quotearg.c:273
+#: gnu/quotearg.c:314
 msgid "`"
 msgstr "「"
 
-#: gnu/quotearg.c:274
+#: gnu/quotearg.c:315
 msgid "'"
 msgstr "」"
 
@@ -239,7 +239,7 @@ msgstr "」"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^yesexpr='
-#: gnu/rpmatch.c:149
+#: gnu/rpmatch.c:152
 msgid "^[yY]"
 msgstr "^[yY是]"
 
@@ -249,19 +249,19 @@ msgstr "^[yY是]"
 #. To enquire the regular expression that your system uses for this
 #. purpose, you can use the command
 #. locale -k LC_MESSAGES | grep '^noexpr='
-#: gnu/rpmatch.c:162
+#: gnu/rpmatch.c:165
 msgid "^[nN]"
 msgstr "^[nN否]"
 
 #: gnu/version-etc.c:76
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "由 %s (%s) 打包套件\n"
 
 #: gnu/version-etc.c:79
 #, 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
@@ -399,33 +399,32 @@ msgstr ""
 #. "Report translation bugs to <...>\n" with the address for translation
 #. bugs (typically your translation team's web or email address).
 #: gnu/version-etc.c:247
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Report bugs to: %s\n"
-msgstr "請向 %s 回報錯誤。\n"
+msgstr ""
+"\n"
+"將錯誤通報給:%s\n"
 
 #: gnu/version-etc.c:249
-#, fuzzy, c-format
+#, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
-"\n"
-"將錯誤回報給 <%s>。\n"
+msgstr "通報 %s 錯誤給:%s\n"
 
 #: gnu/version-etc.c:253
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s 首頁:<%s>\n"
 
 #: gnu/version-etc.c:255
-#, fuzzy, c-format
+#, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "%s 首頁:<http://www.gnu.org/software/%s/>\n"
+msgstr "%s 首頁:<http://www.gnu.org/software/%s/>\n"
 
 #: gnu/version-etc.c:258
-#, fuzzy
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>\n"
+msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>\n"
 
 #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'.
 #. Directly translating this to another language will not work, first because
@@ -496,20 +495,20 @@ msgstr[0] "%1$s:只能寫入 %3$lu 位元組中的 %2$lu 個"
 #: lib/paxnames.c:140
 #, c-format
 msgid "Removing leading `%s' from member names"
-msgstr "從成員名稱中移除前端的「%s」"
+msgstr "從成員名稱中移除前端的 %s"
 
 #: lib/paxnames.c:141
 #, c-format
 msgid "Removing leading `%s' from hard link targets"
-msgstr "從硬式連結目標中移除前端的「%s」"
+msgstr "從硬式連結目標中移除前端的 %s"
 
 #: lib/paxnames.c:154
 msgid "Substituting `.' for empty member name"
-msgstr "以「.」來替換空白的成員名稱"
+msgstr "以 . 來替換空白的成員名稱"
 
 #: lib/paxnames.c:155
 msgid "Substituting `.' for empty hard link target"
-msgstr "以「.」來替換空白的硬式連結目標"
+msgstr "以 . 來替換空白的硬式連結目標"
 
 #: lib/rtapelib.c:299
 #, c-format
@@ -529,75 +528,73 @@ msgstr "標準輸出"
 #: lib/rtapelib.c:429
 #, c-format
 msgid "Cannot connect to %s: resolve failed"
-msgstr ""
+msgstr "無法連線到 %s:解析失敗"
+
+#: lib/rtapelib.c:502
+#, fuzzy, c-format
+msgid "Cannot redirect files for remote shell"
+msgstr "無法執行遠端命令殼"
 
-#: lib/rtapelib.c:515
+#: lib/rtapelib.c:516
 #, c-format
 msgid "Cannot execute remote shell"
 msgstr "無法執行遠端命令殼"
 
 #: rmt/rmt.c:432
 msgid "Seek direction out of range"
-msgstr "尋方向超出範圍"
+msgstr "尋方向超出範圍"
 
 #: rmt/rmt.c:438
-#, fuzzy
 msgid "Invalid seek direction"
-msgstr "選項中的模式無效"
+msgstr "無效的尋指方向"
 
 #: rmt/rmt.c:446
-#, fuzzy
 msgid "Invalid seek offset"
-msgstr "ç\84¡æ\95\88ç\9a\84大å°\8fï¼\9a%s"
+msgstr "ç\84¡æ\95\88ç\9a\84å°\8bæ\8c\87å\81\8f移"
 
 #: rmt/rmt.c:452
 msgid "Seek offset out of range"
-msgstr "尋偏移值超出範圍"
+msgstr "尋偏移值超出範圍"
 
 #: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
-#, fuzzy
 msgid "Invalid byte count"
-msgstr "無效的磁帶長度"
+msgstr "無效的位元組計數"
 
 #: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
-#, fuzzy
 msgid "Byte count out of range"
-msgstr "尋覓偏移值超出範圍"
+msgstr "位元組計數超出範圍"
 
 #: rmt/rmt.c:558
-#, fuzzy
 msgid "Premature eof"
-msgstr "rmtd:檔案突然結束\n"
+msgstr "過早出現檔尾"
 
 #: rmt/rmt.c:601
-#, fuzzy
 msgid "Invalid operation code"
-msgstr "主要操作模式:"
+msgstr "無效的運算碼"
 
 #: rmt/rmt.c:636 rmt/rmt.c:680
 msgid "Operation not supported"
-msgstr ""
+msgstr "作業不支援"
 
 #: rmt/rmt.c:664
-#, fuzzy
 msgid "Unexpected arguments"
-msgstr "未預期的保存檔結尾"
+msgstr "未預期的引數"
 
 #: rmt/rmt.c:689
 msgid "Manipulate a tape drive, accepting commands from a remote process"
-msgstr ""
+msgstr "操控磁帶機,從遠端行程接受命令"
 
-#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
-#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+#: rmt/rmt.c:696 src/tar.c:440 src/tar.c:444 src/tar.c:604 src/tar.c:619
+#: src/tar.c:750 src/tar.c:788 tests/genfile.c:166
 msgid "NUMBER"
 msgstr "數目"
 
 #: rmt/rmt.c:697
 msgid "set debug level"
-msgstr ""
+msgstr "設定除錯等級"
 
-#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
-#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: rmt/rmt.c:698 src/tar.c:438 src/tar.c:609 src/tar.c:685 src/tar.c:689
+#: src/tar.c:701 src/tar.c:711 src/tar.c:714 src/tar.c:716 src/tar.c:805
 #: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
 #: tests/genfile.c:187 tests/genfile.c:193
 msgid "FILE"
@@ -605,14 +602,14 @@ msgstr "檔案"
 
 #: rmt/rmt.c:699
 msgid "set debug output file name"
-msgstr ""
+msgstr "設定除錯輸出檔案名稱"
 
 #: rmt/rmt.c:715 rmt/rmt.c:783
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open %s"
-msgstr "無法開啟「%s」"
+msgstr "無法開啟 %s"
 
-#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#: rmt/rmt.c:780 tests/genfile.c:892 tests/genfile.c:909
 #, c-format
 msgid "too many arguments"
 msgstr "太多引數"
@@ -621,11 +618,11 @@ msgstr "太多引數"
 msgid "Garbage command"
 msgstr "無用的命令"
 
-#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
-#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
-#: src/update.c:200
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1322
+#: src/buffer.c:1368 src/buffer.c:1397 src/delete.c:212 src/list.c:244
+#: src/update.c:188
 msgid "This does not look like a tar archive"
-msgstr "這個看起來不像 tar 保存檔"
+msgstr "這個看起來不像 tar 封存"
 
 #: src/buffer.c:521 src/buffer.c:530
 msgid "Total bytes written"
@@ -650,72 +647,72 @@ msgstr "無效的記錄大小"
 
 #: src/buffer.c:647
 msgid "No archive name given"
-msgstr "沒有指定保存檔名稱"
+msgstr "沒有指定封存名稱"
 
 #: src/buffer.c:689
 msgid "Cannot verify stdin/stdout archive"
-msgstr "無法檢驗標準輸出入保存檔"
+msgstr "無法檢驗標準輸出入封存"
 
 #: src/buffer.c:703
 #, c-format
 msgid "Archive is compressed. Use %s option"
-msgstr "保存檔被壓縮過。使用 %s 選項"
+msgstr "封存被壓縮過。使用 %s 選項"
 
-#: src/buffer.c:760 src/tar.c:2448
+#: src/buffer.c:761 src/tar.c:2459
 msgid "Cannot update compressed archives"
-msgstr "無法更新壓縮的保存檔"
+msgstr "無法更新壓縮的封存"
 
-#: src/buffer.c:853
+#: src/buffer.c:854
 msgid "At beginning of tape, quitting now"
-msgstr "位於磁帶起始部,立刻退出"
+msgstr "位於磁帶起始部,立刻退出"
 
-#: src/buffer.c:859
+#: src/buffer.c:860
 msgid "Too many errors, quitting"
 msgstr "太多錯誤,離開中"
 
-#: src/buffer.c:892
+#: src/buffer.c:893
 #, c-format
 msgid "Record size = %lu block"
 msgid_plural "Record size = %lu blocks"
 msgstr[0] "記錄大小 = %lu 區塊"
 
-#: src/buffer.c:913
+#: src/buffer.c:914
 #, c-format
 msgid "Unaligned block (%lu byte) in archive"
 msgid_plural "Unaligned block (%lu bytes) in archive"
-msgstr[0] "保存檔中未排列的區塊 (%lu 位元組)"
+msgstr[0] "封存中未排列的區塊 (%lu 位元組)"
 
-#: src/buffer.c:990
+#: src/buffer.c:991
 msgid "Cannot backspace archive file; it may be unreadable without -i"
-msgstr "無法倒退保存檔檔案;沒有 -i 也許會無法讀取"
+msgstr "無法倒退封存檔案;沒有 -i 也許會無法讀取"
 
-#: src/buffer.c:1022
+#: src/buffer.c:1023
 msgid "rmtlseek not stopped at a record boundary"
 msgstr "rmtlseek 無法在記錄分界處停止"
 
-#: src/buffer.c:1073
+#: src/buffer.c:1074
 #, c-format
 msgid "%s: contains invalid volume number"
 msgstr "%s:包含無效的卷冊號碼"
 
-#: src/buffer.c:1108
+#: src/buffer.c:1109
 msgid "Volume number overflow"
 msgstr "卷冊號碼已滿"
 
-#: src/buffer.c:1123
+#: src/buffer.c:1124
 #, c-format
 msgid "Prepare volume #%d for %s and hit return: "
 msgstr "準備好卷冊 #%d 以完成 %s 並按下 return: "
 
-#: src/buffer.c:1129
+#: src/buffer.c:1130
 msgid "EOF where user reply was expected"
 msgstr "到達期待使用者回答的檔案末端"
 
-#: src/buffer.c:1134 src/buffer.c:1166
+#: src/buffer.c:1135 src/buffer.c:1167
 msgid "WARNING: Archive is incomplete"
-msgstr "警告:保存檔不完整"
+msgstr "警告:封存不完整"
 
-#: src/buffer.c:1148
+#: src/buffer.c:1149
 #, c-format
 msgid ""
 " n name        Give a new file name for the next (and subsequent) volume(s)\n"
@@ -726,626 +723,662 @@ msgstr ""
 " q             放棄打包\n"
 " y 或 newline  繼續作業\n"
 
-#: src/buffer.c:1153
+#: src/buffer.c:1154
 #, c-format
 msgid " !             Spawn a subshell\n"
 msgstr " !             衍生一個子命令殼\n"
 
-#: src/buffer.c:1154
+#: src/buffer.c:1155
 #, c-format
 msgid " ?             Print this list\n"
 msgstr " ?             列印這個清單\n"
 
-#: src/buffer.c:1161
+#: src/buffer.c:1162
 msgid "No new volume; exiting.\n"
 msgstr "沒有新卷冊;離開。\n"
 
-#: src/buffer.c:1194
+#: src/buffer.c:1195
 msgid "File name not specified. Try again.\n"
 msgstr "檔案名稱尚未指定。再次嘗試。\n"
 
-#: src/buffer.c:1207
+#: src/buffer.c:1208
 #, c-format
 msgid "Invalid input. Type ? for help.\n"
 msgstr "無效的輸入。按下 ? 以獲得說明。\n"
 
-#: src/buffer.c:1258
+#: src/buffer.c:1259
 #, c-format
 msgid "%s command failed"
 msgstr "%s 命令失敗"
 
-#: src/buffer.c:1439
+#: src/buffer.c:1440
 #, c-format
 msgid "%s is possibly continued on this volume: header contains truncated name"
 msgstr "%s 在本卷冊中可能連續:標頭含有截斷的名稱"
 
-#: src/buffer.c:1443
+#: src/buffer.c:1444
 #, c-format
 msgid "%s is not continued on this volume"
 msgstr "%s 在本卷冊中並不連續"
 
-#: src/buffer.c:1457
+#: src/buffer.c:1458
 #, c-format
 msgid "%s is the wrong size (%s != %s + %s)"
 msgstr "%s 的大小有錯 (%s != %s + %s)"
 
-#: src/buffer.c:1472
+#: src/buffer.c:1473
 #, c-format
 msgid "This volume is out of sequence (%s - %s != %s)"
 msgstr "本卷冊已超出序列 (%s - %s !=%s)"
 
-#: src/buffer.c:1550 src/buffer.c:1576
+#: src/buffer.c:1551 src/buffer.c:1577
 #, c-format
 msgid "Archive not labeled to match %s"
-msgstr "保存檔未標誌為符合 %s"
+msgstr "封存未標誌為符合 %s"
 
-#: src/buffer.c:1580
+#: src/buffer.c:1581
 #, c-format
 msgid "Volume %s does not match %s"
 msgstr "卷冊 %s 不符合 %s"
 
-#: src/buffer.c:1674
+#: src/buffer.c:1675
 #, c-format
 msgid ""
 "%s: file name too long to be stored in a GNU multivolume header, truncated"
 msgstr "%s:檔名太長,無法儲存於 GNU 多重卷冊標頭之中,已截斷"
 
-#: src/buffer.c:1865
+#: src/buffer.c:1866
 msgid "write did not end on a block boundary"
 msgstr "並未於區段界限結束寫入"
 
-#: src/compare.c:95
+#: src/compare.c:96
 #, c-format
 msgid "Could only read %lu of %lu byte"
 msgid_plural "Could only read %lu of %lu bytes"
 msgstr[0] "只能讀取 %2$lu 位元組中的 %1$lu 個"
 
-#: src/compare.c:105 src/compare.c:383
+#: src/compare.c:106 src/compare.c:388
 msgid "Contents differ"
 msgstr "內容不同"
 
-#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
-#: src/list.c:1388 src/xheader.c:711
+#: src/compare.c:132 src/extract.c:1132 src/incremen.c:1503 src/list.c:458
+#: src/list.c:1394 src/xheader.c:836
 msgid "Unexpected EOF in archive"
-msgstr "未預期的保存檔結尾"
+msgstr "未預期的封存結尾"
 
-#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+#: src/compare.c:180 src/compare.c:196 src/compare.c:310 src/compare.c:412
 msgid "File type differs"
 msgstr "檔案類型不同"
 
-#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+#: src/compare.c:183 src/compare.c:203 src/compare.c:324
 msgid "Mode differs"
 msgstr "模式不同"
 
-#: src/compare.c:205
+#: src/compare.c:206
 msgid "Uid differs"
 msgstr "Uid 號碼不同"
 
-#: src/compare.c:207
+#: src/compare.c:208
 msgid "Gid differs"
 msgstr "Gid 號碼不同"
 
-#: src/compare.c:211
+#: src/compare.c:212
 msgid "Mod time differs"
 msgstr "修改時間不同"
 
-#: src/compare.c:215 src/compare.c:415
+#: src/compare.c:216 src/compare.c:422
 msgid "Size differs"
 msgstr "大小不同"
 
-#: src/compare.c:264
+#: src/compare.c:265
 #, c-format
 msgid "Not linked to %s"
 msgstr "並未鏈結至 %s"
 
-#: src/compare.c:288
+#: src/compare.c:289
 msgid "Symlink differs"
 msgstr "符號連結不同"
 
-#: src/compare.c:317
+#: src/compare.c:318
 msgid "Device number differs"
 msgstr "裝置編號不同"
 
-#: src/compare.c:457
+#: src/compare.c:464
 #, c-format
 msgid "Verify "
 msgstr "驗證 "
 
-#: src/compare.c:464
-#, c-format
-msgid "%s: Unknown file type `%c', diffed as normal file"
-msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式作比較"
+#: src/compare.c:471
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s:不明檔案類型 %c,會以普通檔案的方式作比較"
 
-#: src/compare.c:520
+#: src/compare.c:527
 msgid "Archive contains file names with leading prefixes removed."
-msgstr "保存檔包含前置文字被移除的檔案名稱。"
+msgstr "封存包含前置文字被移除的檔案名稱。"
 
-#: src/compare.c:526
-#, fuzzy
+#: src/compare.c:533
 msgid "Archive contains transformed file names."
-msgstr "保存檔含有過時的 base-64 標頭"
+msgstr "封存含有變換過的檔案名稱。"
 
-#: src/compare.c:531
+#: src/compare.c:538
 msgid "Verification may fail to locate original files."
 msgstr "查核動作可能無法找到原始檔案"
 
-#: src/compare.c:603
+#: src/compare.c:612
 #, c-format
 msgid "VERIFY FAILURE: %d invalid header detected"
 msgid_plural "VERIFY FAILURE: %d invalid headers detected"
 msgstr[0] "驗證失敗:%d 偵測到無效的標頭"
 
-#: src/compare.c:621 src/list.c:222
+#: src/compare.c:630 src/list.c:221
 #, c-format
 msgid "A lone zero block at %s"
 msgstr "位於 %s 的孤立零值區塊"
 
-#: src/create.c:72
+#: src/create.c:73
 #, c-format
 msgid "%s: contains a cache directory tag %s; %s"
 msgstr "%s:包含一個快取目錄標記 %s; %s"
 
-#: src/create.c:261
+#: src/create.c:262
 #, c-format
 msgid "value %s out of %s range %s..%s; substituting %s"
 msgstr "數值 %s 已超出 %s 的範圍 %s..%s;以 %s 替代中"
 
-#: src/create.c:267
+#: src/create.c:268
 #, c-format
 msgid "value %s out of %s range %s..%s"
 msgstr "數值 %s 已超出 %s 的範圍 %s..%s"
 
-#: src/create.c:327
+#: src/create.c:328
 msgid "Generating negative octal headers"
 msgstr "正在產生負數的八進位標頭"
 
-#: src/create.c:612 src/create.c:675
+#: src/create.c:601 src/create.c:664
 #, c-format
 msgid "%s: file name is too long (max %d); not dumped"
 msgstr "%s:檔名太長 (最大 %d);未傾印"
 
-#: src/create.c:622
+#: src/create.c:611
 #, c-format
 msgid "%s: file name is too long (cannot be split); not dumped"
 msgstr "%s:檔名太長 (無法分割);未傾印"
 
-#: src/create.c:649
+#: src/create.c:638
 #, c-format
 msgid "%s: link name is too long; not dumped"
 msgstr "%s:鏈結名稱太長;未傾印"
 
-#: src/create.c:1064
+#: src/create.c:1084
 #, c-format
 msgid "%s: File shrank by %s byte; padding with zeros"
 msgid_plural "%s: File shrank by %s bytes; padding with zeros"
 msgstr[0] "%s:檔案縮小了 %s 位元組;以零值填補"
 
-#: src/create.c:1160
+#: src/create.c:1180
 #, c-format
 msgid "%s: file is on a different filesystem; not dumped"
 msgstr "%s:檔案位於不同的檔案系統;未傾印"
 
-#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+#: src/create.c:1223 src/create.c:1234 src/incremen.c:610 src/incremen.c:617
 msgid "contents not dumped"
 msgstr "內容無法傾印"
 
-#: src/create.c:1418
+#: src/create.c:1438
 #, c-format
 msgid "%s: Unknown file type; file ignored"
 msgstr "%s:不明檔案類型;忽略該檔案"
 
-#: src/create.c:1529
-#, fuzzy, c-format
+#: src/create.c:1549
+#, c-format
 msgid "Missing links to %s."
-msgstr "失去至 %s 的連結。\n"
+msgstr "缺少連結到 %s。"
 
-#: src/create.c:1690
+#: src/create.c:1710
 #, c-format
 msgid "%s: file is unchanged; not dumped"
 msgstr "%s:檔案沒有變更;未傾印"
 
-#: src/create.c:1699
+#: src/create.c:1719
 #, c-format
 msgid "%s: file is the archive; not dumped"
-msgstr "%s:檔案是保存檔;未傾印"
+msgstr "%s:檔案是封存;未傾印"
 
-#: src/create.c:1723 src/incremen.c:571
+#: src/create.c:1747 src/incremen.c:603
 msgid "directory not dumped"
 msgstr "目錄未傾印"
 
-#: src/create.c:1795
+#: src/create.c:1819
 #, c-format
 msgid "%s: file changed as we read it"
 msgstr "%s:檔案在讀取時已變更"
 
-#: src/create.c:1858
+#: src/create.c:1900
 #, c-format
 msgid "%s: socket ignored"
 msgstr "%s:忽略通訊端"
 
-#: src/create.c:1864
+#: src/create.c:1906
 #, c-format
 msgid "%s: door ignored"
 msgstr "%s:忽略匣門"
 
-#: src/delete.c:217 src/list.c:259 src/update.c:205
+#: src/delete.c:218 src/list.c:258 src/update.c:193
 msgid "Skipping to next header"
 msgstr "跳至下一個標頭"
 
-#: src/delete.c:283
+#: src/delete.c:284
 msgid "Deleting non-header from archive"
-msgstr "從保存檔中刪除無標頭者"
+msgstr "從封存中刪除無標頭者"
 
-#: src/extract.c:277
+#: src/extract.c:302
 #, c-format
 msgid "%s: implausibly old time stamp %s"
 msgstr "%s:難以確信的舊時間戳記 %s"
 
-#: src/extract.c:295
+#: src/extract.c:320
 #, c-format
 msgid "%s: time stamp %s is %s s in the future"
 msgstr "%s:時間戳記 %s 代表未來的 %s 秒"
 
-#: src/extract.c:475
+#: src/extract.c:536
 #, c-format
 msgid "%s: Unexpected inconsistency when making directory"
 msgstr "%s:產生目錄時有未預期的不一致"
 
-#: src/extract.c:721
+#: src/extract.c:705
+#, c-format
+msgid "%s: skipping existing file"
+msgstr ""
+
+#: src/extract.c:821
 #, c-format
 msgid "%s: Directory renamed before its status could be extracted"
 msgstr "%s:解開目錄狀態之前已更改了名稱"
 
-#: src/extract.c:875
+#: src/extract.c:1010
 msgid "Extracting contiguous files as regular files"
 msgstr "正在解開連續檔案為正常檔案"
 
-#: src/extract.c:1209
+#: src/extract.c:1365
 msgid "Attempting extraction of symbolic links as hard links"
 msgstr "嘗試解開符號連結為硬式連結"
 
-#: src/extract.c:1365
+#: src/extract.c:1528
 #, c-format
 msgid "%s: Cannot extract -- file is continued from another volume"
 msgstr "%s:無法解開 -- 檔案延續自其他卷冊"
 
-#: src/extract.c:1372 src/list.c:1121
+#: src/extract.c:1535 src/list.c:1135
 msgid "Unexpected long name header"
 msgstr "未預期的長名稱標頭"
 
-#: src/extract.c:1379
-#, c-format
-msgid "%s: Unknown file type `%c', extracted as normal file"
-msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式解開資料"
+#: src/extract.c:1542
+#, fuzzy, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s:不明檔案類型 %c,會以普通檔案的方式解開資料"
 
-#: src/extract.c:1405
+#: src/extract.c:1568
 #, c-format
 msgid "Current %s is newer or same age"
 msgstr "目前的 %s 較新或相同"
 
-#: src/extract.c:1457
+#: src/extract.c:1620
 #, c-format
 msgid "%s: Was unable to backup this file"
 msgstr "%s:之前無法備份這個檔案"
 
-#: src/extract.c:1594
+#: src/extract.c:1767
 #, c-format
 msgid "Cannot rename %s to %s"
 msgstr "無法將 %s 重新命名為 %s"
 
-#: src/incremen.c:473 src/incremen.c:517
+#: src/incremen.c:494 src/incremen.c:536
 #, c-format
 msgid "%s: Directory has been renamed from %s"
 msgstr "%s:目錄已從 %s 重新命名"
 
-#: src/incremen.c:485
-#, c-format
-msgid "%s: Directory has been renamed"
-msgstr "%s:目錄已被重新命名"
-
-#: src/incremen.c:530
+#: src/incremen.c:549
 #, c-format
 msgid "%s: Directory is new"
 msgstr "%s:目錄是新的"
 
-#: src/incremen.c:951 src/incremen.c:968
+#: src/incremen.c:566
+#, fuzzy, c-format
+msgid "%s: directory is on a different filesystem; not dumped"
+msgstr "%s:檔案位於不同的檔案系統;未傾印"
+
+#: src/incremen.c:587
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目錄已被重新命名"
+
+#: src/incremen.c:1001 src/incremen.c:1016
 msgid "Invalid time stamp"
 msgstr "無效的時間戳記"
 
-#: src/incremen.c:1007
-msgid "Invalid modification time (seconds)"
+#: src/incremen.c:1045
+#, fuzzy
+msgid "Invalid modification time"
 msgstr "無效的修改時間 (秒)"
 
-#: src/incremen.c:1022
+#: src/incremen.c:1055
 msgid "Invalid modification time (nanoseconds)"
 msgstr "無效的修改時間 (奈秒)"
 
-#: src/incremen.c:1042
+#: src/incremen.c:1071
 msgid "Invalid device number"
 msgstr "無效的裝置號碼"
 
-#: src/incremen.c:1057
+#: src/incremen.c:1079
 msgid "Invalid inode number"
 msgstr "無效的 inode 號碼"
 
-#: src/incremen.c:1108 src/incremen.c:1145
-msgid "Field too long while reading snapshot file"
-msgstr "讀取快照檔時欄位太長"
-
-#: src/incremen.c:1115 src/incremen.c:1153
-msgid "Read error in snapshot file"
-msgstr "讀取快照檔時發生錯誤"
+#: src/incremen.c:1135
+#, c-format
+msgid "%s: byte %s: %s %.*s... too long"
+msgstr ""
 
-#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
-#: src/incremen.c:1267
+#: src/incremen.c:1151 src/incremen.c:1206 src/incremen.c:1268
 msgid "Unexpected EOF in snapshot file"
 msgstr "未預期的快照檔結尾"
 
-#: src/incremen.c:1124 src/incremen.c:1164
-msgid "Unexpected field value in snapshot file"
-msgstr "未預期的快照檔欄位值"
+#: src/incremen.c:1157
+#, c-format
+msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x"
+msgstr ""
+
+#: src/incremen.c:1169
+#, c-format
+msgid ""
+"%s: byte %s: (valid range %s..%s)\n"
+"\t%s %s"
+msgstr ""
+
+#: src/incremen.c:1176
+#, c-format
+msgid "%s: byte %s: %s %s"
+msgstr ""
 
-#: src/incremen.c:1259
+#: src/incremen.c:1257
+#, c-format
+msgid "%s: byte %s: %s"
+msgstr ""
+
+#: src/incremen.c:1260
 msgid "Missing record terminator"
 msgstr "缺少記錄終止符號"
 
-#: src/incremen.c:1320 src/incremen.c:1323
+#: src/incremen.c:1366 src/incremen.c:1369
 msgid "Bad incremental file format"
 msgstr "不當的遞增檔案格式"
 
-#: src/incremen.c:1342
+#: src/incremen.c:1388
 #, c-format
 msgid "Unsupported incremental format version: %<PRIuMAX>"
 msgstr "不受支援的遞增格式版本:%<PRIuMAX>"
 
-#: src/incremen.c:1496
+#: src/incremen.c:1543
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found %#3o"
-msgstr "異常的傾印目錄:預期「%c」但是找到 %#3o"
+msgstr "異常的傾印目錄:預期 %c 但是找到 %#3o"
 
-#: src/incremen.c:1506
+#: src/incremen.c:1553
 msgid "Malformed dumpdir: 'X' duplicated"
-msgstr "異常的傾印目錄:「X」重製"
+msgstr "異常的傾印目錄:重製"
 
-#: src/incremen.c:1519
+#: src/incremen.c:1566
 msgid "Malformed dumpdir: empty name in 'R'"
-msgstr "異常的傾印目錄:在「R」中有空的名稱"
+msgstr "異常的傾印目錄:在 R 中有空的名稱"
 
-#: src/incremen.c:1532
+#: src/incremen.c:1579
 msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
-msgstr "異常的傾印目錄:「R」未在「T」之前"
+msgstr "異常的傾印目錄:R 未在 T 之前"
 
-#: src/incremen.c:1538
+#: src/incremen.c:1585
 msgid "Malformed dumpdir: empty name in 'T'"
-msgstr "異常的傾印目錄:在「T」中有空的名稱"
+msgstr "異常的傾印目錄:在 T 中有空的名稱"
 
-#: src/incremen.c:1558
+#: src/incremen.c:1605
 #, c-format
 msgid "Malformed dumpdir: expected '%c' but found end of data"
-msgstr "異常的傾印目錄:預期「%c」但是發現資料的結束"
+msgstr "異常的傾印目錄:預期 %c 但是發現資料的結束"
 
-#: src/incremen.c:1565
+#: src/incremen.c:1612
 msgid "Malformed dumpdir: 'X' never used"
-msgstr "異常的傾印目錄:「X」永不使用"
+msgstr "異常的傾印目錄:永不使用"
 
-#: src/incremen.c:1609
+#: src/incremen.c:1656
 #, c-format
 msgid "Cannot create temporary directory using template %s"
 msgstr "無法使用模板 %s 建立暫存目錄"
 
-#: src/incremen.c:1670
+#: src/incremen.c:1717
 #, c-format
 msgid "%s: Not purging directory: unable to stat"
 msgstr "%s:未能清空目錄;無法顯示狀態"
 
-#: src/incremen.c:1683
+#: src/incremen.c:1730
 #, c-format
 msgid "%s: directory is on a different device: not purging"
 msgstr "%s:目錄位於不同的裝置;無法清空"
 
-#: src/incremen.c:1691
+#: src/incremen.c:1738
 #, c-format
 msgid "%s: Deleting %s\n"
 msgstr "%s:正在刪除 %s\n"
 
-#: src/incremen.c:1696
+#: src/incremen.c:1743
 #, c-format
 msgid "%s: Cannot remove"
 msgstr "%s:無法移除"
 
-#: src/list.c:190
+#: src/list.c:189
 #, c-format
 msgid "%s: Omitting"
 msgstr "%s:省略中"
 
-#: src/list.c:207
+#: src/list.c:206
 #, c-format
 msgid "block %s: ** Block of NULs **\n"
 msgstr "區塊 %s:** 空值區塊 **\n"
 
-#: src/list.c:233
+#: src/list.c:232
 #, c-format
 msgid "block %s: ** End of File **\n"
 msgstr "區塊 %s:** 檔案結尾 **\n"
 
-#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#: src/list.c:255 src/list.c:1107 src/list.c:1362
 #, c-format
 msgid "block %s: "
 msgstr "區塊 %s:"
 
 #. TRANSLATORS: %s is type of the value (gid_t, uid_t,
 #. etc.)
-#: src/list.c:708
+#: src/list.c:722
 #, c-format
 msgid "Blanks in header where numeric %s value expected"
 msgstr "空白出現在標頭中預期為數值 %s 的地方"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:763
+#: src/list.c:777
 #, c-format
 msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
-msgstr "保存檔八進位數值 %.*s 超出 %s 範圍;假定為二的補數"
+msgstr "封存八進位數值 %.*s 超出 %s 範圍;假定為二的補數"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:774
+#: src/list.c:788
 #, c-format
 msgid "Archive octal value %.*s is out of %s range"
-msgstr "保存檔八進位數值 %.*s 超出 %s 範圍"
+msgstr "封存八進位數值 %.*s 超出 %s 範圍"
 
-#: src/list.c:795
+#: src/list.c:809
 msgid "Archive contains obsolescent base-64 headers"
-msgstr "保存檔含有過時的 base-64 標頭"
+msgstr "封存含有過時的 base-64 標頭"
 
-#: src/list.c:809
+#: src/list.c:823
 #, c-format
 msgid "Archive signed base-64 string %s is out of %s range"
-msgstr "保存檔有號 base-64 字串 %s 超出 %s 範圍"
+msgstr "封存有號 base-64 字串 %s 超出 %s 範圍"
 
-#: src/list.c:840
+#: src/list.c:854
 #, c-format
 msgid "Archive base-256 value is out of %s range"
-msgstr "保存檔 base-256 值超出 %s 範圍"
+msgstr "封存 base-256 值超出 %s 範圍"
 
 #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
-#: src/list.c:869
+#: src/list.c:883
 #, c-format
 msgid "Archive contains %.*s where numeric %s value expected"
-msgstr "保存檔包含 %.*s 於預期為數值 %s 的地方"
+msgstr "封存包含 %.*s 於預期為數值 %s 的地方"
 
 #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
-#: src/list.c:891
+#: src/list.c:905
 #, c-format
 msgid "Archive value %s is out of %s range %s..%s"
-msgstr "保存檔值 %s 已超出 %s 的範圍 %s..%s"
+msgstr "封存值 %s 已超出 %s 的範圍 %s..%s"
 
-#: src/list.c:1257
+#: src/list.c:1262
 #, c-format
 msgid " link to %s\n"
 msgstr " 連結到 %s\n"
 
-#: src/list.c:1265
+#: src/list.c:1270
 #, c-format
 msgid " unknown file type %s\n"
 msgstr " 不明檔案類型 %s\n"
 
-#: src/list.c:1283
+#: src/list.c:1288
 #, c-format
 msgid "--Long Link--\n"
 msgstr "--長 連 結--\n"
 
-#: src/list.c:1287
+#: src/list.c:1292
 #, c-format
 msgid "--Long Name--\n"
 msgstr "--長 名 稱--\n"
 
-#: src/list.c:1291
+#: src/list.c:1296
 #, c-format
 msgid "--Volume Header--\n"
 msgstr "--卷 冊 標 頭--\n"
 
-#: src/list.c:1299
+#: src/list.c:1304
 #, c-format
 msgid "--Continued at byte %s--\n"
 msgstr "--於第 %s 位元組繼續--\n"
 
-#: src/list.c:1361
+#: src/list.c:1367
 msgid "Creating directory:"
 msgstr "正在建立目錄:"
 
-#: src/misc.c:297
-#, fuzzy
-msgid "Cannot get working directory"
-msgstr "無法變更工作目錄"
-
-#: src/misc.c:570
+#: src/misc.c:721
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "正在將 %s 重新命名為 %s\n"
 
-#: src/misc.c:579 src/misc.c:598
+#: src/misc.c:730 src/misc.c:749
 #, c-format
 msgid "%s: Cannot rename to %s"
 msgstr "%s:無法重新命名為 %s"
 
-#: src/misc.c:603
+#: src/misc.c:754
 #, c-format
 msgid "Renaming %s back to %s\n"
 msgstr "將 %s 的名稱還原為 %s\n"
 
-#: src/misc.c:850
+#: src/misc.c:1093
 #, c-format
 msgid "%s: File removed before we read it"
 msgstr "%s:讀取檔案之前已被移除"
 
-#: src/misc.c:871
+#: src/misc.c:1114
 msgid "child process"
-msgstr "子程"
+msgstr "子程"
 
-#: src/misc.c:880
+#: src/misc.c:1123
 msgid "interprocess channel"
-msgstr "程間通道"
+msgstr "程間通道"
 
-#: src/names.c:590
+#: src/names.c:360
 #, fuzzy
+msgid "command line"
+msgstr "%s 命令失敗"
+
+#: src/names.c:378
+#, fuzzy, c-format
+msgid "%s: file list requested from %s already read from %s"
+msgstr "%s:已經讀取檔案清單"
+
+#: src/names.c:448
+#, fuzzy, c-format
+msgid "cannot split string '%s': %s"
+msgstr "無法設定時間為 %s"
+
+#: src/names.c:490
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s:所讀檔案名稱含有空值字元"
+
+#: src/names.c:821
 msgid "Pattern matching characters used in file names"
-msgstr "在檔案名稱中使用的式樣匹配字元。請,"
+msgstr "用於檔案名稱的胚騰匹配字元"
 
-#: src/names.c:592
-#, fuzzy
+#: src/names.c:823
 msgid ""
 "Use --wildcards to enable pattern matching, or --no-wildcards to suppress "
 "this warning"
-msgstr "使用 --wildcards 以啟用式樣匹配,或 --no-wildcards 來"
+msgstr "使用 --wildcards 以啟用胚騰匹配,或 --no-wildcards 以抑制這個警告"
 
-#: src/names.c:610 src/names.c:626
+#: src/names.c:841 src/names.c:857
 #, c-format
 msgid "%s: Not found in archive"
-msgstr "%s:在保存檔中找不到"
+msgstr "%s:在封存中找不到"
 
-#: src/names.c:611
+#: src/names.c:842
 #, c-format
 msgid "%s: Required occurrence not found in archive"
-msgstr "%s:要求項目在保存檔中找不到"
+msgstr "%s:要求項目在封存中找不到"
 
-#: src/names.c:645
-#, fuzzy, c-format
+#: src/names.c:876
+#, c-format
 msgid "Archive label mismatch"
-msgstr "保存檔未標誌為符合 %s"
+msgstr "封存標貼不匹配"
 
-#: src/names.c:949
-#, fuzzy
+#: src/names.c:1180
 msgid ""
 "Using -C option inside file list is not allowed with --listed-incremental"
-msgstr "--preserve-order 與 --listed-incremental 不相容"
+msgstr "於檔案清單內部使用 -C 選項是不允許與 --listed-incremental 共用"
 
-#: src/names.c:955
-#, fuzzy
+#: src/names.c:1186
 msgid "Only one -C option is allowed with --listed-incremental"
-msgstr "--preserve-order 與 --listed-incremental 不相容"
+msgstr "只有一個 -C 選項是允許與 --listed-incremental 共用"
 
-#: src/tar.c:81
-#, c-format
-msgid "Options `-%s' and `-%s' both want standard input"
-msgstr "選項「-%s」和「-%s」兩者都需要標準輸入"
+#: src/tar.c:86
+#, fuzzy, c-format
+msgid "Options '-%s' and '-%s' both want standard input"
+msgstr "選項 -%s 和 -%s 兩者都需要標準輸入"
 
-#: src/tar.c:158
+#: src/tar.c:163
 #, c-format
 msgid "%s: Invalid archive format"
-msgstr "%s:無效的保存檔格式"
+msgstr "%s:無效的封存格式"
 
-#: src/tar.c:182
+#: src/tar.c:187
 msgid "GNU features wanted on incompatible archive format"
-msgstr "不能在不兼容的保存檔格式中使用 GNU 功能"
+msgstr "不能在不兼容的封存格式中使用 GNU 功能"
 
-#: src/tar.c:250
-#, c-format
+#: src/tar.c:255
+#, fuzzy, c-format
 msgid ""
-"Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
-msgstr "不明引號樣式「%s」。嘗試「%s --quoting-style=help」以取得清單。"
+"Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."
+msgstr "不明引號樣式 %s 。嘗試 %s --quoting-style=help 以取得清單。"
 
-#: src/tar.c:348
+#: src/tar.c:364
+#, fuzzy
 msgid ""
-"GNU `tar' saves many files together into a single tape or disk archive, and "
+"GNU 'tar' saves many files together into a single tape or disk archive, and "
 "can restore individual files from the archive.\n"
 "\n"
 "Examples:\n"
@@ -1353,17 +1386,18 @@ msgid ""
 "  tar -tvf archive.tar         # List all files in archive.tar verbosely.\n"
 "  tar -xf archive.tar          # Extract all files from archive.tar.\n"
 msgstr ""
-"GNU「tar」將許多檔案一起儲存進單一磁帶或磁碟保存檔,而且可以從保存檔還原個別"
-"æª\94æ¡\88ã\80\82\n"
+"GNU tar 將許多檔案一起儲存進單一磁帶或磁碟封存,而且可以從封存還原個別檔"
+"案。\n"
 "\n"
 "範例:\n"
 "  tar -cf archive.tar foo bar  # 建立包括 foo 及 bar 檔案的 archive.tar。\n"
 "  tar -tvf archive.tar         # 詳細列出 archive.tar 中的所有檔案。\n"
 "  tar -xf archive.tar          # 解開 archive.tar 中的所有檔案。\n"
 
-#: src/tar.c:357
+#: src/tar.c:373
+#, fuzzy
 msgid ""
-"The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
+"The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n"
 "The version control may be set with --backup or VERSION_CONTROL, values "
 "are:\n"
 "\n"
@@ -1380,780 +1414,828 @@ msgstr ""
 "  nil, existing   若有數字的備份檔已經存在則使用數字,否則使用普通方式備份\n"
 "  never, simple   永遠使用普通方式備份\n"
 
-#: src/tar.c:387
+#: src/tar.c:403
 msgid "Main operation mode:"
 msgstr "主要操作模式:"
 
-#: src/tar.c:390
+#: src/tar.c:406
 msgid "list the contents of an archive"
-msgstr "列出保存檔的內容"
+msgstr "列出封存的內容"
 
-#: src/tar.c:392
+#: src/tar.c:408
 msgid "extract files from an archive"
-msgstr "從保存檔中解開檔案"
+msgstr "從封存中解開檔案"
 
-#: src/tar.c:395
+#: src/tar.c:411
 msgid "create a new archive"
-msgstr "建立新的保存檔"
+msgstr "建立新的封存"
 
-#: src/tar.c:397
+#: src/tar.c:413
 msgid "find differences between archive and file system"
-msgstr "在保存檔與檔案系統之間找出差異"
+msgstr "在封存與檔案系統之間找出差異"
 
-#: src/tar.c:400
+#: src/tar.c:416
 msgid "append files to the end of an archive"
-msgstr "加入檔案到保存檔末端"
+msgstr "加入檔案到封存末端"
 
-#: src/tar.c:402
+#: src/tar.c:418
 msgid "only append files newer than copy in archive"
-msgstr "只加入比保存檔中複本還新的檔案"
+msgstr "只加入比封存中複本還新的檔案"
 
-#: src/tar.c:404
+#: src/tar.c:420
 msgid "append tar files to an archive"
-msgstr "加入 tar 檔案到保存檔中"
+msgstr "加入 tar 檔案到封存中"
 
-#: src/tar.c:407
+#: src/tar.c:423
 msgid "delete from the archive (not on mag tapes!)"
-msgstr "從保存檔中刪除 (並非在磁帶上!)"
+msgstr "從封存中刪除 (並非在磁帶上!)"
 
-#: src/tar.c:409
+#: src/tar.c:425
 msgid "test the archive volume label and exit"
-msgstr "測試保存檔卷冊標籤然後離開"
+msgstr "測試封存卷冊標籤然後離開"
 
-#: src/tar.c:414
+#: src/tar.c:430
 msgid "Operation modifiers:"
 msgstr "運算變更項:"
 
-#: src/tar.c:417
+#: src/tar.c:433
 msgid "handle sparse files efficiently"
 msgstr "有效率地處理稀疏檔案"
 
-#: src/tar.c:418
+#: src/tar.c:434
 msgid "MAJOR[.MINOR]"
 msgstr "MAJOR[.MINOR]"
 
-#: src/tar.c:419
+#: src/tar.c:435
 msgid "set version of the sparse format to use (implies --sparse)"
 msgstr "設定稀疏格式版本以使用 (意味著 --sparse)"
 
-#: src/tar.c:421
+#: src/tar.c:437
 msgid "handle old GNU-format incremental backup"
 msgstr "處理舊型 GNU-格式之遞增備份"
 
-#: src/tar.c:423
+#: src/tar.c:439
 msgid "handle new GNU-format incremental backup"
 msgstr "處理新型 GNU-格式之遞增備份"
 
-#: src/tar.c:425
+#: src/tar.c:441
 msgid "dump level for created listed-incremental archive"
-msgstr ""
+msgstr "用於建立 listed-incremental 封存的傾印等級"
 
-#: src/tar.c:427
+#: src/tar.c:443
 msgid "do not exit with nonzero on unreadable files"
 msgstr "離開無法讀取的檔案時不要回傳非零的值"
 
-#: src/tar.c:429
+#: src/tar.c:445
 msgid ""
 "process only the NUMBERth occurrence of each file in the archive; this "
 "option is valid only in conjunction with one of the subcommands --delete, --"
 "diff, --extract or --list and when a list of files is given either on the "
 "command line or via the -T option; NUMBER defaults to 1"
 msgstr ""
-"只有對於每一個在保存檔中第 NUM 個出現的檔案才會處理。此選項只有與 --"
-"delete、--diff、--extract 或 --list 等次命令之一合併使用時才有效,而且要經由"
-"命令列或是 -T 選項來提供一個檔案序列。預設的數目是 1。"
+"只有對於每一個在封存中第 NUM 個出現的檔案才會處理。此選項只有與 --delete、--"
+"diff、--extract 或 --list 等次命令之一合併使用時才有效,而且要經由命令列或是 "
+"-T 選項來提供一個檔案序列。預設的數目是 1。"
 
-#: src/tar.c:435
+#: src/tar.c:451
 msgid "archive is seekable"
-msgstr "保存檔是可尋指的"
+msgstr "封存是可尋指的"
 
-#: src/tar.c:437
-#, fuzzy
+#: src/tar.c:453
 msgid "archive is not seekable"
-msgstr "保存檔是可尋指的"
+msgstr "封存不是可尋指的"
 
-#: src/tar.c:439
+#: src/tar.c:455
 msgid "do not check device numbers when creating incremental archives"
 msgstr "不檢查裝置數量時建立遞增檔案"
 
-#: src/tar.c:442
+#: src/tar.c:458
 msgid "check device numbers when creating incremental archives (default)"
 msgstr "檢查裝置數量時建立遞增檔案 (預設)"
 
-#: src/tar.c:448
+#: src/tar.c:464
 msgid "Overwrite control:"
 msgstr "覆寫控制:"
 
-#: src/tar.c:451
+#: src/tar.c:467
 msgid "attempt to verify the archive after writing it"
-msgstr "嘗試在寫入之後驗證保存檔"
+msgstr "嘗試在寫入之後驗證封存"
 
-#: src/tar.c:453
+#: src/tar.c:469
 msgid "remove files after adding them to the archive"
-msgstr "在加入檔案至保存檔之後移除它們"
+msgstr "在加入檔案至封存之後移除它們"
 
-#: src/tar.c:455
-msgid "don't replace existing files when extracting"
+#: src/tar.c:471
+#, fuzzy
+msgid "don't replace existing files when extracting, treat them as errors"
 msgstr "解開時不要替換既有的檔案"
 
-#: src/tar.c:457
+#: src/tar.c:474
+#, fuzzy
+msgid "don't replace existing files when extracting, silently skip over them"
+msgstr "解開時不要替換既有的檔案"
+
+#: src/tar.c:477
 msgid "don't replace existing files that are newer than their archive copies"
-msgstr "不要替換既有且比它們在保存檔中複本還新的檔案"
+msgstr "不要替換既有且比它們在封存中複本還新的檔案"
 
-#: src/tar.c:459
+#: src/tar.c:479
 msgid "overwrite existing files when extracting"
 msgstr "解開時覆寫既有檔案"
 
-#: src/tar.c:461
+#: src/tar.c:481
 msgid "remove each file prior to extracting over it"
 msgstr "在解開並覆寫檔案之前先移除它"
 
-#: src/tar.c:463
+#: src/tar.c:483
 msgid "empty hierarchies prior to extracting directory"
 msgstr "在解開目錄之前先清空階層結構"
 
-#: src/tar.c:465
+#: src/tar.c:485
 msgid "preserve metadata of existing directories"
 msgstr "保留既有目錄的後設資料"
 
-#: src/tar.c:467
+#: src/tar.c:487
 msgid "overwrite metadata of existing directories when extracting (default)"
 msgstr "解開時覆寫既有目錄的後設資料 (預設)"
 
-#: src/tar.c:473
+#: src/tar.c:490
+#, fuzzy
+msgid "preserve existing symlinks to directories when extracting"
+msgstr "解開時覆寫既有檔案"
+
+#: src/tar.c:496
 msgid "Select output stream:"
 msgstr "選取輸出串流:"
 
-#: src/tar.c:476
+#: src/tar.c:499
 msgid "extract files to standard output"
 msgstr "解開檔案到標準輸出"
 
-#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+#: src/tar.c:500 src/tar.c:582 src/tar.c:584 tests/genfile.c:190
 msgid "COMMAND"
 msgstr "命令"
 
-#: src/tar.c:478
+#: src/tar.c:501
 msgid "pipe extracted files to another program"
 msgstr "將解開的檔案管線引導到另外的程式"
 
-#: src/tar.c:480
+#: src/tar.c:503
 msgid "ignore exit codes of children"
-msgstr "忽略子程的離開代碼"
+msgstr "忽略子程的離開代碼"
 
-#: src/tar.c:482
+#: src/tar.c:505
 msgid "treat non-zero exit codes of children as error"
-msgstr "將子程的非零離開代碼視為錯誤"
+msgstr "將子程的非零離開代碼視為錯誤"
 
-#: src/tar.c:487
+#: src/tar.c:510
 msgid "Handling of file attributes:"
 msgstr "檔案屬性的處理:"
 
-#: src/tar.c:490
+#: src/tar.c:513
 msgid "force NAME as owner for added files"
 msgstr "強制以 NAME 做為加入檔案的擁有者"
 
-#: src/tar.c:492
+#: src/tar.c:515
 msgid "force NAME as group for added files"
 msgstr "強制以 NAME 做為加入檔案的群組"
 
-#: src/tar.c:493 src/tar.c:690
+#: src/tar.c:516 src/tar.c:736
 msgid "DATE-OR-FILE"
 msgstr "檔案的日期"
 
-#: src/tar.c:494
+#: src/tar.c:517
 msgid "set mtime for added files from DATE-OR-FILE"
 msgstr "將加入檔案的 mtime 設定為 DATE-OR-FILE"
 
-#: src/tar.c:495
+#: src/tar.c:518
 msgid "CHANGES"
 msgstr "變更"
 
-#: src/tar.c:496
+#: src/tar.c:519
 msgid "force (symbolic) mode CHANGES for added files"
 msgstr "強制將 (符號) 模式 CHANGES 用於已加入檔案"
 
-#: src/tar.c:498
+#: src/tar.c:521
 msgid "METHOD"
 msgstr "方法"
 
-#: src/tar.c:499
+#: src/tar.c:522
 msgid ""
 "preserve access times on dumped files, either by restoring the times after "
 "reading (METHOD='replace'; default) or by not setting the times in the first "
 "place (METHOD='system')"
 msgstr ""
-"保留傾印檔案的存取時間,若非由讀取之後的回復時間(方法=「replace」;預設),就"
-"是藉由原本不設定時間 (方法=「system」)"
+"保留傾印檔案的存取時間,若非由讀取之後的回復時間(方法='replace';預設),就是"
+"藉由原本不設定時間 (方法='system')"
 
-#: src/tar.c:503
+#: src/tar.c:526
 msgid "don't extract file modified time"
 msgstr "不要解開檔案的修改時間"
 
-#: src/tar.c:505
-#, fuzzy
+#: src/tar.c:528
 msgid ""
 "try extracting files with the same ownership as exists in the archive "
 "(default for superuser)"
-msgstr "嘗試以相同的擁有身分去解開檔案"
+msgstr "嘗試以與存在於封存中的相同擁有屬性來抽出檔案 (預設用於系統管理者)"
 
-#: src/tar.c:507
-#, fuzzy
+#: src/tar.c:530
 msgid "extract files as yourself (default for ordinary users)"
-msgstr "以自己的身分解開檔案"
+msgstr "以您自己擁有的屬性來抽出檔案 (預設用於一般使用者)"
 
-#: src/tar.c:509
+#: src/tar.c:532
 msgid "always use numbers for user/group names"
 msgstr "總是使用數字做為使用者/群組名稱"
 
-#: src/tar.c:511
+#: src/tar.c:534
 msgid "extract information about file permissions (default for superuser)"
 msgstr "解開檔案權限相關資訊 (預設用於超級使用者)"
 
-#: src/tar.c:515
+#: src/tar.c:538
 msgid ""
 "apply the user's umask when extracting permissions from the archive (default "
 "for ordinary users)"
-msgstr "從保存檔解開權限時套用使用者 umask (預設用於一般使用者)"
+msgstr "從封存解開權限時套用使用者 umask (預設用於一般使用者)"
 
-#: src/tar.c:517
-msgid "sort names to extract to match archive"
-msgstr "解開時依名稱排序以符合保存檔"
+#: src/tar.c:540
+msgid ""
+"member arguments are listed in the same order as the files in the archive"
+msgstr ""
 
-#: src/tar.c:520
+#: src/tar.c:544
 msgid "same as both -p and -s"
 msgstr "等同於指定 -p 與 -s"
 
-#: src/tar.c:522
+#: src/tar.c:546
 msgid ""
 "delay setting modification times and permissions of extracted directories "
 "until the end of extraction"
 msgstr "延遲設定解開目錄的修改時間和權限,直到解開結束"
 
-#: src/tar.c:525
+#: src/tar.c:549
 msgid "cancel the effect of --delay-directory-restore option"
 msgstr "取消 --delay-directory-restore 選項的效果"
 
-#: src/tar.c:530
+#: src/tar.c:554
+#, fuzzy
+msgid "Handling of extended file attributes:"
+msgstr "檔案屬性的處理:"
+
+#: src/tar.c:557
+msgid "Enable extended attributes support"
+msgstr ""
+
+#: src/tar.c:559
+msgid "Disable extended attributes support"
+msgstr ""
+
+#: src/tar.c:560 src/tar.c:562
+msgid "MASK"
+msgstr ""
+
+#: src/tar.c:561
+msgid "specify the include pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:563
+msgid "specify the exclude pattern for xattr keys"
+msgstr ""
+
+#: src/tar.c:565
+msgid "Enable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:567
+msgid "Disable the SELinux context support"
+msgstr ""
+
+#: src/tar.c:569
+msgid "Enable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:571
+msgid "Disable the POSIX ACLs support"
+msgstr ""
+
+#: src/tar.c:576
 msgid "Device selection and switching:"
 msgstr "裝置選擇與切換:"
 
-#: src/tar.c:532
+#: src/tar.c:578
 msgid "ARCHIVE"
-msgstr "保存檔"
+msgstr "封存"
 
-#: src/tar.c:533
+#: src/tar.c:579
 msgid "use archive file or device ARCHIVE"
 msgstr "使用 ARCHIVE 檔案或 ARCHIVE 裝置"
 
-#: src/tar.c:535
+#: src/tar.c:581
 msgid "archive file is local even if it has a colon"
-msgstr "即使具有冒號,保存檔檔案仍位於本地端"
+msgstr "即使具有冒號,封存檔案仍位於本地端"
 
-#: src/tar.c:537
+#: src/tar.c:583
 msgid "use given rmt COMMAND instead of rmt"
 msgstr "使用給定的 rmt COMMAND 以代替 rmt"
 
-#: src/tar.c:539
+#: src/tar.c:585
 msgid "use remote COMMAND instead of rsh"
 msgstr "使用遠端 COMMAND 以代替 rsh"
 
-#: src/tar.c:543
+#: src/tar.c:589
 msgid "specify drive and density"
 msgstr "指定磁碟機與記錄密度"
 
-#: src/tar.c:557
+#: src/tar.c:603
 msgid "create/list/extract multi-volume archive"
-msgstr "建立/列表/解開 多重卷冊的保存檔"
+msgstr "建立/列表/解開 多重卷冊的封存"
 
-#: src/tar.c:559
+#: src/tar.c:605
 msgid "change tape after writing NUMBER x 1024 bytes"
 msgstr "在寫入 NUMBER x 1024 位元組之後更換磁帶"
 
-#: src/tar.c:561
+#: src/tar.c:607
 msgid "run script at end of each tape (implies -M)"
 msgstr "在每卷磁帶末端執行命令稿 (意指 -M)"
 
-#: src/tar.c:564
+#: src/tar.c:610
 msgid "use/update the volume number in FILE"
 msgstr "使用/更新 FILE 中的卷冊號碼"
 
-#: src/tar.c:569
+#: src/tar.c:615
 msgid "Device blocking:"
 msgstr "裝置分區:"
 
-#: src/tar.c:571
+#: src/tar.c:617
 msgid "BLOCKS"
 msgstr "區塊"
 
-#: src/tar.c:572
+#: src/tar.c:618
 msgid "BLOCKS x 512 bytes per record"
 msgstr "每筆記錄含有 BLOCKS x 512 位元組"
 
-#: src/tar.c:574
+#: src/tar.c:620
 msgid "NUMBER of bytes per record, multiple of 512"
 msgstr "每筆記錄 SIZE 位元組,為 512 的倍數"
 
-#: src/tar.c:576
+#: src/tar.c:622
 msgid "ignore zeroed blocks in archive (means EOF)"
-msgstr "忽略保存檔中零值的區塊 (意指 EOF)"
+msgstr "忽略封存中零值的區塊 (意指 EOF)"
 
-#: src/tar.c:578
+#: src/tar.c:624
 msgid "reblock as we read (for 4.2BSD pipes)"
 msgstr "讀取時重新分區 (用於 4.2BSD 管線)"
 
-#: src/tar.c:583
+#: src/tar.c:629
 msgid "Archive format selection:"
-msgstr "保存檔格式選擇:"
+msgstr "封存格式選擇:"
 
-#: src/tar.c:585 tests/genfile.c:153
+#: src/tar.c:631 tests/genfile.c:153
 msgid "FORMAT"
 msgstr "格式"
 
-#: src/tar.c:586
+#: src/tar.c:632
 msgid "create archive of the given format"
-msgstr "以給定格式建立保存檔"
+msgstr "以給定格式建立封存"
 
-#: src/tar.c:588
+#: src/tar.c:634
 msgid "FORMAT is one of the following:"
 msgstr "符合下列任一 FORMAT:"
 
-#: src/tar.c:589
+#: src/tar.c:635
 msgid "old V7 tar format"
 msgstr "舊式 V7 tar 格式"
 
-#: src/tar.c:592
+#: src/tar.c:638
 msgid "GNU format as per tar <= 1.12"
 msgstr "tar <= 1.12 之 GNU 格式"
 
-#: src/tar.c:594
+#: src/tar.c:640
 msgid "GNU tar 1.13.x format"
 msgstr "GNU tar 1.13.x 格式"
 
-#: src/tar.c:596
+#: src/tar.c:642
 msgid "POSIX 1003.1-1988 (ustar) format"
 msgstr "POSIX 1003.1-1988 (ustar) 格式"
 
-#: src/tar.c:598
+#: src/tar.c:644
 msgid "POSIX 1003.1-2001 (pax) format"
 msgstr "POSIX 1003.1-2001 (pax) 格式"
 
-#: src/tar.c:599
+#: src/tar.c:645
 msgid "same as pax"
 msgstr "等同 pax"
 
-#: src/tar.c:602
+#: src/tar.c:648
 msgid "same as --format=v7"
 msgstr "等同 --format=v7"
 
-#: src/tar.c:605
+#: src/tar.c:651
 msgid "same as --format=posix"
 msgstr "等同 --format=posix"
 
-#: src/tar.c:606
+#: src/tar.c:652
 msgid "keyword[[:]=value][,keyword[[:]=value]]..."
 msgstr "關鍵字[[:]=值][,關鍵字[[:]=值]…]"
 
-#: src/tar.c:607
+#: src/tar.c:653
 msgid "control pax keywords"
 msgstr "控制 pax 的關鍵字"
 
-#: src/tar.c:608
+#: src/tar.c:654
 msgid "TEXT"
 msgstr "文字"
 
-#: src/tar.c:609
+#: src/tar.c:655
 msgid ""
 "create archive with volume name TEXT; at list/extract time, use TEXT as a "
 "globbing pattern for volume name"
 msgstr ""
-"以卷冊名稱 NAME 來建立保存檔。在列表/解開時,使用 TEXT 做為卷冊名稱的萬用比對"
-"式樣"
+"以卷冊名稱 NAME 來建立封存。在列表/解開時,使用 TEXT 做為卷冊名稱的萬用比對胚"
+""
 
-#: src/tar.c:614
+#: src/tar.c:660
 msgid "Compression options:"
 msgstr "壓縮選項:"
 
-#: src/tar.c:616
+#: src/tar.c:662
 msgid "use archive suffix to determine the compression program"
-msgstr "利用保存檔字尾決定壓縮程式"
+msgstr "利用封存字尾決定壓縮程式"
 
-#: src/tar.c:618
+#: src/tar.c:664
 msgid "do not use archive suffix to determine the compression program"
-msgstr "不利用保存檔字尾決定壓縮程式"
+msgstr "不利用封存字尾決定壓縮程式"
 
-#: src/tar.c:620
+#: src/tar.c:666
 msgid "PROG"
 msgstr "程式"
 
-#: src/tar.c:621
+#: src/tar.c:667
 msgid "filter through PROG (must accept -d)"
 msgstr "以 PROG 過濾處理 (必須接受 -d)"
 
-#: src/tar.c:637
+#: src/tar.c:683
 msgid "Local file selection:"
 msgstr "本機檔案選擇:"
 
-#: src/tar.c:640
+#: src/tar.c:686
 msgid "add given FILE to the archive (useful if its name starts with a dash)"
-msgstr "將給定的 FILE 加入保存檔 (如果它的名稱以減號開始時就很有用)"
+msgstr "將給定的 FILE 加入封存 (如果它的名稱以減號開始時就很有用)"
 
-#: src/tar.c:641
+#: src/tar.c:687
 msgid "DIR"
 msgstr "目錄"
 
-#: src/tar.c:642
+#: src/tar.c:688
 msgid "change to directory DIR"
 msgstr "更改至目錄 DIR"
 
-#: src/tar.c:644
+#: src/tar.c:690
 msgid "get names to extract or create from FILE"
 msgstr "從 FILE 中取得要解開或建立的名稱"
 
-#: src/tar.c:646
+#: src/tar.c:692
 msgid "-T reads null-terminated names, disable -C"
 msgstr "-T 讀取零值終結的名稱,停用 -C"
 
-#: src/tar.c:648
+#: src/tar.c:694
 msgid "disable the effect of the previous --null option"
 msgstr "停用先前 --null 選項的效果"
 
-#: src/tar.c:650
+#: src/tar.c:696
 msgid "unquote filenames read with -T (default)"
 msgstr "去除以 -T 讀取的檔名引號 (預設)"
 
-#: src/tar.c:652
+#: src/tar.c:698
 msgid "do not unquote filenames read with -T"
 msgstr "不去除以 -T 讀取的檔名引號"
 
-#: src/tar.c:653 tests/genfile.c:136
+#: src/tar.c:699 tests/genfile.c:136
 msgid "PATTERN"
-msgstr "式樣"
+msgstr "胚騰"
 
-#: src/tar.c:654
+#: src/tar.c:700
 msgid "exclude files, given as a PATTERN"
-msgstr "排除給定式樣的檔案"
+msgstr "排除給定胚騰的檔案"
 
-#: src/tar.c:656
+#: src/tar.c:702
 msgid "exclude patterns listed in FILE"
-msgstr "排除 FILE 中所列出的式樣"
+msgstr "排除 FILE 中所列出的胚騰"
 
-#: src/tar.c:658
+#: src/tar.c:704
 msgid ""
 "exclude contents of directories containing CACHEDIR.TAG, except for the tag "
 "file itself"
 msgstr "排除包含 CACHEDIR.TAG 的目錄內容,除了該標記檔案本身"
 
-#: src/tar.c:661
+#: src/tar.c:707
 msgid "exclude everything under directories containing CACHEDIR.TAG"
 msgstr "排除包含 CACHEDIR.TAG 的目錄之下所有東西"
 
-#: src/tar.c:664
+#: src/tar.c:710
 msgid "exclude directories containing CACHEDIR.TAG"
 msgstr "排除包含 CACHEDIR.TAG 的目錄"
 
-#: src/tar.c:666
+#: src/tar.c:712
 msgid "exclude contents of directories containing FILE, except for FILE itself"
 msgstr "排除包含 FILE 的目錄內容,除了該檔案本身"
 
-#: src/tar.c:669
+#: src/tar.c:715
 msgid "exclude everything under directories containing FILE"
 msgstr "排除包含 FILE 的目錄之下所有東西"
 
-#: src/tar.c:671
+#: src/tar.c:717
 msgid "exclude directories containing FILE"
 msgstr "排除包含 FILE 的目錄"
 
-#: src/tar.c:673
+#: src/tar.c:719
 msgid "exclude version control system directories"
 msgstr "排除版本控制系統目錄"
 
-#: src/tar.c:675
+#: src/tar.c:721
 msgid "exclude backup and lock files"
-msgstr ""
+msgstr "排除備份和鎖定檔案"
 
-#: src/tar.c:677
+#: src/tar.c:723
 msgid "avoid descending automatically in directories"
 msgstr "避免自動在目錄中遞降"
 
-#: src/tar.c:679
+#: src/tar.c:725
 msgid "stay in local file system when creating archive"
-msgstr "建立保存檔時保持在本地檔案系統中"
+msgstr "建立封存時保持在本地檔案系統中"
 
-#: src/tar.c:681
+#: src/tar.c:727
 msgid "recurse into directories (default)"
 msgstr "遞迴進入目錄 (預設)"
 
-#: src/tar.c:683
-msgid "don't strip leading `/'s from file names"
+#: src/tar.c:729
+#, fuzzy
+msgid "don't strip leading '/'s from file names"
 msgstr "不要從檔案名稱中截去前導的 '/'"
 
-#: src/tar.c:685
+#: src/tar.c:731
 msgid "follow symlinks; archive and dump the files they point to"
-msgstr "跟隨符號連結;存和傾印它們所指涉的檔案"
+msgstr "跟隨符號連結;存和傾印它們所指涉的檔案"
 
-#: src/tar.c:687
+#: src/tar.c:733
 msgid "follow hard links; archive and dump the files they refer to"
-msgstr "跟隨硬式連結;存和傾印它們所參考的檔案"
+msgstr "跟隨硬式連結;存和傾印它們所參考的檔案"
 
-#: src/tar.c:688
+#: src/tar.c:734
 msgid "MEMBER-NAME"
 msgstr "成員-名稱"
 
-#: src/tar.c:689
-msgid "begin at member MEMBER-NAME in the archive"
-msgstr "從保存檔中名為 MEMBER-NAME 的成員開始"
+#: src/tar.c:735
+#, fuzzy
+msgid "begin at member MEMBER-NAME when reading the archive"
+msgstr "從封存中名為 MEMBER-NAME 的成員開始"
 
-#: src/tar.c:691
+#: src/tar.c:737
 msgid "only store files newer than DATE-OR-FILE"
 msgstr "只儲存比 DATE-OF-FILE 還新的檔案"
 
-#: src/tar.c:693
+#: src/tar.c:739
 msgid "DATE"
 msgstr "日期"
 
-#: src/tar.c:694
+#: src/tar.c:740
 msgid "compare date and time when data changed only"
 msgstr "只有當資料變更時才比較日期和時間"
 
-#: src/tar.c:695
+#: src/tar.c:741
 msgid "CONTROL"
 msgstr "控制"
 
-#: src/tar.c:696
+#: src/tar.c:742
 msgid "backup before removal, choose version CONTROL"
 msgstr "移除之前先備份,選擇版本 CONTROL"
 
-#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+#: src/tar.c:743 src/tar.c:824 src/tar.c:826 tests/genfile.c:169
 msgid "STRING"
 msgstr "字串"
 
-#: src/tar.c:698
+#: src/tar.c:744
 msgid ""
 "backup before removal, override usual suffix ('~' unless overridden by "
 "environment variable SIMPLE_BACKUP_SUFFIX)"
 msgstr ""
-"移除之前先備份並覆寫常用後置文字 (「~」除非被環境變數 SIMPLE_BACKUP_SUFFIX 所"
-"過)"
+"移除之前先備份並覆寫常用後置文字 ( ~ 除非被環境變數 SIMPLE_BACKUP_SUFFIX 所蓋"
+"過)"
 
-#: src/tar.c:703
+#: src/tar.c:749
 msgid "File name transformations:"
 msgstr "檔案名稱變換:"
 
-#: src/tar.c:705
+#: src/tar.c:751
 msgid "strip NUMBER leading components from file names on extraction"
 msgstr "從檔案名稱中截去以 NUMBER 為首的成分"
 
-#: src/tar.c:707
+#: src/tar.c:753
 msgid "EXPRESSION"
 msgstr "表示式"
 
-#: src/tar.c:708
+#: src/tar.c:754
 msgid "use sed replace EXPRESSION to transform file names"
 msgstr "利用 sed 將 EXPRESSION 替代為變換檔案名稱"
 
-#: src/tar.c:714
+#: src/tar.c:760
 msgid "File name matching options (affect both exclude and include patterns):"
-msgstr "檔案名稱吻合選項 (同時影響排除和包含式樣同者):"
+msgstr "檔案名稱吻合選項 (同時影響排除和包含胚騰同者):"
 
-#: src/tar.c:717
+#: src/tar.c:763
 msgid "ignore case"
 msgstr "忽略大小寫"
 
-#: src/tar.c:719
+#: src/tar.c:765
 msgid "patterns match file name start"
-msgstr "吻合檔案名稱開頭的式樣"
+msgstr "吻合檔案名稱開頭的胚騰"
 
-#: src/tar.c:721
-msgid "patterns match after any `/' (default for exclusion)"
-msgstr "式樣吻合任何「/」之後的式樣 (預設排除)"
+#: src/tar.c:767
+#, fuzzy
+msgid "patterns match after any '/' (default for exclusion)"
+msgstr "胚騰吻合任何 / 之後的胚騰 (預設排除)"
 
-#: src/tar.c:723
+#: src/tar.c:769
 msgid "case sensitive matching (default)"
 msgstr "大小寫需相符的吻合 (預設)"
 
-#: src/tar.c:725
+#: src/tar.c:771
 msgid "use wildcards (default for exclusion)"
 msgstr "使用萬用字元 (預設排除)"
 
-#: src/tar.c:727
+#: src/tar.c:773
 msgid "verbatim string matching"
 msgstr "逐字進行吻合"
 
-#: src/tar.c:729
-msgid "wildcards do not match `/'"
-msgstr "萬用字元不會吻合「/」"
+#: src/tar.c:775
+#, fuzzy
+msgid "wildcards do not match '/'"
+msgstr "萬用字元不會吻合 /"
 
-#: src/tar.c:731
-msgid "wildcards match `/' (default for exclusion)"
-msgstr "萬用字元會吻合「/」(預設排除)"
+#: src/tar.c:777
+#, fuzzy
+msgid "wildcards match '/' (default for exclusion)"
+msgstr "萬用字元會吻合 / (預設排除)"
 
-#: src/tar.c:736
+#: src/tar.c:782
 msgid "Informative output:"
 msgstr "富含資訊的輸出:"
 
-#: src/tar.c:739
+#: src/tar.c:785
 msgid "verbosely list files processed"
 msgstr "詳細列出處理過的檔案"
 
-#: src/tar.c:740
+#: src/tar.c:786
 msgid "KEYWORD"
-msgstr ""
+msgstr "關鍵字"
 
-#: src/tar.c:741
-#, fuzzy
+#: src/tar.c:787
 msgid "warning control"
-msgstr "è¦\86寫æ\8e§å\88¶ï¼\9a"
+msgstr "è­¦å\91\8aæ\8e§å\88"
 
-#: src/tar.c:743
+#: src/tar.c:789
 msgid "display progress messages every NUMBERth record (default 10)"
 msgstr "每幾項記錄顯示一次進度訊息 (預設 10)"
 
-#: src/tar.c:745
+#: src/tar.c:791
 msgid "ACTION"
 msgstr "動作"
 
-#: src/tar.c:746
+#: src/tar.c:792
 msgid "execute ACTION on each checkpoint"
 msgstr "於每個查核點執行 ACTION"
 
-#: src/tar.c:749
+#: src/tar.c:795
 msgid "print a message if not all links are dumped"
 msgstr "如果並非所有連結都被傾印則印出訊息"
 
-#: src/tar.c:750
+#: src/tar.c:796
 msgid "SIGNAL"
 msgstr "信號"
 
-#: src/tar.c:751
+#: src/tar.c:797
 msgid ""
 "print total bytes after processing the archive; with an argument - print "
 "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, "
 "SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also "
 "accepted"
 msgstr ""
-"處理保存檔之後列印位元組總計;當此信號被投遞時,利用引數 - 列印位元組總計;允"
-"許的信號是:SIGHUP、SIGQUIT、SIGINT、SIGUSR1 和 SIGUSR2;不具 SIG 前綴的名稱"
-"是可接受的"
+"處理封存之後列印位元組總計;當此信號被投遞時,利用引數 - 列印位元組總計;允許"
+"的信號是:SIGHUP、SIGQUIT、SIGINT、SIGUSR1 和 SIGUSR2;不具 SIG 前綴的名稱也"
+"是可接受的"
 
-#: src/tar.c:756
-#, fuzzy
+#: src/tar.c:802
 msgid "print file modification times in UTC"
-msgstr "以 UTC 格式印出檔案修改日期"
+msgstr "以 UTC 印出檔案修改時間"
 
-#: src/tar.c:758
+#: src/tar.c:804
 msgid "print file time to its full resolution"
-msgstr ""
+msgstr "以完整精度印出檔案時間"
 
-#: src/tar.c:760
+#: src/tar.c:806
 msgid "send verbose output to FILE"
 msgstr "將詳細輸出送至 FILE"
 
-#: src/tar.c:762
+#: src/tar.c:808
 msgid "show block number within archive with each message"
-msgstr "每則訊息附帶顯示在保存檔中的區塊號碼"
+msgstr "每則訊息附帶顯示在封存中的區塊號碼"
 
-#: src/tar.c:764
+#: src/tar.c:810
 msgid "ask for confirmation for every action"
 msgstr "任何動作都要求確認"
 
-#: src/tar.c:767
+#: src/tar.c:813
 msgid "show tar defaults"
 msgstr "顯示 tar 預設值"
 
-#: src/tar.c:769
+#: src/tar.c:815
+msgid "show valid ranges for snapshot-file fields"
+msgstr ""
+
+#: src/tar.c:817
 msgid ""
 "when listing or extracting, list each directory that does not match search "
 "criteria"
 msgstr "當表列或解開時,列出每一個不符合搜尋條件的目錄"
 
-#: src/tar.c:771
+#: src/tar.c:819
 msgid "show file or archive names after transformation"
-msgstr "顯示變換之後的檔案或保存檔名稱"
+msgstr "顯示變換之後的檔案或封存名稱"
 
-#: src/tar.c:774
+#: src/tar.c:822
 msgid "STYLE"
 msgstr "樣式"
 
-#: src/tar.c:775
+#: src/tar.c:823
 msgid "set name quoting style; see below for valid STYLE values"
 msgstr "設定名稱引號樣式;參看下列的有效樣式值"
 
-#: src/tar.c:777
+#: src/tar.c:825
 msgid "additionally quote characters from STRING"
 msgstr "來自 STRING 的額外引號字元"
 
-#: src/tar.c:779
+#: src/tar.c:827
 msgid "disable quoting for characters from STRING"
 msgstr "停用來自字串的引號字元"
 
-#: src/tar.c:784
+#: src/tar.c:832
 msgid "Compatibility options:"
 msgstr "相容選項:"
 
-#: src/tar.c:787
+#: src/tar.c:835
 msgid ""
 "when creating, same as --old-archive; when extracting, same as --no-same-"
 "owner"
 msgstr "當建立時,等同於 --old-archive。當解開時,等同於 --no-same-owner"
 
-#: src/tar.c:792
+#: src/tar.c:840
 msgid "Other options:"
 msgstr "其他選項:"
 
-#: src/tar.c:795
+#: src/tar.c:843
 msgid "disable use of some potentially harmful options"
 msgstr "停用某些潛在有害的選項"
 
-#: src/tar.c:930
+#: src/tar.c:978
 #, fuzzy
-msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
-msgstr "不可指定「-Acdtrux」當中多於一個的選項"
+msgid ""
+"You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' "
+"option"
+msgstr "您不可以指定超過一個 -Acdtrux 或 --test-label 選項"
 
-#: src/tar.c:940
+#: src/tar.c:988
 msgid "Conflicting compression options"
 msgstr "互相抵觸的壓縮選項"
 
-#: src/tar.c:996
+#: src/tar.c:1047
 #, c-format
 msgid "Unknown signal name: %s"
 msgstr "不明的信號名稱:%s"
 
-#: src/tar.c:1020
+#: src/tar.c:1071
 msgid "Date sample file not found"
 msgstr "找不到日期範例檔案"
 
-#: src/tar.c:1028
+#: src/tar.c:1079
 #, c-format
 msgid "Substituting %s for unknown date format %s"
 msgstr "以 %s 代替不明的日期格式 %s"
 
-#: src/tar.c:1057
-#, c-format
-msgid "Option %s: Treating date `%s' as %s"
-msgstr "選項 %1$s: 以 %3$s 格式來處理日期「%2$s」"
-
-#: src/tar.c:1135
-#, c-format
-msgid "%s: file list already read"
-msgstr "%s:已經讀取檔案清單"
+#: src/tar.c:1108
+#, fuzzy, c-format
+msgid "Option %s: Treating date '%s' as %s"
+msgstr "選項 %1$s: 以 %3$s 格式來處理日期 %2$s"
 
-#: src/tar.c:1201
+#: src/tar.c:1151 src/tar.c:1155 src/tar.c:1159 src/tar.c:1163 src/tar.c:1167
+#: src/tar.c:1171
 #, c-format
-msgid "%s: file name read contains nul character"
-msgstr "%s:所讀檔案名稱含有空值字元"
-
-#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
-#: src/tar.c:1288
-#, fuzzy, c-format
 msgid "filter the archive through %s"
-msgstr "保存檔以 xz 過濾處理"
+msgstr "將封存透過 %s 篩選"
 
-#: src/tar.c:1296
-#, fuzzy
+#: src/tar.c:1179
 msgid "Valid arguments for the --quoting-style option are:"
-msgstr "用於 --quoting-style 選項的有效引數為:"
+msgstr "用於 --quoting-style 的有效引數選項是:"
 
-#: src/tar.c:1300
+#: src/tar.c:1183
 msgid ""
 "\n"
 "*This* tar defaults to:\n"
@@ -2161,53 +2243,48 @@ msgstr ""
 "\n"
 "*這個* tar 預設為:\n"
 
-#: src/tar.c:1402
+#: src/tar.c:1295
+#, fuzzy
+msgid "Invalid owner or group ID"
+msgstr "無效的擁有者"
+
+#: src/tar.c:1339
 msgid "Invalid blocking factor"
 msgstr "無效的分區因子"
 
-#: src/tar.c:1515
+#: src/tar.c:1452
 msgid "Invalid tape length"
 msgstr "無效的磁帶長度"
 
-#: src/tar.c:1529
-#, fuzzy
+#: src/tar.c:1466
 msgid "Invalid incremental level value"
-msgstr "不當的遞增檔案格式"
+msgstr "無效的遞增等級值"
 
-#: src/tar.c:1575
+#: src/tar.c:1512
 msgid "More than one threshold date"
 msgstr "一個以上的限定日期"
 
-#: src/tar.c:1630 src/tar.c:1633
+#: src/tar.c:1571 src/tar.c:1574
 msgid "Invalid sparse version value"
 msgstr "無效的稀疏版本值"
 
-#: src/tar.c:1718
+#: src/tar.c:1659
 msgid "--atime-preserve='system' is not supported on this platform"
-msgstr "--atime-preserve='system' 於這個平未被支援"
+msgstr "--atime-preserve='system' 於這個平未被支援"
 
-#: src/tar.c:1743
+#: src/tar.c:1684
 msgid "--checkpoint value is not an integer"
 msgstr "--checkpoint 值不是整數"
 
-#: src/tar.c:1848
-#, fuzzy
-msgid "Invalid group"
-msgstr "%s:無效的群組"
-
-#: src/tar.c:1855
+#: src/tar.c:1801
 msgid "Invalid mode given on option"
 msgstr "選項中的模式無效"
 
-#: src/tar.c:1912
+#: src/tar.c:1858
 msgid "Invalid number"
 msgstr "無效的號碼"
 
-#: src/tar.c:1934
-msgid "Invalid owner"
-msgstr "無效的擁有者"
-
-#: src/tar.c:1964
+#: src/tar.c:1915
 msgid ""
 "The --preserve option is deprecated, use --preserve-permissions --preserve-"
 "order instead"
@@ -2215,121 +2292,149 @@ msgstr ""
 "--preserve 選項不宜再用,請以 --preserve-permissions --preserve-order 做為替"
 "代"
 
-#: src/tar.c:1975
+#: src/tar.c:1926
 msgid "Invalid record size"
 msgstr "無效的記錄大小"
 
-#: src/tar.c:1978
+#: src/tar.c:1929
 #, c-format
 msgid "Record size must be a multiple of %d."
 msgstr "記錄大小必須是 %d 的倍數。"
 
-#: src/tar.c:2019
+#: src/tar.c:1975
 msgid "Invalid number of elements"
 msgstr "無效的元素號碼"
 
-#: src/tar.c:2039
+#: src/tar.c:1995
 msgid "Only one --to-command option allowed"
 msgstr "只允許一個 --to-command 選項"
 
-#: src/tar.c:2119
+#: src/tar.c:2107
 #, c-format
 msgid "Malformed density argument: %s"
 msgstr "異常的密度引數:%s"
 
-#: src/tar.c:2145
-#, c-format
-msgid "Unknown density: `%c'"
-msgstr "不明的密度:「%c」"
+#: src/tar.c:2133
+#, fuzzy, c-format
+msgid "Unknown density: '%c'"
+msgstr "不明的密度:%c"
 
-#: src/tar.c:2162
-#, c-format
-msgid "Options `-[0-7][lmh]' not supported by *this* tar"
-msgstr "此版本的 tar 不支援「-[0-7][ lmh]」選項"
+#: src/tar.c:2150
+#, fuzzy, c-format
+msgid "Options '-[0-7][lmh]' not supported by *this* tar"
+msgstr "此版本的 tar 不支援 -[0-7][lmh] 選項"
 
-#: src/tar.c:2175
+#: src/tar.c:2163
 msgid "[FILE]..."
 msgstr "[FILE]…"
 
-#: src/tar.c:2293
-#, c-format
-msgid "Old option `%c' requires an argument."
-msgstr "舊的選項「%c」需要一個引數。"
+#: src/tar.c:2306
+#, fuzzy, c-format
+msgid "Old option '%c' requires an argument."
+msgstr "舊的選項 %c 需要一個引數。"
 
-#: src/tar.c:2374
+#: src/tar.c:2386
 msgid "--occurrence is meaningless without a file list"
 msgstr "若無檔案列表,--occurrence 便不具意義"
 
-#: src/tar.c:2380
-msgid "--occurrence cannot be used in the requested operation mode"
+#: src/tar.c:2389
+#, fuzzy, c-format
+msgid "--occurrence cannot be used with %s"
 msgstr "--occurrence 無法於要求的作業模式中使用"
 
-#: src/tar.c:2398
-msgid "Multiple archive files require `-M' option"
-msgstr "指定多個保存檔時需要「-M」選項"
+#: src/tar.c:2408
+#, fuzzy
+msgid "Multiple archive files require '-M' option"
+msgstr "指定多個封存時需要 -M 選項"
 
-#: src/tar.c:2403
+#: src/tar.c:2413
 msgid "Cannot combine --listed-incremental with --newer"
 msgstr "無法同時使用 --listed-incremental 及 --newer"
 
-#: src/tar.c:2406
-#, fuzzy
+#: src/tar.c:2416
 msgid "--level is meaningless without --listed-incremental"
-msgstr "--preserve-order 與 --listed-incremental 不相容"
+msgstr "--level 不與 --listed-incremental 共用是無意義的"
 
-#: src/tar.c:2423
+#: src/tar.c:2433
 #, c-format
 msgid "%s: Volume label is too long (limit is %lu byte)"
 msgid_plural "%s: Volume label is too long (limit is %lu bytes)"
 msgstr[0] "%s:卷冊標籤太長 (限制為 %lu 位元組)"
 
-#: src/tar.c:2436
+#: src/tar.c:2446
 msgid "Cannot verify multi-volume archives"
-msgstr "無法驗證多重卷冊的保存檔"
+msgstr "無法驗證多重卷冊的封存"
 
-#: src/tar.c:2438
+#: src/tar.c:2448
 msgid "Cannot verify compressed archives"
-msgstr "無法驗證壓縮過的保存檔"
+msgstr "無法驗證壓縮過的封存"
+
+#: src/tar.c:2450
+#, fuzzy, c-format
+msgid "--verify cannot be used with %s"
+msgstr "胚騰 %s 無法使用"
 
-#: src/tar.c:2444
+#: src/tar.c:2457
 msgid "Cannot use multi-volume compressed archives"
-msgstr "無法使用多重卷冊的壓縮保存檔"
+msgstr "無法使用多重卷冊的壓縮封存"
 
-#: src/tar.c:2450
+#: src/tar.c:2461
 msgid "Cannot concatenate compressed archives"
 msgstr "無法串接壓縮過的檔案"
 
-#: src/tar.c:2462
+#: src/tar.c:2471
 msgid "--pax-option can be used only on POSIX archives"
-msgstr "--pax-option 只能用於 POSIX 保存檔"
+msgstr "--pax-option 只能用於 POSIX 封存"
+
+#: src/tar.c:2478
+#, fuzzy
+msgid "--acls can be used only on POSIX archives"
+msgstr "--pax-option 只能用於 POSIX 封存"
+
+#: src/tar.c:2483
+#, fuzzy
+msgid "--selinux can be used only on POSIX archives"
+msgstr "--pax-option 只能用於 POSIX 封存"
+
+#: src/tar.c:2488
+#, fuzzy
+msgid "--xattrs can be used only on POSIX archives"
+msgstr "--pax-option 只能用於 POSIX 封存"
+
+#: src/tar.c:2493
+#, fuzzy, c-format
+msgid "--%s option cannot be used with %s"
+msgstr "胚騰 %s 無法使用"
 
-#: src/tar.c:2492
+#: src/tar.c:2525
 msgid "Volume length cannot be less than record size"
 msgstr "卷冊長度無法少於記錄大小"
 
-#: src/tar.c:2495
+#: src/tar.c:2528
 msgid "--preserve-order is not compatible with --listed-incremental"
 msgstr "--preserve-order 與 --listed-incremental 不相容"
 
-#: src/tar.c:2506
+#: src/tar.c:2539
 msgid "Cowardly refusing to create an empty archive"
-msgstr "低調拒絕建立空白的保存檔"
+msgstr "低調拒絕建立空白的封存"
 
-#: src/tar.c:2532
-msgid "Options `-Aru' are incompatible with `-f -'"
-msgstr "「-Aru」與「-f -」選項不相容"
+#: src/tar.c:2565
+#, fuzzy
+msgid "Options '-Aru' are incompatible with '-f -'"
+msgstr " -Aru 與 -f - 選項不相容"
 
-#: src/tar.c:2621
+#: src/tar.c:2660
 #, fuzzy
-msgid "You must specify one of the `-Acdtrux' or `--test-label'  options"
-msgstr "必須指定「-Acdtrux」選項的其中一個"
+msgid ""
+"You must specify one of the '-Acdtrux', '--delete' or '--test-label' options"
+msgstr "您必須指定 -Acdtrux 或 --test-label 選項之一"
 
-#: src/tar.c:2675
+#: src/tar.c:2715
 #, c-format
 msgid "Exiting with failure status due to previous errors"
 msgstr "由於先前錯誤而以失敗狀態離開"
 
-#: src/update.c:86
+#: src/update.c:87
 #, c-format
 msgid "%s: File shrank by %s byte"
 msgid_plural "%s: File shrank by %s bytes"
@@ -2340,115 +2445,110 @@ msgstr[0] "%s:檔案縮減了 %s 位元組"
 msgid "Keyword %s is unknown or not yet implemented"
 msgstr "關鍵字 %s 為未知或尚未實作"
 
-#: src/xheader.c:174
-#, fuzzy
+#: src/xheader.c:173
 msgid "Time stamp is out of allowed range"
-msgstr "號碼超出允許的範圍:%s"
+msgstr "時間戳記超出了允許範圍"
 
-#: src/xheader.c:205
+#: src/xheader.c:204
 #, c-format
 msgid "Pattern %s cannot be used"
-msgstr "式樣 %s 無法使用"
+msgstr "胚騰 %s 無法使用"
 
-#: src/xheader.c:219
+#: src/xheader.c:218
 #, c-format
 msgid "Keyword %s cannot be overridden"
 msgstr "關鍵字 %s 無法被蓋過"
 
-#: src/xheader.c:542
+#: src/xheader.c:667
 msgid "Malformed extended header: missing length"
 msgstr "異常的擴充標頭:長度缺少"
 
-#: src/xheader.c:550
-msgid "Extended header length is out of allowed range"
-msgstr "擴充標頭長度超出允許範圍"
-
-#: src/xheader.c:557
+#: src/xheader.c:676
 #, c-format
 msgid "Extended header length %*s is out of range"
 msgstr "擴充標頭長度 %*s 超出範圍"
 
-#: src/xheader.c:569
+#: src/xheader.c:688
 msgid "Malformed extended header: missing blank after length"
 msgstr "異常的擴充標頭:在長度之後缺少空白"
 
-#: src/xheader.c:577
+#: src/xheader.c:696
 msgid "Malformed extended header: missing equal sign"
 msgstr "異常的擴充標頭:缺少等號"
 
-#: src/xheader.c:583
+#: src/xheader.c:702
 msgid "Malformed extended header: missing newline"
 msgstr "異常的擴充標頭:缺少新列"
 
-#: src/xheader.c:621
-#, c-format
-msgid "Ignoring unknown extended header keyword `%s'"
-msgstr "忽略不明擴充標頭關鍵字「%s」"
+#: src/xheader.c:740
+#, fuzzy, c-format
+msgid "Ignoring unknown extended header keyword '%s'"
+msgstr "忽略不明擴充標頭關鍵字 %s"
 
-#: src/xheader.c:831
+#: src/xheader.c:1012
 #, c-format
 msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
 msgstr "產生的關鍵字/值對太長 (關鍵字=%s,長度=%s)"
 
 #. TRANSLATORS: The first %s is the pax extended header keyword
 #. (atime, gid, etc.).
-#: src/xheader.c:863
+#: src/xheader.c:1042
 #, c-format
 msgid "Extended header %s=%s is out of range %s..%s"
 msgstr "擴充標頭 %s=%s 超出範圍 %s..%s"
 
-#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#: src/xheader.c:1093 src/xheader.c:1126 src/xheader.c:1455
 #, c-format
 msgid "Malformed extended header: invalid %s=%s"
 msgstr "異常的擴充標頭:無效的 %s=%s"
 
-#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#: src/xheader.c:1408 src/xheader.c:1433 src/xheader.c:1488
 #, c-format
 msgid "Malformed extended header: excess %s=%s"
 msgstr "異常的擴充標頭:過剩的 %s=%s"
 
-#: src/xheader.c:1379
+#: src/xheader.c:1501
 #, c-format
 msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
 msgstr "異常的擴充標頭:無效的 %s:未預期的分隔符號 %c"
 
-#: src/xheader.c:1389
+#: src/xheader.c:1511
 #, c-format
 msgid "Malformed extended header: invalid %s: odd number of values"
 msgstr "異常的擴充標頭:無效的 %s:奇怪的數值數量"
 
-#: src/checkpoint.c:107
+#: src/checkpoint.c:109
 #, c-format
 msgid "%s: not a valid timeout"
 msgstr "%s:不是有效的時間限制"
 
-#: src/checkpoint.c:112
+#: src/checkpoint.c:114
 #, c-format
 msgid "%s: unknown checkpoint action"
 msgstr "%s:不明查核點動作"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "write"
 msgstr "寫入"
 
-#: src/checkpoint.c:132
+#: src/checkpoint.c:134
 msgid "read"
 msgstr "讀取"
 
-#. TRANSLATORS: This is a ``checkpoint of write operation'',
-#. *not* ``Writing a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-#. *not* ``Escribiendo un punto de comprobaci@'on''
-#: src/checkpoint.c:222
+#. TRANSLATORS: This is a "checkpoint of write operation",
+#. *not* "Writing a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de escritura",
+#. *not* "Escribiendo un punto de comprobaci@'on"
+#: src/checkpoint.c:224
 #, c-format
 msgid "Write checkpoint %u"
 msgstr "寫入的查核點 %u"
 
-#. TRANSLATORS: This is a ``checkpoint of read operation'',
-#. *not* ``Reading a checkpoint''.
-#. E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-#. *not* ``Leyendo un punto de comprobaci@'on''
-#: src/checkpoint.c:228
+#. TRANSLATORS: This is a "checkpoint of read operation",
+#. *not* "Reading a checkpoint".
+#. E.g. in Spanish "Punto de comprobaci@'on de lectura",
+#. *not* "Leyendo un punto de comprobaci@'on"
+#: src/checkpoint.c:230
 #, c-format
 msgid "Read checkpoint %u"
 msgstr "讀取的查核點 %u"
@@ -2487,7 +2587,7 @@ msgstr "-T 讀取零值終結的名稱"
 
 #: tests/genfile.c:137
 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
-msgstr "以給定 PATTERN 填充檔案。PATTERN 是「default」或「zeros」"
+msgstr "以給定 PATTERN 填充檔案。PATTERN 是 default 或 zeros"
 
 #: tests/genfile.c:140
 msgid "Size of a block for sparse file"
@@ -2495,7 +2595,7 @@ msgstr "用於稀疏檔案的區塊大小"
 
 #: tests/genfile.c:142
 msgid "Generate sparse file. Rest of the command line gives the file map."
-msgstr "產生稀疏檔案。命令列的其餘部給出檔案對映。"
+msgstr "產生稀疏檔案。命令列的其餘部給出檔案對映。"
 
 #: tests/genfile.c:144
 msgid "OFFSET"
@@ -2518,18 +2618,16 @@ msgid "Synchronous execution options:"
 msgstr "同步的執行選項:"
 
 #: tests/genfile.c:163
-#, fuzzy
 msgid "OPTION"
-msgstr " [選項…]"
+msgstr "選項"
 
 #: tests/genfile.c:164
-#, fuzzy
 msgid ""
 "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, "
 "--unlink"
 msgstr ""
-"執行給定的 COMMAND。同時與 --checkpoint 和 --cut, --append, --touch 之一使用"
-"會有作用"
+"執行引數。適合與 --checkpoint 以及 --cut, --append, --touch, --unlink 之一共"
+"用"
 
 #: tests/genfile.c:167
 msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
@@ -2571,7 +2669,7 @@ msgstr "執行 COMMAND"
 
 #: tests/genfile.c:194
 msgid "Unlink FILE"
-msgstr ""
+msgstr "取消連結檔案"
 
 #: tests/genfile.c:244
 #, c-format
@@ -2588,7 +2686,7 @@ msgstr "號碼超出允許的範圍:%s"
 msgid "Negative size: %s"
 msgstr "負值大小:%s"
 
-#: tests/genfile.c:265 tests/genfile.c:567
+#: tests/genfile.c:265 tests/genfile.c:569
 #, c-format
 msgid "stat(%s) failed"
 msgstr "狀態(%s) 失敗"
@@ -2606,7 +2704,7 @@ msgstr "建立的不是稀疏檔案"
 #: tests/genfile.c:361
 #, c-format
 msgid "Error parsing number near `%s'"
-msgstr "剖析數字接近「%s」時發生錯誤"
+msgstr "剖析數字接近 %s 時發生錯誤"
 
 #: tests/genfile.c:367
 #, c-format
@@ -2617,11 +2715,11 @@ msgstr "不明的日期格式"
 msgid "[ARGS...]"
 msgstr "[引數…]"
 
-#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
-#: tests/genfile.c:671 tests/genfile.c:685
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:523
+#: tests/genfile.c:673 tests/genfile.c:687
 #, c-format
 msgid "cannot open `%s'"
-msgstr "無法開啟「%s」"
+msgstr "無法開啟 %s"
 
 #: tests/genfile.c:434
 msgid "cannot seek"
@@ -2632,142 +2730,93 @@ msgstr "無法尋指"
 msgid "file name contains null character"
 msgstr "檔案名稱含有空字元"
 
-#: tests/genfile.c:516
+#: tests/genfile.c:518
 #, c-format
 msgid "cannot generate sparse files on standard output, use --file option"
 msgstr "無法於標準輸出產生稀疏檔案,使用 --file 選項"
 
-#: tests/genfile.c:594
+#: tests/genfile.c:596
 #, c-format
 msgid "incorrect mask (near `%s')"
-msgstr "不正確遮罩 (接近「%s」)"
+msgstr "不正確遮罩 (接近 %s)"
 
-#: tests/genfile.c:600 tests/genfile.c:633
+#: tests/genfile.c:602 tests/genfile.c:635
 #, c-format
 msgid "Unknown field `%s'"
-msgstr "不明的欄位「%s」"
+msgstr "不明的欄位 %s"
 
-#: tests/genfile.c:660
+#: tests/genfile.c:662
 #, c-format
 msgid "cannot set time on `%s'"
-msgstr "無法設定時間為「%s」"
+msgstr "無法設定時間為 %s"
+
+#: tests/genfile.c:692
+#, fuzzy, c-format
+msgid "cannot truncate `%s'"
+msgstr "無法取消連結 %s"
 
-#: tests/genfile.c:699
+#: tests/genfile.c:701
 #, fuzzy, c-format
+msgid "command failed: %s"
+msgstr "%s 命令失敗"
+
+#: tests/genfile.c:706
+#, c-format
 msgid "cannot unlink `%s'"
-msgstr "無法開啟「%s」"
+msgstr "無法取消連結 %s"
 
-#: tests/genfile.c:825
+#: tests/genfile.c:833
 #, c-format
 msgid "Command exited successfully\n"
 msgstr "成功離開命令\n"
 
-#: tests/genfile.c:827
+#: tests/genfile.c:835
 #, c-format
 msgid "Command failed with status %d\n"
 msgstr "命令以狀態 %d 失敗\n"
 
-#: tests/genfile.c:831
+#: tests/genfile.c:839
 #, c-format
 msgid "Command terminated on signal %d\n"
 msgstr "命令於信號 %d 終止\n"
 
-#: tests/genfile.c:833
+#: tests/genfile.c:841
 #, c-format
 msgid "Command stopped on signal %d\n"
 msgstr "命令於信號 %d 停止\n"
 
-#: tests/genfile.c:836
+#: tests/genfile.c:844
 #, c-format
 msgid "Command dumped core\n"
 msgstr "命令傾印核心\n"
 
-#: tests/genfile.c:839
+#: tests/genfile.c:847
 #, c-format
 msgid "Command terminated\n"
 msgstr "命令終止\n"
 
-#: tests/genfile.c:871
+#: tests/genfile.c:879
 #, c-format
 msgid "--stat requires file names"
 msgstr "--stat 需要檔案名稱"
 
-#, fuzzy
-#~ msgid "%s: Directory removed before we read it"
-#~ msgstr "%s:讀取檔案之前已被移除"
-
-#, fuzzy
-#~ msgid "Cannot restore working directory"
-#~ msgstr "無法儲存工作目錄"
-
-#, fuzzy
-#~ msgid "Cannot resolve hostname %s"
-#~ msgstr "無法將 %s 重新命名為 %s"
-
-#~ msgid "suppress this warning."
-#~ msgstr "抑制這個警告。"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s:不合法的選項 -- %c\n"
-
-#~ msgid "Reading %s\n"
-#~ msgstr "正在讀取 %s\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to <%s>.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "將錯誤回報給 <%s>。\n"
-
-#~ msgid "filter the archive through bzip2"
-#~ msgstr "保存檔以 bzip2 過濾處理"
-
-#~ msgid "filter the archive through gzip"
-#~ msgstr "保存檔以 gzip 過濾處理"
-
-#~ msgid "filter the archive through compress"
-#~ msgstr "保存檔以 compress 過濾處理"
-
-#~ msgid "filter the archive through lzma"
-#~ msgstr "保存檔以 lzma 過濾處理"
-
-#~ msgid "filter the archive through lzop"
-#~ msgstr "保存檔以 lzop 過濾處理"
-
-#~ msgid "Input string too long"
-#~ msgstr "輸入字串太長"
-
-#~ msgid "Number syntax error"
-#~ msgstr "數字語法錯誤"
-
-#~ msgid "rmtd: Cannot allocate buffer space\n"
-#~ msgstr "rmtd:無法配置緩衝區空間\n"
+#~ msgid "Cannot get working directory"
+#~ msgstr "無法提取工作目錄"
 
-#~ msgid "Cannot allocate buffer space"
-#~ msgstr "無法配置緩衝區空間"
+#~ msgid "sort names to extract to match archive"
+#~ msgstr "解開時依名稱排序以符合封存"
 
-#~ msgid "Try `%s --help' for more information.\n"
-#~ msgstr "è«\8bå\98\97試ã\80\8c%s --helpã\80\8d以ç\8d²å¾\97æ\9b´å¤\9aè³\87è¨\8aã\80\82\n"
+#~ msgid "Field too long while reading snapshot file"
+#~ msgstr "è®\80å\8f\96å¿«ç\85§æª\94æ\99\82æ¬\84ä½\8d太é\95·"
 
-#~ msgid ""
-#~ "Usage: %s [OPTION]\n"
-#~ "Manipulate a tape drive, accepting commands from a remote process.\n"
-#~ "\n"
-#~ "  --version  Output version info.\n"
-#~ "  --help     Output this help.\n"
-#~ msgstr ""
-#~ "用法: %s [選項]\n"
-#~ "操控磁帶機,接收來自遠端行程的命令。\n"
-#~ "\n"
-#~ "  --version  輸出版本資訊。\n"
-#~ "  --help     輸出本輔助說明。\n"
+#~ msgid "Read error in snapshot file"
+#~ msgstr "讀取快照檔時發生錯誤"
 
-#~ msgid "Seek offset error"
-#~ msgstr "尋覓偏移值錯誤"
+#~ msgid "Unexpected field value in snapshot file"
+#~ msgstr "未預期的快照檔欄位值"
 
-#~ msgid "Premature end of file"
-#~ msgstr "檔案突然結束"
+#~ msgid "Invalid group"
+#~ msgstr "無效的群組"
 
-#~ msgid "Error is not recoverable: exiting now"
-#~ msgstr "發生無法復原的錯誤:立刻離開"
+#~ msgid "Extended header length is out of allowed range"
+#~ msgstr "擴充標頭長度超出允許範圍"
index 37f621a104bfca03234401b19f58300a1c8c7532..e1db6858bcb695532507bcafb7cf05eea8ad1f03 100644 (file)
@@ -4,7 +4,7 @@ EXTRA_PROGRAMS = rmt
 
 rmt_SOURCES = rmt.c
 
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
 
 LDADD = ../gnu/libgnu.a $(LIBINTL)
 
index 0a78e945823b6a5e5bb6667c3e6937567c397968..8bd42abe9cfc904a4623435077d2518e4547bbbb 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -35,31 +51,36 @@ build_triplet = @build@
 host_triplet = @host@
 EXTRA_PROGRAMS = rmt$(EXEEXT)
 subdir = rmt
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -67,50 +88,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -118,22 +149,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -155,28 +187,41 @@ rmt_OBJECTS = $(am_rmt_OBJECTS)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = ../gnu/libgnu.a $(am__DEPENDENCIES_1)
 rmt_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(rmt_SOURCES)
 DIST_SOURCES = $(rmt_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -187,6 +232,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -238,12 +285,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -252,17 +303,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -270,6 +331,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -284,15 +347,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -333,25 +400,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -359,14 +436,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -393,12 +479,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -410,10 +497,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -458,9 +548,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -479,6 +571,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -494,17 +587,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -520,6 +619,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -552,28 +652,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -581,6 +699,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -588,6 +707,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -600,6 +720,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -639,12 +760,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -667,7 +790,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -689,6 +814,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -699,6 +827,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -710,6 +839,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -720,6 +852,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -730,6 +863,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -751,9 +885,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -766,6 +902,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -775,11 +912,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -809,8 +949,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -819,13 +965,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -835,10 +984,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -859,10 +1012,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -876,9 +1032,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -944,7 +1105,7 @@ top_srcdir = @top_srcdir@
 rmtdir = $(DEFAULT_RMT_DIR)
 rmt_PROGRAMS = @PU_RMT_PROG@
 rmt_SOURCES = rmt.c
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
 LDADD = ../gnu/libgnu.a $(LIBINTL)
 rmt_LDADD = $(LDADD) $(LIB_SETSOCKOPT)
 all: all-am
@@ -983,8 +1144,11 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-rmtPROGRAMS: $(rmt_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(rmtdir)" || $(MKDIR_P) "$(DESTDIR)$(rmtdir)"
        @list='$(rmt_PROGRAMS)'; test -n "$(rmtdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(rmtdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(rmtdir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
        while read p p1; do if test -f $$p; \
@@ -1034,7 +1198,7 @@ installcheck-rmtPROGRAMS: $(rmt_PROGRAMS)
            else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
          done; \
        done; rm -f c$${pid}_.???; exit $$bad
-rmt$(EXEEXT): $(rmt_OBJECTS) $(rmt_DEPENDENCIES) 
+rmt$(EXEEXT): $(rmt_OBJECTS) $(rmt_DEPENDENCIES) $(EXTRA_rmt_DEPENDENCIES) 
        @rm -f rmt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(rmt_OBJECTS) $(rmt_LDADD) $(LIBS)
 
@@ -1049,18 +1213,16 @@ distclean-compile:
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1111,6 +1273,20 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -1161,10 +1337,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1248,7 +1429,7 @@ uninstall-am: uninstall-rmtPROGRAMS
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-rmtPROGRAMS ctags distclean distclean-compile \
+       clean-rmtPROGRAMS cscopelist ctags 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 \
index 7576c17318569504488d644cec4a0cfd8a11c918..bff8dbe89daac63c64d831f951fb4b3dba7a3b05 100644 (file)
@@ -1,19 +1,21 @@
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute 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, write to the Free Software
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-## 02110-1301, USA.
+# Make GNU tar scripts.
+
+# Copyright 2004, 2006, 2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 
 BACKUP_LIBEXEC_SCRIPTS_LIST=backup.sh dump-remind
 BACKUP_SBIN_SCRIPTS_LIST=backup restore
index f40ec2133cf00c3e318912b718229edff8c5f999..86fa78459671bdb08de7de57d5d1359a5eb987e5 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 @SET_MAKE@
 
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Make GNU tar scripts.
+
+# Copyright 2004, 2006, 2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -39,28 +72,32 @@ subdir = scripts
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -68,50 +105,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -119,22 +166,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -170,16 +218,33 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)"
 SCRIPTS = $(libexec_SCRIPTS) $(sbin_SCRIPTS)
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -188,6 +253,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -239,12 +306,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -253,17 +324,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -271,6 +352,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -285,15 +368,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -334,25 +421,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -360,14 +457,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -394,12 +500,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -411,10 +518,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -459,9 +569,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -480,6 +592,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -495,17 +608,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -521,6 +640,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -553,28 +673,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -582,6 +720,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -589,6 +728,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -601,6 +741,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -640,12 +781,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -668,7 +811,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -690,6 +835,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -700,6 +848,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -711,6 +860,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -721,6 +873,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -731,6 +884,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -752,9 +906,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -767,6 +923,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -776,11 +933,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -810,8 +970,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -820,13 +986,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -836,10 +1005,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -860,10 +1033,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -877,9 +1053,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -998,8 +1179,11 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-libexecSCRIPTS: $(libexec_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
        @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -1027,9 +1211,7 @@ uninstall-libexecSCRIPTS:
        @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       test -n "$$list" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+       dir='$(DESTDIR)$(libexecdir)'; $(am__uninstall_files_from_dir)
 
 installcheck-libexecSCRIPTS: $(libexec_SCRIPTS)
        bad=0; pid=$$$$; list="$(libexec_SCRIPTS)"; for p in $$list; do \
@@ -1047,8 +1229,11 @@ installcheck-libexecSCRIPTS: $(libexec_SCRIPTS)
        done; rm -f c$${pid}_.???; exit $$bad
 install-sbinSCRIPTS: $(sbin_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
        @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -1076,9 +1261,7 @@ uninstall-sbinSCRIPTS:
        @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       test -n "$$list" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(sbindir)" && rm -f $$files
+       dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
 
 installcheck-sbinSCRIPTS: $(sbin_SCRIPTS)
        bad=0; pid=$$$$; list="$(sbin_SCRIPTS)"; for p in $$list; do \
@@ -1100,6 +1283,8 @@ TAGS:
 ctags: CTAGS
 CTAGS:
 
+cscope cscopelist:
+
 
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1148,10 +1333,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index ae8df8a048ddb969f8fe6fe00be0e3f2d07cec15..fb252aa9c39bbe5de783e689c00de9660850243d 100644 (file)
@@ -82,19 +82,19 @@ SLEEP_MESSAGE="`awk '
    }' /dev/null`"
 
 \f
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute 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, write to the Free Software
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-## 02110-1301, USA.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
index 37bfed3612d4004d6bdadfb098f1e9348b2f2a40..087ab2c183398bd77b5e1e5cc93ef20b4a08b75e 100644 (file)
@@ -1,21 +1,22 @@
 #! /bin/sh
-# This program is part of GNU tar
-# Copyright (C) 2004, 2005, 2006 Free Software Foundation
-#
-# This program is free software; you can redistribute it and/or modify
+# Make backups.
+
+# Copyright 2004-2006, 2013 Free Software Foundation
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Load library routines
 SYSCONFDIR=${SYSCONFDIR-@sysconfdir@}
@@ -149,7 +150,7 @@ message 20 "BACKUP_DIRS=$BACKUP_DIRS"
 message 20 "BACKUP_FILES=$BACKUP_FILES"
 
 # The buch of commands below is run in a subshell for which all output is
-# piped through `tee' to the logfile.  Doing this, instead of having
+# piped through 'tee' to the logfile.  Doing this, instead of having
 # multiple pipelines all over the place, is cleaner and allows access to
 # the exit value from various commands more easily.
 (
@@ -187,7 +188,7 @@ message 20 "BACKUP_FILES=$BACKUP_FILES"
                 "--label='`print_level` backup of ${fs} on ${remotehost} at ${NOW}'" \
                -C ${fs} .
 
-     # `rsh' doesn't exit with the exit status of the remote command.  What
+     # 'rsh' doesn't exit with the exit status of the remote command.  What
      # stupid lossage.  TODO: think of a reliable workaround.
      if [ $? -ne 0 ] ; then
         echo "Backup of ${1} failed." 1>&2
index adcdfe2d5b9dbceb0d4502bdc5be412984f05588..e0d1c68162a97a7c555b4fd7bde4336780348864 100644 (file)
@@ -1,21 +1,22 @@
 #! /bin/sh
-# This program is part of GNU tar
-# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Make backups.
+
+# Copyright 2004-2006, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 PROGNAME=`basename $0`
 CONFIGPATH="$SYSCONFDIR/backup"
@@ -48,7 +49,7 @@ MT_REWIND=mt_rewind
 MT_OFFLINE=mt_offline
 MT_STATUS=mt_status
 
-# Insure `mail' is in PATH.
+# Insure 'mail' is in PATH.
 PATH="/usr/ucb:${PATH}"
 export PATH
 # Put startdate in the subject line of mailed report, since if it happens
@@ -211,8 +212,8 @@ init_backup() {
        TAR_PART1="${TAR_PART1} --info-script='${DUMP_REMIND_SCRIPT}'"
     fi
     # Set logfile name
-    # Logfile name should be in the form  ``log-1993-03-18-level-0''
-    # They go in the directory `@sysconfdir@/log'.
+    # Logfile name should be in the form 'log-1993-03-18-level-0'
+    # They go in the directory '@sysconfdir@/log'.
     # i.e. year-month-date.  This format is useful for sorting by name, since
     # logfiles are intentionally kept online for future reference.
     LOGFILE="${LOGPATH}/log-`now`-level-${DUMP_LEVEL}"
@@ -305,7 +306,7 @@ backup_host() {
     if [ "z${localhost}" != "z$rhost" ] ; then
        $RSH "$rhost" ${TAR_PART1} -f "${localhost}:${TAPE_FILE}" $@
     else
-       # Using `sh -c exec' causes nested quoting and shell substitution
+       # Using 'sh -c exec' causes nested quoting and shell substitution
         # to be handled here in the same way rsh handles it.
         CMD="exec ${TAR_PART1} -f \"${TAPE_FILE}\" $@"
         message 10 "CMD: $CMD"
@@ -339,9 +340,9 @@ remote_run() {
 
 license() {
     cat - <<EOF
-Copyright (C) 2006 Free Software Foundation, Inc.
-This is free software.  You may redistribute copies of it under the terms of
-the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+Copyright (C) 2013 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 EOF
 }
index a3f013fe1925b2f148d0c783af5dca7fb8dd720b..415026e81f1149501ca1c9f4f8083d8d7acd442a 100644 (file)
@@ -7,9 +7,25 @@
 # This script should be run by tar with --info-script (-F) to inform
 # interested parties that a tape for the next volume of the backup needs to
 # be put in the tape drive.
-#
 
-# Include location of `sendmail' and GNU finger.
+# Copyright 2004-2005, 2010, 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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 location of 'sendmail' and GNU finger.
 PATH="/usr/lib:/usr/local/gnubin:${PATH}"
 export PATH
 
@@ -25,8 +41,8 @@ MT_OFFLINE
 # which users are logged into consoles (and thus in the office and capable
 # of changing tapes).
 #
-# Certain users (like `root') aren't real users, and shouldn't be notified.
-# Neither should `zippy', `elvis', etc. (on the GNU machines) since they're
+# Certain users (like 'root') aren't real users, and shouldn't be notified.
+# Neither should 'zippy', 'elvis', etc. (on the GNU machines) since they're
 # just test accounts.
 recipients="`
     finger .clients 2> /dev/null \
index 2f86bacfce03093f447a606339f4eb5f603fcda1..5014ead793814e52275ae62170cbbaea6ec395fe 100644 (file)
@@ -1,21 +1,22 @@
 #! /bin/sh
-# This program is part of GNU tar
-# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Restore backups.
+
+# Copyright 2004, 2006, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Load library routines
 SYSCONFDIR=${SYSCONFDIR-@sysconfdir@}
index de310f43512a8dba61bd852aa2eb965a4dc49b91..07c117d3d17c7da8722474128d5f0bd177bb7fc9 100644 (file)
@@ -1,26 +1,26 @@
 # Makefile for GNU tar sources.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
-# 2007, 2009 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 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, or (at your option)
-## any later version.
+# This file is part of GNU tar.
 
-## 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.
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
 
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-## 02110-1301, USA.
+# GNU tar 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/>.
 
 bin_PROGRAMS = tar
 
-noinst_HEADERS = arith.h common.h tar.h
+noinst_HEADERS = arith.h common.h tar.h xattrs.h
 tar_SOURCES = \
  buffer.c\
  checkpoint.c\
@@ -42,10 +42,12 @@ tar_SOURCES = \
  unlink.c\
  update.c\
  utf8.c\
- warning.c
+ warning.c\
+ xattrs.c
 
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
+AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
 
 LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
 
-tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)
+tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
index 1e6fbd2121b26888a17ab0377f883357d8e9c188..eb3d8fbd699579eb5009107ad2e8677db604c6fa 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 # Makefile for GNU tar sources.
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
-# 2007, 2009 Free Software Foundation, Inc.
+# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2009, 2013 Free
+# Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -42,31 +73,35 @@ host_triplet = @host@
 bin_PROGRAMS = tar$(EXEEXT)
 subdir = src
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
+       $(srcdir)/Makefile.in $(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -74,50 +109,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -125,22 +170,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -164,34 +210,48 @@ am_tar_OBJECTS = buffer.$(OBJEXT) checkpoint.$(OBJEXT) \
        names.$(OBJEXT) sparse.$(OBJEXT) suffix.$(OBJEXT) \
        system.$(OBJEXT) tar.$(OBJEXT) transform.$(OBJEXT) \
        unlink.$(OBJEXT) update.$(OBJEXT) utf8.$(OBJEXT) \
-       warning.$(OBJEXT)
+       warning.$(OBJEXT) xattrs.$(OBJEXT)
 tar_OBJECTS = $(am_tar_OBJECTS)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = ../lib/libtar.a ../gnu/libgnu.a \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-tar_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+tar_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(tar_SOURCES)
 DIST_SOURCES = $(tar_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -203,6 +263,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -254,12 +316,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -268,17 +334,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -286,6 +362,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -300,15 +378,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -349,25 +431,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -375,14 +467,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -409,12 +510,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -426,10 +528,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -474,9 +579,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -495,6 +602,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -510,17 +618,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -536,6 +650,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -568,28 +683,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -597,6 +730,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -604,6 +738,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -616,6 +751,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -655,12 +791,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -683,7 +821,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -705,6 +845,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -715,6 +858,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -726,6 +870,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -736,6 +883,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -746,6 +894,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -767,9 +916,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -782,6 +933,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -791,11 +943,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -825,8 +980,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -835,13 +996,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -851,10 +1015,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -875,10 +1043,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -892,9 +1063,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -957,7 +1133,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-noinst_HEADERS = arith.h common.h tar.h
+noinst_HEADERS = arith.h common.h tar.h xattrs.h
 tar_SOURCES = \
  buffer.c\
  checkpoint.c\
@@ -979,11 +1155,13 @@ tar_SOURCES = \
  unlink.c\
  update.c\
  utf8.c\
- warning.c
+ warning.c\
+ xattrs.c
 
-INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
+AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
+AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
 LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
-tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)
+tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX)
 all: all-am
 
 .SUFFIXES:
@@ -1020,8 +1198,11 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
        while read p p1; do if test -f $$p; \
@@ -1071,7 +1252,7 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS)
            else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
          done; \
        done; rm -f c$${pid}_.???; exit $$bad
-tar$(EXEEXT): $(tar_OBJECTS) $(tar_DEPENDENCIES) 
+tar$(EXEEXT): $(tar_OBJECTS) $(tar_DEPENDENCIES) $(EXTRA_tar_DEPENDENCIES) 
        @rm -f tar$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(tar_OBJECTS) $(tar_LDADD) $(LIBS)
 
@@ -1101,23 +1282,22 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/warning.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattrs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xheader.Po@am__quote@
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1168,6 +1348,20 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -1218,10 +1412,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1305,7 +1504,7 @@ uninstall-am: uninstall-binPROGRAMS
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-       clean-generic ctags distclean distclean-compile \
+       clean-generic cscopelist ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
        install-data install-data-am install-dvi install-dvi-am \
index a2abfe826c1e1f37b3a4c6b310753f004a7fa004..1bc1547f046f517c80974ed605b9f93a4c56c856 100644 (file)
@@ -1,19 +1,20 @@
 /* Long integers, for GNU tar.
-   Copyright 1999, 2007 Free Software Foundation, Inc.
+   Copyright 1999, 2007, 2013 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   This file is part of GNU tar.
+
+   GNU tar is free software; you can redistribute 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.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
-   This program is distributed in the hope that it will be useful,
+   GNU tar 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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Handle large integers for calculating big tape lengths and the
    like.  In practice, double precision does for now.  On the vast
index e52b1b10fde6bf2a5250d71c47c4bcb4bc4d641d..4b44eaf13b9844b39e7bc6b8c80adbb93c19e882 100644 (file)
@@ -1,24 +1,24 @@
 /* Buffer management for tar.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+   Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2013 Free Software
    Foundation, Inc.
 
-   Written by John Gilmore, on 1985-08-25.
+   This file is part of GNU tar.
 
-   This program is free software; you can redistribute 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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+   GNU tar 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   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 John Gilmore, on 1985-08-25.  */
 
 #include <system.h>
 #include <system-ioctl.h>
@@ -41,7 +41,7 @@
 static tarlong prev_written;    /* bytes written on previous volumes */
 static tarlong bytes_written;   /* bytes written on this volume */
 static void *record_buffer[2];  /* allocated memory */
-union block *record_buffer_aligned[2];
+static union block *record_buffer_aligned[2];
 static int record_index;
 
 /* FIXME: The following variables should ideally be static to this
@@ -83,8 +83,8 @@ extern bool time_to_start_writing;
 
 bool write_archive_to_stdout;
 
-void (*flush_write_ptr) (size_t);
-void (*flush_read_ptr) (void);
+static void (*flush_write_ptr) (size_t);
+static void (*flush_read_ptr) (void);
 
 \f
 char *volume_label;
@@ -103,7 +103,7 @@ bool write_archive_to_stdout;
 \f
 /* Multi-volume tracking support */
 
-/* When creating a multi-volume archive, each `bufmap' represents
+/* When creating a multi-volume archive, each 'bufmap' represents
    a member stored (perhaps partly) in the current record buffer.
    After flushing the record to the output media, all bufmaps that
    represent fully written members are removed from the list, then
@@ -193,7 +193,7 @@ bufmap_reset (struct bufmap *map, ssize_t fixup)
 static struct tar_stat_info dummy;
 
 void
-buffer_write_global_xheader ()
+buffer_write_global_xheader (void)
 {
   xheader_write_global (&dummy.xhdr);
 }
@@ -205,7 +205,7 @@ mv_begin_read (struct tar_stat_info *st)
 }
 
 void
-mv_end ()
+mv_end (void)
 {
   if (multi_volume_option)
     bufmap_free (NULL);
@@ -230,10 +230,10 @@ clear_read_error_count (void)
 \f
 /* Time-related functions */
 
-double duration;
+static double duration;
 
 void
-set_start_time ()
+set_start_time (void)
 {
   gettime (&start_time);
   volume_start_time = start_time;
@@ -248,7 +248,7 @@ set_volume_start_time (void)
 }
 
 void
-compute_duration ()
+compute_duration (void)
 {
   struct timespec now;
   gettime (&now);
@@ -289,8 +289,8 @@ struct zip_program
 };
 
 static struct zip_magic const magic[] = {
-  { ct_none, },
-  { ct_tar },
+  { ct_none,     0, 0 },
+  { ct_tar,      0, 0 },
   { ct_compress, 2, "\037\235" },
   { ct_gzip,     2, "\037\213" },
   { ct_bzip2,    3, "BZh" },
@@ -337,23 +337,23 @@ const char *
 first_decompress_program (int *pstate)
 {
   struct zip_program const *zp;
-  
+
   if (use_compress_program_option)
     return use_compress_program_option;
 
   if (archive_compression_type == ct_none)
     return NULL;
 
-  *pstate = 0; 
+  *pstate = 0;
   zp = find_zip_program (archive_compression_type, pstate);
   return zp ? zp->program : NULL;
 }
-    
+
 const char *
 next_decompress_program (int *pstate)
 {
   struct zip_program const *zp;
-  
+
   if (use_compress_program_option)
     return NULL;
   zp = find_zip_program (archive_compression_type, pstate);
@@ -509,7 +509,7 @@ print_stats (FILE *fp, const char *text, tarlong numbytes)
 }
 
 void
-print_total_stats ()
+print_total_stats (void)
 {
   switch (subcommand_option)
     {
@@ -722,9 +722,6 @@ _open_archive (enum access_mode wanted_access)
           break;
         }
     }
-  else if (verify_option)
-    archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY,
-                       MODE_RW, rsh_command_option);
   else
     switch (wanted_access)
       {
@@ -740,8 +737,12 @@ _open_archive (enum access_mode wanted_access)
             maybe_backup_file (archive_name_array[0], 1);
             backed_up_flag = 1;
           }
-        archive = rmtcreat (archive_name_array[0], MODE_RW,
-                            rsh_command_option);
+       if (verify_option)
+         archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY,
+                            MODE_RW, rsh_command_option);
+       else
+         archive = rmtcreat (archive_name_array[0], MODE_RW,
+                             rsh_command_option);
         break;
 
       case ACCESS_UPDATE:
@@ -883,16 +884,16 @@ short_read (size_t status)
   left = record_size - status;
 
   if (left && left % BLOCKSIZE == 0
-      && verbose_option
+      && (warning_option & WARN_RECORD_SIZE)
       && record_start_block == 0 && status != 0
       && archive_is_dev ())
     {
       unsigned long rsize = status / BLOCKSIZE;
       WARN ((0, 0,
-             ngettext ("Record size = %lu block",
-                       "Record size = %lu blocks",
-                       rsize),
-             rsize));
+            ngettext ("Record size = %lu block",
+                      "Record size = %lu blocks",
+                      rsize),
+            rsize));
     }
 
   while (left % BLOCKSIZE != 0
@@ -1928,13 +1929,13 @@ gnu_flush_write (size_t buffer_level)
 }
 
 void
-flush_read ()
+flush_read (void)
 {
   flush_read_ptr ();
 }
 
 void
-flush_write ()
+flush_write (void)
 {
   flush_write_ptr (record_size);
 }
index a2896ab3d3cf1205ac7a7c411c77203e36fd4d0d..54c2cd6048956b16ef782643036c0063146a1e13 100644 (file)
@@ -1,19 +1,21 @@
 /* Checkpoint management for tar.
 
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright 2007, 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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program.  If not, see <http://www.gnu.org/licenses/>. */
+   GNU tar 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 <system.h>
 #include "common.h"
@@ -113,7 +115,7 @@ checkpoint_compile_action (const char *str)
 }
 
 void
-checkpoint_finish_compile ()
+checkpoint_finish_compile (void)
 {
   if (checkpoint_option)
     {
@@ -215,16 +217,16 @@ run_checkpoint_actions (bool do_write)
            if (!str)
              {
                if (do_write)
-                 /* TRANSLATORS: This is a ``checkpoint of write operation'',
-                    *not* ``Writing a checkpoint''.
-                    E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-                    *not* ``Escribiendo un punto de comprobaci@'on'' */
+                 /* TRANSLATORS: This is a "checkpoint of write operation",
+                    *not* "Writing a checkpoint".
+                    E.g. in Spanish "Punto de comprobaci@'on de escritura",
+                    *not* "Escribiendo un punto de comprobaci@'on" */
                  str = gettext ("Write checkpoint %u");
                else
-                 /* TRANSLATORS: This is a ``checkpoint of read operation'',
-                    *not* ``Reading a checkpoint''.
-                    E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-                    *not* ``Leyendo un punto de comprobaci@'on'' */
+                 /* TRANSLATORS: This is a "checkpoint of read operation",
+                    *not* "Reading a checkpoint".
+                    E.g. in Spanish "Punto de comprobaci@'on de lectura",
+                    *not* "Leyendo un punto de comprobaci@'on" */
                  str = gettext ("Read checkpoint %u");
              }
            tmp = expand_checkpoint_string (str, do_write, checkpoint);
index 0b9bd7a1273b5c76218863ffabbfa52097a42d12..eb801bb3b531b0a38097ff4b48705097e19489db 100644 (file)
@@ -1,22 +1,22 @@
 /* Common declarations for the tar program.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-   Inc.
+   Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2012-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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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/>.  */
 
 /* Declare the GNU tar archive format.  */
 #include "tar.h"
 #define LG_8 3
 #define LG_64 6
 #define LG_256 8
+
+_GL_INLINE_HEADER_BEGIN
+#ifndef COMMON_INLINE
+# define COMMON_INLINE _GL_INLINE
+#endif
 \f
 /* Information gleaned from the command line.  */
 
@@ -138,9 +143,6 @@ GLOBAL const char *use_compress_program_option;
 GLOBAL bool dereference_option;
 GLOBAL bool hard_dereference_option;
 
-/* Print a message if not all links are dumped */
-GLOBAL int check_links_option;
-
 /* Patterns that match file names to be excluded.  */
 GLOBAL struct exclude *excluded;
 
@@ -158,7 +160,8 @@ enum exclusion_tag_type
   };
 
 /* Specified value to be put into tar file in place of stat () results, or
-   just -1 if such an override should not take place.  */
+   just null and -1 if such an override should not take place.  */
+GLOBAL char const *group_name_option;
 GLOBAL gid_t group_option;
 
 GLOBAL bool ignore_failed_read_option;
@@ -182,10 +185,13 @@ enum old_files
   OVERWRITE_OLD_FILES,        /* --overwrite */
   UNLINK_FIRST_OLD_FILES,     /* --unlink-first */
   KEEP_OLD_FILES,             /* --keep-old-files */
+  SKIP_OLD_FILES,             /* --skip-old-files */
   KEEP_NEWER_FILES           /* --keep-newer-files */
 };
 GLOBAL enum old_files old_files_option;
 
+GLOBAL bool keep_directory_symlink_option;
+
 /* Specified file name for incremental list.  */
 GLOBAL const char *listed_incremental_option;
 /* Incremental dump level */
@@ -230,7 +236,8 @@ GLOBAL bool numeric_owner_option;
 GLOBAL bool one_file_system_option;
 
 /* Specified value to be put into tar file in place of stat () results, or
-   just -1 if such an override should not take place.  */
+   just null and -1 if such an override should not take place.  */
+GLOBAL char const *owner_name_option;
 GLOBAL uid_t owner_option;
 
 GLOBAL bool recursive_unlink_option;
@@ -239,9 +246,6 @@ GLOBAL bool read_full_records_option;
 
 GLOBAL bool remove_files_option;
 
-/* Specified rmt command.  */
-GLOBAL const char *rmt_command_option;
-
 /* Specified remote shell command.  */
 GLOBAL const char *rsh_command_option;
 
@@ -253,6 +257,15 @@ GLOBAL int same_owner_option;
 /* If positive, preserve permissions when extracting.  */
 GLOBAL int same_permissions_option;
 
+/* If positive, save the SELinux context.  */
+GLOBAL int selinux_context_option;
+
+/* If positive, save the ACLs.  */
+GLOBAL int acls_option;
+
+/* If positive, save the user and root xattrs.  */
+GLOBAL int xattrs_option;
+
 /* When set, strip the given number of file name components from the file name
    before extracting */
 GLOBAL size_t strip_name_components;
@@ -313,11 +326,10 @@ GLOBAL struct timespec last_stat_time;    /* when the statistics was last
 
 GLOBAL struct tar_stat_info current_stat_info;
 
-/* List of tape drive names, number of such tape drives, allocated number,
+/* List of tape drive names, number of such tape drives,
    and current cursor in list.  */
 GLOBAL const char **archive_name_array;
 GLOBAL size_t archive_names;
-GLOBAL size_t allocated_archive_names;
 GLOBAL const char **archive_name_cursor;
 
 /* Output index file name.  */
@@ -514,6 +526,7 @@ void rebase_directory (struct directory *dir,
                       const char *repl, size_t rlen);
 
 void append_incremental_renames (struct directory *dir);
+void show_snapshot_field_ranges (void);
 void read_directory_file (void);
 void write_directory_file (void);
 void purge_directory (char const *directory_name);
@@ -522,6 +535,7 @@ void update_parent_directory (struct tar_stat_info *st);
 
 size_t dumpdir_size (const char *p);
 bool is_dumpdir (struct tar_stat_info *stat_info);
+void clear_directory_table (void);
 
 /* Module list.c.  */
 
@@ -577,23 +591,63 @@ void skip_member (void);
 
 /* Module misc.c.  */
 
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#define max(a, b) ((a) < (b) ? (b) : (a))
 void assign_string (char **dest, const char *src);
 int unquote_string (char *str);
 char *zap_slashes (char *name);
-char *normalize_filename (const char *name);
+char *normalize_filename (int cdidx, const char *name);
+void normalize_filename_x (char *name);
 void replace_prefix (char **pname, const char *samp, size_t slen,
                     const char *repl, size_t rlen);
+char *tar_savedir (const char *name, int must_exist);
 
 typedef struct namebuf *namebuf_t;
 namebuf_t namebuf_create (const char *dir);
 void namebuf_free (namebuf_t buf);
 char *namebuf_name (namebuf_t buf, const char *name);
+void namebuf_add_dir (namebuf_t buf, const char *name);
+char *namebuf_finish (namebuf_t buf);
 
+const char *tar_getcdpath (int);
+const char *tar_dirname (void);
+
+/* Represent N using a signed integer I such that (uintmax_t) I == N.
+   With a good optimizing compiler, this is equivalent to (intmax_t) i
+   and requires zero machine instructions.  */
+#if ! (UINTMAX_MAX / 2 <= INTMAX_MAX)
+# error "represent_uintmax returns intmax_t to represent uintmax_t"
+#endif
+COMMON_INLINE intmax_t
+represent_uintmax (uintmax_t n)
+{
+  if (n <= INTMAX_MAX)
+    return n;
+  else
+    {
+      /* Avoid signed integer overflow on picky platforms.  */
+      intmax_t nd = n - INTMAX_MIN;
+      return nd + INTMAX_MIN;
+    }
+}
+
+enum { SYSINT_BUFSIZE =
+        max (UINTMAX_STRSIZE_BOUND, INT_BUFSIZE_BOUND (intmax_t)) };
+char *sysinttostr (uintmax_t, intmax_t, uintmax_t, char buf[SYSINT_BUFSIZE]);
+intmax_t strtosysint (char const *, char **, intmax_t, uintmax_t);
 void code_ns_fraction (int ns, char *p);
 char const *code_timespec (struct timespec ts, char *sbuf);
 enum { BILLION = 1000000000, LOG10_BILLION = 9 };
 enum { TIMESPEC_STRSIZE_BOUND =
          UINTMAX_STRSIZE_BOUND + LOG10_BILLION + sizeof "-." - 1 };
+struct timespec decode_timespec (char const *, char **, bool);
+
+/* Return true if T does not represent an out-of-range or invalid value.  */
+COMMON_INLINE bool
+valid_timespec (struct timespec t)
+{
+  return 0 <= t.tv_nsec;
+}
 
 bool must_be_dot_or_slash (char const *);
 
@@ -617,6 +671,9 @@ void undo_last_backup (void);
 
 int deref_stat (char const *name, struct stat *buf);
 
+size_t blocking_read (int fd, void *buf, size_t count);
+size_t blocking_write (int fd, void const *buf, size_t count);
+
 extern int chdir_current;
 extern int chdir_fd;
 int chdir_arg (char const *dir);
@@ -657,6 +714,7 @@ int uname_to_uid (char const *uname, uid_t *puid);
 void name_init (void);
 void name_add_name (const char *name, int matching_flags);
 void name_add_dir (const char *name);
+void name_add_file (const char *name, int term);
 void name_term (void);
 const char *name_next (int change_dirs);
 void name_gather (void);
@@ -701,19 +759,25 @@ const char *archive_format_string (enum archive_format fmt);
 const char *subcommand_string (enum subcommand c);
 void set_exit_status (int val);
 
+void request_stdin (const char *option);
+void more_options (int argc, char **argv);
+
 /* Module update.c.  */
 
 extern char *output_start;
 
 void update_archive (void);
 
+/* Module attrs.c.  */
+#include "xattrs.h"
+
 /* Module xheader.c.  */
 
 void xheader_decode (struct tar_stat_info *stat);
 void xheader_decode_global (struct xheader *xhdr);
 void xheader_store (char const *keyword, struct tar_stat_info *st,
                    void const *data);
-void xheader_read (struct xheader *xhdr, union block *header, size_t size);
+void xheader_read (struct xheader *xhdr, union block *header, off_t size);
 void xheader_write (char type, char *name, time_t t, struct xheader *xhdr);
 void xheader_write_global (struct xheader *xhdr);
 void xheader_finish (struct xheader *hdr);
@@ -727,6 +791,12 @@ bool xheader_string_end (struct xheader *xhdr, char const *keyword);
 bool xheader_keyword_deleted_p (const char *kw);
 char *xheader_format_name (struct tar_stat_info *st, const char *fmt,
                           size_t n);
+void xheader_xattr_init (struct tar_stat_info *st);
+void xheader_xattr_free (struct xattr_array *vals, size_t sz);
+void xheader_xattr_copy (const struct tar_stat_info *st,
+                         struct xattr_array **vals, size_t *sz);
+void xheader_xattr_add (struct tar_stat_info *st,
+                        const char *key, const char *val, size_t len);
 
 /* Module system.c */
 
@@ -751,7 +821,8 @@ void sys_exec_checkpoint_script (const char *script_name,
                                 int checkpoint_number);
 
 /* Module compare.c */
-void report_difference (struct tar_stat_info *st, const char *message, ...);
+void report_difference (struct tar_stat_info *st, const char *message, ...)
+  __attribute__ ((format (printf, 2, 3)));
 
 /* Module sparse.c */
 bool sparse_member_p (struct tar_stat_info *st);
@@ -807,11 +878,14 @@ void checkpoint_run (bool do_write);
 #define WARN_UNKNOWN_KEYWORD     0x00020000
 #define WARN_XDEV                0x00040000
 #define WARN_DECOMPRESS_PROGRAM  0x00080000
+#define WARN_EXISTING_FILE       0x00100000
+#define WARN_XATTR_WRITE         0x00200000
+#define WARN_RECORD_SIZE         0x00400000
 
-/* The warnings composing WARN_VERBOSE_WARNINGS are enabled by default
-   in verbose mode */
+/* These warnings are enabled by default in verbose mode: */
 #define WARN_VERBOSE_WARNINGS    (WARN_RENAME_DIRECTORY|WARN_NEW_DIRECTORY|\
-                                 WARN_DECOMPRESS_PROGRAM)
+                                 WARN_DECOMPRESS_PROGRAM|WARN_EXISTING_FILE|\
+                                 WARN_RECORD_SIZE)
 #define WARN_ALL                 (~WARN_VERBOSE_WARNINGS)
 
 void set_warning_option (const char *arg);
@@ -832,3 +906,5 @@ void finish_deferred_unlinks (void);
 
 /* Module exit.c */
 extern void (*fatal_exit_hook) (void);
+
+_GL_INLINE_HEADER_END
index 273269a140916af81a9e2c0515bace0658e254fb..407fd4016952a7eed858092f19f257c5e82d50fc 100644 (file)
@@ -1,23 +1,24 @@
 /* Diff files from a tar archive.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-2007,
+   2009-2010, 2012-2013 Free Software Foundation, Inc.
 
-   Written by John Gilmore, on 1987-04-30.
+   This file is part of GNU tar.
 
-   This program is free software; you can redistribute 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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+   GNU tar 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   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 John Gilmore, on 1987-04-30.  */
 
 #include <system.h>
 #include <system-ioctl.h>
@@ -80,7 +81,7 @@ process_noop (size_t size __attribute__ ((unused)),
 static int
 process_rawdata (size_t bytes, char *buffer)
 {
-  size_t status = safe_read (diff_handle, diff_buffer, bytes);
+  size_t status = blocking_read (diff_handle, diff_buffer, bytes);
 
   if (status != bytes)
     {
@@ -359,31 +360,35 @@ dumpdir_cmp (const char *a, const char *b)
 }
 
 static void
-diff_dumpdir (void)
+diff_dumpdir (struct tar_stat_info *dir)
 {
   const char *dumpdir_buffer;
-  dev_t dev = 0;
-  struct stat stat_data;
 
-  if (deref_stat (current_stat_info.file_name, &stat_data) != 0)
+  if (dir->fd == 0)
     {
-      if (errno == ENOENT)
-       stat_warn (current_stat_info.file_name);
+      void (*diag) (char const *) = NULL;
+      int fd = subfile_open (dir->parent, dir->orig_file_name, open_read_flags);
+      if (fd < 0)
+       diag = open_diag;
+      else if (fstat (fd, &dir->stat))
+       diag = stat_diag;
       else
-       stat_error (current_stat_info.file_name);
+       dir->fd = fd;
+      if (diag)
+       {
+         file_removed_diag (dir->orig_file_name, false, diag);
+         return;
+       }
     }
-  else
-    dev = stat_data.st_dev;
-
-  dumpdir_buffer = directory_contents (scan_directory (&current_stat_info));
+  dumpdir_buffer = directory_contents (scan_directory (dir));
 
   if (dumpdir_buffer)
     {
-      if (dumpdir_cmp (current_stat_info.dumpdir, dumpdir_buffer))
-       report_difference (&current_stat_info, _("Contents differ"));
+      if (dumpdir_cmp (dir->dumpdir, dumpdir_buffer))
+       report_difference (dir, _("Contents differ"));
     }
   else
-    read_and_process (&current_stat_info, process_noop);
+    read_and_process (dir, process_noop);
 }
 
 static void
@@ -410,7 +415,9 @@ diff_multivol (void)
     }
 
   offset = OFF_FROM_HEADER (current_header->oldgnu_header.offset);
-  if (stat_data.st_size != current_stat_info.stat.st_size + offset)
+  if (offset < 0
+      || INT_ADD_OVERFLOW (current_stat_info.stat.st_size, offset)
+      || stat_data.st_size != current_stat_info.stat.st_size + offset)
     {
       report_difference (&current_stat_info, _("Size differs"));
       skip_member ();
@@ -461,7 +468,7 @@ diff_archive (void)
   switch (current_header->header.typeflag)
     {
     default:
-      ERROR ((0, 0, _("%s: Unknown file type `%c', diffed as normal file"),
+      ERROR ((0, 0, _("%s: Unknown file type '%c', diffed as normal file"),
              quotearg_colon (current_stat_info.file_name),
              current_header->header.typeflag));
       /* Fall through.  */
@@ -498,7 +505,7 @@ diff_archive (void)
     case GNUTYPE_DUMPDIR:
     case DIRTYPE:
       if (is_dumpdir (&current_stat_info))
-       diff_dumpdir ();
+       diff_dumpdir (&current_stat_info);
       diff_dir ();
       break;
 
@@ -530,6 +537,8 @@ verify_volume (void)
     WARN((0, 0,
          _("Verification may fail to locate original files.")));
 
+  clear_directory_table ();
+
   if (!diff_buffer)
     diff_init ();
 
index 43b5a4c23ab1140f38180d02e2b140c9886bd031..e14e13d00e36f8d60a54cef8d03645581ab381f6 100644 (file)
@@ -1,23 +1,24 @@
 /* Create a tar archive.
 
-   Copyright (C) 1985, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 1985, 1992-1994, 1996-1997, 1999-2001, 2003-2007,
+   2009-2010, 2012-2013 Free Software Foundation, Inc.
 
-   Written by John Gilmore, on 1985-08-25.
+   This file is part of GNU tar.
 
-   This program is free software; you can redistribute 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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+   GNU tar 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   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 John Gilmore, on 1985-08-25.  */
 
 #include <system.h>
 
@@ -511,12 +512,11 @@ start_private_header (const char *name, size_t size, time_t t)
   tar_name_copy_str (header->header.name, name, NAME_FIELD_SIZE);
   OFF_TO_CHARS (size, header->header.size);
 
-  TIME_TO_CHARS (t, header->header.mtime);
+  TIME_TO_CHARS (t < 0 ? 0 : min (t, MAX_OCTAL_VAL (header->header.mtime)),
+                header->header.mtime);
   MODE_TO_CHARS (S_IFREG|S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, header->header.mode);
-  UID_TO_CHARS (getuid (), header->header.uid);
-  GID_TO_CHARS (getgid (), header->header.gid);
-  MAJOR_TO_CHARS (0, header->header.devmajor);
-  MINOR_TO_CHARS (0, header->header.devminor);
+  UID_TO_CHARS (0, header->header.uid);
+  GID_TO_CHARS (0, header->header.gid);
   strncpy (header->header.magic, TMAGIC, TMAGLEN);
   strncpy (header->header.version, TVERSION, TVERSLEN);
   return header;
@@ -534,11 +534,6 @@ write_short_name (struct tar_stat_info *st)
   return header;
 }
 
-#define FILL(field,byte) do {            \
-  memset(field, byte, sizeof(field)-1);  \
-  (field)[sizeof(field)-1] = 0;          \
-} while (0)
-
 /* Write a GNUTYPE_LONGLINK or GNUTYPE_LONGNAME block.  */
 static void
 write_gnu_long_link (struct tar_stat_info *st, const char *p, char type)
@@ -548,13 +543,7 @@ write_gnu_long_link (struct tar_stat_info *st, const char *p, char type)
   union block *header;
   char *tmpname;
 
-  header = start_private_header ("././@LongLink", size, time (NULL));
-  FILL (header->header.mtime, '0');
-  FILL (header->header.mode, '0');
-  FILL (header->header.uid, '0');
-  FILL (header->header.gid, '0');
-  FILL (header->header.devmajor, 0);
-  FILL (header->header.devminor, 0);
+  header = start_private_header ("././@LongLink", size, start_time.tv_sec);
   uid_to_uname (0, &tmpname);
   UNAME_TO_CHARS (tmpname, header->header.uname);
   free (tmpname);
@@ -711,7 +700,7 @@ write_extended (bool global, struct tar_stat_info *st, union block *old_header)
     {
       type = XGLTYPE;
       p = xheader_ghdr_name ();
-      time (&t);
+      t = start_time.tv_sec;
     }
   else
     {
@@ -785,9 +774,9 @@ start_header (struct tar_stat_info *st)
        . . . . . . . . .   9 = Omron UNIOS-B 4.3BSD 1.60Beta
 
             . = works
-            # = ``impossible file type''
+            # = "impossible file type"
 
-     The following mask for old archive removes the `#'s in column 4
+     The following mask for old archive removes the '#'s in column 4
      above, thus making GNU tar both a universal donor and a universal
      acceptor for Paul's test.  */
 
@@ -920,8 +909,15 @@ start_header (struct tar_stat_info *st)
     }
   else
     {
-      uid_to_uname (st->stat.st_uid, &st->uname);
-      gid_to_gname (st->stat.st_gid, &st->gname);
+      if (owner_name_option)
+       st->uname = xstrdup (owner_name_option);
+      else
+       uid_to_uname (st->stat.st_uid, &st->uname);
+
+      if (group_name_option)
+       st->gname = xstrdup (group_name_option);
+      else
+       gid_to_gname (st->stat.st_gid, &st->gname);
 
       if (archive_format == POSIX_FORMAT
          && (strlen (st->uname) > UNAME_FIELD_SIZE
@@ -936,6 +932,30 @@ start_header (struct tar_stat_info *st)
       GNAME_TO_CHARS (st->gname, header->header.gname);
     }
 
+  if (archive_format == POSIX_FORMAT)
+    {
+      if (acls_option > 0)
+        {
+          if (st->acls_a_ptr)
+            xheader_store ("SCHILY.acl.access", st, NULL);
+          if (st->acls_d_ptr)
+            xheader_store ("SCHILY.acl.default", st, NULL);
+        }
+      if ((selinux_context_option > 0) && st->cntx_name)
+        xheader_store ("RHT.security.selinux", st, NULL);
+      if (xattrs_option > 0)
+        {
+          size_t scan_xattr = 0;
+          struct xattr_array *xattr_map = st->xattr_map;
+
+          while (scan_xattr < st->xattr_map_size)
+            {
+              xheader_store (xattr_map[scan_xattr].xkey, st, &scan_xattr);
+              ++scan_xattr;
+            }
+        }
+    }
+
   return header;
 }
 
@@ -1044,7 +1064,7 @@ dump_regular_file (int fd, struct tar_stat_info *st)
            memset (blk->buffer + size_left, 0, BLOCKSIZE - count);
        }
 
-      count = (fd <= 0) ? bufsize : safe_read (fd, blk->buffer, bufsize);
+      count = (fd <= 0) ? bufsize : blocking_read (fd, blk->buffer, bufsize);
       if (count == SAFE_READ_ERROR)
        {
          read_diag_details (st->orig_file_name,
@@ -1711,6 +1731,10 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p)
       bool ok;
       struct stat final_stat;
 
+      xattrs_acls_get (parentfd, name, st, 0, !is_dir);
+      xattrs_selinux_get (parentfd, name, st, fd);
+      xattrs_xattrs_get (parentfd, name, st, fd);
+
       if (is_dir)
        {
          const char *tag_file_name;
@@ -1829,6 +1853,9 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p)
       if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT) < size)
        write_long_link (st);
 
+      xattrs_selinux_get (parentfd, name, st, 0);
+      xattrs_xattrs_get (parentfd, name, st, 0);
+
       block_ordinal = current_block_ordinal ();
       st->stat.st_size = 0;    /* force 0 size on symlink */
       header = start_header (st);
@@ -1847,11 +1874,26 @@ dump_file0 (struct tar_stat_info *st, char const *name, char const *p)
     }
 #endif
   else if (S_ISCHR (st->stat.st_mode))
-    type = CHRTYPE;
+    {
+      type = CHRTYPE;
+      xattrs_acls_get (parentfd, name, st, 0, true);
+      xattrs_selinux_get (parentfd, name, st, 0);
+      xattrs_xattrs_get (parentfd, name, st, 0);
+    }
   else if (S_ISBLK (st->stat.st_mode))
-    type = BLKTYPE;
+    {
+      type = BLKTYPE;
+      xattrs_acls_get (parentfd, name, st, 0, true);
+      xattrs_selinux_get (parentfd, name, st, 0);
+      xattrs_xattrs_get (parentfd, name, st, 0);
+    }
   else if (S_ISFIFO (st->stat.st_mode))
-    type = FIFOTYPE;
+    {
+      type = FIFOTYPE;
+      xattrs_acls_get (parentfd, name, st, 0, true);
+      xattrs_selinux_get (parentfd, name, st, 0);
+      xattrs_xattrs_get (parentfd, name, st, 0);
+    }
   else if (S_ISSOCK (st->stat.st_mode))
     {
       WARNOPT (WARN_FILE_IGNORED,
index a0a6d67c0b76033b09761fc7ad33ae1b741910c3..d17dd2507ca22df96e68ce02625032e50af83395 100644 (file)
@@ -1,21 +1,22 @@
 /* Delete entries from a tar archive.
 
-   Copyright (C) 1988, 1992, 1994, 1996, 1997, 2000, 2001, 2003, 2004,
-   2005, 2006, 2010 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   Copyright 1988, 1992, 1994, 1996-1997, 2000-2001, 2003-2006, 2010,
+   2013 Free Software Foundation, Inc.
+
+   This file is part of GNU tar.
+
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+
+   GNU tar 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 <system.h>
 #include <system-ioctl.h>
index d1ddaf926fbc4a8333634c07abfe846e6b8b5989..74b13a42e2359ada7fb8cc8e2540a665aebd675b 100644 (file)
@@ -1,19 +1,21 @@
-/* This file is part of GNU tar.
-   Copyright (C) 2009 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+/* Exit from GNU tar.
+
+   Copyright 2009, 2013 Free Software Foundation, Inc.
+
+   This file is part of GNU tar.
+
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+
+   GNU tar 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 <system.h>
 #include "common.h"
index aaea56ed3abcfcfb2bfde356715f6133e22e4fae..9b6b7f97487e39d6a297e99c797f9ae37e882cc3 100644 (file)
@@ -1,28 +1,30 @@
 /* Extract files from a tar archive.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000,
-   2001, 2003, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc.
+   Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2013
+   Free Software Foundation, Inc.
 
-   Written by John Gilmore, on 1985-11-19.
+   This file is part of GNU tar.
 
-   This program is free software; you can redistribute 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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+   GNU tar 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   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 John Gilmore, on 1985-11-19.  */
 
 #include <system.h>
 #include <quotearg.h>
 #include <errno.h>
 #include <priv-set.h>
+#include <root-uid.h>
 #include <utimens.h>
 
 #include "common.h"
@@ -97,6 +99,14 @@ struct delayed_set_stat
     /* Directory that the name is relative to.  */
     int change_dir;
 
+    /* extended attributes*/
+    char *cntx_name;
+    char *acls_a_ptr;
+    size_t acls_a_len;
+    char *acls_d_ptr;
+    size_t acls_d_len;
+    size_t xattr_map_size;
+    struct xattr_array *xattr_map;
     /* Length and contents of name.  */
     size_t file_name_len;
     char file_name[1];
@@ -110,12 +120,15 @@ struct delayed_link
     /* The next delayed link in the list.  */
     struct delayed_link *next;
 
-    /* The device, inode number and ctime of the placeholder.  Use
-       ctime, not mtime, to make false matches less likely if some
-       other process removes the placeholder.  */
+    /* The device, inode number and birthtime of the placeholder.
+       birthtime.tv_nsec is negative if the birthtime is not available.
+       Don't use mtime as this would allow for false matches if some
+       other process removes the placeholder.  Don't use ctime as
+       this would cause race conditions and other screwups, e.g.,
+       when restoring hard-linked symlinks.  */
     dev_t dev;
     ino_t ino;
-    struct timespec ctime;
+    struct timespec birthtime;
 
     /* True if the link is symbolic.  */
     bool is_symlink;
@@ -134,6 +147,18 @@ struct delayed_link
        hard-linked together.  */
     struct string_list *sources;
 
+    /* SELinux context */
+    char *cntx_name;
+
+    /* ACLs */
+    char *acls_a_ptr;
+    size_t acls_a_len;
+    char *acls_d_ptr;
+    size_t acls_d_len;
+
+    size_t xattr_map_size;
+    struct xattr_array *xattr_map;
+
     /* The desired target of the desired link.  */
     char target[1];
   };
@@ -150,7 +175,7 @@ struct string_list
 void
 extr_init (void)
 {
-  we_are_root = geteuid () == 0;
+  we_are_root = geteuid () == ROOT_UID;
   same_permissions_option += we_are_root;
   same_owner_option += we_are_root;
 
@@ -272,7 +297,7 @@ set_mode (char const *file_name,
 static void
 check_time (char const *file_name, struct timespec t)
 {
-  if (t.tv_sec <= 0)
+  if (t.tv_sec < 0)
     WARNOPT (WARN_TIMESTAMP,
             (0, 0, _("%s: implausibly old time stamp %s"),
              file_name, tartime (t, true)));
@@ -360,6 +385,12 @@ set_stat (char const *file_name,
            st->stat.st_mode & ~ current_umask,
            0 < same_permissions_option && ! interdir ? MODE_ALL : MODE_RWX,
            fd, current_mode, current_mode_mask, typeflag, atflag);
+
+  /* these three calls must be done *after* fd_chown() call because fd_chown
+     causes that linux capabilities becomes cleared. */
+  xattrs_xattrs_set (st, file_name, typeflag, 1);
+  xattrs_acls_set (st, file_name, typeflag);
+  xattrs_selinux_set (st, file_name, typeflag);
 }
 
 /* For each entry H in the leading prefix of entries in HEAD that do
@@ -431,6 +462,36 @@ delay_set_stat (char const *file_name, struct tar_stat_info const *st,
   data->atflag = atflag;
   data->after_links = 0;
   data->change_dir = chdir_current;
+  data->cntx_name = NULL;
+  if (st)
+    assign_string (&data->cntx_name, st->cntx_name);
+  if (st && st->acls_a_ptr)
+    {
+      data->acls_a_ptr = xmemdup (st->acls_a_ptr, st->acls_a_len + 1);
+      data->acls_a_len = st->acls_a_len;
+    }
+  else
+    {
+      data->acls_a_ptr = NULL;
+      data->acls_a_len = 0;
+    }
+  if (st && st->acls_d_ptr)
+    {
+      data->acls_d_ptr = xmemdup (st->acls_d_ptr, st->acls_d_len + 1);
+      data->acls_d_len = st->acls_d_len;
+    }
+  else
+    {
+      data->acls_d_ptr = NULL;
+      data->acls_d_len = 0;
+    }
+  if (st)
+    xheader_xattr_copy (st, &data->xattr_map, &data->xattr_map_size);
+  else
+    {
+      data->xattr_map = NULL;
+      data->xattr_map_size = 0;
+    }
   strcpy (data->file_name, file_name);
   delayed_set_stat_head = data;
   if (must_be_dot_or_slash (file_name))
@@ -639,9 +700,14 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
 
       switch (old_files_option)
        {
-       case KEEP_OLD_FILES:
+       case SKIP_OLD_FILES:
+         WARNOPT (WARN_EXISTING_FILE,
+                  (0, 0, _("%s: skipping existing file"), file_name));
          return RECOVER_SKIP;
 
+       case KEEP_OLD_FILES:
+         return RECOVER_NO;
+
        case KEEP_NEWER_FILES:
          if (file_newer_p (file_name, stp, &current_stat_info))
            break;
@@ -673,6 +739,40 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
   return RECOVER_NO;
 }
 
+/* Restore stat extended attributes (xattr) for FILE_NAME, using information
+   given in *ST.  Restore before extraction because they may affect file layout
+   (e.g. on Lustre distributed parallel filesystem - setting info about how many
+   servers is this file striped over, stripe size, mirror copies, etc.
+   in advance dramatically improves the following  performance of reading and
+   writing a file).  If not restoring permissions, invert the INVERT_PERMISSIONS
+   bits from the file's current permissions.  TYPEFLAG specifies the type of the
+   file.  FILE_CREATED indicates set_xattr has created the file */
+static int
+set_xattr (char const *file_name, struct tar_stat_info const *st,
+           mode_t invert_permissions, char typeflag, int *file_created)
+{
+  int status = 0;
+
+#ifdef HAVE_XATTRS
+  bool interdir_made = false;
+
+  if ((xattrs_option > 0) && st->xattr_map_size)
+    {
+      mode_t mode = current_stat_info.stat.st_mode & MODE_RWX & ~ current_umask;
+
+      do
+        status = mknodat (chdir_fd, file_name, mode ^ invert_permissions, 0);
+      while (status && maybe_recoverable ((char *)file_name, false,
+                                          &interdir_made));
+
+      xattrs_xattrs_set (st, file_name, typeflag, 0);
+      *file_created = 1;
+    }
+#endif
+
+  return(status);
+}
+
 /* Fix the statuses of all directories whose statuses need fixing, and
    which are not ancestors of FILE_NAME.  If AFTER_LINKS is
    nonzero, do this for all such directories; otherwise, stop at the
@@ -733,18 +833,43 @@ apply_nonancestor_delayed_set_stat (char const *file_name, bool after_links)
          sb.stat.st_gid = data->gid;
          sb.atime = data->atime;
          sb.mtime = data->mtime;
+         sb.cntx_name = data->cntx_name;
+         sb.acls_a_ptr = data->acls_a_ptr;
+         sb.acls_a_len = data->acls_a_len;
+         sb.acls_d_ptr = data->acls_d_ptr;
+         sb.acls_d_len = data->acls_d_len;
+         sb.xattr_map = data->xattr_map;
+         sb.xattr_map_size = data->xattr_map_size;
          set_stat (data->file_name, &sb,
                    -1, current_mode, current_mode_mask,
                    DIRTYPE, data->interdir, data->atflag);
        }
 
       delayed_set_stat_head = data->next;
+      xheader_xattr_free (data->xattr_map, data->xattr_map_size);
+      free (data->cntx_name);
+      free (data->acls_a_ptr);
+      free (data->acls_d_ptr);
       free (data);
     }
 }
 
 \f
-
+static bool
+is_directory_link (const char *file_name)
+{
+  struct stat st;
+  int e = errno;
+  int res;
+  
+  res = (fstatat (chdir_fd, file_name, &st, AT_SYMLINK_NOFOLLOW) == 0 &&
+        S_ISLNK (st.st_mode) &&
+        fstatat (chdir_fd, file_name, &st, 0) == 0 &&
+        S_ISDIR (st.st_mode));
+  errno = e;
+  return res;
+}
+\f
 /* Extractor functions for various member types */
 
 static int
@@ -800,10 +925,15 @@ extract_dir (char *file_name, int typeflag)
 
       if (errno == EEXIST
          && (interdir_made
+             || keep_directory_symlink_option
              || old_files_option == DEFAULT_OLD_FILES
              || old_files_option == OVERWRITE_OLD_FILES))
        {
          struct stat st;
+
+         if (keep_directory_symlink_option && is_directory_link (file_name))
+           return 0;
+         
          if (deref_stat (file_name, &st) == 0)
            {
              current_mode = st.st_mode;
@@ -854,7 +984,8 @@ extract_dir (char *file_name, int typeflag)
 
 static int
 open_output_file (char const *file_name, int typeflag, mode_t mode,
-                 mode_t *current_mode, mode_t *current_mode_mask)
+                  int file_created, mode_t *current_mode,
+                  mode_t *current_mode_mask)
 {
   int fd;
   bool overwriting_old_files = old_files_option == OVERWRITE_OLD_FILES;
@@ -864,6 +995,10 @@ open_output_file (char const *file_name, int typeflag, mode_t mode,
                     ? O_TRUNC | (dereference_option ? 0 : O_NOFOLLOW)
                     : O_EXCL));
 
+  /* File might be created in set_xattr. So clear O_EXCL to avoid open() fail */
+  if (file_created)
+    openflag = openflag & ~O_EXCL;
+
   if (typeflag == CONTTYPE)
     {
       static int conttype_diagnosed;
@@ -879,7 +1014,8 @@ open_output_file (char const *file_name, int typeflag, mode_t mode,
   /* If O_NOFOLLOW is needed but does not work, check for a symlink
      separately.  There's a race condition, but that cannot be avoided
      on hosts lacking O_NOFOLLOW.  */
-  if (! O_NOFOLLOW && overwriting_old_files && ! dereference_option)
+  if (! HAVE_WORKING_O_NOFOLLOW
+      && overwriting_old_files && ! dereference_option)
     {
       struct stat st;
       if (fstatat (chdir_fd, file_name, &st, AT_SYMLINK_NOFOLLOW) == 0
@@ -934,6 +1070,8 @@ extract_file (char *file_name, int typeflag)
   bool interdir_made = false;
   mode_t mode = (current_stat_info.stat.st_mode & MODE_RWX
                 & ~ (0 < same_owner_option ? S_IRWXG | S_IRWXO : 0));
+  mode_t invert_permissions = 0 < same_owner_option ? mode & (S_IRWXG | S_IRWXO)
+                                                    : 0;
   mode_t current_mode = 0;
   mode_t current_mode_mask = 0;
 
@@ -950,8 +1088,18 @@ extract_file (char *file_name, int typeflag)
     }
   else
     {
+      int file_created = 0;
+      if (set_xattr (file_name, &current_stat_info, invert_permissions,
+                     typeflag, &file_created))
+        {
+          skip_member ();
+          open_error (file_name);
+          return 1;
+        }
+
       while ((fd = open_output_file (file_name, typeflag, mode,
-                                    &current_mode, &current_mode_mask))
+                                     file_created, &current_mode,
+                                     &current_mode_mask))
             < 0)
        {
          int recover = maybe_recoverable (file_name, true, &interdir_made);
@@ -990,7 +1138,7 @@ extract_file (char *file_name, int typeflag)
        if (written > size)
          written = size;
        errno = 0;
-       count = full_write (fd, data_block->buffer, written);
+       count = blocking_write (fd, data_block->buffer, written);
        size -= written;
 
        set_next_block_after ((union block *)
@@ -1076,7 +1224,7 @@ create_placeholder_file (char *file_name, bool is_symlink, bool *interdir_made)
       delayed_link_head = p;
       p->dev = st.st_dev;
       p->ino = st.st_ino;
-      p->ctime = get_stat_ctime (&st);
+      p->birthtime = get_stat_birthtime (&st);
       p->is_symlink = is_symlink;
       if (is_symlink)
        {
@@ -1091,6 +1239,13 @@ create_placeholder_file (char *file_name, bool is_symlink, bool *interdir_made)
                            + strlen (file_name) + 1);
       p->sources->next = 0;
       strcpy (p->sources->string, file_name);
+      p->cntx_name = NULL;
+      assign_string (&p->cntx_name, current_stat_info.cntx_name);
+      p->acls_a_ptr = NULL;
+      p->acls_a_len = 0;
+      p->acls_d_ptr = NULL;
+      p->acls_d_len = 0;
+      xheader_xattr_copy (&current_stat_info, &p->xattr_map, &p->xattr_map_size);
       strcpy (p->target, current_stat_info.link_name);
 
       h = delayed_set_stat_head;
@@ -1134,7 +1289,8 @@ extract_link (char *file_name, int typeflag)
              if (ds->change_dir == chdir_current
                  && ds->dev == st1.st_dev
                  && ds->ino == st1.st_ino
-                 && timespec_cmp (ds->ctime, get_stat_ctime (&st1)) == 0)
+                 && (timespec_cmp (ds->birthtime, get_stat_birthtime (&st1))
+                     == 0))
                {
                  struct string_list *p =  xmalloc (offsetof (struct string_list, string)
                                                    + strlen (file_name) + 1);
@@ -1204,7 +1360,7 @@ extract_symlink (char *file_name, int typeflag)
   if (!warned_once)
     {
       warned_once = 1;
-      WARNOPT (WARN_SYMBOLIC_CAST,
+      WARNOPT (WARN_SYMLINK_CAST,
               (0, 0,
                _("Attempting extraction of symbolic links as hard links")));
     }
@@ -1284,6 +1440,13 @@ extract_failure (char *file_name, int typeflag)
   return 1;
 }
 
+static int
+extract_skip (char *file_name, int typeflag)
+{
+  skip_member ();
+  return 0;
+}
+
 typedef int (*tar_extractor_t) (char *file_name, int typeflag);
 
 \f
@@ -1364,7 +1527,7 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun)
       ERROR ((0, 0,
              _("%s: Cannot extract -- file is continued from another volume"),
              quotearg_colon (current_stat_info.file_name)));
-      *fun = extract_failure;
+      *fun = extract_skip;
       break;
 
     case GNUTYPE_LONGNAME:
@@ -1376,7 +1539,7 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun)
     default:
       WARNOPT (WARN_UNKNOWN_CAST,
               (0, 0,
-               _("%s: Unknown file type `%c', extracted as normal file"),
+               _("%s: Unknown file type '%c', extracted as normal file"),
                quotearg_colon (file_name), typeflag));
       *fun = extract_file;
     }
@@ -1500,7 +1663,7 @@ apply_delayed_links (void)
          if (fstatat (chdir_fd, source, &st, AT_SYMLINK_NOFOLLOW) == 0
              && st.st_dev == ds->dev
              && st.st_ino == ds->ino
-             && timespec_cmp (get_stat_ctime (&st), ds->ctime) == 0)
+             && timespec_cmp (get_stat_birthtime (&st), ds->birthtime) == 0)
            {
              /* Unlink the placeholder, then create a hard link if possible,
                 a symbolic link otherwise.  */
@@ -1525,6 +1688,13 @@ apply_delayed_links (void)
                  st1.stat.st_gid = ds->gid;
                  st1.atime = ds->atime;
                  st1.mtime = ds->mtime;
+                  st1.cntx_name = ds->cntx_name;
+                  st1.acls_a_ptr = ds->acls_a_ptr;
+                  st1.acls_a_len = ds->acls_a_len;
+                  st1.acls_d_ptr = ds->acls_d_ptr;
+                  st1.acls_d_len = ds->acls_d_len;
+                  st1.xattr_map = ds->xattr_map;
+                  st1.xattr_map_size = ds->xattr_map_size;
                  set_stat (source, &st1, -1, 0, 0, SYMTYPE,
                            false, AT_SYMLINK_NOFOLLOW);
                  valid_source = source;
@@ -1539,6 +1709,9 @@ apply_delayed_links (void)
          sources = next;
        }
 
+   xheader_xattr_free (ds->xattr_map, ds->xattr_map_size);
+   free (ds->cntx_name);
+
       {
        struct delayed_link *next = ds->next;
        free (ds);
index b2ab5bf0557e6331e9a612e010e5410cabe0dfdb..f6b311ef4b2c783a5bf870d5311d4077d0269238 100644 (file)
@@ -1,21 +1,22 @@
 /* GNU dump extensions to tar.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+   Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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 <system.h>
 #include <hash.h>
@@ -279,7 +280,7 @@ free_directory (struct directory *dir)
 static struct directory *
 attach_directory (const char *name)
 {
-  char *cname = normalize_filename (name);
+  char *cname = normalize_filename (chdir_current, name);
   struct directory *dir = make_directory (name, cname);
   if (dirtail)
     dirtail->next = dir;
@@ -300,6 +301,24 @@ dirlist_replace_prefix (const char *pref, const char *repl)
     replace_prefix (&dp->name, pref, pref_len, repl, repl_len);
 }
 
+void
+clear_directory_table (void)
+{
+  struct directory *dp;
+
+  if (directory_table)
+    hash_clear (directory_table);
+  if (directory_meta_table)
+    hash_clear (directory_meta_table);
+  for (dp = dirhead; dp; )
+    {
+      struct directory *next = dp->next;
+      free_directory (dp);
+      dp = next;
+    }
+  dirhead = dirtail = NULL;
+}
+
 /* Create and link a new directory entry for directory NAME, having a
    device number DEV and an inode number INO, with NFS indicating
    whether it is an NFS device and FOUND indicating whether we have
@@ -327,7 +346,8 @@ note_directory (char const *name, struct timespec mtime,
   if (! ((directory_table
          || (directory_table = hash_initialize (0, 0,
                                                 hash_directory_canonical_name,
-                                                compare_directory_canonical_names, 0)))
+                                                compare_directory_canonical_names,
+                                                0)))
         && hash_insert (directory_table, directory)))
     xalloc_die ();
 
@@ -350,7 +370,7 @@ find_directory (const char *name)
     return 0;
   else
     {
-      char *caname = normalize_filename (name);
+      char *caname = normalize_filename (chdir_current, name);
       struct directory *dir = make_directory (name, caname);
       struct directory *ret = hash_lookup (directory_table, dir);
       free_directory (dir);
@@ -427,6 +447,7 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
   struct directory *directory;
   struct stat *stat_data = &st->stat;
   bool nfs = NFS_FILE_STAT (*stat_data);
+  bool perhaps_renamed = false;
 
   if ((directory = find_directory (name_buffer)) != NULL)
     {
@@ -481,9 +502,7 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
            }
          else
            {
-             WARNOPT (WARN_RENAME_DIRECTORY,
-                      (0, 0, _("%s: Directory has been renamed"),
-                       quotearg_colon (name_buffer)));
+             perhaps_renamed = true;
              directory->children = ALL_CHILDREN;
              directory->device_number = stat_data->st_dev;
              directory->inode_number = stat_data->st_ino;
@@ -502,7 +521,7 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
                                                 stat_data->st_ino);
 
       directory = note_directory (name_buffer,
-                                 get_stat_mtime(stat_data),
+                                 get_stat_mtime (stat_data),
                                  stat_data->st_dev,
                                  stat_data->st_ino,
                                  nfs,
@@ -541,13 +560,21 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
 
   if (one_file_system_option && st->parent
       && stat_data->st_dev != st->parent->stat.st_dev)
-    /* FIXME:
-       WARNOPT (WARN_XDEV,
-                (0, 0,
-                 _("%s: directory is on a different filesystem; not dumped"),
-                 quotearg_colon (directory->name)));
-    */
-    directory->children = NO_CHILDREN;
+    {
+      WARNOPT (WARN_XDEV,
+              (0, 0,
+               _("%s: directory is on a different filesystem; not dumped"),
+               quotearg_colon (directory->name)));
+      directory->children = NO_CHILDREN;
+      /* If there is any dumpdir info in that directory, remove it */
+      if (directory->dump)
+       {
+         dumpdir_free (directory->dump);
+         directory->dump = NULL;
+       }
+      perhaps_renamed = false;
+    }
+
   else if (flag & PD_FORCE_CHILDREN)
     {
       directory->children = PD_CHILDREN(flag);
@@ -555,6 +582,11 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
        *entry = 'N';
     }
 
+  if (perhaps_renamed)
+    WARNOPT (WARN_RENAME_DIRECTORY,
+            (0, 0, _("%s: Directory has been renamed"),
+             quotearg_colon (name_buffer)));
+
   DIR_SET_FLAG (directory, DIRF_INIT);
 
   if (directory->children != NO_CHILDREN)
@@ -577,6 +609,7 @@ procdir (const char *name_buffer, struct tar_stat_info *st,
          exclusion_tag_warning (name_buffer, tag_file_name,
                                 _("contents not dumped"));
          directory->children = NO_CHILDREN;
+         directory->tagfile = tag_file_name;
          break;
 
        case exclusion_tag_under:
@@ -648,15 +681,13 @@ makedumpdir (struct directory *directory, const char *dir)
       if (loc)
        {
          if (directory->tagfile)
-           *new_dump_ptr = strcmp (directory->tagfile, array[i]) == 0 ?
-                               ' ' : 'I';
+           *new_dump_ptr = 'I';
          else
            *new_dump_ptr = ' ';
          new_dump_ptr++;
        }
       else if (directory->tagfile)
-       *new_dump_ptr++ = strcmp (directory->tagfile, array[i]) == 0 ?
-                              ' ' : 'I';
+       *new_dump_ptr++ = 'I';
       else
        *new_dump_ptr++ = 'Y'; /* New entry */
 
@@ -667,9 +698,26 @@ makedumpdir (struct directory *directory, const char *dir)
   *new_dump_ptr = 0;
   directory->idump = directory->dump;
   directory->dump = dumpdir_create0 (new_dump, NULL);
+  free (new_dump);
   free (array);
 }
 
+/* Create a dumpdir containing only one entry: that for the
+   tagfile. */
+static void
+maketagdumpdir (struct directory *directory)
+{
+  size_t len = strlen (directory->tagfile) + 1;
+  char *new_dump = xmalloc (len + 2);
+  new_dump[0] = 'Y';
+  memcpy (new_dump + 1, directory->tagfile, len);
+  new_dump[len + 1] = 0;
+
+  directory->idump = directory->dump;
+  directory->dump = dumpdir_create0 (new_dump, NULL);
+  free (new_dump);
+}
+
 /* Recursively scan the directory identified by ST.  */
 struct directory *
 scan_directory (struct tar_stat_info *st)
@@ -697,86 +745,94 @@ scan_directory (struct tar_stat_info *st)
 
   nbuf = namebuf_create (dir);
 
-  if (dirp && directory->children != NO_CHILDREN)
+  if (dirp)
     {
-      char *entry;     /* directory entry being scanned */
-      struct dumpdir_iter *itr;
-
-      makedumpdir (directory, dirp);
-
-      for (entry = dumpdir_first (directory->dump, 1, &itr);
-          entry;
-          entry = dumpdir_next (itr))
+      if (directory->children != NO_CHILDREN)
        {
-         char *full_name = namebuf_name (nbuf, entry + 1);
-
-         if (*entry == 'I') /* Ignored entry */
-           *entry = 'N';
-         else if (excluded_name (full_name))
-           *entry = 'N';
-         else
-           {
-             int fd = st->fd;
-             void (*diag) (char const *) = 0;
-             struct tar_stat_info stsub;
-             tar_stat_init (&stsub);
+         char *entry;  /* directory entry being scanned */
+         struct dumpdir_iter *itr;
 
-             if (fd < 0)
-               {
-                 errno = - fd;
-                 diag = open_diag;
-               }
-             else if (fstatat (fd, entry + 1, &stsub.stat, fstatat_flags) != 0)
-               diag = stat_diag;
-             else if (S_ISDIR (stsub.stat.st_mode))
-               {
-                 int subfd = subfile_open (st, entry + 1, open_read_flags);
-                 if (subfd < 0)
-                   diag = open_diag;
-                 else
-                   {
-                     stsub.fd = subfd;
-                     if (fstat (subfd, &stsub.stat) != 0)
-                       diag = stat_diag;
-                   }
-               }
+         makedumpdir (directory, dirp);
 
-             if (diag)
-               {
-                 file_removed_diag (full_name, false, diag);
-                 *entry = 'N';
-               }
-             else if (S_ISDIR (stsub.stat.st_mode))
-               {
-                 int pd_flag = 0;
-                 if (!recursion_option)
-                   pd_flag |= PD_FORCE_CHILDREN | NO_CHILDREN;
-                 else if (directory->children == ALL_CHILDREN)
-                   pd_flag |= PD_FORCE_CHILDREN | ALL_CHILDREN;
-                 *entry = 'D';
-
-                 stsub.parent = st;
-                 procdir (full_name, &stsub, pd_flag, entry);
-                 restore_parent_fd (&stsub);
-               }
-             else if (one_file_system_option && device != stsub.stat.st_dev)
+         for (entry = dumpdir_first (directory->dump, 1, &itr);
+              entry;
+              entry = dumpdir_next (itr))
+           {
+             char *full_name = namebuf_name (nbuf, entry + 1);
+             
+             if (*entry == 'I') /* Ignored entry */
                *entry = 'N';
-             else if (*entry == 'Y')
-               /* New entry, skip further checks */;
-             /* FIXME: if (S_ISHIDDEN (stat_data.st_mode))?? */
-             else if (OLDER_STAT_TIME (stsub.stat, m)
-                      && (!after_date_option
-                          || OLDER_STAT_TIME (stsub.stat, c)))
+             else if (excluded_name (full_name))
                *entry = 'N';
              else
-               *entry = 'Y';
+               {
+                 int fd = st->fd;
+                 void (*diag) (char const *) = 0;
+                 struct tar_stat_info stsub;
+                 tar_stat_init (&stsub);
 
-             tar_stat_destroy (&stsub);
+                 if (fd < 0)
+                   {
+                     errno = - fd;
+                     diag = open_diag;
+                   }
+                 else if (fstatat (fd, entry + 1, &stsub.stat,
+                                   fstatat_flags) != 0)
+                   diag = stat_diag;
+                 else if (S_ISDIR (stsub.stat.st_mode))
+                   {
+                     int subfd = subfile_open (st, entry + 1,
+                                               open_read_flags);
+                     if (subfd < 0)
+                       diag = open_diag;
+                     else
+                       {
+                         stsub.fd = subfd;
+                         if (fstat (subfd, &stsub.stat) != 0)
+                           diag = stat_diag;
+                       }
+                   }
+                 
+                 if (diag)
+                   {
+                     file_removed_diag (full_name, false, diag);
+                     *entry = 'N';
+                   }
+                 else if (S_ISDIR (stsub.stat.st_mode))
+                   {
+                     int pd_flag = 0;
+                     if (!recursion_option)
+                       pd_flag |= PD_FORCE_CHILDREN | NO_CHILDREN;
+                     else if (directory->children == ALL_CHILDREN)
+                       pd_flag |= PD_FORCE_CHILDREN | ALL_CHILDREN;
+                     *entry = 'D';
+                     
+                     stsub.parent = st;
+                     procdir (full_name, &stsub, pd_flag, entry);
+                     restore_parent_fd (&stsub);
+                   }
+                 else if (one_file_system_option &&
+                          device != stsub.stat.st_dev)
+                   *entry = 'N';
+                 else if (*entry == 'Y')
+                   /* New entry, skip further checks */;
+                 /* FIXME: if (S_ISHIDDEN (stat_data.st_mode))?? */
+                 else if (OLDER_STAT_TIME (stsub.stat, m)
+                          && (!after_date_option
+                              || OLDER_STAT_TIME (stsub.stat, c)))
+                   *entry = 'N';
+                 else
+                   *entry = 'Y';
+                 
+                 tar_stat_destroy (&stsub);
+               }
            }
+         free (itr);
        }
-      free (itr);
+      else if (directory->tagfile)
+       maketagdumpdir (directory);
     }
-
+  
   namebuf_free (nbuf);
 
   free (dirp);
@@ -829,7 +885,7 @@ store_rename (struct directory *dir, struct obstack *stk)
         are ignored when hit by this function next time.
         If the chain forms a cycle, prev points to the entry DIR is renamed
         from. In this case it still retains DIRF_RENAMED flag, which will be
-        cleared in the `else' branch below */
+        cleared in the 'else' branch below */
       for (prev = dir; prev && prev->orig != dir; prev = prev->orig)
        DIR_CLEAR_FLAG (prev, DIRF_RENAMED);
 
@@ -915,8 +971,6 @@ read_incr_db_01 (int version, const char *initbuf)
 {
   int n;
   uintmax_t u;
-  time_t sec;
-  long int nsec;
   char *buf = NULL;
   size_t bufsize = 0;
   char *ebuf;
@@ -938,21 +992,15 @@ read_incr_db_01 (int version, const char *initbuf)
       bufsize = strlen (buf) + 1;
     }
 
-  sec = TYPE_MINIMUM (time_t);
-  nsec = -1;
-  errno = 0;
-  u = strtoumax (buf, &ebuf, 10);
-  if (!errno && TYPE_MAXIMUM (time_t) < u)
-    errno = ERANGE;
-  if (errno || buf == ebuf)
+  newer_mtime_option = decode_timespec (buf, &ebuf, false);
+
+  if (! valid_timespec (newer_mtime_option))
     ERROR ((0, errno, "%s:%ld: %s",
            quotearg_colon (listed_incremental_option),
            lineno,
            _("Invalid time stamp")));
   else
     {
-      sec = u;
-
       if (version == 1 && *ebuf)
        {
          char const *buf_ns = ebuf + 1;
@@ -966,20 +1014,13 @@ read_incr_db_01 (int version, const char *initbuf)
                      quotearg_colon (listed_incremental_option),
                      lineno,
                      _("Invalid time stamp")));
-             sec = TYPE_MINIMUM (time_t);
+             newer_mtime_option.tv_sec = TYPE_MINIMUM (time_t);
+             newer_mtime_option.tv_nsec = -1;
            }
          else
-           nsec = u;
-       }
-      else
-       {
-         /* pre-1 incremental format does not contain nanoseconds */
-         nsec = 0;
+           newer_mtime_option.tv_nsec = u;
        }
     }
-  newer_mtime_option.tv_sec = sec;
-  newer_mtime_option.tv_nsec = nsec;
-
 
   while (0 < (n = getline (&buf, &bufsize, listed_incremental_stream)))
     {
@@ -996,20 +1037,12 @@ read_incr_db_01 (int version, const char *initbuf)
 
       if (version == 1)
        {
-         errno = 0;
-         u = strtoumax (strp, &ebuf, 10);
-         if (!errno && TYPE_MAXIMUM (time_t) < u)
-           errno = ERANGE;
-         if (errno || strp == ebuf || *ebuf != ' ')
-           {
-             ERROR ((0, errno, "%s:%ld: %s",
-                     quotearg_colon (listed_incremental_option), lineno,
-                     _("Invalid modification time (seconds)")));
-             sec = (time_t) -1;
-           }
-         else
-           sec = u;
+         mtime = decode_timespec (strp, &ebuf, false);
          strp = ebuf;
+         if (!valid_timespec (mtime) || *strp != ' ')
+           ERROR ((0, errno, "%s:%ld: %s",
+                   quotearg_colon (listed_incremental_option), lineno,
+                   _("Invalid modification time")));
 
          errno = 0;
          u = strtoumax (strp, &ebuf, 10);
@@ -1020,46 +1053,30 @@ read_incr_db_01 (int version, const char *initbuf)
              ERROR ((0, errno, "%s:%ld: %s",
                      quotearg_colon (listed_incremental_option), lineno,
                      _("Invalid modification time (nanoseconds)")));
-             nsec = -1;
+             mtime.tv_nsec = -1;
            }
          else
-           nsec = u;
-         mtime.tv_sec = sec;
-         mtime.tv_nsec = nsec;
+           mtime.tv_nsec = u;
          strp = ebuf;
        }
       else
-       memset (&mtime, 0, sizeof mtime);
+       mtime.tv_sec = mtime.tv_nsec = 0;
 
-      errno = 0;
-      u = strtoumax (strp, &ebuf, 10);
-      if (!errno && TYPE_MAXIMUM (dev_t) < u)
-       errno = ERANGE;
-      if (errno || strp == ebuf || *ebuf != ' ')
-       {
-         ERROR ((0, errno, "%s:%ld: %s",
-                 quotearg_colon (listed_incremental_option), lineno,
-                 _("Invalid device number")));
-         dev = (dev_t) -1;
-       }
-      else
-       dev = u;
+      dev = strtosysint (strp, &ebuf,
+                        TYPE_MINIMUM (dev_t), TYPE_MAXIMUM (dev_t));
       strp = ebuf;
+      if (errno || *strp != ' ')
+       ERROR ((0, errno, "%s:%ld: %s",
+               quotearg_colon (listed_incremental_option), lineno,
+               _("Invalid device number")));
 
-      errno = 0;
-      u = strtoumax (strp, &ebuf, 10);
-      if (!errno && TYPE_MAXIMUM (ino_t) < u)
-       errno = ERANGE;
-      if (errno || strp == ebuf || *ebuf != ' ')
-       {
-         ERROR ((0, errno, "%s:%ld: %s",
-                 quotearg_colon (listed_incremental_option), lineno,
-                 _("Invalid inode number")));
-         ino = (ino_t) -1;
-       }
-      else
-       ino = u;
+      ino = strtosysint (strp, &ebuf,
+                        TYPE_MINIMUM (ino_t), TYPE_MAXIMUM (ino_t));
       strp = ebuf;
+      if (errno || *strp != ' ')
+       ERROR ((0, errno, "%s:%ld: %s",
+               quotearg_colon (listed_incremental_option), lineno,
+               _("Invalid inode number")));
 
       strp++;
       unquote_string (strp);
@@ -1086,97 +1103,84 @@ read_obstack (FILE *fp, struct obstack *stk, size_t *pcount)
   return c;
 }
 
-/* Read from file FP a nul-terminated string and convert it to
-   intmax_t.  Return the resulting value in PVAL.  Assume '-' has
-   already been read.
+/* Read from file FP a null-terminated string and convert it to an
+   integer.  FIELDNAME is the intended use of the integer, useful for
+   diagnostics.  MIN_VAL and MAX_VAL are its minimum and maximum
+   permissible values; MIN_VAL must be nonpositive and MAX_VAL positive.
+   Store into *PVAL the resulting value, converted to intmax_t.
 
    Throw a fatal error if the string cannot be converted or if the
-   converted value is less than MIN_VAL.  */
+   converted value is out of range.
 
-static void
-read_negative_num (FILE *fp, intmax_t min_val, intmax_t *pval)
+   Return true if successful, false if end of file.  */
+
+static bool
+read_num (FILE *fp, char const *fieldname,
+         intmax_t min_val, uintmax_t max_val, intmax_t *pval)
 {
-  int c;
-  size_t i;
+  int i;
   char buf[INT_BUFSIZE_BOUND (intmax_t)];
-  char *ep;
-  buf[0] = '-';
+  char offbuf[INT_BUFSIZE_BOUND (off_t)];
+  char minbuf[INT_BUFSIZE_BOUND (intmax_t)];
+  char maxbuf[INT_BUFSIZE_BOUND (intmax_t)];
+  int conversion_errno;
+  int c = getc (fp);
+  bool negative = c == '-';
 
-  for (i = 1; ISDIGIT (c = getc (fp)); i++)
+  for (i = 0; (i == 0 && negative) || ISDIGIT (c); i++)
     {
-      if (i == sizeof buf - 1)
-       FATAL_ERROR ((0, 0, _("Field too long while reading snapshot file")));
       buf[i] = c;
-    }
-
-  if (c < 0)
-    {
-      if (ferror (fp))
-       FATAL_ERROR ((0, errno, _("Read error in snapshot file")));
-      else
-       FATAL_ERROR ((0, 0, _("Unexpected EOF in snapshot file")));
-    }
-
-  buf[i] = 0;
-  errno = 0;
-  *pval = strtoimax (buf, &ep, 10);
-  if (c || errno || *pval < min_val)
-    FATAL_ERROR ((0, errno, _("Unexpected field value in snapshot file")));
-}
-
-/* Read from file FP a nul-terminated string and convert it to
-   uintmax_t.  Return the resulting value in PVAL.  Assume C has
-   already been read.
-
-   Throw a fatal error if the string cannot be converted or if the
-   converted value exceeds MAX_VAL.
-
-   Return the last character read or EOF on end of file. */
-
-static int
-read_unsigned_num (int c, FILE *fp, uintmax_t max_val, uintmax_t *pval)
-{
-  size_t i;
-  char buf[UINTMAX_STRSIZE_BOUND], *ep;
-
-  for (i = 0; ISDIGIT (c); i++)
-    {
       if (i == sizeof buf - 1)
-       FATAL_ERROR ((0, 0, _("Field too long while reading snapshot file")));
-      buf[i] = c;
+       FATAL_ERROR ((0, 0,
+                     _("%s: byte %s: %s %.*s... too long"),
+                     quotearg_colon (listed_incremental_option),
+                     offtostr (ftello (fp), offbuf),
+                     fieldname, i + 1, buf));
       c = getc (fp);
     }
 
+  buf[i] = 0;
+
   if (c < 0)
     {
       if (ferror (fp))
-       FATAL_ERROR ((0, errno, _("Read error in snapshot file")));
-      else if (i == 0)
-       return c;
-      else
-       FATAL_ERROR ((0, 0, _("Unexpected EOF in snapshot file")));
+       read_fatal (listed_incremental_option);
+      if (i != 0)
+       FATAL_ERROR ((0, 0, "%s: %s",
+                     quotearg_colon (listed_incremental_option),
+                     _("Unexpected EOF in snapshot file")));
+      return false;
     }
 
-  buf[i] = 0;
-  errno = 0;
-  *pval = strtoumax (buf, &ep, 10);
-  if (c || errno || max_val < *pval)
-    FATAL_ERROR ((0, errno, _("Unexpected field value in snapshot file")));
-  return c;
-}
-
-/* Read from file FP a nul-terminated string and convert it to
-   uintmax_t.  Return the resulting value in PVAL.
+  if (c)
+    FATAL_ERROR ((0, 0,
+                 _("%s: byte %s: %s %s followed by invalid byte 0x%02x"),
+                 quotearg_colon (listed_incremental_option),
+                 offtostr (ftello (fp), offbuf),
+                 fieldname, buf, c));
 
-   Throw a fatal error if the string cannot be converted or if the
-   converted value exceeds MAX_VAL.
+  *pval = strtosysint (buf, NULL, min_val, max_val);
+  conversion_errno = errno;
 
-   Return the last character read or EOF on end of file. */
+  switch (conversion_errno)
+    {
+    case ERANGE:
+      FATAL_ERROR ((0, conversion_errno,
+                   _("%s: byte %s: (valid range %s..%s)\n\t%s %s"),
+                   quotearg_colon (listed_incremental_option),
+                   offtostr (ftello (fp), offbuf),
+                   imaxtostr (min_val, minbuf),
+                   umaxtostr (max_val, maxbuf), fieldname, buf));
+    default:
+      FATAL_ERROR ((0, conversion_errno,
+                   _("%s: byte %s: %s %s"),
+                   quotearg_colon (listed_incremental_option),
+                   offtostr (ftello (fp), offbuf), fieldname, buf));
+    case 0:
+      break;
+    }
 
-static int
-read_num (FILE *fp, uintmax_t max_val, uintmax_t *pval)
-{
-  return read_unsigned_num (getc (fp), fp, max_val, pval);
+  return true;
 }
 
 /* Read from FP two NUL-terminated strings representing a struct
@@ -1187,35 +1191,28 @@ read_num (FILE *fp, uintmax_t max_val, uintmax_t *pval)
 static void
 read_timespec (FILE *fp, struct timespec *pval)
 {
-  int c = getc (fp);
-  intmax_t i;
-  uintmax_t u;
+  intmax_t s, ns;
 
-  if (c == '-')
+  if (read_num (fp, "sec", TYPE_MINIMUM (time_t), TYPE_MAXIMUM (time_t), &s)
+      && read_num (fp, "nsec", 0, BILLION - 1, &ns))
     {
-      read_negative_num (fp, TYPE_MINIMUM (time_t), &i);
-      c = 0;
-      pval->tv_sec = i;
+      pval->tv_sec = s;
+      pval->tv_nsec = ns;
     }
   else
     {
-      c = read_unsigned_num (c, fp, TYPE_MAXIMUM (time_t), &u);
-      pval->tv_sec = u;
+      FATAL_ERROR ((0, 0, "%s: %s",
+                   quotearg_colon (listed_incremental_option),
+                   _("Unexpected EOF in snapshot file")));
     }
-
-  if (c || read_num (fp, BILLION - 1, &u))
-    FATAL_ERROR ((0, 0, "%s: %s",
-                 quotearg_colon (listed_incremental_option),
-                 _("Unexpected EOF in snapshot file")));
-  pval->tv_nsec = u;
 }
 
 /* Read incremental snapshot format 2 */
 static void
 read_incr_db_2 (void)
 {
-  uintmax_t u;
   struct obstack stk;
+  char offbuf[INT_BUFSIZE_BOUND (off_t)];
 
   obstack_init (&stk);
 
@@ -1223,6 +1220,7 @@ read_incr_db_2 (void)
 
   for (;;)
     {
+      intmax_t i;
       struct timespec mtime;
       dev_t dev;
       ino_t ino;
@@ -1231,20 +1229,22 @@ read_incr_db_2 (void)
       char *content;
       size_t s;
 
-      if (read_num (listed_incremental_stream, 1, &u))
+      if (! read_num (listed_incremental_stream, "nfs", 0, 1, &i))
        return; /* Normal return */
 
-      nfs = u;
+      nfs = i;
 
       read_timespec (listed_incremental_stream, &mtime);
 
-      if (read_num (listed_incremental_stream, TYPE_MAXIMUM (dev_t), &u))
+      if (! read_num (listed_incremental_stream, "dev",
+                     TYPE_MINIMUM (dev_t), TYPE_MAXIMUM (dev_t), &i))
        break;
-      dev = u;
+      dev = i;
 
-      if (read_num (listed_incremental_stream, TYPE_MAXIMUM (ino_t), &u))
+      if (! read_num (listed_incremental_stream, "ino",
+                     TYPE_MINIMUM (ino_t), TYPE_MAXIMUM (ino_t), &i))
        break;
-      ino = u;
+      ino = i;
 
       if (read_obstack (listed_incremental_stream, &stk, &s))
        break;
@@ -1254,8 +1254,9 @@ read_incr_db_2 (void)
       while (read_obstack (listed_incremental_stream, &stk, &s) == 0 && s > 1)
        ;
       if (getc (listed_incremental_stream) != 0)
-       FATAL_ERROR ((0, 0, "%s: %s",
+       FATAL_ERROR ((0, 0, _("%s: byte %s: %s"),
                      quotearg_colon (listed_incremental_option),
+                     offtostr (ftello (listed_incremental_stream), offbuf),
                      _("Missing record terminator")));
 
       content = obstack_finish (&stk);
@@ -1267,6 +1268,51 @@ read_incr_db_2 (void)
                _("Unexpected EOF in snapshot file")));
 }
 
+/* Display (to stdout) the range of allowed values for each field
+   in the snapshot file.  The array below should be kept in sync
+   with any changes made to the read_num() calls in the parsing
+   loop inside read_incr_db_2().
+
+   (This function is invoked via the --show-snapshot-field-ranges
+   command line option.) */
+
+struct field_range
+{
+  char const *fieldname;
+  intmax_t min_val;
+  uintmax_t max_val;
+};
+
+static struct field_range const field_ranges[] = {
+  { "nfs", 0, 1 },
+  { "timestamp_sec", TYPE_MINIMUM (time_t), TYPE_MAXIMUM (time_t) },
+  { "timestamp_nsec", 0, BILLION - 1 },
+  { "dev", TYPE_MINIMUM (dev_t), TYPE_MAXIMUM (dev_t) },
+  { "ino", TYPE_MINIMUM (ino_t), TYPE_MAXIMUM (ino_t) },
+  { NULL, 0, 0 }
+};
+
+void
+show_snapshot_field_ranges (void)
+{
+  struct field_range const *p;
+  char minbuf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (intmax_t))];
+  char maxbuf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (uintmax_t))];
+
+  printf("This tar's snapshot file field ranges are\n");
+  printf ("   (%-15s => [ %s, %s ]):\n\n", "field name", "min", "max");
+
+  for (p=field_ranges; p->fieldname != NULL; p++)
+    {
+      printf ("    %-15s => [ %s, %s ],\n", p->fieldname,
+             sysinttostr (p->min_val, p->min_val, p->max_val, minbuf),
+             sysinttostr (p->max_val, p->min_val, p->max_val, maxbuf));
+
+    }
+
+  printf("\n");
+}
+
 /* Read incremental snapshot file (directory file).
    If the file has older incremental version, make sure that it is processed
    correctly and that tar will use the most conservative backup method among
@@ -1360,20 +1406,21 @@ write_directory_file_entry (void *entry, void *data)
 
   if (DIR_IS_FOUND (directory))
     {
-      char buf[UINTMAX_STRSIZE_BOUND];
+      char buf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (intmax_t))];
       char const *s;
 
       s = DIR_IS_NFS (directory) ? "1" : "0";
       fwrite (s, 2, 1, fp);
-      s = (TYPE_SIGNED (time_t)
-          ? imaxtostr (directory->mtime.tv_sec, buf)
-          : umaxtostr (directory->mtime.tv_sec, buf));
+      s = sysinttostr (directory->mtime.tv_sec, TYPE_MINIMUM (time_t),
+                      TYPE_MAXIMUM (time_t), buf);
       fwrite (s, strlen (s) + 1, 1, fp);
-      s = umaxtostr (directory->mtime.tv_nsec, buf);
+      s = imaxtostr (directory->mtime.tv_nsec, buf);
       fwrite (s, strlen (s) + 1, 1, fp);
-      s = umaxtostr (directory->device_number, buf);
+      s = sysinttostr (directory->device_number,
+                      TYPE_MINIMUM (dev_t), TYPE_MAXIMUM (dev_t), buf);
       fwrite (s, strlen (s) + 1, 1, fp);
-      s = umaxtostr (directory->inode_number, buf);
+      s = sysinttostr (directory->inode_number,
+                      TYPE_MINIMUM (ino_t), TYPE_MAXIMUM (ino_t), buf);
       fwrite (s, strlen (s) + 1, 1, fp);
 
       fwrite (directory->name, strlen (directory->name) + 1, 1, fp);
@@ -1580,7 +1627,7 @@ try_purge_directory (char const *directory_name)
   if (!is_dumpdir (&current_stat_info))
     return false;
 
-  current_dir = savedir (directory_name);
+  current_dir = tar_savedir (directory_name, 0);
 
   if (!current_dir)
     /* The directory doesn't exist now.  It'll be created.  In any
index cf2de096d00b9d3ea29fe3ef7a1c88e22ce02462..858aa7391b4f570dce2d80ea0bd788d4501b8846 100644 (file)
@@ -1,23 +1,24 @@
 /* List a tar archive, with support routines for reading a tar archive.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000,
-   2001, 2003, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc.
+   Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2013
+   Free Software Foundation, Inc.
 
-   Written by John Gilmore, on 1985-08-26.
+   This file is part of GNU tar.
 
-   This program is free software; you can redistribute 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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+   GNU tar 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, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   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 John Gilmore, on 1985-08-26.  */
 
 #include <system.h>
 #include <inttostr.h>
 
 #include "common.h"
 
-#define max(a, b) ((a) < (b) ? (b) : (a))
-
 union block *current_header;   /* points to current archive header */
 enum archive_format current_format; /* recognized format */
 union block *recent_long_name; /* recent long name header and contents */
 union block *recent_long_link; /* likewise, for long link */
 size_t recent_long_name_blocks;        /* number of blocks in recent_long_name */
 size_t recent_long_link_blocks;        /* likewise, for long link */
-union block *recent_global_header; /* Recent global header block */
+static union block *recent_global_header; /* Recent global header block */
 
 #define GID_FROM_HEADER(where) gid_from_header (where, sizeof (where))
 #define MAJOR_FROM_HEADER(where) major_from_header (where, sizeof (where))
@@ -46,11 +45,11 @@ union block *recent_global_header; /* Recent global header block */
 static gid_t gid_from_header (const char *buf, size_t size);
 static major_t major_from_header (const char *buf, size_t size);
 static minor_t minor_from_header (const char *buf, size_t size);
-static mode_t mode_from_header (const char *buf, size_t size, unsigned *hbits);
+static mode_t mode_from_header (const char *buf, size_t size, bool *hbits);
 static time_t time_from_header (const char *buf, size_t size);
 static uid_t uid_from_header (const char *buf, size_t size);
-static uintmax_t from_header (const char *, size_t, const char *,
-                             uintmax_t, uintmax_t, bool, bool);
+static intmax_t from_header (const char *, size_t, const char *,
+                            intmax_t, uintmax_t, bool, bool);
 
 /* Base 64 digits; see Internet RFC 2045 Table 1.  */
 static char const base_64_digits[64] =
@@ -317,7 +316,7 @@ tar_checksum (union block *header, bool silent)
   int unsigned_sum = 0;                /* the POSIX one :-) */
   int signed_sum = 0;          /* the Sun one :-( */
   int recorded_sum;
-  uintmax_t parsed_sum;
+  int parsed_sum;
   char *p;
 
   p = header->buffer;
@@ -342,9 +341,8 @@ tar_checksum (union block *header, bool silent)
 
   parsed_sum = from_header (header->header.chksum,
                            sizeof header->header.chksum, 0,
-                           (uintmax_t) 0,
-                           (uintmax_t) TYPE_MAXIMUM (int), true, silent);
-  if (parsed_sum == (uintmax_t) -1)
+                           0, INT_MAX, true, silent);
+  if (parsed_sum < 0)
     return HEADER_FAILURE;
 
   recorded_sum = parsed_sum;
@@ -407,7 +405,11 @@ read_header (union block **return_block, struct tar_stat_info *info,
       if (header->header.typeflag == LNKTYPE)
        info->stat.st_size = 0; /* links 0 size on tape */
       else
-       info->stat.st_size = OFF_FROM_HEADER (header->header.size);
+       {
+         info->stat.st_size = OFF_FROM_HEADER (header->header.size);
+         if (info->stat.st_size < 0)
+           return HEADER_FAILURE;
+       }
 
       if (header->header.typeflag == GNUTYPE_LONGNAME
          || header->header.typeflag == GNUTYPE_LONGLINK
@@ -572,7 +574,7 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
               enum archive_format *format_pointer, int do_user_group)
 {
   enum archive_format format;
-  unsigned hbits; /* high bits of the file mode. */
+  bool hbits;
   mode_t mode = MODE_FROM_HEADER (header->header.mode, &hbits);
 
   if (strcmp (header->header.magic, TMAGIC) == 0)
@@ -604,6 +606,8 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
   assign_string (&stat_info->gname,
                 header->header.gname[0] ? header->header.gname : NULL);
 
+  xheader_xattr_init (stat_info);
+
   if (format == OLDGNU_FORMAT && incremental_option)
     {
       stat_info->atime.tv_sec = TIME_FROM_HEADER (header->oldgnu_header.atime);
@@ -677,20 +681,30 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
 
 
 /* Convert buffer at WHERE0 of size DIGS from external format to
-   uintmax_t.  DIGS must be positive.  If TYPE is nonnull, the data
-   are of type TYPE.  The buffer must represent a value in the range
-   -MINUS_MINVAL through MAXVAL.  If OCTAL_ONLY, allow only octal
+   intmax_t.  DIGS must be positive.  If TYPE is nonnull, the data are
+   of type TYPE.  The buffer must represent a value in the range
+   MINVAL through MAXVAL; if the mathematically correct result V would
+   be greater than INTMAX_MAX, return a negative integer V such that
+   (uintmax_t) V yields the correct result.  If OCTAL_ONLY, allow only octal
    numbers instead of the other GNU extensions.  Return -1 on error,
    diagnosing the error if TYPE is nonnull and if !SILENT.  */
-static uintmax_t
+#if ! (INTMAX_MAX <= UINTMAX_MAX && - (INTMAX_MIN + 1) <= UINTMAX_MAX)
+# error "from_header internally represents intmax_t as uintmax_t + sign"
+#endif
+#if ! (UINTMAX_MAX / 2 <= INTMAX_MAX)
+# error "from_header returns intmax_t to represent uintmax_t"
+#endif
+static intmax_t
 from_header (char const *where0, size_t digs, char const *type,
-            uintmax_t minus_minval, uintmax_t maxval,
+            intmax_t minval, uintmax_t maxval,
             bool octal_only, bool silent)
 {
   uintmax_t value;
+  uintmax_t uminval = minval;
+  uintmax_t minus_minval = - uminval;
   char const *where = where0;
   char const *lim = where + digs;
-  int negative = 0;
+  bool negative = false;
 
   /* Accommodate buggy tar of unknown vintage, which outputs leading
      NUL if the previous field overflows.  */
@@ -718,14 +732,14 @@ from_header (char const *where0, size_t digs, char const *type,
   if (ISODIGIT (*where))
     {
       char const *where1 = where;
-      uintmax_t overflow = 0;
+      bool overflow = false;
 
       for (;;)
        {
          value += *where++ - '0';
          if (where == lim || ! ISODIGIT (*where))
            break;
-         overflow |= value ^ (value << LG_8 >> LG_8);
+         overflow |= value != (value << LG_8 >> LG_8);
          value <<= LG_8;
        }
 
@@ -749,7 +763,7 @@ from_header (char const *where0, size_t digs, char const *type,
              if (where == lim || ! ISODIGIT (*where))
                break;
              digit = *where - '0';
-             overflow |= value ^ (value << LG_8 >> LG_8);
+             overflow |= value != (value << LG_8 >> LG_8);
              value <<= LG_8;
            }
          value++;
@@ -762,7 +776,7 @@ from_header (char const *where0, size_t digs, char const *type,
                       /* TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) */
                       _("Archive octal value %.*s is out of %s range; assuming two's complement"),
                       (int) (where - where1), where1, type));
-             negative = 1;
+             negative = true;
            }
        }
 
@@ -842,7 +856,7 @@ from_header (char const *where0, size_t digs, char const *type,
              return -1;
            }
        }
-      negative = signbit;
+      negative = signbit != 0;
       if (negative)
        value = -value;
     }
@@ -862,7 +876,7 @@ from_header (char const *where0, size_t digs, char const *type,
 
          while (where0 != lim && ! lim[-1])
            lim--;
-         quotearg_buffer (buf, sizeof buf, where0, lim - where, o);
+         quotearg_buffer (buf, sizeof buf, where0, lim - where0, o);
          if (!silent)
            ERROR ((0, 0,
                    /* TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) */
@@ -874,7 +888,7 @@ from_header (char const *where0, size_t digs, char const *type,
     }
 
   if (value <= (negative ? minus_minval : maxval))
-    return negative ? -value : value;
+    return represent_uintmax (negative ? -value : value);
 
   if (type && !silent)
     {
@@ -900,8 +914,7 @@ static gid_t
 gid_from_header (const char *p, size_t s)
 {
   return from_header (p, s, "gid_t",
-                     - (uintmax_t) TYPE_MINIMUM (gid_t),
-                     (uintmax_t) TYPE_MAXIMUM (gid_t),
+                     TYPE_MINIMUM (gid_t), TYPE_MAXIMUM (gid_t),
                      false, false);
 }
 
@@ -909,26 +922,26 @@ static major_t
 major_from_header (const char *p, size_t s)
 {
   return from_header (p, s, "major_t",
-                     - (uintmax_t) TYPE_MINIMUM (major_t),
-                     (uintmax_t) TYPE_MAXIMUM (major_t), false, false);
+                     TYPE_MINIMUM (major_t), TYPE_MAXIMUM (major_t),
+                     false, false);
 }
 
 static minor_t
 minor_from_header (const char *p, size_t s)
 {
   return from_header (p, s, "minor_t",
-                     - (uintmax_t) TYPE_MINIMUM (minor_t),
-                     (uintmax_t) TYPE_MAXIMUM (minor_t), false, false);
+                     TYPE_MINIMUM (minor_t), TYPE_MAXIMUM (minor_t),
+                     false, false);
 }
 
 /* Convert P to the file mode, as understood by tar.
-   Store unrecognized mode bits (from 10th up) in HBITS. */
+   Set *HBITS if there are any unrecognized bits.  */
 static mode_t
-mode_from_header (const char *p, size_t s, unsigned *hbits)
+mode_from_header (const char *p, size_t s, bool *hbits)
 {
-  unsigned u = from_header (p, s, "mode_t",
-                           - (uintmax_t) TYPE_MINIMUM (mode_t),
-                           TYPE_MAXIMUM (uintmax_t), false, false);
+  intmax_t u = from_header (p, s, "mode_t",
+                           INTMAX_MIN, UINTMAX_MAX,
+                           false, false);
   mode_t mode = ((u & TSUID ? S_ISUID : 0)
                 | (u & TSGID ? S_ISGID : 0)
                 | (u & TSVTX ? S_ISVTX : 0)
@@ -941,7 +954,7 @@ mode_from_header (const char *p, size_t s, unsigned *hbits)
                 | (u & TOREAD ? S_IROTH : 0)
                 | (u & TOWRITE ? S_IWOTH : 0)
                 | (u & TOEXEC ? S_IXOTH : 0));
-  *hbits = mode ^ u;
+  *hbits = (u & ~07777) != 0;
   return mode;
 }
 
@@ -950,31 +963,31 @@ off_from_header (const char *p, size_t s)
 {
   /* Negative offsets are not allowed in tar files, so invoke
      from_header with minimum value 0, not TYPE_MINIMUM (off_t).  */
-  return from_header (p, s, "off_t", (uintmax_t) 0,
-                     (uintmax_t) TYPE_MAXIMUM (off_t), false, false);
+  return from_header (p, s, "off_t",
+                     0, TYPE_MAXIMUM (off_t),
+                     false, false);
 }
 
 static time_t
 time_from_header (const char *p, size_t s)
 {
   return from_header (p, s, "time_t",
-                     - (uintmax_t) TYPE_MINIMUM (time_t),
-                     (uintmax_t) TYPE_MAXIMUM (time_t), false, false);
+                     TYPE_MINIMUM (time_t), TYPE_MAXIMUM (time_t),
+                     false, false);
 }
 
 static uid_t
 uid_from_header (const char *p, size_t s)
 {
   return from_header (p, s, "uid_t",
-                     - (uintmax_t) TYPE_MINIMUM (uid_t),
-                     (uintmax_t) TYPE_MAXIMUM (uid_t), false, false);
+                     TYPE_MINIMUM (uid_t), TYPE_MAXIMUM (uid_t),
+                     false, false);
 }
 
 uintmax_t
 uintmax_from_header (const char *p, size_t s)
 {
-  return from_header (p, s, "uintmax_t", (uintmax_t) 0,
-                     TYPE_MAXIMUM (uintmax_t), false, false);
+  return from_header (p, s, "uintmax_t", 0, UINTMAX_MAX, false, false);
 }
 
 
@@ -1064,13 +1077,14 @@ static void
 simple_print_header (struct tar_stat_info *st, union block *blk,
                     off_t block_ordinal)
 {
-  char modes[11];
+  char modes[12];
   char const *time_stamp;
   int time_stamp_len;
   char *temp_name;
 
   /* These hold formatted ints.  */
-  char uform[UINTMAX_STRSIZE_BOUND], gform[UINTMAX_STRSIZE_BOUND];
+  char uform[max (INT_BUFSIZE_BOUND (intmax_t), UINTMAX_STRSIZE_BOUND)];
+  char gform[sizeof uform];
   char *user, *group;
   char size[2 * UINTMAX_STRSIZE_BOUND];
                                /* holds formatted size or major,minor */
@@ -1156,6 +1170,9 @@ simple_print_header (struct tar_stat_info *st, union block *blk,
 
       pax_decode_mode (st->stat.st_mode, modes + 1);
 
+      /* extended attributes:  GNU `ls -l'-like preview */
+      xattrs_print_char (st, modes + 10);
+
       /* Time stamp.  */
 
       time_stamp = tartime (st->mtime, full_time_option);
@@ -1177,17 +1194,11 @@ simple_print_header (struct tar_stat_info *st, union block *blk,
             ids that are too large to fit in a uid_t.  */
          uintmax_t u = from_header (blk->header.uid,
                                     sizeof blk->header.uid, 0,
-                                    (uintmax_t) 0,
-                                    (uintmax_t) TYPE_MAXIMUM (uintmax_t),
+                                    0, UINTMAX_MAX,
                                     false, false);
-         if (u != -1)
-           user = STRINGIFY_BIGINT (u, uform);
-         else
-           {
-             sprintf (uform, "%ld",
-                      (long) UID_FROM_HEADER (blk->header.uid));
-             user = uform;
-           }
+         user = (u != -1
+                 ? STRINGIFY_BIGINT (u, uform)
+                 : imaxtostr (UID_FROM_HEADER (blk->header.uid), uform));
        }
 
       if (st->gname
@@ -1202,17 +1213,11 @@ simple_print_header (struct tar_stat_info *st, union block *blk,
             ids that are too large to fit in a gid_t.  */
          uintmax_t g = from_header (blk->header.gid,
                                     sizeof blk->header.gid, 0,
-                                    (uintmax_t) 0,
-                                    (uintmax_t) TYPE_MAXIMUM (uintmax_t),
+                                    0, UINTMAX_MAX,
                                     false, false);
-         if (g != -1)
-           group = STRINGIFY_BIGINT (g, gform);
-         else
-           {
-             sprintf (gform, "%ld",
-                      (long) GID_FROM_HEADER (blk->header.gid));
-             group = gform;
-           }
+         group = (g != -1
+                  ? STRINGIFY_BIGINT (g, gform)
+                  : imaxtostr (GID_FROM_HEADER (blk->header.gid), gform));
        }
 
       /* Format the file size or major/minor device numbers.  */
@@ -1301,6 +1306,7 @@ simple_print_header (struct tar_stat_info *st, union block *blk,
        }
     }
   fflush (stdlis);
+  xattrs_print (st);
 }
 
 
@@ -1357,8 +1363,8 @@ print_for_mkdir (char *dirname, int length, mode_t mode)
                   STRINGIFY_BIGINT (current_block_ordinal (), buf));
        }
 
-      fprintf (stdlis, "%s %*s %.*s\n", modes, ugswidth + 1 + datewidth,
-              _("Creating directory:"), length, quotearg (dirname));
+      fprintf (stdlis, "%s %*s %s\n", modes, ugswidth + 1 + datewidth,
+              _("Creating directory:"), quotearg (dirname));
     }
 }
 
@@ -1415,7 +1421,7 @@ skip_member (void)
 }
 
 void
-test_archive_label ()
+test_archive_label (void)
 {
   base64_init ();
   name_gather ();
index b75f2ab4e419e4f9a928e75b25342630f2ad17ec..0424ea7cc2f9a582805a99e6463ce042cf68d626 100644 (file)
@@ -1,7 +1,7 @@
 /* Miscellaneous functions, not really specific to GNU tar.
 
-   Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 1988, 1992, 1994-1997, 1999-2001, 2003-2007, 2009-2010,
+   2012-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
@@ -14,9 +14,9 @@
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#define COMMON_INLINE _GL_EXTERN_INLINE
 #include <system.h>
 #include <rmt.h>
 #include "common.h"
@@ -105,7 +105,7 @@ quote_copy_string (const char *string)
    completes the unquoting anyway.
 
    This is used for reading the saved directory file in incremental
-   dumps.  It is used for decoding old `N' records (demangling names).
+   dumps.  It is used for decoding old 'N' records (demangling names).
    But also, it is used for decoding file arguments, would they come
    from the shell or a -T file, and for decoding the --exclude
    argument.  */
@@ -229,11 +229,12 @@ zap_slashes (char *name)
 }
 
 /* Normalize FILE_NAME by removing redundant slashes and "."
-   components, including redundant trailing slashes.  Leave ".."
-   alone, as it may be significant in the presence of symlinks and on
-   platforms where "/.." != "/".  Destructive version: modifies its
-   argument. */
-static void
+   components, including redundant trailing slashes.
+   Leave ".." alone, as it may be significant in the presence 
+   of symlinks and on platforms where "/.." != "/".
+
+   Destructive version: modifies its argument. */
+void
 normalize_filename_x (char *file_name)
 {
   char *name = file_name + FILE_SYSTEM_PREFIX_LEN (file_name);
@@ -267,37 +268,39 @@ normalize_filename_x (char *file_name)
 }
 
 /* Normalize NAME by removing redundant slashes and "." components,
-   including redundant trailing slashes.  Return a normalized
-   newly-allocated copy.  */
+   including redundant trailing slashes.
+
+   Return a normalized newly-allocated copy.  */
 
 char *
-normalize_filename (const char *name)
+normalize_filename (int cdidx, const char *name)
 {
   char *copy = NULL;
 
   if (IS_RELATIVE_FILE_NAME (name))
     {
-      /* Set COPY to the absolute file name if possible.
+      /* Set COPY to the absolute path for this name.
 
          FIXME: There should be no need to get the absolute file name.
-         getcwd is slow, it might fail, and it does not necessarily
-         return a canonical name even when it succeeds.  Perhaps we
-         can use dev+ino pairs instead of names?  */
-      copy = xgetcwd ();
-      if (copy)
-        {
-          size_t copylen = strlen (copy);
-          bool need_separator = ! (DOUBLE_SLASH_IS_DISTINCT_ROOT
-                                   && copylen == 2 && ISSLASH (copy[1]));
-          copy = xrealloc (copy, copylen + need_separator + strlen (name) + 1);
-          copy[copylen] = DIRECTORY_SEPARATOR;
-          strcpy (copy + copylen + need_separator, name);
-        }
-      else
-        WARN ((0, errno, _("Cannot get working directory")));
+         tar_getcdpath does not return a true "canonical" path, so
+         this following approach may lead to situations where the same
+         file or directory is processed twice under different absolute
+         paths without that duplication being detected.  Perhaps we
+         should use dev+ino pairs instead of names?  */
+      const char *cdpath = tar_getcdpath (cdidx);
+      size_t copylen;
+      bool need_separator;
+      
+      copylen = strlen (cdpath);
+      need_separator = ! (DOUBLE_SLASH_IS_DISTINCT_ROOT
+                         && copylen == 2 && ISSLASH (cdpath[1]));
+      copy = xmalloc (copylen + need_separator + strlen (name) + 1);
+      strcpy (copy, cdpath);
+      copy[copylen] = DIRECTORY_SEPARATOR;
+      strcpy (copy + copylen + need_separator, name);
     }
 
-  if (! copy)
+  if (!copy)
     copy = xstrdup (name);
   normalize_filename_x (copy);
   return copy;
@@ -325,6 +328,76 @@ replace_prefix (char **pname, const char *samp, size_t slen,
 \f
 /* Handling numbers.  */
 
+/* Convert VALUE, which is converted from a system integer type whose
+   minimum value is MINVAL and maximum MINVAL, to an decimal
+   integer string.  Use the storage in BUF and return a pointer to the
+   converted string.  If VALUE is converted from a negative integer in
+   the range MINVAL .. -1, represent it with a string representation
+   of the negative integer, using leading '-'.  */
+#if ! (INTMAX_MAX <= UINTMAX_MAX / 2)
+# error "sysinttostr: uintmax_t cannot represent all intmax_t values"
+#endif
+char *
+sysinttostr (uintmax_t value, intmax_t minval, uintmax_t maxval,
+            char buf[SYSINT_BUFSIZE])
+{
+  if (value <= maxval)
+    return umaxtostr (value, buf);
+  else
+    {
+      intmax_t i = value - minval;
+      return imaxtostr (i + minval, buf);
+    }
+}
+
+/* Convert a prefix of the string ARG to a system integer type whose
+   minimum value is MINVAL and maximum MAXVAL.  If MINVAL is negative,
+   negative integers MINVAL .. -1 are assumed to be represented using
+   leading '-' in the usual way.  If the represented value exceeds
+   INTMAX_MAX, return a negative integer V such that (uintmax_t) V
+   yields the represented value.  If ARGLIM is nonnull, store into
+   *ARGLIM a pointer to the first character after the prefix.
+
+   This is the inverse of sysinttostr.
+
+   On a normal return, set errno = 0.
+   On conversion error, return 0 and set errno = EINVAL.
+   On overflow, return an extreme value and set errno = ERANGE.  */
+#if ! (INTMAX_MAX <= UINTMAX_MAX)
+# error "strtosysint: nonnegative intmax_t does not fit in uintmax_t"
+#endif
+intmax_t
+strtosysint (char const *arg, char **arglim, intmax_t minval, uintmax_t maxval)
+{
+  errno = 0;
+  if (maxval <= INTMAX_MAX)
+    {
+      if (ISDIGIT (arg[*arg == '-']))
+       {
+         intmax_t i = strtoimax (arg, arglim, 10);
+         intmax_t imaxval = maxval;
+         if (minval <= i && i <= imaxval)
+           return i;
+         errno = ERANGE;
+         return i < minval ? minval : maxval;
+       }
+    }
+  else
+    {
+      if (ISDIGIT (*arg))
+       {
+         uintmax_t i = strtoumax (arg, arglim, 10);
+         if (i <= maxval)
+           return represent_uintmax (i);
+         errno = ERANGE;
+         return maxval;
+       }
+    }
+
+  errno = EINVAL;
+  return 0;
+}
+
 /* Output fraction and trailing digits appropriate for a nanoseconds
    count equal to NS, but don't output unnecessary '.' or trailing
    zeros.  */
@@ -381,6 +454,84 @@ code_timespec (struct timespec t, char sbuf[TIMESPEC_STRSIZE_BOUND])
   code_ns_fraction (ns, sbuf + UINTMAX_STRSIZE_BOUND);
   return np;
 }
+
+struct timespec
+decode_timespec (char const *arg, char **arg_lim, bool parse_fraction)
+{
+  time_t s = TYPE_MINIMUM (time_t);
+  int ns = -1;
+  char const *p = arg;
+  bool negative = *arg == '-';
+  struct timespec r;
+
+  if (! ISDIGIT (arg[negative]))
+    errno = EINVAL;
+  else
+    {
+      errno = 0;
+
+      if (negative)
+       {
+         intmax_t i = strtoimax (arg, arg_lim, 10);
+         if (TYPE_SIGNED (time_t) ? TYPE_MINIMUM (time_t) <= i : 0 <= i)
+           s = i;
+         else
+           errno = ERANGE;
+       }
+      else
+       {
+         uintmax_t i = strtoumax (arg, arg_lim, 10);
+         if (i <= TYPE_MAXIMUM (time_t))
+           s = i;
+         else
+           errno = ERANGE;
+       }
+
+      p = *arg_lim;
+      ns = 0;
+
+      if (parse_fraction && *p == '.')
+       {
+         int digits = 0;
+         bool trailing_nonzero = false;
+
+         while (ISDIGIT (*++p))
+           if (digits < LOG10_BILLION)
+             digits++, ns = 10 * ns + (*p - '0');
+           else
+             trailing_nonzero |= *p != '0';
+
+         while (digits < LOG10_BILLION)
+           digits++, ns *= 10;
+
+         if (negative)
+           {
+             /* Convert "-1.10000000000001" to s == -2, ns == 89999999.
+                I.e., truncate time stamps towards minus infinity while
+                converting them to internal form.  */
+             ns += trailing_nonzero;
+             if (ns != 0)
+               {
+                 if (s == TYPE_MINIMUM (time_t))
+                   ns = -1;
+                 else
+                   {
+                     s--;
+                     ns = BILLION - ns;
+                   }
+               }
+           }
+       }
+
+      if (errno == ERANGE)
+       ns = -1;
+    }
+
+  *arg_lim = (char *) p;
+  r.tv_sec = s;
+  r.tv_nsec = ns;
+  return r;
+}
 \f
 /* File handling.  */
 
@@ -483,7 +634,7 @@ remove_any_file (const char *file_name, enum remove_option option)
 
        case RECURSIVE_REMOVE_OPTION:
          {
-           char *directory = savedir (file_name);
+           char *directory = tar_savedir (file_name, 0);
            char const *entry;
            size_t entrylen;
 
@@ -616,6 +767,57 @@ deref_stat (char const *name, struct stat *buf)
   return fstatat (chdir_fd, name, buf, fstatat_flags);
 }
 
+/* Read from FD into the buffer BUF with COUNT bytes.  Attempt to fill
+   BUF.  Wait until input is available; this matters because files are
+   opened O_NONBLOCK for security reasons, and on some file systems
+   this can cause read to fail with errno == EAGAIN.  Return the
+   actual number of bytes read, zero for EOF, or
+   SAFE_READ_ERROR upon error.  */
+size_t
+blocking_read (int fd, void *buf, size_t count)
+{
+  size_t bytes = safe_read (fd, buf, count);
+
+#if defined F_SETFL && O_NONBLOCK
+  if (bytes == SAFE_READ_ERROR && errno == EAGAIN)
+    {
+      int flags = fcntl (fd, F_GETFL);
+      if (0 <= flags && flags & O_NONBLOCK
+         && fcntl (fd, F_SETFL, flags & ~O_NONBLOCK) != -1)
+       bytes = safe_read (fd, buf, count);
+    }
+#endif
+
+  return bytes;
+}
+
+/* Write to FD from the buffer BUF with COUNT bytes.  Do a full write.
+   Wait until an output buffer is available; this matters because
+   files are opened O_NONBLOCK for security reasons, and on some file
+   systems this can cause write to fail with errno == EAGAIN.  Return
+   the actual number of bytes written, setting errno if that is less
+   than COUNT.  */
+size_t
+blocking_write (int fd, void const *buf, size_t count)
+{
+  size_t bytes = full_write (fd, buf, count);
+
+#if defined F_SETFL && O_NONBLOCK
+  if (bytes < count && errno == EAGAIN)
+    {
+      int flags = fcntl (fd, F_GETFL);
+      if (0 <= flags && flags & O_NONBLOCK
+         && fcntl (fd, F_SETFL, flags & ~O_NONBLOCK) != -1)
+       {
+         char const *buffer = buf;
+         bytes += full_write (fd, buffer + bytes, count - bytes);
+       }
+    }
+#endif
+
+  return bytes;
+}
+
 /* Set FD's (i.e., assuming the working directory is PARENTFD, FILE's)
    access time to ATIME.  */
 int
@@ -632,7 +834,10 @@ struct wd
 {
   /* The directory's name.  */
   char const *name;
-
+  /* "absolute" path representing this directory; in the contrast to
+     the real absolute pathname, it can contain /../ components (see
+     normalize_filename_x for the reason of it). */
+  char *abspath; 
   /* If nonzero, the file descriptor of the directory, or AT_FDCWD if
      the working directory.  If zero, the directory needs to be opened
      to be used.  */
@@ -662,7 +867,7 @@ static int wdcache[CHDIR_CACHE_SIZE];
 static size_t wdcache_count;
 
 int
-chdir_count ()
+chdir_count (void)
 {
   if (wd_count == 0)
     return wd_count;
@@ -687,6 +892,7 @@ chdir_arg (char const *dir)
       if (! wd_count)
        {
          wd[wd_count].name = ".";
+         wd[wd_count].abspath = xgetcwd ();
          wd[wd_count].fd = AT_FDCWD;
          wd_count++;
        }
@@ -704,6 +910,17 @@ chdir_arg (char const *dir)
     }
 
   wd[wd_count].name = dir;
+  /* if the given name is an absolute path, then use that path
+     to represent this working directory; otherwise, construct
+     a path based on the previous -C option's absolute path */
+  if (IS_ABSOLUTE_FILE_NAME (wd[wd_count].name))
+    wd[wd_count].abspath = xstrdup (wd[wd_count].name);
+  else
+    {
+      namebuf_t nbuf = namebuf_create (wd[wd_count - 1].abspath);
+      namebuf_add_dir (nbuf, wd[wd_count].name);
+      wd[wd_count].abspath = namebuf_finish (nbuf);
+    }
   wd[wd_count].fd = 0;
   return wd_count++;
 }
@@ -763,11 +980,11 @@ chdir_do (int i)
          int prev = wdcache[0];
          for (ci = 1; prev != i; ci++)
            {
-             int curr = wdcache[ci];
+             int cur = wdcache[ci];
              wdcache[ci] = prev;
-             if (curr == i)
+             if (cur == i)
                break;
-             prev = curr;
+             prev = cur;
            }
          wdcache[0] = i;
        }
@@ -777,6 +994,32 @@ chdir_do (int i)
     }
 }
 \f
+const char *
+tar_dirname (void)
+{
+  return wd[chdir_current].name;
+}
+
+/* Return the absolute path that represents the working
+   directory referenced by IDX.
+
+   If wd is empty, then there were no -C options given, and
+   chdir_args() has never been called, so we simply return the
+   process's actual cwd.  (Note that in this case IDX is ignored,
+   since it should always be 0.) */
+const char *
+tar_getcdpath (int idx)
+{
+  if (!wd)
+    {
+      static char *cwd;
+      if (!cwd)
+       cwd = xgetcwd ();
+      return cwd;
+    }
+  return wd[idx].abspath;
+}
+\f
 void
 close_diag (char const *name)
 {
@@ -911,7 +1154,7 @@ page_aligned_alloc (void **ptr, size_t size)
 
 struct namebuf
 {
-  char *buffer;                /* directory, `/', and directory member */
+  char *buffer;                /* directory, '/', and directory member */
   size_t buffer_size;  /* allocated size of name_buffer */
   size_t dir_length;   /* length of directory part in buffer */
 };
@@ -945,3 +1188,55 @@ namebuf_name (namebuf_t buf, const char *name)
   strcpy (buf->buffer + buf->dir_length, name);
   return buf->buffer;
 }
+
+void
+namebuf_add_dir (namebuf_t buf, const char *name)
+{
+  static char dirsep[] = { DIRECTORY_SEPARATOR, 0 };
+  if (!ISSLASH (buf->buffer[buf->dir_length - 1]))
+    {
+      namebuf_name (buf, dirsep);
+      buf->dir_length++;
+    }
+  namebuf_name (buf, name);
+  buf->dir_length += strlen (name);
+}
+
+char *
+namebuf_finish (namebuf_t buf)
+{
+  char *res = buf->buffer;
+  
+  if (ISSLASH (buf->buffer[buf->dir_length - 1]))
+    buf->buffer[buf->dir_length] = 0;
+  free (buf);
+  return res;
+}
+
+/* Return the filenames in directory NAME, relative to the chdir_fd.
+   If the directory does not exist, report error if MUST_EXIST is
+   true.
+
+   Return NULL on errors.
+*/
+char *
+tar_savedir (const char *name, int must_exist)
+{
+  char *ret = NULL;
+  DIR *dir = NULL;
+  int fd = openat (chdir_fd, name, open_read_flags | O_DIRECTORY);
+  if (fd < 0)
+    {
+      if (!must_exist && errno == ENOENT)
+       return NULL;
+      open_error (name);
+    }
+  else if (! ((dir = fdopendir (fd))
+             && (ret = streamsavedir (dir))))
+    savedir_error (name);
+
+  if (dir ? closedir (dir) != 0 : 0 <= fd && close (fd) != 0)
+    savedir_error (name);
+
+  return ret;
+}
index ba4d509e47ead3bfd99846250f05c623878a11c8..eecb9b075b21bd0996ae31a0ccce768b87e53a67 100644 (file)
@@ -1,7 +1,7 @@
 /* Various processing of names.
 
-   Copyright (C) 1988, 1992, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+   Copyright 1988, 1992, 1994, 1996-2001, 2003-2007, 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
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <system.h>
 
 #include <fnmatch.h>
 #include <hash.h>
 #include <quotearg.h>
+#include <wordsplit.h>
+#include <argp.h>
 
 #include "common.h"
 \f
@@ -197,7 +198,7 @@ static struct name *namelist;       /* first name in list, if any */
 static struct name *nametail;  /* end of name list */
 
 /* File name arguments are processed in two stages: first a
-   name_array (see below) is filled, then the names from it
+   name element list (see below) is filled, then the names from it
    are moved into the namelist.
 
    This awkward process is needed only to implement --same-order option,
@@ -207,39 +208,72 @@ static struct name *nametail;     /* end of name list */
 
    However, I very much doubt if we still need this -- Sergey */
 
-/* A name_array element contains entries of three types: */
+/* A name_list element contains entries of three types: */
 
 #define NELT_NAME  0   /* File name */
 #define NELT_CHDIR 1   /* Change directory request */
 #define NELT_FMASK 2   /* Change fnmatch options request */
+#define NELT_FILE  3   /* Read file names from that file */
+#define NELT_NOOP  4   /* No operation */
 
 struct name_elt        /* A name_array element. */
 {
+  struct name_elt *next, *prev;
   char type;           /* Element type, see NELT_* constants above */
   union
   {
     const char *name;  /* File or directory name */
     int matching_flags;/* fnmatch options if type == NELT_FMASK */
+    struct             /* File, if type == NELT_FILE */
+    {
+      const char *name;/* File name */
+      int term;        /* File name terminator in the list */
+      FILE *fp;
+    } file;
   } v;
 };
 
-static struct name_elt *name_array;  /* store an array of names */
-static size_t allocated_entries; /* how big is the array? */
-static size_t entries;          /* how many entries does it have? */
-static size_t scanned;          /* how many of the entries have we scanned? */
-size_t name_count;              /* how many of the entries are names? */
+static struct name_elt *name_head;  /* store a list of names */
+size_t name_count;                 /* how many of the entries are names? */
 
-/* Check the size of name_array, reallocating it as necessary.  */
-static void
-check_name_alloc (void)
+static struct name_elt *
+name_elt_alloc (void)
 {
-  if (entries == allocated_entries)
+  struct name_elt *elt;
+
+  elt = xmalloc (sizeof (*elt));
+  if (!name_head)
     {
-      if (allocated_entries == 0)
-       allocated_entries = 10; /* Set initial allocation */
-      name_array = x2nrealloc (name_array, &allocated_entries,
-                              sizeof (name_array[0]));
+      name_head = elt;
+      name_head->prev = name_head->next = NULL;
+      name_head->type = NELT_NOOP;
+      elt = xmalloc (sizeof (*elt));
     }
+
+  elt->prev = name_head->prev;
+  if (name_head->prev)
+    name_head->prev->next = elt;
+  elt->next = name_head;
+  name_head->prev = elt;
+  return elt;
+}
+
+static void
+name_list_adjust (void)
+{
+  if (name_head)
+    while (name_head->prev)
+      name_head = name_head->prev;
+}
+
+static void
+name_list_advance (void)
+{
+  struct name_elt *elt = name_head;
+  name_head = elt->next;
+  if (name_head)
+    name_head->prev = NULL;
+  free (elt);
 }
 
 /* Add to name_array the file NAME with fnmatch options MATCHING_FLAGS */
@@ -247,17 +281,14 @@ void
 name_add_name (const char *name, int matching_flags)
 {
   static int prev_flags = 0; /* FIXME: Or EXCLUDE_ANCHORED? */
-  struct name_elt *ep;
+  struct name_elt *ep = name_elt_alloc ();
 
-  check_name_alloc ();
-  ep = &name_array[entries++];
   if (prev_flags != matching_flags)
     {
       ep->type = NELT_FMASK;
       ep->v.matching_flags = matching_flags;
       prev_flags = matching_flags;
-      check_name_alloc ();
-      ep = &name_array[entries++];
+      ep = name_elt_alloc ();
     }
   ep->type = NELT_NAME;
   ep->v.name = name;
@@ -268,13 +299,20 @@ name_add_name (const char *name, int matching_flags)
 void
 name_add_dir (const char *name)
 {
-  struct name_elt *ep;
-  check_name_alloc ();
-  ep = &name_array[entries++];
+  struct name_elt *ep = name_elt_alloc ();
   ep->type = NELT_CHDIR;
   ep->v.name = name;
 }
 
+void
+name_add_file (const char *name, int term)
+{
+  struct name_elt *ep = name_elt_alloc ();
+  ep->type = NELT_FILE;
+  ep->v.file.name = name;
+  ep->v.file.term = term;
+  ep->v.file.fp = NULL;
+}
 \f
 /* Names from external name file.  */
 
@@ -288,15 +326,222 @@ name_init (void)
 {
   name_buffer = xmalloc (NAME_FIELD_SIZE + 2);
   name_buffer_length = NAME_FIELD_SIZE;
+  name_list_adjust ();
 }
 
 void
 name_term (void)
 {
   free (name_buffer);
-  free (name_array);
+}
+\f
+/* Prevent recursive inclusion of the same file */
+struct file_id_list
+{
+  struct file_id_list *next;
+  ino_t ino;
+  dev_t dev;
+  const char *from_file;
+};
+
+static struct file_id_list *file_id_list;
+
+/* Return the name of the file from which the file names and options
+   are being read.
+*/
+static const char *
+file_list_name (void)
+{
+  struct name_elt *elt;
+
+  for (elt = name_head; elt; elt = elt->next)
+    if (elt->type == NELT_FILE && elt->v.file.fp)
+      return elt->v.file.name;
+  return _("command line");
 }
 
+static int
+add_file_id (const char *filename)
+{
+  struct file_id_list *p;
+  struct stat st;
+  const char *reading_from;
+
+  if (stat (filename, &st))
+    stat_fatal (filename);
+  reading_from = file_list_name ();
+  for (p = file_id_list; p; p = p->next)
+    if (p->ino == st.st_ino && p->dev == st.st_dev)
+      {
+       int oldc = set_char_quoting (NULL, ':', 1);
+       ERROR ((0, 0,
+               _("%s: file list requested from %s already read from %s"),
+               quotearg_n (0, filename),
+               reading_from, p->from_file));
+       set_char_quoting (NULL, ':', oldc);
+       return 1;
+      }
+  p = xmalloc (sizeof *p);
+  p->next = file_id_list;
+  p->ino = st.st_ino;
+  p->dev = st.st_dev;
+  p->from_file = reading_from;
+  file_id_list = p;
+  return 0;
+}
+\f
+enum read_file_list_state  /* Result of reading file name from the list file */
+  {
+    file_list_success,     /* OK, name read successfully */
+    file_list_end,         /* End of list file */
+    file_list_zero,        /* Zero separator encountered where it should not */
+    file_list_skip         /* Empty (zero-length) entry encountered, skip it */
+  };
+
+/* Read from FP a sequence of characters up to TERM and put them
+   into STK.
+ */
+static enum read_file_list_state
+read_name_from_file (struct name_elt *ent)
+{
+  int c;
+  size_t counter = 0;
+  FILE *fp = ent->v.file.fp;
+  int term = ent->v.file.term;
+
+  for (c = getc (fp); c != EOF && c != term; c = getc (fp))
+    {
+      if (counter == name_buffer_length)
+       name_buffer = x2realloc (name_buffer, &name_buffer_length);
+      name_buffer[counter++] = c;
+      if (c == 0)
+       {
+         /* We have read a zero separator. The file possibly is
+            zero-separated */
+         return file_list_zero;
+       }
+    }
+
+  if (counter == 0 && c != EOF)
+    return file_list_skip;
+
+  if (counter == name_buffer_length)
+    name_buffer = x2realloc (name_buffer, &name_buffer_length);
+  name_buffer[counter] = 0;
+
+  return (counter == 0 && c == EOF) ? file_list_end : file_list_success;
+}
+
+static int
+handle_option (const char *str)
+{
+  struct wordsplit ws;
+  int i;
+
+  while (*str && isspace (*str))
+    ;
+  if (*str != '-')
+    return 1;
+
+  ws.ws_offs = 1;
+  if (wordsplit (str, &ws, WRDSF_DEFFLAGS|WRDSF_DOOFFS))
+    FATAL_ERROR ((0, 0, _("cannot split string '%s': %s"),
+                 str, wordsplit_strerror (&ws)));
+  ws.ws_wordv[0] = program_invocation_short_name;
+  more_options (ws.ws_wordc+ws.ws_offs, ws.ws_wordv);
+  for (i = 0; i < ws.ws_wordc+ws.ws_offs; i++)
+    ws.ws_wordv[i] = NULL;
+
+  wordsplit_free (&ws);
+  return 0;
+}
+
+static int
+read_next_name (struct name_elt *ent, struct name_elt *ret)
+{
+  if (!ent->v.file.fp)
+    {
+      if (!strcmp (ent->v.file.name, "-"))
+       {
+         request_stdin ("-T");
+         ent->v.file.fp = stdin;
+       }
+      else
+       {
+         if (add_file_id (ent->v.file.name))
+           {
+             name_list_advance ();
+             return 1;
+           }
+         if ((ent->v.file.fp = fopen (ent->v.file.name, "r")) == NULL)
+           open_fatal (ent->v.file.name);
+       }
+    }
+
+  while (1)
+    {
+      switch (read_name_from_file (ent))
+       {
+       case file_list_skip:
+         continue;
+
+       case file_list_zero:
+         WARNOPT (WARN_FILENAME_WITH_NULS,
+                  (0, 0, N_("%s: file name read contains nul character"),
+                   quotearg_colon (ent->v.file.name)));
+         ent->v.file.term = 0;
+         /* fall through */
+       case file_list_success:
+         if (handle_option (name_buffer) == 0)
+           {
+             name_list_adjust ();
+             return 1;
+           }
+         ret->type = NELT_NAME;
+         ret->v.name = name_buffer;
+         return 0;
+
+       case file_list_end:
+         if (strcmp (ent->v.file.name, "-"))
+           fclose (ent->v.file.fp);
+         ent->v.file.fp = NULL;
+         name_list_advance ();
+         return 1;
+       }
+    }
+}
+\f
+static void
+copy_name (struct name_elt *ep)
+{
+  const char *source;
+  size_t source_len;
+  char *cursor;
+
+  source = ep->v.name;
+  source_len = strlen (source);
+  if (name_buffer_length < source_len)
+    {
+      do
+       {
+         name_buffer_length *= 2;
+         if (! name_buffer_length)
+           xalloc_die ();
+       }
+      while (name_buffer_length < source_len);
+
+      free (name_buffer);
+      name_buffer = xmalloc(name_buffer_length + 2);
+    }
+  strcpy (name_buffer, source);
+
+  /* Zap trailing slashes.  */
+  cursor = name_buffer + strlen (name_buffer) - 1;
+  while (cursor > name_buffer && ISSLASH (*cursor))
+    *cursor-- = '\0';
+}
+
+\f
 static int matching_flags; /* exclude_fnmatch options */
 
 /* Get the next NELT_NAME element from name_array.  Result is in
@@ -311,55 +556,41 @@ static struct name_elt *
 name_next_elt (int change_dirs)
 {
   static struct name_elt entry;
-  const char *source;
-  char *cursor;
+  struct name_elt *ep;
 
-  while (scanned != entries)
+  while ((ep = name_head) != NULL)
     {
-      struct name_elt *ep;
-      size_t source_len;
-
-      ep = &name_array[scanned++];
-      if (ep->type == NELT_FMASK)
+      switch (ep->type)
        {
+       case NELT_NOOP:
+         name_list_advance ();
+         break;
+
+       case NELT_FMASK:
          matching_flags = ep->v.matching_flags;
+         name_list_advance ();
          continue;
-       }
 
-      source = ep->v.name;
-      source_len = strlen (source);
-      if (name_buffer_length < source_len)
-       {
-         do
+       case NELT_FILE:
+         if (read_next_name (ep, &entry) == 0)
+           return &entry;
+         continue;
+
+       case NELT_CHDIR:
+         if (change_dirs)
            {
-             name_buffer_length *= 2;
-             if (! name_buffer_length)
-               xalloc_die ();
+             chdir_do (chdir_arg (xstrdup (ep->v.name)));
+             name_list_advance ();
+             break;
            }
-         while (name_buffer_length < source_len);
-
-         free (name_buffer);
-         name_buffer = xmalloc (name_buffer_length + 2);
-       }
-      strcpy (name_buffer, source);
-
-      /* Zap trailing slashes.  */
-
-      cursor = name_buffer + strlen (name_buffer) - 1;
-      while (cursor > name_buffer && ISSLASH (*cursor))
-       *cursor-- = '\0';
-
-      if (change_dirs && ep->type == NELT_CHDIR)
-       {
-         if (chdir (name_buffer) < 0)
-           chdir_fatal (name_buffer);
-       }
-      else
-       {
+         /* fall through */
+       case NELT_NAME:
+         copy_name (ep);
          if (unquote_option)
            unquote_string (name_buffer);
          entry.type = ep->type;
          entry.v.name = name_buffer;
+         name_list_advance ();
          return &entry;
        }
     }
@@ -669,9 +900,9 @@ label_notfound (void)
 
 /* Sort *singly* linked LIST of names, of given LENGTH, using COMPARE
    to order names.  Return the sorted list.  Note that after calling
-   this function, the `prev' links in list elements are messed up.
+   this function, the 'prev' links in list elements are messed up.
 
-   Apart from the type `struct name' and the definition of SUCCESSOR,
+   Apart from the type 'struct name' and the definition of SUCCESSOR,
    this is a generic list-sorting function, but it's too painful to
    make it both generic and portable
    in C.  */
@@ -894,7 +1125,7 @@ name_compare (void const *entry1, void const *entry2)
 }
 
 \f
-/* Rebase `name' member of CHILD and all its siblings to
+/* Rebase 'name' member of CHILD and all its siblings to
    the new PARENT. */
 static void
 rebase_child_list (struct name *child, struct name *parent)
@@ -1008,13 +1239,11 @@ collect_and_sort_names (void)
   namelist = merge_sort (namelist, num_names, compare_names);
 
   num_names = 0;
-  nametab = hash_initialize (0, 0,
-                            name_hash,
-                            name_compare, NULL);
+  nametab = hash_initialize (0, 0, name_hash, name_compare, NULL);
   for (name = namelist; name; name = next_name)
     {
       next_name = name->next;
-      name->caname = normalize_filename (name->name);
+      name->caname = normalize_filename (name->change_dir, name->name);
       if (prev_name)
        {
          struct name *p = hash_lookup (nametab, name);
@@ -1100,7 +1329,7 @@ name_scan (const char *file_name)
 struct name *gnu_list_name;
 
 struct name const *
-name_from_list ()
+name_from_list (void)
 {
   if (!gnu_list_name)
     gnu_list_name = namelist;
index 4b2f982a8c58f5ebef2b0be28be3f6527a70c070..417d4ff0aa37aca0c39550e77e9f6e62e39c7355 100644 (file)
@@ -1,7 +1,6 @@
 /* Functions for dealing with sparse files
 
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010 Free Software
-   Foundation, Inc.
+   Copyright 2003-2007, 2010, 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
@@ -14,8 +13,7 @@
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <system.h>
 #include <inttostr.h>
@@ -230,7 +228,7 @@ sparse_scan_file (struct tar_sparse_file *file)
       if (!tar_sparse_scan (file, scan_begin, NULL))
        return false;
 
-      while ((count = safe_read (fd, buffer, sizeof buffer)) != 0
+      while ((count = blocking_read (fd, buffer, sizeof buffer)) != 0
             && count != SAFE_READ_ERROR)
        {
          /* Analyze the block.  */
@@ -360,7 +358,7 @@ sparse_extract_region (struct tar_sparse_file *file, size_t i)
          return false;
        }
       set_next_block_after (blk);
-      count = full_write (file->fd, blk->buffer, wrbytes);
+      count = blocking_write (file->fd, blk->buffer, wrbytes);
       write_size -= count;
       file->dumped_size += count;
       mv_size_left (file->stat_info->archive_file_size - file->dumped_size);
@@ -591,18 +589,18 @@ sparse_diff_file (int fd, struct tar_stat_info *st)
 /* Old GNU Format. The sparse file information is stored in the
    oldgnu_header in the following manner:
 
-   The header is marked with type 'S'. Its `size' field contains
+   The header is marked with type 'S'. Its 'size' field contains
    the cumulative size of all non-empty blocks of the file. The
-   actual file size is stored in `realsize' member of oldgnu_header.
+   actual file size is stored in 'realsize' member of oldgnu_header.
 
-   The map of the file is stored in a list of `struct sparse'.
+   The map of the file is stored in a list of 'struct sparse'.
    Each struct contains offset to the block of data and its
    size (both as octal numbers). The first file header contains
    at most 4 such structs (SPARSES_IN_OLDGNU_HEADER). If the map
-   contains more structs, then the field `isextended' of the main
-   header is set to 1 (binary) and the `struct sparse_header'
+   contains more structs, then the field 'isextended' of the main
+   header is set to 1 (binary) and the 'struct sparse_header'
    header follows, containing at most 21 following structs
-   (SPARSES_IN_SPARSE_HEADER). If more structs follow, `isextended'
+   (SPARSES_IN_SPARSE_HEADER). If more structs follow, 'isextended'
    field of the extended header is set and next  next extension header
    follows, etc... */
 
@@ -629,8 +627,8 @@ oldgnu_add_sparse (struct tar_sparse_file *file, struct sparse *s)
     return add_finish;
   sp.offset = OFF_FROM_HEADER (s->offset);
   sp.numbytes = OFF_FROM_HEADER (s->numbytes);
-  if (sp.offset < 0
-      || sp.offset + sp.numbytes < 0
+  if (sp.offset < 0 || sp.numbytes < 0
+      || INT_ADD_OVERFLOW (sp.offset, sp.numbytes)
       || file->stat_info->stat.st_size < sp.offset + sp.numbytes
       || file->stat_info->archive_file_size < 0)
     return add_fail;
@@ -644,10 +642,10 @@ oldgnu_fixup_header (struct tar_sparse_file *file)
 {
   /* NOTE! st_size was initialized from the header
      which actually contains archived size. The following fixes it */
+  off_t realsize = OFF_FROM_HEADER (current_header->oldgnu_header.realsize);
   file->stat_info->archive_file_size = file->stat_info->stat.st_size;
-  file->stat_info->stat.st_size =
-    OFF_FROM_HEADER (current_header->oldgnu_header.realsize);
-  return true;
+  file->stat_info->stat.st_size = max (0, realsize);
+  return 0 <= realsize;
 }
 
 /* Convert old GNU format sparse data to internal representation */
@@ -768,10 +766,10 @@ star_fixup_header (struct tar_sparse_file *file)
 {
   /* NOTE! st_size was initialized from the header
      which actually contains archived size. The following fixes it */
+  off_t realsize = OFF_FROM_HEADER (current_header->star_in_header.realsize);
   file->stat_info->archive_file_size = file->stat_info->stat.st_size;
-  file->stat_info->stat.st_size =
-            OFF_FROM_HEADER (current_header->star_in_header.realsize);
-  return true;
+  file->stat_info->stat.st_size = max (0, realsize);
+  return 0 <= realsize;
 }
 
 /* Convert STAR format sparse data to internal representation */
@@ -919,6 +917,18 @@ pax_sparse_member_p (struct tar_sparse_file *file)
           || file->stat_info->sparse_major > 0;
 }
 
+/* Start a header that uses the effective (shrunken) file size.  */
+static union block *
+pax_start_header (struct tar_stat_info *st)
+{
+  off_t realsize = st->stat.st_size;
+  union block *blk;
+  st->stat.st_size = st->archive_file_size;
+  blk = start_header (st);
+  st->stat.st_size = realsize;
+  return blk;
+}
+
 static bool
 pax_dump_header_0 (struct tar_sparse_file *file)
 {
@@ -968,9 +978,7 @@ pax_dump_header_0 (struct tar_sparse_file *file)
          return false;
        }
     }
-  blk = start_header (file->stat_info);
-  /* Store the effective (shrunken) file size */
-  OFF_TO_CHARS (file->stat_info->archive_file_size, blk->header.size);
+  blk = pax_start_header (file->stat_info);
   finish_header (file->stat_info, blk, block_ordinal);
   if (save_file_name)
     {
@@ -991,7 +999,7 @@ pax_dump_header_1 (struct tar_sparse_file *file)
   off_t size = 0;
   struct sp_array *map = file->stat_info->sparse_map;
   char *save_file_name = file->stat_info->file_name;
-  
+
 #define COPY_STRING(b,dst,src) do                \
  {                                               \
    char *endp = b->buffer + BLOCKSIZE;           \
@@ -1035,9 +1043,7 @@ pax_dump_header_1 (struct tar_sparse_file *file)
   if (strlen (file->stat_info->file_name) > NAME_FIELD_SIZE)
     file->stat_info->file_name[NAME_FIELD_SIZE] = 0;
 
-  blk = start_header (file->stat_info);
-  /* Store the effective (shrunken) file size */
-  OFF_TO_CHARS (file->stat_info->archive_file_size, blk->header.size);
+  blk = pax_start_header (file->stat_info);
   finish_header (file->stat_info, blk, block_ordinal);
   free (file->stat_info->file_name);
   file->stat_info->file_name = save_file_name;
@@ -1080,6 +1086,7 @@ decode_num (uintmax_t *num, char const *arg, uintmax_t maxval)
   if (!ISDIGIT (*arg))
     return false;
 
+  errno = 0;
   u = strtoumax (arg, &arg_lim, 10);
 
   if (! (u <= maxval && errno != ERANGE) || *arg_lim)
index 046cf2bb6b2db1abf5cf3b239426c3cc93bd08d2..cf8056cf9518a3f436dfdee2b73030b5de80b37f 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of GNU tar.
-   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+   Copyright 2007, 2009, 2013 Free Software Foundation, Inc.
 
    Written by Sergey Poznyakoff.
 
@@ -43,6 +43,7 @@ static struct compression_suffix compression_suffixes[] = {
   { S(tlz,  LZMA) },
   { S(lzo,  LZOP) },
   { S(xz,   XZ) },
+  { S(txz,  XZ) }, /* Slackware */
 #undef S
 #undef __CAT2__
 };
index ba4ac2d391faf25966ecff4905cebc8344231add..e1fd263c7daabe55c54e83832efb62c21093763f 100644 (file)
@@ -1,7 +1,6 @@
 /* System-dependent calls for tar.
 
-   Copyright (C) 2003, 2004, 2005, 2006, 2007,
-   2008, 2010 Free Software Foundation, Inc.
+   Copyright 2003-2008, 2010, 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
@@ -14,8 +13,7 @@
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <system.h>
 
 #include <priv-set.h>
 #include <rmt.h>
 #include <signal.h>
+#include <wordsplit.h>
+
+static _Noreturn void
+xexec (const char *cmd)
+{
+  struct wordsplit ws;
+
+  ws.ws_env = (const char **) environ;
+  if (wordsplit (cmd, &ws, (WRDSF_DEFFLAGS | WRDSF_ENV) & ~WRDSF_NOVAR))
+    FATAL_ERROR ((0, 0, _("cannot split string '%s': %s"),
+                 cmd, wordsplit_strerror (&ws)));
+  execvp (ws.ws_wordv[0], ws.ws_wordv);
+  exec_fatal (cmd);
+}
 
 #if MSDOS
 
@@ -194,7 +206,7 @@ sys_spawn_shell (void)
   if (child == 0)
     {
       priv_set_restore_linkdir ();
-      execlp (shell, "-sh", "-i", (char *) 0);
+      execlp (shell, "-sh", "-i", NULL);
       exec_fatal (shell);
     }
   else
@@ -365,8 +377,7 @@ sys_child_open_for_compress (void)
          xdup2 (archive, STDOUT_FILENO);
        }
       priv_set_restore_linkdir ();
-      execlp (use_compress_program_option, use_compress_program_option, NULL);
-      exec_fatal (use_compress_program_option);
+      xexec (use_compress_program_option);
     }
 
   /* We do need a grandchild tar.  */
@@ -383,9 +394,7 @@ sys_child_open_for_compress (void)
       xdup2 (child_pipe[PWRITE], STDOUT_FILENO);
       xclose (child_pipe[PREAD]);
       priv_set_restore_linkdir ();
-      execlp (use_compress_program_option, use_compress_program_option,
-             (char *) 0);
-      exec_fatal (use_compress_program_option);
+      xexec (use_compress_program_option);
     }
 
   /* The child tar is still here!  */
@@ -460,6 +469,11 @@ run_decompress_program (void)
 {
   int i;
   const char *p, *prog = NULL;
+  struct wordsplit ws;
+  int wsflags = (WRDSF_DEFFLAGS | WRDSF_ENV | WRDSF_DOOFFS) & ~WRDSF_NOVAR;
+
+  ws.ws_env = (const char **) environ;
+  ws.ws_offs = 1;
 
   for (p = first_decompress_program (&i); p; p = next_decompress_program (&i))
     {
@@ -470,8 +484,16 @@ run_decompress_program (void)
          WARNOPT (WARN_DECOMPRESS_PROGRAM,
                   (0, 0, _("trying %s"), p));
        }
+      if (wordsplit (p, &ws, wsflags))
+       FATAL_ERROR ((0, 0, _("cannot split string '%s': %s"),
+                     p, wordsplit_strerror (&ws)));
+      wsflags |= WRDSF_REUSE;
+      memmove(ws.ws_wordv, ws.ws_wordv + ws.ws_offs,
+             sizeof(ws.ws_wordv[0])*ws.ws_wordc);
+      ws.ws_wordv[ws.ws_wordc] = (char *) "-d";
       prog = p;
-      execlp (p, p, "-d", NULL);
+      execvp (ws.ws_wordv[0], ws.ws_wordv);
+      ws.ws_wordv[ws.ws_wordc] = NULL;
     }
   if (!prog)
     FATAL_ERROR ((0, 0, _("unable to run decompression program")));
@@ -704,7 +726,6 @@ int
 sys_exec_command (char *file_name, int typechar, struct tar_stat_info *st)
 {
   int p[2];
-  char *argv[4];
 
   xpipe (p);
   pipe_handler = signal (SIGPIPE, SIG_IGN);
@@ -722,15 +743,8 @@ sys_exec_command (char *file_name, int typechar, struct tar_stat_info *st)
 
   stat_to_env (file_name, typechar, st);
 
-  argv[0] = "/bin/sh";
-  argv[1] = "-c";
-  argv[2] = to_command_option;
-  argv[3] = NULL;
-
   priv_set_restore_linkdir ();
-  execv ("/bin/sh", argv);
-
-  exec_fatal (file_name);
+  xexec (to_command_option);
 }
 
 void
@@ -772,7 +786,6 @@ int
 sys_exec_info_script (const char **archive_name, int volume_number)
 {
   pid_t pid;
-  char *argv[4];
   char uintbuf[UINTMAX_STRSIZE_BOUND];
   int p[2];
   static RETSIGTYPE (*saved_handler) (int sig);
@@ -837,15 +850,8 @@ sys_exec_info_script (const char **archive_name, int volume_number)
 
   xclose (p[PREAD]);
 
-  argv[0] = "/bin/sh";
-  argv[1] = "-c";
-  argv[2] = (char *) info_script_option;
-  argv[3] = NULL;
-
   priv_set_restore_linkdir ();
-  execv (argv[0], argv);
-
-  exec_fatal (info_script_option);
+  xexec (info_script_option);
 }
 
 void
@@ -854,7 +860,6 @@ sys_exec_checkpoint_script (const char *script_name,
                            int checkpoint_number)
 {
   pid_t pid;
-  char *argv[4];
   char uintbuf[UINTMAX_STRSIZE_BOUND];
 
   pid = xfork ();
@@ -885,15 +890,8 @@ sys_exec_checkpoint_script (const char *script_name,
   setenv ("TAR_FORMAT",
          archive_format_string (current_format == DEFAULT_FORMAT ?
                                 archive_format : current_format), 1);
-  argv[0] = "/bin/sh";
-  argv[1] = "-c";
-  argv[2] = (char *) script_name;
-  argv[3] = NULL;
-
   priv_set_restore_linkdir ();
-  execv (argv[0], argv);
-
-  exec_fatal (script_name);
+  xexec (script_name);
 }
 
 #endif /* not MSDOS */
index 928cfddd44a86220ab444844cac61c10da6495aa..4f5017d0ff4a3d79936c0cc6a63fe88f05f29dc0 100644 (file)
--- a/src/tar.c
+++ b/src/tar.c
@@ -1,7 +1,7 @@
 /* A tar (tape archiver) program.
 
-   Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000,
-   2001, 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+   Copyright 1988, 1992-1997, 1999-2001, 2003-2007, 2012-2013 Free
+   Software Foundation, Inc.
 
    Written by John Gilmore, starting 1985-08-25.
 
@@ -16,8 +16,7 @@
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <system.h>
 
 # define DEFAULT_BLOCKING 20
 #endif
 
+/* Print a message if not all links are dumped */
+static int check_links_option;
+
+/* Number of allocated tape drive names.  */
+static size_t allocated_archive_names;
+
 \f
 /* Miscellaneous.  */
 
 static const char *stdin_used_by;
 
 /* Doesn't return if stdin already requested.  */
-static void
+void
 request_stdin (const char *option)
 {
   if (stdin_used_by)
-    USAGE_ERROR ((0, 0, _("Options `-%s' and `-%s' both want standard input"),
+    USAGE_ERROR ((0, 0, _("Options '-%s' and '-%s' both want standard input"),
                  stdin_used_by, option));
 
   stdin_used_by = option;
@@ -247,7 +252,7 @@ tar_set_quoting_style (char *arg)
        return;
       }
   FATAL_ERROR ((0, 0,
-               _("Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."), arg, program_invocation_short_name));
+               _("Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."), arg, program_invocation_short_name));
 }
 
 \f
@@ -255,7 +260,8 @@ tar_set_quoting_style (char *arg)
 
 enum
 {
-  ANCHORED_OPTION = CHAR_MAX + 1,
+  ACLS_OPTION = CHAR_MAX + 1,
+  ANCHORED_OPTION,
   ATIME_PRESERVE_OPTION,
   BACKUP_OPTION,
   CHECK_DEVICE_OPTION,
@@ -280,6 +286,7 @@ enum
   IGNORE_COMMAND_ERROR_OPTION,
   IGNORE_FAILED_READ_OPTION,
   INDEX_FILE_OPTION,
+  KEEP_DIRECTORY_SYMLINK_OPTION,
   KEEP_NEWER_FILES_OPTION,
   LEVEL_OPTION,
   LZIP_OPTION,
@@ -288,6 +295,7 @@ enum
   MODE_OPTION,
   MTIME_OPTION,
   NEWER_MTIME_OPTION,
+  NO_ACLS_OPTION,
   NO_ANCHORED_OPTION,
   NO_AUTO_COMPRESS_OPTION,
   NO_CHECK_DEVICE_OPTION,
@@ -301,9 +309,11 @@ enum
   NO_SAME_OWNER_OPTION,
   NO_SAME_PERMISSIONS_OPTION,
   NO_SEEK_OPTION,
+  NO_SELINUX_CONTEXT_OPTION,
   NO_UNQUOTE_OPTION,
   NO_WILDCARDS_MATCH_SLASH_OPTION,
   NO_WILDCARDS_OPTION,
+  NO_XATTR_OPTION,
   NULL_OPTION,
   NUMERIC_OWNER_OPTION,
   OCCURRENCE_OPTION,
@@ -325,9 +335,12 @@ enum
   RMT_COMMAND_OPTION,
   RSH_COMMAND_OPTION,
   SAME_OWNER_OPTION,
+  SELINUX_CONTEXT_OPTION,
   SHOW_DEFAULTS_OPTION,
   SHOW_OMITTED_DIRS_OPTION,
+  SHOW_SNAPSHOT_FIELD_RANGES_OPTION,
   SHOW_TRANSFORMED_NAMES_OPTION,
+  SKIP_OLD_FILES_OPTION,
   SPARSE_VERSION_OPTION,
   STRIP_COMPONENTS_OPTION,
   SUFFIX_OPTION,
@@ -340,13 +353,16 @@ enum
   VOLNO_FILE_OPTION,
   WARNING_OPTION,
   WILDCARDS_MATCH_SLASH_OPTION,
-  WILDCARDS_OPTION
+  WILDCARDS_OPTION,
+  XATTR_OPTION,
+  XATTR_EXCLUDE,
+  XATTR_INCLUDE
 };
 
 const char *argp_program_version = "tar (" PACKAGE_NAME ") " VERSION;
 const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">";
 static char const doc[] = N_("\
-GNU `tar' saves many files together into a single tape or disk archive, \
+GNU 'tar' saves many files together into a single tape or disk archive, \
 and can restore individual files from the archive.\n\
 \n\
 Examples:\n\
@@ -354,7 +370,7 @@ Examples:\n\
   tar -tvf archive.tar         # List all files in archive.tar verbosely.\n\
   tar -xf archive.tar          # Extract all files from archive.tar.\n")
 "\v"
-N_("The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n\
+N_("The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n\
 The version control may be set with --backup or VERSION_CONTROL, values are:\n\n\
   none, off       never make backups\n\
   t, numbered     make numbered backups\n\
@@ -452,7 +468,11 @@ static struct argp_option options[] = {
   {"remove-files", REMOVE_FILES_OPTION, 0, 0,
    N_("remove files after adding them to the archive"), GRID+1 },
   {"keep-old-files", 'k', 0, 0,
-   N_("don't replace existing files when extracting"), GRID+1 },
+   N_("don't replace existing files when extracting, "
+      "treat them as errors"), GRID+1 },
+  {"skip-old-files", SKIP_OLD_FILES_OPTION, 0, 0,
+   N_("don't replace existing files when extracting, silently skip over them"),
+   GRID+1 },
   {"keep-newer-files", KEEP_NEWER_FILES_OPTION, 0, 0,
    N_("don't replace existing files that are newer than their archive copies"), GRID+1 },
   {"overwrite", OVERWRITE_OPTION, 0, 0,
@@ -466,6 +486,9 @@ static struct argp_option options[] = {
   {"overwrite-dir", OVERWRITE_DIR_OPTION, 0, 0,
    N_("overwrite metadata of existing directories when extracting (default)"),
    GRID+1 },
+  {"keep-directory-symlink", KEEP_DIRECTORY_SYMLINK_OPTION, 0, 0,
+   N_("preserve existing symlinks to directories when extracting"),
+   GRID+1 },
 #undef GRID
 
 #define GRID 40
@@ -514,7 +537,8 @@ static struct argp_option options[] = {
   {"no-same-permissions", NO_SAME_PERMISSIONS_OPTION, 0, 0,
    N_("apply the user's umask when extracting permissions from the archive (default for ordinary users)"), GRID+1 },
   {"preserve-order", 's', 0, 0,
-   N_("sort names to extract to match archive"), GRID+1 },
+   N_("member arguments are listed in the same order as the "
+      "files in the archive"), GRID+1 },
   {"same-order", 0, 0, OPTION_ALIAS, NULL, GRID+1 },
   {"preserve", PRESERVE_OPTION, 0, 0,
    N_("same as both -p and -s"), GRID+1 },
@@ -525,6 +549,28 @@ static struct argp_option options[] = {
    N_("cancel the effect of --delay-directory-restore option"), GRID+1 },
 #undef GRID
 
+#define GRID 55
+  {NULL, 0, NULL, 0,
+   N_("Handling of extended file attributes:"), GRID },
+
+  {"xattrs", XATTR_OPTION, 0, 0,
+   N_("Enable extended attributes support"), GRID+1 },
+  {"no-xattrs", NO_XATTR_OPTION, 0, 0,
+   N_("Disable extended attributes support"), GRID+1 },
+  {"xattrs-include", XATTR_INCLUDE, N_("MASK"), 0,
+   N_("specify the include pattern for xattr keys"), GRID+1 },
+  {"xattrs-exclude", XATTR_EXCLUDE, N_("MASK"), 0,
+   N_("specify the exclude pattern for xattr keys"), GRID+1 },
+  {"selinux", SELINUX_CONTEXT_OPTION, 0, 0,
+   N_("Enable the SELinux context support"), GRID+1 },
+  {"no-selinux", NO_SELINUX_CONTEXT_OPTION, 0, 0,
+   N_("Disable the SELinux context support"), GRID+1 },
+  {"acls", ACLS_OPTION, 0, 0,
+   N_("Enable the POSIX ACLs support"), GRID+1 },
+  {"no-acls", NO_ACLS_OPTION, 0, 0,
+   N_("Disable the POSIX ACLs support"), GRID+1 },
+#undef GRID
+
 #define GRID 60
   {NULL, 0, NULL, 0,
    N_("Device selection and switching:"), GRID },
@@ -538,7 +584,7 @@ static struct argp_option options[] = {
   {"rsh-command", RSH_COMMAND_OPTION, N_("COMMAND"), 0,
    N_("use remote COMMAND instead of rsh"), GRID+1 },
 #ifdef DEVICE_PREFIX
-  {"-[0-7][lmh]", 0, NULL, OPTION_DOC, /* It is OK, since `name' will never be
+  {"-[0-7][lmh]", 0, NULL, OPTION_DOC, /* It is OK, since 'name' will never be
                                          translated */
    N_("specify drive and density"), GRID+1 },
 #endif
@@ -680,13 +726,13 @@ static struct argp_option options[] = {
   {"recursion", RECURSION_OPTION, 0, 0,
    N_("recurse into directories (default)"), GRID+1 },
   {"absolute-names", 'P', 0, 0,
-   N_("don't strip leading `/'s from file names"), GRID+1 },
+   N_("don't strip leading '/'s from file names"), GRID+1 },
   {"dereference", 'h', 0, 0,
    N_("follow symlinks; archive and dump the files they point to"), GRID+1 },
   {"hard-dereference", HARD_DEREFERENCE_OPTION, 0, 0,
    N_("follow hard links; archive and dump the files they refer to"), GRID+1 },
   {"starting-file", 'K', N_("MEMBER-NAME"), 0,
-   N_("begin at member MEMBER-NAME in the archive"), GRID+1 },
+   N_("begin at member MEMBER-NAME when reading the archive"), GRID+1 },
   {"newer", 'N', N_("DATE-OR-FILE"), 0,
    N_("only store files newer than DATE-OR-FILE"), GRID+1 },
   {"after-date", 0, 0, OPTION_ALIAS, NULL, GRID+1 },
@@ -718,7 +764,7 @@ static struct argp_option options[] = {
   {"anchored", ANCHORED_OPTION, 0, 0,
    N_("patterns match file name start"), GRID+1 },
   {"no-anchored", NO_ANCHORED_OPTION, 0, 0,
-   N_("patterns match after any `/' (default for exclusion)"), GRID+1 },
+   N_("patterns match after any '/' (default for exclusion)"), GRID+1 },
   {"no-ignore-case", NO_IGNORE_CASE_OPTION, 0, 0,
    N_("case sensitive matching (default)"), GRID+1 },
   {"wildcards", WILDCARDS_OPTION, 0, 0,
@@ -726,9 +772,9 @@ static struct argp_option options[] = {
   {"no-wildcards", NO_WILDCARDS_OPTION, 0, 0,
    N_("verbatim string matching"), GRID+1 },
   {"no-wildcards-match-slash", NO_WILDCARDS_MATCH_SLASH_OPTION, 0, 0,
-   N_("wildcards do not match `/'"), GRID+1 },
+   N_("wildcards do not match '/'"), GRID+1 },
   {"wildcards-match-slash", WILDCARDS_MATCH_SLASH_OPTION, 0, 0,
-   N_("wildcards match `/' (default for exclusion)"), GRID+1 },
+   N_("wildcards match '/' (default for exclusion)"), GRID+1 },
 #undef GRID
 
 #define GRID 130
@@ -765,6 +811,8 @@ static struct argp_option options[] = {
   {"confirmation", 0, 0, OPTION_ALIAS, NULL, GRID+1 },
   {"show-defaults", SHOW_DEFAULTS_OPTION, 0, 0,
    N_("show tar defaults"), GRID+1 },
+  {"show-snapshot-field-ranges", SHOW_SNAPSHOT_FIELD_RANGES_OPTION, 0, 0,
+   N_("show valid ranges for snapshot-file fields"), GRID+1 },
   {"show-omitted-dirs", SHOW_OMITTED_DIRS_OPTION, 0, 0,
    N_("when listing or extracting, list each directory that does not match search criteria"), GRID+1 },
   {"show-transformed-names", SHOW_TRANSFORMED_NAMES_OPTION, 0, 0,
@@ -892,12 +940,12 @@ static char const * const backup_file_table[] = {
 };
 
 static void
-add_exclude_array (char const * const * fv)
+add_exclude_array (char const * const * fv, int opts)
 {
   int i;
 
   for (i = 0; fv[i]; i++)
-    add_exclude (excluded, fv[i], 0);
+    add_exclude (excluded, fv[i], opts);
 }
 
 \f
@@ -927,7 +975,7 @@ set_subcommand_option (enum subcommand subcommand)
   if (subcommand_option != UNKNOWN_SUBCOMMAND
       && subcommand_option != subcommand)
     USAGE_ERROR ((0, 0,
-                 _("You may not specify more than one `-Acdtrux' or `--test-label' option")));
+                 _("You may not specify more than one '-Acdtrux', '--delete' or  '--test-label' option")));
 
   subcommand_option = subcommand;
 }
@@ -956,10 +1004,13 @@ static void
 stat_on_signal (int signo)
 {
 #ifdef HAVE_SIGACTION
+# ifndef SA_RESTART
+#  define SA_RESTART 0
+# endif
   struct sigaction act;
   act.sa_handler = sigstat;
   sigemptyset (&act.sa_mask);
-  act.sa_flags = 0;
+  act.sa_flags = SA_RESTART;
   sigaction (signo, &act, NULL);
 #else
   signal (signo, sigstat);
@@ -1054,7 +1105,7 @@ report_textual_dates (struct tar_args *args)
        {
          char const *treated_as = tartime (p->ts, true);
          if (strcmp (p->date, treated_as) != 0)
-           WARN ((0, 0, _("Option %s: Treating date `%s' as %s"),
+           WARN ((0, 0, _("Option %s: Treating date '%s' as %s"),
                   p->option, p->date, treated_as));
        }
       free (p->date);
@@ -1063,194 +1114,26 @@ report_textual_dates (struct tar_args *args)
     }
 }
 
-\f
-
-/* Either NL or NUL, as decided by the --null option.  */
-static char filename_terminator;
-
-enum read_file_list_state  /* Result of reading file name from the list file */
-  {
-    file_list_success,     /* OK, name read successfully */
-    file_list_end,         /* End of list file */
-    file_list_zero,        /* Zero separator encountered where it should not */
-    file_list_skip         /* Empty (zero-length) entry encountered, skip it */
-  };
-
-/* Read from FP a sequence of characters up to TERM and put them
-   into STK.
- */
-static enum read_file_list_state
-read_name_from_file (FILE *fp, struct obstack *stk, int term)
-{
-  int c;
-  size_t counter = 0;
-
-  for (c = getc (fp); c != EOF && c != term; c = getc (fp))
-    {
-      if (c == 0)
-       {
-         /* We have read a zero separator. The file possibly is
-            zero-separated */
-         return file_list_zero;
-       }
-      obstack_1grow (stk, c);
-      counter++;
-    }
-
-  if (counter == 0 && c != EOF)
-    return file_list_skip;
-
-  obstack_1grow (stk, 0);
-
-  return (counter == 0 && c == EOF) ? file_list_end : file_list_success;
-}
-
 \f
 static bool files_from_option;  /* When set, tar will not refuse to create
                                   empty archives */
-static struct obstack argv_stk; /* Storage for additional command line options
-                                  read using -T option */
-
-/* Prevent recursive inclusion of the same file */
-struct file_id_list
-{
-  struct file_id_list *next;
-  ino_t ino;
-  dev_t dev;
-};
-
-static struct file_id_list *file_id_list;
-
-static void
-add_file_id (const char *filename)
-{
-  struct file_id_list *p;
-  struct stat st;
-
-  if (stat (filename, &st))
-    stat_fatal (filename);
-  for (p = file_id_list; p; p = p->next)
-    if (p->ino == st.st_ino && p->dev == st.st_dev)
-      {
-       FATAL_ERROR ((0, 0, _("%s: file list already read"),
-                     quotearg_colon (filename)));
-      }
-  p = xmalloc (sizeof *p);
-  p->next = file_id_list;
-  p->ino = st.st_ino;
-  p->dev = st.st_dev;
-  file_id_list = p;
-}
 
 /* Default density numbers for [0-9][lmh] device specifications */
 
-#ifndef LOW_DENSITY_NUM
-# define LOW_DENSITY_NUM 0
-#endif
+#if defined DEVICE_PREFIX && !defined DENSITY_LETTER
+# ifndef LOW_DENSITY_NUM
+#  define LOW_DENSITY_NUM 0
+# endif
 
-#ifndef MID_DENSITY_NUM
-# define MID_DENSITY_NUM 8
-#endif
+# ifndef MID_DENSITY_NUM
+#  define MID_DENSITY_NUM 8
+# endif
 
-#ifndef HIGH_DENSITY_NUM
-# define HIGH_DENSITY_NUM 16
+# ifndef HIGH_DENSITY_NUM
+#  define HIGH_DENSITY_NUM 16
+# endif
 #endif
 
-static void
-update_argv (const char *filename, struct argp_state *state)
-{
-  FILE *fp;
-  size_t count = 0, i;
-  char *start, *p;
-  char **new_argv;
-  size_t new_argc;
-  bool is_stdin = false;
-  enum read_file_list_state read_state;
-  int term = filename_terminator;
-
-  if (!strcmp (filename, "-"))
-    {
-      is_stdin = true;
-      request_stdin ("-T");
-      fp = stdin;
-    }
-  else
-    {
-      add_file_id (filename);
-      if ((fp = fopen (filename, "r")) == NULL)
-       open_fatal (filename);
-    }
-
-  while ((read_state = read_name_from_file (fp, &argv_stk, term))
-        != file_list_end)
-    {
-      switch (read_state)
-       {
-       case file_list_success:
-         count++;
-         break;
-
-       case file_list_end: /* won't happen, just to pacify gcc */
-         break;
-
-       case file_list_zero:
-         {
-           size_t size;
-
-           WARNOPT (WARN_FILENAME_WITH_NULS,
-                    (0, 0, N_("%s: file name read contains nul character"),
-                     quotearg_colon (filename)));
-
-           /* Prepare new stack contents */
-           size = obstack_object_size (&argv_stk);
-           p = obstack_finish (&argv_stk);
-           for (; size > 0; size--, p++)
-             if (*p)
-               obstack_1grow (&argv_stk, *p);
-             else
-               obstack_1grow (&argv_stk, '\n');
-           obstack_1grow (&argv_stk, 0);
-           count = 1;
-           /* Read rest of files using new filename terminator */
-           term = 0;
-           break;
-         }
-
-       case file_list_skip:
-         break;
-       }
-    }
-
-  if (!is_stdin)
-    fclose (fp);
-
-  if (count == 0)
-    return;
-
-  start = obstack_finish (&argv_stk);
-
-  if (term == 0)
-    for (p = start; *p; p += strlen (p) + 1)
-      if (p[0] == '-')
-       count++;
-
-  new_argc = state->argc + count;
-  new_argv = xmalloc (sizeof (state->argv[0]) * (new_argc + 1));
-  memcpy (new_argv, state->argv, sizeof (state->argv[0]) * (state->argc + 1));
-  state->argv = new_argv;
-  memmove (&state->argv[state->next + count], &state->argv[state->next],
-          (state->argc - state->next + 1) * sizeof (state->argv[0]));
-
-  state->argc = new_argc;
-
-  for (i = state->next, p = start; *p; p += strlen (p) + 1, i++)
-    {
-      if (term == 0 && p[0] == '-')
-       state->argv[i++] = "--add-file";
-      state->argv[i] = p;
-    }
-}
-
 \f
 static char *
 tar_help_filter (int key, const char *text, void *input)
@@ -1336,8 +1219,8 @@ expand_pax_option (struct tar_args *targs, const char *arg)
              tmp[len-2] = 0;
              if (get_date_or_file (targs, "--pax-option", tmp, &ts) == 0)
                {
-                 char buf[UINTMAX_STRSIZE_BOUND], *s;
-                 s = umaxtostr (ts.tv_sec, buf);
+                 char buf[TIMESPEC_STRSIZE_BOUND];
+                 char const *s = code_timespec (ts, buf);
                  obstack_grow (&stk, s, strlen (s));
                }
              else
@@ -1364,8 +1247,62 @@ expand_pax_option (struct tar_args *targs, const char *arg)
 }
 
 \f
+static uintmax_t
+parse_owner_group (char *arg, uintmax_t field_max, char const **name_option)
+{
+  uintmax_t u = UINTMAX_MAX;
+  char *end;
+  char const *name = 0;
+  char const *invalid_num = 0;
+  char *colon = strchr (arg, ':');
+
+  if (colon)
+    {
+      char const *num = colon + 1;
+      *colon = '\0';
+      if (*arg)
+       name = arg;
+      if (num && (! (xstrtoumax (num, &end, 10, &u, "") == LONGINT_OK
+                    && u <= field_max)))
+       invalid_num = num;
+    }
+  else
+    {
+      uintmax_t u1;
+      switch ('0' <= *arg && *arg <= '9'
+             ? xstrtoumax (arg, &end, 10, &u1, "")
+             : LONGINT_INVALID)
+       {
+       default:
+         name = arg;
+         break;
+
+       case LONGINT_OK:
+         if (u1 <= field_max)
+           {
+             u = u1;
+             break;
+           }
+         /* Fall through.  */
+       case LONGINT_OVERFLOW:
+         invalid_num = arg;
+         break;
+       }
+    }
+
+  if (invalid_num)
+    FATAL_ERROR ((0, 0, "%s: %s", quotearg_colon (invalid_num),
+                 _("Invalid owner or group ID")));
+  if (name)
+    *name_option = name;
+  return u;
+}
+
 #define TAR_SIZE_SUFFIXES "bBcGgkKMmPTtw"
 
+/* Either NL or NUL, as decided by the --null option.  */
+static char filename_terminator;
+
 static error_t
 parse_opt (int key, char *arg, struct argp_state *state)
 {
@@ -1619,6 +1556,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
       sparse_option = true;
       break;
 
+    case SKIP_OLD_FILES_OPTION:
+      old_files_option = SKIP_OLD_FILES;
+      break;
+
     case SPARSE_VERSION_OPTION:
       sparse_option = true;
       {
@@ -1645,7 +1586,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case 'T':
-      update_argv (arg, state);
+      name_add_file (arg, filename_terminator);
       /* Indicate we've been given -T option. This is for backward
         compatibility only, so that `tar cfT archive /dev/null will
         succeed */
@@ -1769,7 +1710,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case EXCLUDE_BACKUPS_OPTION:
-      add_exclude_array (backup_file_table);
+      add_exclude_array (backup_file_table, EXCLUDE_WILDCARDS);
       break;
 
     case EXCLUDE_OPTION:
@@ -1804,7 +1745,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case EXCLUDE_VCS_OPTION:
-      add_exclude_array (vcs_file_table);
+      add_exclude_array (vcs_file_table, 0);
       break;
 
     case FORCE_LOCAL_OPTION:
@@ -1831,22 +1772,27 @@ parse_opt (int key, char *arg, struct argp_state *state)
       ignore_failed_read_option = true;
       break;
 
+    case KEEP_DIRECTORY_SYMLINK_OPTION:
+      keep_directory_symlink_option = true;
+      break;
+      
     case KEEP_NEWER_FILES_OPTION:
       old_files_option = KEEP_NEWER_FILES;
       break;
 
     case GROUP_OPTION:
-      if (! (strlen (arg) < GNAME_FIELD_SIZE
-            && gname_to_gid (arg, &group_option)))
-       {
-         uintmax_t g;
-         if (xstrtoumax (arg, 0, 10, &g, "") == LONGINT_OK
-             && g == (gid_t) g)
-           group_option = g;
-         else
-           FATAL_ERROR ((0, 0, "%s: %s", quotearg_colon (arg),
-                         _("Invalid group")));
-       }
+      {
+       uintmax_t u = parse_owner_group (arg, TYPE_MAXIMUM (gid_t),
+                                        &group_name_option);
+       if (u == UINTMAX_MAX)
+         {
+           group_option = -1;
+           if (group_name_option)
+             gname_to_gid (group_name_option, &group_option);
+         }
+       else
+         group_option = u;
+      }
       break;
 
     case MODE_OPTION:
@@ -1913,6 +1859,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
        }
       break;
 
+    case OLD_ARCHIVE_OPTION:
+      set_archive_format ("v7");
+      break;
+
     case OVERWRITE_DIR_OPTION:
       old_files_option = DEFAULT_OLD_FILES;
       break;
@@ -1922,17 +1872,18 @@ parse_opt (int key, char *arg, struct argp_state *state)
       break;
 
     case OWNER_OPTION:
-      if (! (strlen (arg) < UNAME_FIELD_SIZE
-            && uname_to_uid (arg, &owner_option)))
-       {
-         uintmax_t u;
-         if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK
-             && u == (uid_t) u)
-           owner_option = u;
-         else
-           FATAL_ERROR ((0, 0, "%s: %s", quotearg_colon (arg),
-                         _("Invalid owner")));
-       }
+      {
+       uintmax_t u = parse_owner_group (arg, TYPE_MAXIMUM (uid_t),
+                                        &owner_name_option);
+       if (u == UINTMAX_MAX)
+         {
+           owner_option = -1;
+           if (owner_name_option)
+             uname_to_uid (owner_name_option, &owner_option);
+         }
+       else
+         owner_option = u;
+      }
       break;
 
     case QUOTE_CHARS_OPTION:
@@ -2010,6 +1961,11 @@ parse_opt (int key, char *arg, struct argp_state *state)
        exit (0);
       }
 
+    case SHOW_SNAPSHOT_FIELD_RANGES_OPTION:
+      show_snapshot_field_ranges ();
+      close_stdout ();
+      exit (0);
+
     case STRIP_COMPONENTS_OPTION:
       {
        uintmax_t u;
@@ -2079,6 +2035,38 @@ parse_opt (int key, char *arg, struct argp_state *state)
       same_permissions_option = -1;
       break;
 
+    case ACLS_OPTION:
+      set_archive_format ("posix");
+      acls_option = 1;
+      break;
+
+    case NO_ACLS_OPTION:
+      acls_option = -1;
+      break;
+
+    case SELINUX_CONTEXT_OPTION:
+      set_archive_format ("posix");
+      selinux_context_option = 1;
+      break;
+
+    case NO_SELINUX_CONTEXT_OPTION:
+      selinux_context_option = -1;
+      break;
+
+    case XATTR_OPTION:
+      set_archive_format ("posix");
+      xattrs_option = 1;
+      break;
+
+    case NO_XATTR_OPTION:
+      xattrs_option = -1;
+      break;
+
+    case XATTR_INCLUDE:
+    case XATTR_EXCLUDE:
+      xattrs_mask_add (arg, (key == XATTR_INCLUDE));
+      break;
+
     case RECURSION_OPTION:
       recursion_option = FNM_LEADING_DIR;
       break;
@@ -2142,7 +2130,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
            break;
 
          default:
-           argp_error (state, _("Unknown density: `%c'"), arg[0]);
+           argp_error (state, _("Unknown density: '%c'"), arg[0]);
          }
        sprintf (cursor, "%d", device);
 
@@ -2159,7 +2147,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
 #else /* not DEVICE_PREFIX */
 
       argp_error (state,
-                 _("Options `-[0-7][lmh]' not supported by *this* tar"));
+                 _("Options '-[0-7][lmh]' not supported by *this* tar"));
 
 #endif /* not DEVICE_PREFIX */
 
@@ -2208,12 +2196,37 @@ static const char *tar_authors[] = {
   "Jay Fenlason",
   NULL
 };
+\f
+/* Subcommand classes */
+#define SUBCL_READ    0x01   /* subcommand reads from the archive */
+#define SUBCL_WRITE   0x02   /* subcommand writes to the archive */
+#define SUBCL_UPDATE  0x04   /* subcommand updates existing archive */
+#define SUBCL_TEST    0x08   /* subcommand tests archive header or meta-info */
+#define SUBCL_OCCUR   0x10   /* subcommand allows the use of the occurrence
+                               option */
+
+static int subcommand_class[] = {
+  /* UNKNOWN_SUBCOMMAND */     0,
+  /* APPEND_SUBCOMMAND  */     SUBCL_WRITE|SUBCL_UPDATE,
+  /* CAT_SUBCOMMAND     */     SUBCL_WRITE,
+  /* CREATE_SUBCOMMAND  */     SUBCL_WRITE,
+  /* DELETE_SUBCOMMAND  */     SUBCL_WRITE|SUBCL_UPDATE|SUBCL_OCCUR,
+  /* DIFF_SUBCOMMAND    */     SUBCL_READ|SUBCL_OCCUR,
+  /* EXTRACT_SUBCOMMAND */     SUBCL_READ|SUBCL_OCCUR,
+  /* LIST_SUBCOMMAND    */     SUBCL_READ|SUBCL_OCCUR,
+  /* UPDATE_SUBCOMMAND  */     SUBCL_WRITE|SUBCL_UPDATE,
+  /* TEST_LABEL_SUBCOMMAND */  SUBCL_TEST
+};
+
+/* Return t if the subcommand_option is in class(es) f */
+#define IS_SUBCOMMAND_CLASS(f) (subcommand_class[subcommand_option] & (f))
+  
+static struct tar_args args;
 
 static void
 decode_options (int argc, char **argv)
 {
   int idx;
-  struct tar_args args;
 
   argp_version_setup ("tar", tar_authors);
 
@@ -2241,8 +2254,8 @@ decode_options (int argc, char **argv)
   tar_sparse_major = 1;
   tar_sparse_minor = 0;
 
-  owner_option = -1;
-  group_option = -1;
+  owner_option = -1; owner_name_option = NULL;
+  group_option = -1; group_name_option = NULL;
 
   check_device_option = true;
 
@@ -2290,7 +2303,7 @@ decode_options (int argc, char **argv)
              if (in < argv + argc)
                *out++ = *in++;
              else
-               USAGE_ERROR ((0, 0, _("Old option `%c' requires an argument."),
+               USAGE_ERROR ((0, 0, _("Old option '%c' requires an argument."),
                              *letter));
            }
        }
@@ -2314,7 +2327,6 @@ decode_options (int argc, char **argv)
   if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER, &idx, &args))
     exit (TAREXIT_FAILURE);
 
-
   /* Special handling for 'o' option:
 
      GNU tar used to say "output old format".
@@ -2372,12 +2384,10 @@ decode_options (int argc, char **argv)
       if (!args.input_files)
        USAGE_ERROR ((0, 0,
                      _("--occurrence is meaningless without a file list")));
-      if (subcommand_option != DELETE_SUBCOMMAND
-         && subcommand_option != DIFF_SUBCOMMAND
-         && subcommand_option != EXTRACT_SUBCOMMAND
-         && subcommand_option != LIST_SUBCOMMAND)
-           USAGE_ERROR ((0, 0,
-                         _("--occurrence cannot be used in the requested operation mode")));
+      if (!IS_SUBCOMMAND_CLASS (SUBCL_OCCUR))
+       USAGE_ERROR ((0, 0,
+                     _("--occurrence cannot be used with %s"),
+                     subcommand_string (subcommand_option)));
     }
 
   if (archive_names == 0)
@@ -2391,11 +2401,11 @@ decode_options (int argc, char **argv)
        archive_name_array[0] = DEFAULT_ARCHIVE;
     }
 
-  /* Allow multiple archives only with `-M'.  */
+  /* Allow multiple archives only with '-M'.  */
 
   if (archive_names > 1 && !multi_volume_option)
     USAGE_ERROR ((0, 0,
-                 _("Multiple archive files require `-M' option")));
+                 _("Multiple archive files require '-M' option")));
 
   if (listed_incremental_option
       && NEWER_OPTION_INITIALIZED (newer_mtime_option))
@@ -2436,15 +2446,16 @@ decode_options (int argc, char **argv)
        USAGE_ERROR ((0, 0, _("Cannot verify multi-volume archives")));
       if (use_compress_program_option)
        USAGE_ERROR ((0, 0, _("Cannot verify compressed archives")));
+      if (!IS_SUBCOMMAND_CLASS (SUBCL_WRITE))
+       USAGE_ERROR ((0, 0, _("--verify cannot be used with %s"),
+                     subcommand_string (subcommand_option)));
     }
 
   if (use_compress_program_option)
     {
       if (multi_volume_option)
        USAGE_ERROR ((0, 0, _("Cannot use multi-volume compressed archives")));
-      if (subcommand_option == UPDATE_SUBCOMMAND
-         || subcommand_option == APPEND_SUBCOMMAND
-         || subcommand_option == DELETE_SUBCOMMAND)
+      if (IS_SUBCOMMAND_CLASS (SUBCL_UPDATE))
        USAGE_ERROR ((0, 0, _("Cannot update compressed archives")));
       if (subcommand_option == CAT_SUBCOMMAND)
        USAGE_ERROR ((0, 0, _("Cannot concatenate compressed archives")));
@@ -2456,11 +2467,33 @@ decode_options (int argc, char **argv)
      --gray */
   if (args.pax_option
       && archive_format != POSIX_FORMAT
-      && (subcommand_option != EXTRACT_SUBCOMMAND
-         || subcommand_option != DIFF_SUBCOMMAND
-         || subcommand_option != LIST_SUBCOMMAND))
+      && !IS_SUBCOMMAND_CLASS (SUBCL_READ))
     USAGE_ERROR ((0, 0, _("--pax-option can be used only on POSIX archives")));
 
+  /* star creates non-POSIX typed archives with xattr support, so allow the
+     extra headers when reading */
+  if ((acls_option > 0)
+      && archive_format != POSIX_FORMAT
+      && !IS_SUBCOMMAND_CLASS (SUBCL_READ))
+    USAGE_ERROR ((0, 0, _("--acls can be used only on POSIX archives")));
+
+  if ((selinux_context_option > 0)
+      && archive_format != POSIX_FORMAT
+      && !IS_SUBCOMMAND_CLASS (SUBCL_READ))
+    USAGE_ERROR ((0, 0, _("--selinux can be used only on POSIX archives")));
+
+  if ((xattrs_option > 0)
+      && archive_format != POSIX_FORMAT
+      && !IS_SUBCOMMAND_CLASS (SUBCL_READ))
+    USAGE_ERROR ((0, 0, _("--xattrs can be used only on POSIX archives")));
+
+  if ((starting_file_option || same_order_option)
+      && !IS_SUBCOMMAND_CLASS (SUBCL_READ))
+    USAGE_ERROR ((0, 0,
+                 _("--%s option cannot be used with %s"),
+                 starting_file_option ? "starting-file" : "same-order",
+                 subcommand_string (subcommand_option)));
+  
   /* If ready to unlink hierarchies, so we are for simpler files.  */
   if (recursive_unlink_option)
     old_files_option = UNLINK_FIRST_OLD_FILES;
@@ -2495,7 +2528,7 @@ decode_options (int argc, char **argv)
     USAGE_ERROR ((0, 0, _("--preserve-order is not compatible with "
                          "--listed-incremental")));
 
-  /* Forbid using -c with no input files whatsoever.  Check that `-f -',
+  /* Forbid using -c with no input files whatsoever.  Check that '-f -',
      explicit or implied, is used correctly.  */
 
   switch (subcommand_option)
@@ -2529,7 +2562,7 @@ decode_options (int argc, char **argv)
           archive_name_cursor++)
        if (!strcmp (*archive_name_cursor, "-"))
          USAGE_ERROR ((0, 0,
-                       _("Options `-Aru' are incompatible with `-f -'")));
+                       _("Options '-Aru' are incompatible with '-f -'")));
 
     default:
       break;
@@ -2540,7 +2573,7 @@ decode_options (int argc, char **argv)
     {
       stdlis = fopen (index_file_name, "w");
       if (! stdlis)
-       open_error (index_file_name);
+       open_fatal (index_file_name);
     }
   else
     stdlis = to_stdout_option ? stderr : stdout;
@@ -2566,6 +2599,14 @@ decode_options (int argc, char **argv)
   report_textual_dates (&args);
 }
 
+void
+more_options (int argc, char **argv)
+{
+  int idx;
+  if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER,
+                 &idx, &args))
+    exit (TAREXIT_FAILURE);
+}
 \f
 /* Tar proper.  */
 
@@ -2595,8 +2636,6 @@ main (int argc, char **argv)
     xmalloc (sizeof (const char *) * allocated_archive_names);
   archive_names = 0;
 
-  obstack_init (&argv_stk);
-
   /* System V fork+wait does not work if SIGCHLD is ignored.  */
   signal (SIGCHLD, SIG_DFL);
 
@@ -2618,7 +2657,7 @@ main (int argc, char **argv)
     {
     case UNKNOWN_SUBCOMMAND:
       USAGE_ERROR ((0, 0,
-                   _("You must specify one of the `-Acdtrux' or `--test-label'  options")));
+                   _("You must specify one of the '-Acdtrux', '--delete' or '--test-label' options")));
 
     case CAT_SUBCOMMAND:
     case UPDATE_SUBCOMMAND:
@@ -2669,6 +2708,7 @@ main (int argc, char **argv)
   /* Dispose of allocated memory, and return.  */
 
   free (archive_name_array);
+  xattrs_clear_setup ();
   name_term ();
 
   if (exit_status == TAREXIT_FAILURE)
@@ -2713,11 +2753,15 @@ void
 tar_stat_destroy (struct tar_stat_info *st)
 {
   tar_stat_close (st);
+  xheader_xattr_free (st->xattr_map, st->xattr_map_size);
   free (st->orig_file_name);
   free (st->file_name);
   free (st->link_name);
   free (st->uname);
   free (st->gname);
+  free (st->cntx_name);
+  free (st->acls_a_ptr);
+  free (st->acls_d_ptr);
   free (st->sparse_map);
   free (st->dumpdir);
   xheader_destroy (&st->xhdr);
index ce9850c968533db8b49ddc0b9f78e81c6333cabc..70055af214330b8fda18e24ef035a84eb24703d8 100644 (file)
--- a/src/tar.h
+++ b/src/tar.h
@@ -1,21 +1,22 @@
 /* GNU tar Archive Format description.
 
-   Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-   2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright 1988-1989, 1991-1997, 2000-2001, 2003-2007, 2012-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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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/>.  */
 
 /* tar Header Block, from POSIX 1003.1-1990.  */
 
@@ -80,9 +81,9 @@ struct posix_header
 /* tar Header Block, GNU extensions.  */
 
 /* In GNU tar, SYMTYPE is for to symbolic links, and CONTTYPE is for
-   contiguous files, so maybe disobeying the `reserved' comment in POSIX
+   contiguous files, so maybe disobeying the "reserved" comment in POSIX
    header description.  I suspect these were meant to be used this way, and
-   should not have really been `reserved' in the published standards.  */
+   should not have really been "reserved" in the published standards.  */
 
 /* *BEWARE* *BEWARE* *BEWARE* that the following information is still
    boiling, and may change.  Even if the OLDGNU format description should be
@@ -276,6 +277,14 @@ struct xheader
   uintmax_t string_length;
 };
 
+/* Information about xattrs for a file.  */
+struct xattr_array
+  {
+    char *xkey;
+    char *xval_ptr;
+    size_t xval_len;
+  };
+
 struct tar_stat_info
 {
   char *orig_file_name;     /* name of file read from the archive header */
@@ -287,6 +296,15 @@ struct tar_stat_info
 
   char          *uname;     /* user name of owner */
   char          *gname;     /* group name of owner */
+
+  char *cntx_name;          /* SELinux context for the current archive entry. */
+
+  char *acls_a_ptr;         /* Access ACLs for the current archive entry. */
+  size_t acls_a_len;        /* Access ACLs for the current archive entry. */
+
+  char *acls_d_ptr;         /* Default ACLs for the current archive entry. */
+  size_t acls_d_len;        /* Default ACLs for the current archive entry. */
+
   struct stat   stat;       /* regular filesystem stat */
 
   /* STAT doesn't always have access, data modification, and status
@@ -309,6 +327,9 @@ struct tar_stat_info
   size_t sparse_map_size;   /* Size of the sparse map */
   struct sp_array *sparse_map;
 
+  size_t xattr_map_size;   /* Size of the xattr map */
+  struct xattr_array *xattr_map;
+
   /* Extended headers */
   struct xheader xhdr;
 
index 77aa0a299eb722a0deee32556d848ace239d7a5a..cf0189cc53943837c6ea3bf4a18c3278fc30b60f 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of GNU tar.
-   Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright 2006-2008, 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
@@ -12,8 +12,7 @@
    Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <system.h>
 #include <regex.h>
@@ -71,7 +70,7 @@ struct transform
 
 \f
 
-int transform_flags = XFORM_ALL;
+static int transform_flags = XFORM_ALL;
 static struct transform *transform_head, *transform_tail;
 
 static struct transform *
@@ -347,7 +346,7 @@ parse_transform_expr (const char *expr)
              break;
 
            case 'L':
-             /* Turn the replacement to lowercase until a `\U' or `\E'
+             /* Turn the replacement to lowercase until a '\U' or '\E'
                 is found, */
              add_case_ctl_segment (tf, ctl_locase);
              cur++;
@@ -360,7 +359,7 @@ parse_transform_expr (const char *expr)
              break;
 
            case 'U':
-             /* Turn the replacement to uppercase until a `\L' or `\E'
+             /* Turn the replacement to uppercase until a '\L' or '\E'
                 is found, */
              add_case_ctl_segment (tf, ctl_upcase);
              cur++;
@@ -373,7 +372,7 @@ parse_transform_expr (const char *expr)
              break;
 
            case 'E':
-             /* Stop case conversion started by `\L' or `\U'. */
+             /* Stop case conversion started by '\L' or '\U'. */
              add_case_ctl_segment (tf, ctl_stop);
              cur++;
              break;
index b2816368569c85140f972fdc45bcb5664021c5d4..6677148ea5ecd976d4a9aa3bbecac42747cf1951 100644 (file)
@@ -1,19 +1,21 @@
-/* This file is part of GNU tar.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+/* Unlink files.
 
-   This program is free software; you can redistribute 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.
+   Copyright 2009, 2013 Free Software Foundation, Inc.
 
-   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.
+   This file is part of GNU tar.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+
+   GNU tar 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 <system.h>
 #include "common.h"
@@ -22,7 +24,9 @@
 struct deferred_unlink
   {
     struct deferred_unlink *next;   /* Next unlink in the queue */
-    char *file_name;                /* Absolute name of the file to unlink */
+    int dir_idx;                    /* Directory index in wd */
+    char *file_name;                /* Name of the file to unlink, relative
+                                      to dir_idx */
     bool is_dir;                    /* True if file_name is a directory */
     off_t records_written;          /* Number of records written when this
                                       entry got added to the queue */
@@ -39,7 +43,7 @@ static struct deferred_unlink *dunlink_avail;
 
 /* Delay (number of records written) between adding entry to the
    list and its actual removal. */
-size_t deferred_unlink_delay = 0;
+static size_t deferred_unlink_delay = 0;
 
 static struct deferred_unlink *
 dunlink_alloc (void)
@@ -68,16 +72,30 @@ static void
 flush_deferred_unlinks (bool force)
 {
   struct deferred_unlink *p, *prev = NULL;
-
+  int saved_chdir = chdir_current;
+  
   for (p = dunlink_head; p; )
     {
       struct deferred_unlink *next = p->next;
+
       if (force
          || records_written > p->records_written + deferred_unlink_delay)
        {
+         chdir_do (p->dir_idx);
          if (p->is_dir)
            {
-             if (unlinkat (chdir_fd, p->file_name, AT_REMOVEDIR) != 0)
+             const char *fname;
+
+             if (p->file_name[0] == 0 ||
+                 strcmp (p->file_name, ".") == 0)
+               {
+                 fname = tar_dirname ();
+                 chdir_do (p->dir_idx - 1);
+               }
+             else
+               fname = p->file_name;
+                 
+             if (unlinkat (chdir_fd, fname, AT_REMOVEDIR) != 0)
                {
                  switch (errno)
                    {
@@ -95,7 +113,7 @@ flush_deferred_unlinks (bool force)
                        }
                      /* fall through */
                    default:
-                     rmdir_error (p->file_name);
+                     rmdir_error (fname);
                    }
                }
            }
@@ -120,10 +138,11 @@ flush_deferred_unlinks (bool force)
     }
   if (!dunlink_head)
     dunlink_tail = NULL;
+  chdir_do (saved_chdir);
 }
 
 void
-finish_deferred_unlinks ()
+finish_deferred_unlinks (void)
 {
   flush_deferred_unlinks (true);
   while (dunlink_avail)
@@ -145,7 +164,9 @@ queue_deferred_unlink (const char *name, bool is_dir)
 
   p = dunlink_alloc ();
   p->next = NULL;
-  p->file_name = normalize_filename (name);
+  p->dir_idx = chdir_current;
+  p->file_name = xstrdup (name);
+  normalize_filename_x (p->file_name);
   p->is_dir = is_dir;
   p->records_written = records_written;
 
index e3228d425f51d90d5a841e9aefa984cec1a69a30..72141b21bd168e8bfaea15f048aeae60a917868d 100644 (file)
@@ -1,21 +1,22 @@
 /* Update a tar archive.
 
-   Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 2003,
-   2004, 2005, 2007, 2010 Free Software Foundation, Inc.
+   Copyright 1988, 1992, 1994, 1996-1997, 1999-2001, 2003-2005, 2007, 2010,
+   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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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/>.  */
 
 /* Implement the 'r', 'u' and 'A' options for tar.  'A' means that the
    file names are tar files, and they should simply be appended to the end
@@ -144,16 +145,8 @@ update_archive (void)
                  {
                    if (S_ISDIR (s.st_mode))
                      {
-                       char *p, *dirp;
-                       DIR *stream;
-                       int fd = openat (chdir_fd, name->name,
-                                        open_read_flags | O_DIRECTORY);
-                       if (fd < 0)
-                         open_error (name->name);
-                       else if (! ((stream = fdopendir (fd))
-                                   && (dirp = streamsavedir (stream))))
-                         savedir_error (name->name);
-                       else
+                       char *p, *dirp = tar_savedir (name->name, 1);
+                       if (dirp)
                          {
                            namebuf_t nbuf = namebuf_create (name->name);
 
@@ -166,11 +159,6 @@ update_archive (void)
 
                            remname (name);
                          }
-
-                       if (stream
-                           ? closedir (stream) != 0
-                           : 0 <= fd && close (fd) != 0)
-                         savedir_error (name->name);
                      }
                    else if (tar_timespec_cmp (get_stat_mtime (&s),
                                               current_stat_info.mtime)
index c9836d6273f661faae0da85029444a7eac3fbc70..5af8456dd2964cb0daf27d30ac208db3d50be5dd 100644 (file)
@@ -1,20 +1,21 @@
 /* Charset handling for GNU tar.
 
-   Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright 2004, 2006-2007, 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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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 <system.h>
 #include <quotearg.h>
index 5d1bcabc64ee163c010562f56035266e348e0bfb..d58a575d5813fe2e7f83fc907cb4d71a47ea24e4 100644 (file)
@@ -1,19 +1,21 @@
-/* This file is part of GNU tar.
+/* Warnings for GNU tar.
 
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright 2009, 2012-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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program.  If not, see <http://www.gnu.org/licenses/>. */
+   GNU tar 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 <system.h>
 #include <argmatch.h>
@@ -42,6 +44,9 @@ static char const *const warning_args[] = {
   "unknown-keyword",
   "xdev",
   "decompress-program",
+  "existing-file",
+  "xattr-write",
+  "record-size",
   NULL
 };
 
@@ -66,7 +71,10 @@ static int warning_types[] = {
   WARN_UNKNOWN_CAST,
   WARN_UNKNOWN_KEYWORD,
   WARN_XDEV,
-  WARN_DECOMPRESS_PROGRAM
+  WARN_DECOMPRESS_PROGRAM,
+  WARN_EXISTING_FILE,
+  WARN_XATTR_WRITE,
+  WARN_RECORD_SIZE
 };
 
 ARGMATCH_VERIFY (warning_args, warning_types);
diff --git a/src/xattrs.c b/src/xattrs.c
new file mode 100644 (file)
index 0000000..dac15f3
--- /dev/null
@@ -0,0 +1,734 @@
+/* Support for extended attributes.
+
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+
+   This file is part of GNU tar.
+
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+
+   GNU tar 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 James Antill, on 2006-07-27.  */
+
+#include <config.h>
+#include <system.h>
+
+#include <fnmatch.h>
+#include <quotearg.h>
+
+#include "common.h"
+
+#include "xattr-at.h"
+#include "selinux-at.h"
+
+struct xattrs_mask_map
+{
+  const char **masks;
+  size_t size;
+  size_t used;
+};
+
+/* list of fnmatch patterns */
+static struct
+{
+  /* lists of fnmatch patterns */
+  struct xattrs_mask_map incl;
+  struct xattrs_mask_map excl;
+} xattrs_setup;
+
+/* disable posix acls when problem found in gnulib script m4/acl.m4 */
+#if ! USE_ACL
+# undef HAVE_POSIX_ACLS
+#endif
+
+#ifdef HAVE_POSIX_ACLS
+# include "acl.h"
+# include <sys/acl.h>
+#endif
+
+#ifdef HAVE_POSIX_ACLS
+
+/* acl-at wrappers, TODO: move to gnulib in future? */
+static acl_t acl_get_file_at (int, const char *, acl_type_t);
+static int acl_set_file_at (int, const char *, acl_type_t, acl_t);
+static int file_has_acl_at (int, char const *, struct stat const *);
+
+/* acl_get_file_at */
+#define AT_FUNC_NAME acl_get_file_at
+#define AT_FUNC_RESULT acl_t
+#define AT_FUNC_FAIL (acl_t)NULL
+#define AT_FUNC_F1 acl_get_file
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , acl_type_t type
+#define AT_FUNC_POST_FILE_ARGS          , type
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_RESULT
+#undef AT_FUNC_FAIL
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* acl_set_file_at */
+#define AT_FUNC_NAME acl_set_file_at
+#define AT_FUNC_F1 acl_set_file
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , acl_type_t type, acl_t acl
+#define AT_FUNC_POST_FILE_ARGS          , type, acl
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* gnulib file_has_acl_at */
+#define AT_FUNC_NAME file_has_acl_at
+#define AT_FUNC_F1 file_has_acl
+#define AT_FUNC_POST_FILE_PARAM_DECLS   , struct stat const *st
+#define AT_FUNC_POST_FILE_ARGS          , st
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
+
+/* convert unix permissions into an ACL ... needed due to "default" ACLs */
+static acl_t
+perms2acl (int perms)
+{
+  char val[] = "user::---,group::---,other::---";
+  /*            0123456789 123456789 123456789 123456789 */
+
+  /* user */
+  if (perms & 0400)
+    val[6] = 'r';
+  if (perms & 0200)
+    val[7] = 'w';
+  if (perms & 0100)
+    val[8] = 'x';
+
+  /* group */
+  if (perms & 0040)
+    val[17] = 'r';
+  if (perms & 0020)
+    val[18] = 'w';
+  if (perms & 0010)
+    val[19] = 'x';
+
+  /* other */
+  if (perms & 0004)
+    val[28] = 'r';
+  if (perms & 0002)
+    val[29] = 'w';
+  if (perms & 0001)
+    val[30] = 'x';
+
+  return acl_from_text (val);
+}
+
+static char *
+skip_to_ext_fields (char *ptr)
+{
+  /* skip tag name (user/group/default/mask) */
+  ptr += strcspn (ptr, ":,\n");
+
+  if (*ptr != ':')
+    return ptr;
+  ++ptr;
+
+  ptr += strcspn (ptr, ":,\n"); /* skip user/group name */
+
+  if (*ptr != ':')
+    return ptr;
+  ++ptr;
+
+  ptr += strcspn (ptr, ":,\n"); /* skip perms */
+
+  return ptr;
+}
+
+/* The POSIX draft allows extra fields after the three main ones. Star
+   uses this to add a fourth field for user/group which is the numeric ID.
+   This function removes such extra fields by overwriting them with the
+   characters that follow. */
+static char *
+fixup_extra_acl_fields (char *ptr)
+{
+  char *src = ptr;
+  char *dst = ptr;
+
+  while (*src)
+    {
+      const char *old = src;
+      size_t len = 0;
+
+      src = skip_to_ext_fields (src);
+      len = src - old;
+      if (old != dst)
+        memmove (dst, old, len);
+      dst += len;
+
+      if (*src == ':')          /* We have extra fields, skip them all */
+        src += strcspn (src, "\n,");
+
+      if ((*src == '\n') || (*src == ','))
+        *dst++ = *src++;        /* also done when dst == src, but that's ok */
+    }
+  if (src != dst)
+    *dst = 0;
+
+  return ptr;
+}
+
+/* "system.posix_acl_access" */
+static void
+xattrs__acls_set (struct tar_stat_info const *st,
+                  char const *file_name, int type,
+                  char *ptr, size_t len, bool def)
+{
+  acl_t acl;
+
+  if (ptr)
+    {
+      /* assert (strlen (ptr) == len); */
+      ptr = fixup_extra_acl_fields (ptr);
+
+      acl = acl_from_text (ptr);
+      acls_option = 1;
+    }
+  else if (acls_option > 0)
+    acl = perms2acl (st->stat.st_mode);
+  else
+    return;  /* don't call acl functions unless we first hit an ACL, or
+               --acls was passed explicitly */
+
+  if (!acl)
+    {
+      call_arg_warn ("acl_from_text", file_name);
+      return;
+    }
+
+  if (acl_set_file_at (chdir_fd, file_name, type, acl) == -1)
+    /* warn even if filesystem does not support acls */
+    WARNOPT (WARN_XATTR_WRITE,
+            (0, errno,
+             _ ("acl_set_file_at: Cannot set POSIX ACLs for file '%s'"),
+             file_name));
+
+  acl_free (acl);
+}
+
+static void
+xattrs__acls_get_a (int parentfd, const char *file_name,
+                    struct tar_stat_info *st,
+                    char **ret_ptr, size_t * ret_len)
+{
+  char *val = NULL;
+  ssize_t len;
+  acl_t acl;
+
+  if (!(acl = acl_get_file_at (parentfd, file_name, ACL_TYPE_ACCESS)))
+    {
+      if (errno != ENOTSUP)
+        call_arg_warn ("acl_get_file_at", file_name);
+      return;
+    }
+
+  val = acl_to_text (acl, &len);
+  acl_free (acl);
+
+  if (!val)
+    {
+      call_arg_warn ("acl_to_text", file_name);
+      return;
+    }
+
+  *ret_ptr = xstrdup (val);
+  *ret_len = len;
+
+  acl_free (val);
+}
+
+/* "system.posix_acl_default" */
+static void
+xattrs__acls_get_d (int parentfd, char const *file_name,
+                    struct tar_stat_info *st,
+                    char **ret_ptr, size_t * ret_len)
+{
+  char *val = NULL;
+  ssize_t len;
+  acl_t acl;
+
+  if (!(acl = acl_get_file_at (parentfd, file_name, ACL_TYPE_DEFAULT)))
+    {
+      if (errno != ENOTSUP)
+        call_arg_warn ("acl_get_file_at", file_name);
+      return;
+    }
+
+  val = acl_to_text (acl, &len);
+  acl_free (acl);
+
+  if (!val)
+    {
+      call_arg_warn ("acl_to_text", file_name);
+      return;
+    }
+
+  *ret_ptr = xstrdup (val);
+  *ret_len = len;
+
+  acl_free (val);
+}
+#endif /* HAVE_POSIX_ACLS */
+
+static void
+acls_one_line (const char *prefix, char delim,
+               const char *aclstring, size_t len)
+{
+  /* support both long and short text representation of posix acls */
+  struct obstack stk;
+  int pref_len = strlen (prefix);
+  const char *oldstring = aclstring;
+  int pos = 0;
+
+  if (!aclstring || !len)
+    return;
+
+  obstack_init (&stk);
+  while (pos <= len)
+    {
+      int move = strcspn (aclstring, ",\n");
+      if (!move)
+        break;
+
+      if (oldstring != aclstring)
+        obstack_1grow (&stk, delim);
+
+      obstack_grow (&stk, prefix, pref_len);
+      obstack_grow (&stk, aclstring, move);
+
+      aclstring += move + 1;
+    }
+
+  obstack_1grow (&stk, '\0');
+
+  fprintf (stdlis, "%s", (char *) obstack_finish (&stk));
+
+  obstack_free (&stk, NULL);
+}
+
+void
+xattrs_acls_get (int parentfd, char const *file_name,
+                 struct tar_stat_info *st, int fd, int xisfile)
+{
+  if (acls_option > 0)
+    {
+#ifndef HAVE_POSIX_ACLS
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("POSIX ACL support is not available")));
+      done = 1;
+#else
+      int err = file_has_acl_at (parentfd, file_name, &st->stat);
+      if (err == 0)
+        return;
+      if (err == -1)
+        {
+          call_arg_warn ("file_has_acl_at", file_name);
+          return;
+        }
+
+      xattrs__acls_get_a (parentfd, file_name, st,
+                          &st->acls_a_ptr, &st->acls_a_len);
+      if (!xisfile)
+        xattrs__acls_get_d (parentfd, file_name, st,
+                            &st->acls_d_ptr, &st->acls_d_len);
+#endif
+    }
+}
+
+void
+xattrs_acls_set (struct tar_stat_info const *st,
+                 char const *file_name, char typeflag)
+{
+  if (acls_option > 0 && typeflag != SYMTYPE)
+    {
+#ifndef HAVE_POSIX_ACLS
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("POSIX ACL support is not available")));
+      done = 1;
+#else
+      xattrs__acls_set (st, file_name, ACL_TYPE_ACCESS,
+                        st->acls_a_ptr, st->acls_a_len, false);
+      if (typeflag == DIRTYPE || typeflag == GNUTYPE_DUMPDIR)
+        xattrs__acls_set (st, file_name, ACL_TYPE_DEFAULT,
+                          st->acls_d_ptr, st->acls_d_len, true);
+#endif
+    }
+}
+
+static void
+mask_map_realloc (struct xattrs_mask_map *map)
+{
+  if (map->used == map->size)
+    {
+      if (map->size == 0)
+       map->size = 4;
+      map->masks = x2nrealloc (map->masks, &map->size, sizeof (map->masks[0]));
+    }
+}
+
+void
+xattrs_mask_add (const char *mask, bool incl)
+{
+  struct xattrs_mask_map *mask_map =
+    incl ? &xattrs_setup.incl : &xattrs_setup.excl;
+  /* ensure there is enough space */
+  mask_map_realloc (mask_map);
+  /* just assign pointers -- we silently expect that pointer "mask" is valid
+     through the whole program (pointer to argv array) */
+  mask_map->masks[mask_map->used++] = mask;
+}
+
+static void
+clear_mask_map (struct xattrs_mask_map *mask_map)
+{
+  if (mask_map->size)
+    free (mask_map->masks);
+}
+
+void
+xattrs_clear_setup (void)
+{
+  clear_mask_map (&xattrs_setup.incl);
+  clear_mask_map (&xattrs_setup.excl);
+}
+
+/* get all xattrs from file given by FILE_NAME or FD (when non-zero).  This
+   includes all the user.*, security.*, system.*, etc. available domains */
+void
+xattrs_xattrs_get (int parentfd, char const *file_name,
+                   struct tar_stat_info *st, int fd)
+{
+  if (xattrs_option > 0)
+    {
+#ifndef HAVE_XATTRS
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("XATTR support is not available")));
+      done = 1;
+#else
+      static size_t xsz = 1024;
+      static char *xatrs = NULL;
+      ssize_t xret = -1;
+
+      if (!xatrs)
+       xatrs = x2nrealloc (xatrs, &xsz, 1);
+
+      while (((fd == 0) ?
+              ((xret =
+                llistxattrat (parentfd, file_name, xatrs, xsz)) == -1) :
+             ((xret = flistxattr (fd, xatrs, xsz)) == -1))
+             && (errno == ERANGE))
+        {
+         xatrs = x2nrealloc (xatrs, &xsz, 1);
+        }
+
+      if (xret == -1)
+        call_arg_warn ((fd == 0) ? "llistxattrat" : "flistxattr", file_name);
+      else
+        {
+          const char *attr = xatrs;
+          static size_t asz = 1024;
+          static char *val = NULL;
+
+          if (!val)
+            val = x2nrealloc (val, &asz, 1);
+
+          while (xret > 0)
+            {
+              size_t len = strlen (attr);
+              ssize_t aret = 0;
+
+              /* Archive all xattrs during creation, decide at extraction time
+               * which ones are of interest/use for the target filesystem. */
+              while (((fd == 0)
+                      ? ((aret = lgetxattrat (parentfd, file_name, attr,
+                                              val, asz)) == -1)
+                      : ((aret = fgetxattr (fd, attr, val, asz)) == -1))
+                     && (errno == ERANGE))
+                {
+                 val = x2nrealloc (val, &asz, 1);
+                }
+
+              if (aret != -1)
+                xheader_xattr_add (st, attr, val, aret);
+              else if (errno != ENOATTR)
+                call_arg_warn ((fd == 0) ? "lgetxattrat"
+                               : "fgetxattr", file_name);
+
+              attr += len + 1;
+              xret -= len + 1;
+            }
+        }
+#endif
+    }
+}
+
+#ifdef HAVE_XATTRS
+static void
+xattrs__fd_set (struct tar_stat_info const *st,
+                char const *file_name, char typeflag,
+                const char *attr, const char *ptr, size_t len)
+{
+  if (ptr)
+    {
+      const char *sysname = "setxattrat";
+      int ret = -1;
+
+      if (typeflag != SYMTYPE)
+        ret = setxattrat (chdir_fd, file_name, attr, ptr, len, 0);
+      else
+        {
+          sysname = "lsetxattr";
+          ret = lsetxattrat (chdir_fd, file_name, attr, ptr, len, 0);
+        }
+
+      if (ret == -1)
+        WARNOPT (WARN_XATTR_WRITE,
+                (0, errno,
+                 _("%s: Cannot set '%s' extended attribute for file '%s'"),
+                 sysname, attr, file_name));
+    }
+}
+#endif
+
+/* lgetfileconat is called against FILE_NAME iff the FD parameter is set to
+   zero, otherwise the fgetfileconat is used against correct file descriptor */
+void
+xattrs_selinux_get (int parentfd, char const *file_name,
+                    struct tar_stat_info *st, int fd)
+{
+  if (selinux_context_option > 0)
+    {
+#if HAVE_SELINUX_SELINUX_H != 1
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("SELinux support is not available")));
+      done = 1;
+#else
+      int result = fd ?
+                   fgetfilecon (fd, &st->cntx_name)
+                    : lgetfileconat (parentfd, file_name, &st->cntx_name);
+
+      if (result == -1 && errno != ENODATA && errno != ENOTSUP)
+        call_arg_warn (fd ? "fgetfilecon" : "lgetfileconat", file_name);
+#endif
+    }
+}
+
+void
+xattrs_selinux_set (struct tar_stat_info const *st,
+                    char const *file_name, char typeflag)
+{
+  if (selinux_context_option > 0)
+    {
+#if HAVE_SELINUX_SELINUX_H != 1
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("SELinux support is not available")));
+      done = 1;
+#else
+      const char *sysname = "setfilecon";
+      int ret;
+
+      if (!st->cntx_name)
+        return;
+
+      if (typeflag != SYMTYPE)
+        {
+          ret = setfileconat (chdir_fd, file_name, st->cntx_name);
+          sysname = "setfileconat";
+        }
+      else
+        {
+          ret = lsetfileconat (chdir_fd, file_name, st->cntx_name);
+          sysname = "lsetfileconat";
+        }
+
+      if (ret == -1)
+        WARNOPT (WARN_XATTR_WRITE,
+                (0, errno,
+                 _("%s: Cannot set SELinux context for file '%s'"),
+                 sysname, file_name));
+#endif
+    }
+}
+
+static bool
+xattrs_matches_mask (const char *kw, struct xattrs_mask_map *mm)
+{
+  int i;
+
+  if (!mm->size)
+    return false;
+
+  for (i = 0; i < mm->used; i++)
+    if (fnmatch (mm->masks[i], kw, 0) == 0)
+      return true;
+
+  return false;
+}
+
+#define USER_DOT_PFX "user."
+
+static bool
+xattrs_kw_included (const char *kw, bool archiving)
+{
+  if (xattrs_setup.incl.size)
+    return xattrs_matches_mask (kw, &xattrs_setup.incl);
+  else if (archiving)
+    return true;
+  else
+    return strncmp (kw, USER_DOT_PFX, sizeof (USER_DOT_PFX) - 1) == 0;
+}
+
+static bool
+xattrs_kw_excluded (const char *kw, bool archiving)
+{
+  return xattrs_setup.excl.size ?
+    xattrs_matches_mask (kw, &xattrs_setup.excl) : false;
+}
+
+/* Check whether the xattr with keyword KW should be discarded from list of
+   attributes that are going to be archived/excluded (set ARCHIVING=true for
+   archiving, false for excluding) */
+static bool
+xattrs_masked_out (const char *kw, bool archiving)
+{
+  return xattrs_kw_included (kw, archiving) ?
+    xattrs_kw_excluded (kw, archiving) : true;
+}
+
+void
+xattrs_xattrs_set (struct tar_stat_info const *st,
+                   char const *file_name, char typeflag, int later_run)
+{
+  if (xattrs_option > 0)
+    {
+#ifndef HAVE_XATTRS
+      static int done = 0;
+      if (!done)
+        WARN ((0, 0, _("XATTR support is not available")));
+      done = 1;
+#else
+      size_t scan = 0;
+
+      if (!st->xattr_map_size)
+        return;
+
+      for (; scan < st->xattr_map_size; ++scan)
+        {
+          char *keyword = st->xattr_map[scan].xkey;
+          keyword += strlen ("SCHILY.xattr.");
+
+          /* TODO: this 'later_run' workaround is temporary solution -> once
+             capabilities should become fully supported by it's API and there
+             should exist something like xattrs_capabilities_set() call.
+             For a regular files: all extended attributes are restored during
+             the first run except 'security.capability' which is restored in
+             'later_run == 1'.  */
+          if (typeflag == REGTYPE
+              && later_run == !!strcmp (keyword, "security.capability"))
+            continue;
+
+          if (xattrs_masked_out (keyword, false /* extracting */ ))
+            /* we don't want to restore this keyword */
+            continue;
+
+          xattrs__fd_set (st, file_name, typeflag, keyword,
+                          st->xattr_map[scan].xval_ptr,
+                          st->xattr_map[scan].xval_len);
+        }
+#endif
+    }
+}
+
+void
+xattrs_print_char (struct tar_stat_info const *st, char *output)
+{
+  int i;
+
+  if (verbose_option < 2)
+    {
+      *output = 0;
+      return;
+    }
+
+  if (xattrs_option > 0 || selinux_context_option > 0 || acls_option > 0)
+    {
+      /* placeholders */
+      *output = ' ';
+      output[1] = 0;
+    }
+
+  if (xattrs_option > 0 && st->xattr_map_size)
+    for (i = 0; i < st->xattr_map_size; ++i)
+      {
+        char *keyword = st->xattr_map[i].xkey + strlen ("SCHILY.xattr.");
+        if (!xattrs_masked_out (keyword, false /* like extracting */ ))
+         {
+           *output = '*';
+           break;
+         }
+      }
+
+  if (selinux_context_option > 0 && st->cntx_name)
+    *output = '.';
+
+  if (acls_option && (st->acls_a_len || st->acls_d_len))
+    *output = '+';
+}
+
+void
+xattrs_print (struct tar_stat_info const *st)
+{
+  if (verbose_option < 3)
+    return;
+
+  /* selinux */
+  if (selinux_context_option && st->cntx_name)
+    fprintf (stdlis, "  s: %s\n", st->cntx_name);
+
+  /* acls */
+  if (acls_option && (st->acls_a_len || st->acls_d_len))
+    {
+      fprintf (stdlis, "  a: ");
+      acls_one_line ("", ',', st->acls_a_ptr, st->acls_a_len);
+      acls_one_line ("default:", ',', st->acls_d_ptr, st->acls_d_len);
+      fprintf (stdlis, "\n");
+    }
+
+  /* xattrs */
+  if (xattrs_option && st->xattr_map_size)
+    {
+      int i;
+
+      for (i = 0; i < st->xattr_map_size; ++i)
+        {
+          char *keyword = st->xattr_map[i].xkey + strlen ("SCHILY.xattr.");
+          if (!xattrs_masked_out (keyword, false /* like extracting */ ))
+           fprintf (stdlis, "  x: %lu %s\n",
+                    (unsigned long) st->xattr_map[i].xval_len, keyword);
+        }
+    }
+}
diff --git a/src/xattrs.h b/src/xattrs.h
new file mode 100644 (file)
index 0000000..fc73c55
--- /dev/null
@@ -0,0 +1,50 @@
+/* Support for extended attributes.
+
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+
+   This file is part of GNU tar.
+
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
+
+   GNU tar 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 James Antill, on 2006-07-27.  */
+
+#ifndef GUARD_XATTTRS_H
+#define GUARD_XATTTRS_H
+
+/* Add include/exclude fnmatch pattern for xattr key domain.  Set INCL parameter
+   to true/false if you want to add include/exclude pattern */
+extern void xattrs_mask_add (const char *mask, bool incl);
+
+/* clear helping structures when tar finishes */
+extern void xattrs_clear_setup (void);
+
+extern void xattrs_acls_get (int parentfd, char const *file_name,
+                             struct tar_stat_info *st, int fd, int xisfile);
+extern void xattrs_selinux_get (int parentfd, char const *file_name,
+                                struct tar_stat_info *st, int fd);
+extern void xattrs_xattrs_get (int parentfd, char const *file_name,
+                               struct tar_stat_info *st, int fd);
+
+extern void xattrs_acls_set (struct tar_stat_info const *st,
+                             char const *file_name, char typeflag);
+extern void xattrs_selinux_set (struct tar_stat_info const *st,
+                                char const *file_name, char typeflag);
+extern void xattrs_xattrs_set (struct tar_stat_info const *st,
+                               char const *file_name, char typeflag,
+                               int later_run);
+
+extern void xattrs_print_char (struct tar_stat_info const *st, char *output);
+extern void xattrs_print (struct tar_stat_info const *st);
+
+#endif /* GUARD_XATTTRS_H */
index 2284e97b1c56b5c1920106e44bb70e9333bf498b..c8c54b6b291a18392413a625bb15cd35d7eed85e 100644 (file)
@@ -1,21 +1,21 @@
 /* POSIX extended headers for tar.
 
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software
-   Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2010, 2012-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, or (at your option) any later
-   version.
+   This file is part of GNU tar.
 
-   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.
+   GNU tar is free software; you can redistribute it and/or modify
+   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.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   GNU tar 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 <system.h>
 
@@ -86,10 +86,10 @@ struct keyword_list
 /* List of keyword patterns set by delete= option */
 static struct keyword_list *keyword_pattern_list;
 
-/* List of keyword/value pairs set by `keyword=value' option */
+/* List of keyword/value pairs set by 'keyword=value' option */
 static struct keyword_list *keyword_global_override_list;
 
-/* List of keyword/value pairs set by `keyword:=value' option */
+/* List of keyword/value pairs set by 'keyword:=value' option */
 static struct keyword_list *keyword_override_list;
 
 /* List of keyword/value pairs decoded from the last 'g' type header */
@@ -167,14 +167,13 @@ xheader_set_single_keyword (char *kw)
 static void
 assign_time_option (char **sval, time_t *tval, const char *input)
 {
-  uintmax_t u;
   char *p;
-  time_t t = u = strtoumax (input, &p, 10);
-  if (t != u || *p || errno == ERANGE)
+  struct timespec t = decode_timespec (input, &p, false);
+  if (! valid_timespec (t) || *p)
     ERROR ((0, 0, _("Time stamp is out of allowed range")));
   else
     {
-      *tval = t;
+      *tval = t.tv_sec;
       assign_string (sval, input);
     }
 }
@@ -262,7 +261,7 @@ xheader_format_name (struct tar_stat_info *st, const char *fmt, size_t n)
   char *dir = NULL;
   char *base = NULL;
   char pidbuf[UINTMAX_STRSIZE_BOUND];
-  char const *pptr;
+  char const *pptr = NULL;
   char nbuf[UINTMAX_STRSIZE_BOUND];
   char const *nptr = NULL;
 
@@ -335,13 +334,10 @@ xheader_format_name (struct tar_stat_info *st, const char *fmt, size_t n)
              break;
 
            case 'n':
-             if (nptr)
-               {
-                 q = stpcpy (q, nptr);
-                 p += 2;
-                 break;
-               }
-             /* else fall through */
+             q = stpcpy (q, nptr);
+             p += 2;
+             break;
+
 
            default:
              *q++ = *p++;
@@ -455,11 +451,129 @@ xheader_write_global (struct xheader *xhdr)
       char *name;
 
       xheader_finish (xhdr);
-      xheader_write (XGLTYPE, name = xheader_ghdr_name (), time (NULL), xhdr);
+      name = xheader_ghdr_name ();
+      xheader_write (XGLTYPE, name, start_time.tv_sec, xhdr);
       free (name);
     }
 }
 
+void
+xheader_xattr_init (struct tar_stat_info *st)
+{
+  st->xattr_map = NULL;
+  st->xattr_map_size = 0;
+
+  st->acls_a_ptr = NULL;
+  st->acls_a_len = 0;
+  st->acls_d_ptr = NULL;
+  st->acls_d_len = 0;
+  st->cntx_name = NULL;
+}
+
+void
+xheader_xattr_free (struct xattr_array *xattr_map, size_t xattr_map_size)
+{
+  size_t scan = 0;
+
+  while (scan < xattr_map_size)
+    {
+      free (xattr_map[scan].xkey);
+      free (xattr_map[scan].xval_ptr);
+
+      ++scan;
+    }
+  free (xattr_map);
+}
+
+static void
+xheader_xattr__add (struct xattr_array **xattr_map,
+                   size_t *xattr_map_size,
+                   const char *key, const char *val, size_t len)
+{
+  size_t pos = (*xattr_map_size)++;
+
+  *xattr_map = xrealloc (*xattr_map,
+                         *xattr_map_size * sizeof(struct xattr_array));
+  (*xattr_map)[pos].xkey = xstrdup (key);
+  (*xattr_map)[pos].xval_ptr = xmemdup (val, len + 1);
+  (*xattr_map)[pos].xval_len = len;
+}
+
+/* This is reversal function for xattr_encode_keyword.  See comment for
+   xattr_encode_keyword() for more info. */
+static void
+xattr_decode_keyword (char *keyword)
+{
+  char *kpr, *kpl; /* keyword pointer left/right */
+  kpr = kpl = keyword;
+
+  for (;;)
+    {
+      if (*kpr == '%')
+        {
+          if (kpr[1] == '3' && kpr[2] == 'D')
+            {
+              *kpl = '=';
+              kpr += 3;
+              kpl ++;
+              continue;
+            }
+          else if (kpr[1] == '2' && kpr[2] == '5')
+            {
+              *kpl = '%';
+              kpr += 3;
+              kpl ++;
+              continue;
+            }
+        }
+
+      *kpl = *kpr;
+
+      if (*kpr == 0)
+        break;
+
+      kpr++;
+      kpl++;
+    }
+}
+
+void
+xheader_xattr_add (struct tar_stat_info *st,
+                  const char *key, const char *val, size_t len)
+{
+  size_t klen = strlen (key);
+  char *xkey = xmalloc (strlen("SCHILY.xattr.") + klen + 1);
+  char *tmp = xkey;
+
+  tmp = stpcpy (tmp, "SCHILY.xattr.");
+  stpcpy (tmp, key);
+
+  xheader_xattr__add (&st->xattr_map, &st->xattr_map_size, xkey, val, len);
+
+  free (xkey);
+}
+
+void
+xheader_xattr_copy (const struct tar_stat_info *st,
+                   struct xattr_array **xattr_map, size_t *xattr_map_size)
+{
+  size_t scan = 0;
+
+  *xattr_map = NULL;
+  *xattr_map_size = 0;
+
+  while (scan < st->xattr_map_size)
+    {
+      char  *key = st->xattr_map[scan].xkey;
+      char  *val = st->xattr_map[scan].xval_ptr;
+      size_t len = st->xattr_map[scan].xval_len;
+
+      xheader_xattr__add(xattr_map, xattr_map_size, key, val, len);
+
+      ++scan;
+    }
+}
+
 \f
 /* General Interface */
 
@@ -473,6 +587,7 @@ struct xhdr_tab
                 struct xheader *, void const *data);
   void (*decoder) (struct tar_stat_info *, char const *, char const *, size_t);
   int flags;
+  bool prefix; /* select handler comparing prefix only */
 };
 
 /* This declaration must be extern, because ISO C99 section 6.9.2
@@ -489,8 +604,17 @@ locate_handler (char const *keyword)
   struct xhdr_tab const *p;
 
   for (p = xhdr_tab; p->keyword; p++)
-    if (strcmp (p->keyword, keyword) == 0)
-      return p;
+    if (p->prefix)
+      {
+        if (strncmp (p->keyword, keyword, strlen(p->keyword)) == 0)
+          return p;
+      }
+    else
+      {
+        if (strcmp (p->keyword, keyword) == 0)
+          return p;
+      }
+
   return NULL;
 }
 
@@ -500,7 +624,8 @@ xheader_protected_pattern_p (const char *pattern)
   struct xhdr_tab const *p;
 
   for (p = xhdr_tab; p->keyword; p++)
-    if ((p->flags & XHDR_PROTECTED) && fnmatch (pattern, p->keyword, 0) == 0)
+    if (!p->prefix && (p->flags & XHDR_PROTECTED)
+        && fnmatch (pattern, p->keyword, 0) == 0)
       return true;
   return false;
 }
@@ -511,7 +636,8 @@ xheader_protected_keyword_p (const char *keyword)
   struct xhdr_tab const *p;
 
   for (p = xhdr_tab; p->keyword; p++)
-    if ((p->flags & XHDR_PROTECTED) && strcmp (p->keyword, keyword) == 0)
+    if (!p->prefix && (p->flags & XHDR_PROTECTED)
+        && strcmp (p->keyword, keyword) == 0)
       return true;
   return false;
 }
@@ -526,7 +652,6 @@ decode_record (struct xheader *xhdr,
 {
   char *start = *ptr;
   char *p = start;
-  uintmax_t u;
   size_t len;
   char *len_lim;
   char const *keyword;
@@ -543,13 +668,7 @@ decode_record (struct xheader *xhdr,
       return false;
     }
 
-  errno = 0;
-  len = u = strtoumax (p, &len_lim, 10);
-  if (len != u || errno == ERANGE)
-    {
-      ERROR ((0, 0, _("Extended header length is out of allowed range")));
-      return false;
-    }
+  len = strtoumax (p, &len_lim, 10);
 
   if (len_max < len)
     {
@@ -618,7 +737,7 @@ decx (void *data, char const *keyword, char const *value, size_t size)
     t->decoder (st, keyword, value, size);
   else
     WARNOPT (WARN_UNKNOWN_KEYWORD,
-            (0, 0, _("Ignoring unknown extended header keyword `%s'"),
+            (0, 0, _("Ignoring unknown extended header keyword '%s'"),
              keyword));
 }
 
@@ -691,10 +810,16 @@ xheader_store (char const *keyword, struct tar_stat_info *st,
 }
 
 void
-xheader_read (struct xheader *xhdr, union block *p, size_t size)
+xheader_read (struct xheader *xhdr, union block *p, off_t size)
 {
   size_t j = 0;
 
+  if (size < 0)
+    size = 0; /* Already diagnosed.  */
+
+  if (SIZE_MAX - BLOCKSIZE <= size)
+    xalloc_die ();
+
   size += BLOCKSIZE;
   xhdr->size = size;
   xhdr->buffer = xmalloc (size + 1);
@@ -721,15 +846,71 @@ xheader_read (struct xheader *xhdr, union block *p, size_t size)
   while (size > 0);
 }
 
+/* xattr_encode_keyword() substitutes '=' ~~> '%3D' and '%' ~~> '%25'
+   in extended attribute keywords.  This is needed because the '=' character
+   has special purpose in extended attribute header - it splits keyword and
+   value part of header.  If there was the '=' occurrence allowed inside
+   keyword, there would be no unambiguous way how to decode this extended
+   attribute.
+
+   (http://lists.gnu.org/archive/html/bug-tar/2012-10/msg00017.html)
+ */
+static char *
+xattr_encode_keyword(const char *keyword)
+{
+  static char *encode_buffer = NULL;
+  static size_t encode_buffer_size = 0;
+  size_t bp; /* keyword/buffer pointers */
+
+  if (!encode_buffer)
+    {
+      encode_buffer_size = 256;
+      encode_buffer = xmalloc (encode_buffer_size);
+    }
+  else
+    *encode_buffer = 0;
+
+  for (bp = 0; *keyword != 0; ++bp, ++keyword)
+    {
+      char c = *keyword;
+
+      if (bp + 2 /* enough for URL encoding also.. */ >= encode_buffer_size)
+        {
+          encode_buffer = x2realloc (encode_buffer, &encode_buffer_size);
+        }
+
+      if (c == '%')
+        {
+          strcpy (encode_buffer + bp, "%25");
+          bp += 2;
+        }
+      else if (c == '=')
+        {
+          strcpy (encode_buffer + bp, "%3D");
+          bp += 2;
+        }
+      else
+        encode_buffer[bp] = c;
+    }
+
+  encode_buffer[bp] = 0;
+
+  return encode_buffer;
+}
+
 static void
 xheader_print_n (struct xheader *xhdr, char const *keyword,
                 char const *value, size_t vsize)
 {
-  size_t len = strlen (keyword) + vsize + 3; /* ' ' + '=' + '\n' */
   size_t p;
   size_t n = 0;
   char nbuf[UINTMAX_STRSIZE_BOUND];
   char const *np;
+  size_t len, klen;
+
+  keyword = xattr_encode_keyword (keyword);
+  klen = strlen (keyword);
+  len = klen + vsize + 3; /* ' ' + '=' + '\n' */
 
   do
     {
@@ -741,7 +922,7 @@ xheader_print_n (struct xheader *xhdr, char const *keyword,
 
   x_obstack_grow (xhdr, np, n);
   x_obstack_1grow (xhdr, ' ');
-  x_obstack_grow (xhdr, keyword, strlen (keyword));
+  x_obstack_grow (xhdr, keyword, klen);
   x_obstack_1grow (xhdr, '=');
   x_obstack_grow (xhdr, value, vsize);
   x_obstack_1grow (xhdr, '\n');
@@ -849,14 +1030,12 @@ xheader_string_end (struct xheader *xhdr, char const *keyword)
 
 static void
 out_of_range_header (char const *keyword, char const *value,
-                    uintmax_t minus_minval, uintmax_t maxval)
+                    intmax_t minval, uintmax_t maxval)
 {
-  char minval_buf[UINTMAX_STRSIZE_BOUND + 1];
+  char minval_buf[INT_BUFSIZE_BOUND (intmax_t)];
   char maxval_buf[UINTMAX_STRSIZE_BOUND];
-  char *minval_string = umaxtostr (minus_minval, minval_buf + 1);
+  char *minval_string = imaxtostr (minval, minval_buf);
   char *maxval_string = umaxtostr (maxval, maxval_buf);
-  if (minus_minval)
-    *--minval_string = '-';
 
   /* TRANSLATORS: The first %s is the pax extended header keyword
      (atime, gid, etc.).  */
@@ -899,136 +1078,59 @@ code_time (struct timespec t, char const *keyword, struct xheader *xhdr)
   xheader_print (xhdr, keyword, code_timespec (t, buf));
 }
 
-enum decode_time_status
-  {
-    decode_time_success,
-    decode_time_range,
-    decode_time_bad_header
-  };
-
-static enum decode_time_status
-_decode_time (struct timespec *ts, char const *arg, char const *keyword)
+static bool
+decode_time (struct timespec *ts, char const *arg, char const *keyword)
 {
-  time_t s;
-  unsigned long int ns = 0;
-  char *p;
   char *arg_lim;
-  bool negative = *arg == '-';
+  struct timespec t = decode_timespec (arg, &arg_lim, true);
 
-  errno = 0;
-
-  if (ISDIGIT (arg[negative]))
+  if (! valid_timespec (t))
     {
-      if (negative)
-       {
-         intmax_t i = strtoimax (arg, &arg_lim, 10);
-         if (TYPE_SIGNED (time_t) ? i < TYPE_MINIMUM (time_t) : i < 0)
-           return decode_time_range;
-         s = i;
-       }
+      if (arg < arg_lim && !*arg_lim)
+       out_of_range_header (keyword, arg, TYPE_MINIMUM (time_t),
+                            TYPE_MAXIMUM (time_t));
       else
-       {
-         uintmax_t i = strtoumax (arg, &arg_lim, 10);
-         if (TYPE_MAXIMUM (time_t) < i)
-           return decode_time_range;
-         s = i;
-       }
-
-      p = arg_lim;
-
-      if (errno == ERANGE)
-       return decode_time_range;
-
-      if (*p == '.')
-       {
-         int digits = 0;
-         bool trailing_nonzero = false;
-
-         while (ISDIGIT (*++p))
-           if (digits < LOG10_BILLION)
-             {
-               ns = 10 * ns + (*p - '0');
-               digits++;
-             }
-           else
-             trailing_nonzero |= *p != '0';
-
-         while (digits++ < LOG10_BILLION)
-           ns *= 10;
-
-         if (negative)
-           {
-             /* Convert "-1.10000000000001" to s == -2, ns == 89999999.
-                I.e., truncate time stamps towards minus infinity while
-                converting them to internal form.  */
-             ns += trailing_nonzero;
-             if (ns != 0)
-               {
-                 if (s == TYPE_MINIMUM (time_t))
-                   return decode_time_range;
-                 s--;
-                 ns = BILLION - ns;
-               }
-           }
-       }
-
-      if (! *p)
-       {
-         ts->tv_sec = s;
-         ts->tv_nsec = ns;
-         return decode_time_success;
-       }
+       ERROR ((0, 0, _("Malformed extended header: invalid %s=%s"),
+               keyword, arg));
+      return false;
     }
 
-  return decode_time_bad_header;
+  *ts = t;
+  return true;
 }
 
-static bool
-decode_time (struct timespec *ts, char const *arg, char const *keyword)
+static void
+code_signed_num (uintmax_t value, char const *keyword,
+                intmax_t minval, uintmax_t maxval, struct xheader *xhdr)
 {
-  switch (_decode_time (ts, arg, keyword))
-    {
-    case decode_time_success:
-      return true;
-    case decode_time_bad_header:
-      ERROR ((0, 0, _("Malformed extended header: invalid %s=%s"),
-             keyword, arg));
-      return false;
-    case decode_time_range:
-      out_of_range_header (keyword, arg, - (uintmax_t) TYPE_MINIMUM (time_t),
-                          TYPE_MAXIMUM (time_t));
-      return false;
-    }
-  return true;
+  char sbuf[SYSINT_BUFSIZE];
+  xheader_print (xhdr, keyword, sysinttostr (value, minval, maxval, sbuf));
 }
 
-
-
 static void
 code_num (uintmax_t value, char const *keyword, struct xheader *xhdr)
 {
-  char sbuf[UINTMAX_STRSIZE_BOUND];
-  xheader_print (xhdr, keyword, umaxtostr (value, sbuf));
+  code_signed_num (value, keyword, 0, UINTMAX_MAX, xhdr);
 }
 
 static bool
-decode_num (uintmax_t *num, char const *arg, uintmax_t maxval,
-           char const *keyword)
+decode_signed_num (intmax_t *num, char const *arg,
+                  intmax_t minval, uintmax_t maxval,
+                  char const *keyword)
 {
-  uintmax_t u;
   char *arg_lim;
+  intmax_t u = strtosysint (arg, &arg_lim, minval, maxval);
 
-  if (! (ISDIGIT (*arg)
-        && (errno = 0, u = strtoumax (arg, &arg_lim, 10), !*arg_lim)))
+  if (errno == EINVAL || *arg_lim)
     {
       ERROR ((0, 0, _("Malformed extended header: invalid %s=%s"),
              keyword, arg));
       return false;
     }
 
-  if (! (u <= maxval && errno != ERANGE))
+  if (errno == ERANGE)
     {
-      out_of_range_header (keyword, arg, 0, maxval);
+      out_of_range_header (keyword, arg, minval, maxval);
       return false;
     }
 
@@ -1036,6 +1138,17 @@ decode_num (uintmax_t *num, char const *arg, uintmax_t maxval,
   return true;
 }
 
+static bool
+decode_num (uintmax_t *num, char const *arg, uintmax_t maxval,
+           char const *keyword)
+{
+  intmax_t i;
+  if (! decode_signed_num (&i, arg, 0, maxval, keyword))
+    return false;
+  *num = i;
+  return true;
+}
+
 static void
 dummy_coder (struct tar_stat_info const *st __attribute__ ((unused)),
             char const *keyword __attribute__ ((unused)),
@@ -1074,7 +1187,8 @@ static void
 gid_coder (struct tar_stat_info const *st, char const *keyword,
           struct xheader *xhdr, void const *data __attribute__ ((unused)))
 {
-  code_num (st->stat.st_gid, keyword, xhdr);
+  code_signed_num (st->stat.st_gid, keyword,
+                  TYPE_MINIMUM (gid_t), TYPE_MAXIMUM (gid_t), xhdr);
 }
 
 static void
@@ -1083,8 +1197,9 @@ gid_decoder (struct tar_stat_info *st,
             char const *arg,
             size_t size __attribute__((unused)))
 {
-  uintmax_t u;
-  if (decode_num (&u, arg, TYPE_MAXIMUM (gid_t), keyword))
+  intmax_t u;
+  if (decode_signed_num (&u, arg, TYPE_MINIMUM (gid_t),
+                        TYPE_MAXIMUM (gid_t), keyword))
     st->stat.st_gid = u;
 }
 
@@ -1197,7 +1312,8 @@ static void
 uid_coder (struct tar_stat_info const *st, char const *keyword,
           struct xheader *xhdr, void const *data __attribute__ ((unused)))
 {
-  code_num (st->stat.st_uid, keyword, xhdr);
+  code_signed_num (st->stat.st_uid, keyword,
+                  TYPE_MINIMUM (uid_t), TYPE_MAXIMUM (uid_t), xhdr);
 }
 
 static void
@@ -1206,8 +1322,9 @@ uid_decoder (struct tar_stat_info *st,
             char const *arg,
             size_t size __attribute__((unused)))
 {
-  uintmax_t u;
-  if (decode_num (&u, arg, TYPE_MAXIMUM (uid_t), keyword))
+  intmax_t u;
+  if (decode_signed_num (&u, arg, TYPE_MINIMUM (uid_t),
+                        TYPE_MAXIMUM (uid_t), keyword))
     st->stat.st_uid = u;
 }
 
@@ -1329,7 +1446,7 @@ sparse_map_decoder (struct tar_stat_info *st,
   st->sparse_map_avail = 0;
   while (1)
     {
-      uintmax_t u;
+      intmax_t u;
       char *delim;
       struct sp_array e;
 
@@ -1341,11 +1458,16 @@ sparse_map_decoder (struct tar_stat_info *st,
        }
 
       errno = 0;
-      u = strtoumax (arg, &delim, 10);
+      u = strtoimax (arg, &delim, 10);
+      if (TYPE_MAXIMUM (off_t) < u)
+       {
+         u = TYPE_MAXIMUM (off_t);
+         errno = ERANGE;
+       }
       if (offset)
        {
          e.offset = u;
-         if (!(u == e.offset && errno != ERANGE))
+         if (errno == ERANGE)
            {
              out_of_range_header (keyword, arg, 0, TYPE_MAXIMUM (off_t));
              return;
@@ -1354,7 +1476,7 @@ sparse_map_decoder (struct tar_stat_info *st,
       else
        {
          e.numbytes = u;
-         if (!(u == e.numbytes && errno != ERANGE))
+         if (errno == ERANGE)
            {
              out_of_range_header (keyword, arg, 0, TYPE_MAXIMUM (off_t));
              return;
@@ -1469,6 +1591,80 @@ volume_filename_decoder (struct tar_stat_info *st,
   decode_string (&continued_file_name, arg);
 }
 
+static void
+xattr_selinux_coder (struct tar_stat_info const *st, char const *keyword,
+                     struct xheader *xhdr, void const *data)
+{
+  code_string (st->cntx_name, keyword, xhdr);
+}
+
+static void
+xattr_selinux_decoder (struct tar_stat_info *st,
+                       char const *keyword, char const *arg, size_t size)
+{
+  decode_string (&st->cntx_name, arg);
+}
+
+static void
+xattr_acls_a_coder (struct tar_stat_info const *st , char const *keyword,
+                    struct xheader *xhdr, void const *data)
+{
+  xheader_print_n (xhdr, keyword, st->acls_a_ptr, st->acls_a_len);
+}
+
+static void
+xattr_acls_a_decoder (struct tar_stat_info *st,
+                      char const *keyword, char const *arg, size_t size)
+{
+  st->acls_a_ptr = xmemdup (arg, size + 1);
+  st->acls_a_len = size;
+}
+
+static void
+xattr_acls_d_coder (struct tar_stat_info const *st , char const *keyword,
+                    struct xheader *xhdr, void const *data)
+{
+  xheader_print_n (xhdr, keyword, st->acls_d_ptr, st->acls_d_len);
+}
+
+static void
+xattr_acls_d_decoder (struct tar_stat_info *st,
+                      char const *keyword, char const *arg, size_t size)
+{
+  st->acls_d_ptr = xmemdup (arg, size + 1);
+  st->acls_d_len = size;
+}
+
+static void
+xattr_coder (struct tar_stat_info const *st, char const *keyword,
+             struct xheader *xhdr, void const *data)
+{
+  struct xattr_array *xattr_map = st->xattr_map;
+  const size_t *off = data;
+  xheader_print_n (xhdr, keyword,
+                   xattr_map[*off].xval_ptr, xattr_map[*off].xval_len);
+}
+
+static void
+xattr_decoder (struct tar_stat_info *st,
+               char const *keyword, char const *arg, size_t size)
+{
+  char *xstr, *xkey;
+
+  /* copy keyword */
+  size_t klen_raw = strlen (keyword);
+  xkey = alloca (klen_raw + 1);
+  memcpy (xkey, keyword, klen_raw + 1) /* including null-terminating */;
+
+  /* copy value */
+  xstr = alloca (size + 1);
+  memcpy (xstr, arg, size + 1); /* separator included, for GNU tar '\n' */;
+
+  xattr_decode_keyword (xkey);
+
+  xheader_xattr_add (st, xkey + strlen("SCHILY.xattr."), xstr, size);
+}
+
 static void
 sparse_major_coder (struct tar_stat_info const *st, char const *keyword,
                    struct xheader *xhdr, void const *data)
@@ -1506,53 +1702,53 @@ sparse_minor_decoder (struct tar_stat_info *st,
 }
 
 struct xhdr_tab const xhdr_tab[] = {
-  { "atime",   atime_coder,    atime_decoder,    0 },
-  { "comment", dummy_coder,    dummy_decoder,    0 },
-  { "charset", dummy_coder,    dummy_decoder,    0 },
-  { "ctime",   ctime_coder,    ctime_decoder,    0 },
-  { "gid",     gid_coder,      gid_decoder,      0 },
-  { "gname",   gname_coder,    gname_decoder,    0 },
-  { "linkpath", linkpath_coder, linkpath_decoder, 0 },
-  { "mtime",   mtime_coder,    mtime_decoder,    0 },
-  { "path",    path_coder,     path_decoder,     0 },
-  { "size",    size_coder,     size_decoder,     0 },
-  { "uid",     uid_coder,      uid_decoder,      0 },
-  { "uname",   uname_coder,    uname_decoder,    0 },
+  { "atime",    atime_coder,    atime_decoder,    0, false },
+  { "comment",  dummy_coder,    dummy_decoder,    0, false },
+  { "charset",  dummy_coder,    dummy_decoder,    0, false },
+  { "ctime",    ctime_coder,    ctime_decoder,    0, false },
+  { "gid",      gid_coder,      gid_decoder,      0, false },
+  { "gname",    gname_coder,    gname_decoder,    0, false },
+  { "linkpath", linkpath_coder, linkpath_decoder, 0, false },
+  { "mtime",    mtime_coder,    mtime_decoder,    0, false },
+  { "path",     path_coder,     path_decoder,     0, false },
+  { "size",     size_coder,     size_decoder,     0, false },
+  { "uid",      uid_coder,      uid_decoder,      0, false },
+  { "uname",    uname_coder,    uname_decoder,    0, false },
 
   /* Sparse file handling */
   { "GNU.sparse.name",       path_coder, path_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   { "GNU.sparse.major",      sparse_major_coder, sparse_major_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   { "GNU.sparse.minor",      sparse_minor_coder, sparse_minor_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   { "GNU.sparse.realsize",   sparse_size_coder, sparse_size_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   { "GNU.sparse.numblocks",  sparse_numblocks_coder, sparse_numblocks_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
 
   /* tar 1.14 - 1.15.90 keywords. */
   { "GNU.sparse.size",       sparse_size_coder, sparse_size_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   /* tar 1.14 - 1.15.1 keywords. Multiple instances of these appeared in 'x'
      headers, and each of them was meaningful. It confilcted with POSIX specs,
      which requires that "when extended header records conflict, the last one
      given in the header shall take precedence." */
   { "GNU.sparse.offset",     sparse_offset_coder, sparse_offset_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   { "GNU.sparse.numbytes",   sparse_numbytes_coder, sparse_numbytes_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
   /* tar 1.15.90 keyword, introduced to remove the above-mentioned conflict. */
   { "GNU.sparse.map",        NULL /* Unused, see pax_dump_header() */,
-    sparse_map_decoder, 0 },
+    sparse_map_decoder, 0, false },
 
   { "GNU.dumpdir",           dumpdir_coder, dumpdir_decoder,
-    XHDR_PROTECTED },
+    XHDR_PROTECTED, false },
 
   /* Keeps the tape/volume label. May be present only in the global headers.
      Equivalent to GNUTYPE_VOLHDR.  */
   { "GNU.volume.label", volume_label_coder, volume_label_decoder,
-    XHDR_PROTECTED | XHDR_GLOBAL },
+    XHDR_PROTECTED | XHDR_GLOBAL, false },
 
   /* These may be present in a first global header of the archive.
      They provide the same functionality as GNUTYPE_MULTIVOL header.
@@ -1561,11 +1757,28 @@ struct xhdr_tab const xhdr_tab[] = {
      GNU.volume.offset keeps the offset of the start of this volume,
      otherwise kept in oldgnu_header.offset.  */
   { "GNU.volume.filename", volume_label_coder, volume_filename_decoder,
-    XHDR_PROTECTED | XHDR_GLOBAL },
+    XHDR_PROTECTED | XHDR_GLOBAL, false },
   { "GNU.volume.size", volume_size_coder, volume_size_decoder,
-    XHDR_PROTECTED | XHDR_GLOBAL },
+    XHDR_PROTECTED | XHDR_GLOBAL, false },
   { "GNU.volume.offset", volume_offset_coder, volume_offset_decoder,
-    XHDR_PROTECTED | XHDR_GLOBAL },
+    XHDR_PROTECTED | XHDR_GLOBAL, false },
+
+  /* We get the SELinux value from filecon, so add a namespace for SELinux
+     instead of storing it in SCHILY.xattr.* (which would be RAW). */
+  { "RHT.security.selinux",
+    xattr_selinux_coder, xattr_selinux_decoder, 0, false },
+
+  /* ACLs, use the star format... */
+  { "SCHILY.acl.access",
+    xattr_acls_a_coder, xattr_acls_a_decoder, 0, false },
+
+  { "SCHILY.acl.default",
+    xattr_acls_d_coder, xattr_acls_d_decoder, 0, false },
+
+  /* We are storing all extended attributes using this rule even if some of them
+     were stored by some previous rule (duplicates) -- we just have to make sure
+     they are restored *only once* during extraction later on. */
+  { "SCHILY.xattr", xattr_coder, xattr_decoder, 0, true },
 
-  { NULL, NULL, NULL, 0 }
+  { NULL, NULL, NULL, 0, false }
 };
index ab7d104d307ca2c7c62a3eb131b7ea3893e495cc..fc72c5197a559a330b707520c20dda763d5e169a 100644 (file)
@@ -1,25 +1,21 @@
 # Makefile for GNU tar regression tests.
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 1996-1997, 1999-2001, 2003-2007, 2009, 2012-2013 Free Software
 
-# François Pinard <pinard@iro.umontreal.ca>, 1988.
-# Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004.
+# This file is part of GNU tar.
 
-## This program is free software; you can redistribute 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.
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+# GNU tar 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, write to the Free Software
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-## 02110-1301, USA.
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 star/README star/quicktest.sh
 DISTCLEANFILES       = atconfig $(check_SCRIPTS)
@@ -46,13 +42,20 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac
 ## ------------ ##
 
 TESTSUITE_AT = \
+ T-cd.at\
  T-empty.at\
  T-null.at\
+ T-rec.at\
+ T-zfile.at\
+ T-nonl.at\
+ T-mult.at\
+ T-nest.at\
  testsuite.at\
  append.at\
  append01.at\
  append02.at\
  append03.at\
+ append04.at\
  backup01.at\
  chtype.at\
  comprec.at\
@@ -68,6 +71,16 @@ TESTSUITE_AT = \
  exclude04.at\
  exclude05.at\
  exclude06.at\
+ exclude07.at\
+ exclude08.at\
+ exclude09.at\
+ exclude10.at\
+ exclude11.at\
+ exclude12.at\
+ exclude13.at\
+ exclude14.at\
+ exclude15.at\
+ exclude16.at\
  extrac01.at\
  extrac02.at\
  extrac03.at\
@@ -85,6 +98,8 @@ TESTSUITE_AT = \
  extrac15.at\
  extrac16.at\
  extrac17.at\
+ extrac18.at\
+ extrac19.at\
  filerem01.at\
  filerem02.at\
  gzip.at\
@@ -96,6 +111,9 @@ TESTSUITE_AT = \
  incr04.at\
  incr05.at\
  incr06.at\
+ incr07.at\
+ incr08.at\
+ incr09.at\
  indexfile.at\
  ignfail.at\
  label01.at\
@@ -111,6 +129,7 @@ TESTSUITE_AT = \
  listed02.at\
  listed03.at\
  listed04.at\
+ listed05.at\
  long01.at\
  longv7.at\
  lustar01.at\
@@ -125,8 +144,15 @@ TESTSUITE_AT = \
  multiv07.at\
  multiv08.at\
  old.at\
+ opcomp01.at\
+ opcomp02.at\
+ opcomp03.at\
+ opcomp04.at\
+ opcomp05.at\
+ opcomp06.at\
  options.at\
  options02.at\
+ owner.at\
  pipe.at\
  recurse.at\
  rename01.at\
@@ -137,6 +163,24 @@ TESTSUITE_AT = \
  remfiles01.at\
  remfiles02.at\
  remfiles03.at\
+ remfiles04a.at\
+ remfiles04b.at\
+ remfiles04c.at\
+ remfiles05a.at\
+ remfiles05b.at\
+ remfiles05c.at\
+ remfiles06a.at\
+ remfiles06b.at\
+ remfiles06c.at\
+ remfiles07a.at\
+ remfiles07b.at\
+ remfiles07c.at\
+ remfiles08a.at\
+ remfiles08b.at\
+ remfiles08c.at\
+ remfiles09a.at\
+ remfiles09b.at\
+ remfiles09c.at\
  same-order01.at\
  same-order02.at\
  shortfile.at\
@@ -152,6 +196,7 @@ TESTSUITE_AT = \
  spmvp00.at\
  spmvp01.at\
  spmvp10.at\
+ time01.at\
  truncate.at\
  update.at\
  update01.at\
@@ -168,7 +213,17 @@ TESTSUITE_AT = \
  star/multi-fail.at\
  star/ustar-big-2g.at\
  star/ustar-big-8g.at\
- star/pax-big-10g.at
+ star/pax-big-10g.at\
+ xattr01.at\
+ xattr02.at\
+ xattr03.at\
+ xattr04.at\
+ xattr05.at\
+ acls01.at\
+ acls02.at\
+ selnx01.at\
+ selacl01.at\
+ capabs_raw01.at
 
 TESTSUITE = $(srcdir)/testsuite
 
@@ -205,6 +260,11 @@ check_PROGRAMS = genfile
 genfile_SOURCES = genfile.c argcv.c argcv.h
 
 localedir = $(datadir)/locale
-INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib
-AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/gnu\
+ -I../gnu\
+ -I$(top_srcdir)/gnu\
+ -I$(top_srcdir)/lib\
+ -DLOCALEDIR=\"$(localedir)\"
+
 LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)
index 1db0c26d2cf4bbc461c89067d2d79ab0e6ecfd43..c0528b2c44fea6de05de3a5c721ef7cdcd59e09e 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.6 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
 # This Makefile.in 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.
 
 # Makefile for GNU tar regression tests.
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 1996-1997, 1999-2001, 2003-2007, 2009, 2012-2013 Free Software
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
 
-# François Pinard <pinard@iro.umontreal.ca>, 1988.
-# Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004.
+# GNU tar 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/>.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    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;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -43,31 +70,35 @@ host_triplet = @host@
 check_PROGRAMS = genfile$(EXEEXT)
 subdir = tests
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/atlocal.in
+       $(srcdir)/atlocal.in $(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
+       $(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
        $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
        $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/canonicalize.m4 \
        $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
-       $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
+       $(top_srcdir)/m4/clock_time.m4 \
        $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
-       $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
-       $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
-       $(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
-       $(top_srcdir)/m4/dirfd.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 \
-       $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
-       $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
+       $(top_srcdir)/m4/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+       $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+       $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \
+       $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \
+       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup.m4 \
+       $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \
+       $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \
+       $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exponentd.m4 \
+       $(top_srcdir)/m4/extensions.m4 \
+       $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fchdir.m4 \
+       $(top_srcdir)/m4/fchmodat.m4 $(top_srcdir)/m4/fchownat.m4 \
        $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
        $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
        $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
        $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
-       $(top_srcdir)/m4/futimens.m4 \
+       $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+       $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
        $(top_srcdir)/m4/getcwd-abort-bug.m4 \
        $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
@@ -75,50 +106,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
        $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
-       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
-       $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
+       $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/human.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.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/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lchown.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 \
        $(top_srcdir)/m4/libunistring-base.m4 \
        $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
        $(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
        $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
-       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
+       $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \
+       $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/longlong.m4 \
        $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
        $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
-       $(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
-       $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
-       $(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
-       $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
-       $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
-       $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
+       $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbchar.m4 \
+       $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+       $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \
+       $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \
+       $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mempcpy.m4 \
+       $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdir.m4 \
+       $(top_srcdir)/m4/mkdirat.m4 $(top_srcdir)/m4/mkdtemp.m4 \
        $(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
        $(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
        $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
-       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+       $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.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/openat.m4 \
-       $(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
-       $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
-       $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/opendir.m4 $(top_srcdir)/m4/parse-datetime.m4 \
+       $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
+       $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readdir.m4 \
        $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
        $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
        $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
-       $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
-       $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
-       $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
-       $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
-       $(top_srcdir)/m4/setenv.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/stat-time.m4 \
-       $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
+       $(top_srcdir)/m4/rewinddir.m4 $(top_srcdir)/m4/rmdir.m4 \
+       $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \
+       $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \
+       $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/save-cwd.m4 \
+       $(top_srcdir)/m4/savedir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/selinux-context-h.m4 \
+       $(top_srcdir)/m4/selinux-selinux-h.m4 \
+       $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stat-time.m4 $(top_srcdir)/m4/stat.m4 \
+       $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
        $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
        $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
        $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
@@ -126,22 +167,23 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
        $(top_srcdir)/m4/strerror.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/strtoimax.m4 \
-       $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
+       $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtol.m4 \
        $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
-       $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
-       $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
+       $(top_srcdir)/m4/symlinkat.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/sysexits.m4 \
        $(top_srcdir)/m4/system.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-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
-       $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
-       $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
-       $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
-       $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
+       $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
+       $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+       $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+       $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
+       $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \
+       $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \
+       $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
        $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
        $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
        $(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
@@ -162,28 +204,41 @@ genfile_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 genfile_DEPENDENCIES = ../gnu/libgnu.a $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(genfile_SOURCES)
 DIST_SOURCES = $(genfile_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -194,6 +249,8 @@ ALLOCA_H = @ALLOCA_H@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -245,12 +302,16 @@ GNULIB_ATOLL = @GNULIB_ATOLL@
 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_CLOSEDIR = @GNULIB_CLOSEDIR@
 GNULIB_DIRFD = @GNULIB_DIRFD@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
@@ -259,17 +320,27 @@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
 GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
 GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
 GNULIB_FOPEN = @GNULIB_FOPEN@
 GNULIB_FPRINTF = @GNULIB_FPRINTF@
 GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
 GNULIB_FPURGE = @GNULIB_FPURGE@
 GNULIB_FPUTC = @GNULIB_FPUTC@
 GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
 GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
 GNULIB_FSEEK = @GNULIB_FSEEK@
 GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
 GNULIB_FSTATAT = @GNULIB_FSTATAT@
 GNULIB_FSYNC = @GNULIB_FSYNC@
 GNULIB_FTELL = @GNULIB_FTELL@
@@ -277,6 +348,8 @@ GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
 GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
 GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
 GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
@@ -291,15 +364,19 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 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_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -340,25 +417,35 @@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
 GNULIB_MKTIME = @GNULIB_MKTIME@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
 GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
 GNULIB_OPEN = @GNULIB_OPEN@
 GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
 GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
 GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
 GNULIB_PUTC = @GNULIB_PUTC@
 GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
@@ -366,14 +453,23 @@ GNULIB_REALPATH = @GNULIB_REALPATH@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_REWINDDIR = @GNULIB_REWINDDIR@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+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_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
 GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -400,12 +496,13 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TEST_WARN_CFLAGS = @GNULIB_TEST_WARN_CFLAGS@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
@@ -417,10 +514,13 @@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
 GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
 GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
 GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
 GNULIB_VPRINTF = @GNULIB_VPRINTF@
 GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
 GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
 GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@
 GNULIB_WCPCPY = @GNULIB_WCPCPY@
 GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
@@ -465,9 +565,11 @@ HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
 HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
 HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
 HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
@@ -486,6 +588,7 @@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
 HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
 HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
 HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
@@ -501,17 +604,23 @@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
 HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
 HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
 HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
 HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSTATAT = @HAVE_FSTATAT@
 HAVE_FSYNC = @HAVE_FSYNC@
@@ -527,6 +636,7 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
@@ -559,28 +669,46 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
 HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
 HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
 HAVE_RPMATCH = @HAVE_RPMATCH@
 HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SIGSET_T = @HAVE_SIGSET_T@
 HAVE_SLEEP = @HAVE_SLEEP@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -588,6 +716,7 @@ HAVE_STPNCPY = @HAVE_STPNCPY@
 HAVE_STRCASECMP = @HAVE_STRCASECMP@
 HAVE_STRCASESTR = @HAVE_STRCASESTR@
 HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRINGS_H = @HAVE_STRINGS_H@
 HAVE_STRPBRK = @HAVE_STRPBRK@
 HAVE_STRPTIME = @HAVE_STRPTIME@
 HAVE_STRSEP = @HAVE_STRSEP@
@@ -595,6 +724,7 @@ HAVE_STRTOD = @HAVE_STRTOD@
 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_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
@@ -607,6 +737,7 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
@@ -646,12 +777,14 @@ HAVE_WCSXFRM = @HAVE_WCSXFRM@
 HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
 HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
 HAVE_WMEMCHR = @HAVE_WMEMCHR@
 HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
 INCLUDE_NEXT = @INCLUDE_NEXT@
@@ -674,7 +807,9 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+LIB_ACL = @LIB_ACL@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_SELINUX = @LIB_SELINUX@
 LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
@@ -696,6 +831,9 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_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_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_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@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
@@ -706,6 +844,7 @@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
 NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_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_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@
@@ -717,6 +856,9 @@ NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_GETOPT_H = @NEXT_GETOPT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
@@ -727,6 +869,7 @@ NEXT_STRING_H = @NEXT_STRING_H@
 NEXT_SYSEXITS_H = @NEXT_SYSEXITS_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_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
@@ -737,6 +880,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 POSUB = @POSUB@
@@ -758,9 +902,11 @@ REPLACE_DIRFD = @REPLACE_DIRFD@
 REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
 REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
 REPLACE_FOPEN = @REPLACE_FOPEN@
@@ -773,6 +919,7 @@ REPLACE_FSTAT = @REPLACE_FSTAT@
 REPLACE_FSTATAT = @REPLACE_FSTATAT@
 REPLACE_FTELL = @REPLACE_FTELL@
 REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
@@ -782,11 +929,14 @@ REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -816,8 +966,14 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+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_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
@@ -826,13 +982,16 @@ REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
 REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
 REPLACE_SPRINTF = @REPLACE_SPRINTF@
 REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
 REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
 REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
@@ -842,10 +1001,14 @@ REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
@@ -866,10 +1029,13 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+RSH = @RSH@
+SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
 SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDALIGN_H = @STDALIGN_H@
 STDARG_H = @STDARG_H@
 STDBOOL_H = @STDBOOL_H@
 STDDEF_H = @STDDEF_H@
@@ -883,9 +1049,14 @@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 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_ACL = @USE_ACL@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WERROR_CFLAGS = @WERROR_CFLAGS@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
@@ -954,13 +1125,20 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
 
 #
 TESTSUITE_AT = \
+ T-cd.at\
  T-empty.at\
  T-null.at\
+ T-rec.at\
+ T-zfile.at\
+ T-nonl.at\
+ T-mult.at\
+ T-nest.at\
  testsuite.at\
  append.at\
  append01.at\
  append02.at\
  append03.at\
+ append04.at\
  backup01.at\
  chtype.at\
  comprec.at\
@@ -976,6 +1154,16 @@ TESTSUITE_AT = \
  exclude04.at\
  exclude05.at\
  exclude06.at\
+ exclude07.at\
+ exclude08.at\
+ exclude09.at\
+ exclude10.at\
+ exclude11.at\
+ exclude12.at\
+ exclude13.at\
+ exclude14.at\
+ exclude15.at\
+ exclude16.at\
  extrac01.at\
  extrac02.at\
  extrac03.at\
@@ -993,6 +1181,8 @@ TESTSUITE_AT = \
  extrac15.at\
  extrac16.at\
  extrac17.at\
+ extrac18.at\
+ extrac19.at\
  filerem01.at\
  filerem02.at\
  gzip.at\
@@ -1004,6 +1194,9 @@ TESTSUITE_AT = \
  incr04.at\
  incr05.at\
  incr06.at\
+ incr07.at\
+ incr08.at\
+ incr09.at\
  indexfile.at\
  ignfail.at\
  label01.at\
@@ -1019,6 +1212,7 @@ TESTSUITE_AT = \
  listed02.at\
  listed03.at\
  listed04.at\
+ listed05.at\
  long01.at\
  longv7.at\
  lustar01.at\
@@ -1033,8 +1227,15 @@ TESTSUITE_AT = \
  multiv07.at\
  multiv08.at\
  old.at\
+ opcomp01.at\
+ opcomp02.at\
+ opcomp03.at\
+ opcomp04.at\
+ opcomp05.at\
+ opcomp06.at\
  options.at\
  options02.at\
+ owner.at\
  pipe.at\
  recurse.at\
  rename01.at\
@@ -1045,6 +1246,24 @@ TESTSUITE_AT = \
  remfiles01.at\
  remfiles02.at\
  remfiles03.at\
+ remfiles04a.at\
+ remfiles04b.at\
+ remfiles04c.at\
+ remfiles05a.at\
+ remfiles05b.at\
+ remfiles05c.at\
+ remfiles06a.at\
+ remfiles06b.at\
+ remfiles06c.at\
+ remfiles07a.at\
+ remfiles07b.at\
+ remfiles07c.at\
+ remfiles08a.at\
+ remfiles08b.at\
+ remfiles08c.at\
+ remfiles09a.at\
+ remfiles09b.at\
+ remfiles09c.at\
  same-order01.at\
  same-order02.at\
  shortfile.at\
@@ -1060,6 +1279,7 @@ TESTSUITE_AT = \
  spmvp00.at\
  spmvp01.at\
  spmvp10.at\
+ time01.at\
  truncate.at\
  update.at\
  update01.at\
@@ -1076,13 +1296,28 @@ TESTSUITE_AT = \
  star/multi-fail.at\
  star/ustar-big-2g.at\
  star/ustar-big-8g.at\
- star/pax-big-10g.at
+ star/pax-big-10g.at\
+ xattr01.at\
+ xattr02.at\
+ xattr03.at\
+ xattr04.at\
+ xattr05.at\
+ acls01.at\
+ acls02.at\
+ selnx01.at\
+ selacl01.at\
+ capabs_raw01.at
 
 TESTSUITE = $(srcdir)/testsuite
 AUTOTEST = $(AUTOM4TE) --language=autotest
 genfile_SOURCES = genfile.c argcv.c argcv.h
-INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib
-AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/gnu\
+ -I../gnu\
+ -I$(top_srcdir)/gnu\
+ -I$(top_srcdir)/lib\
+ -DLOCALEDIR=\"$(localedir)\"
+
 LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)
 all: all-am
 
@@ -1123,7 +1358,7 @@ atlocal: $(top_builddir)/config.status $(srcdir)/atlocal.in
 
 clean-checkPROGRAMS:
        -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-genfile$(EXEEXT): $(genfile_OBJECTS) $(genfile_DEPENDENCIES) 
+genfile$(EXEEXT): $(genfile_OBJECTS) $(genfile_DEPENDENCIES) $(EXTRA_genfile_DEPENDENCIES) 
        @rm -f genfile$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(genfile_OBJECTS) $(genfile_LDADD) $(LIBS)
 
@@ -1139,18 +1374,16 @@ distclean-compile:
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .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_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@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@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1201,6 +1434,20 @@ GTAGS:
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
 
+cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
+       list='$(SOURCES) $(HEADERS) $(LISP)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -1250,10 +1497,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1339,17 +1591,17 @@ uninstall-am:
 .MAKE: check-am install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
-       clean-checkPROGRAMS clean-generic clean-local ctags 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 installcheck-local installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am
+       clean-checkPROGRAMS clean-generic clean-local cscopelist ctags \
+       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 installcheck-local \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am
 
 
 $(srcdir)/package.m4: $(top_srcdir)/configure.ac
diff --git a/tests/T-cd.at b/tests/T-cd.at
new file mode 100644 (file)
index 0000000..d8fcd88
--- /dev/null
@@ -0,0 +1,44 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+AT_SETUP([-C in file lists])
+AT_KEYWORDS([files-from T-cd])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+>file1
+mkdir dir
+>dir/file2
+>dir/file3
+AT_DATA([F1],[file1
+-C dir
+.
+])
+tar cf archive -T F1
+tar tf archive | sort
+],
+[0],
+[./
+./file2
+./file3
+file1
+],[],[],[],[ustar])
+
+AT_CLEANUP
index 6aa0ded2950d0115bded6edc6e28391016e4f6b7..526144583817212c3327649d616b38ba1ae91682 100644 (file)
@@ -1,30 +1,30 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar 1.16 coredumped if a filelist file contained empty (zero-length)
 # entries
 # Reported by: Karl Berry <karl@freefriends.org>
 # References: <200610301353.k9UDr1O30680@f7.net>
 
-AT_SETUP([files-from: empty entries])
-AT_KEYWORDS([files-from empty])
+AT_SETUP([empty entries])
+AT_KEYWORDS([files-from empty-line])
 
 AT_DATA([file-list],
 [jeden
@@ -34,17 +34,16 @@ trzy
 ])
 
 AT_TAR_CHECK([
-AT_SORT_PREREQ
 
 genfile --file jeden
 genfile --file dwa
 genfile --file trzy
 
-tar cfvT archive ../file-list | sort
+tar cfvT archive ../file-list
 ],
 [0],
-[dwa
-jeden
+[jeden
+dwa
 trzy
 ],
 [],[],[],[ustar]) # Testing one format is enough
diff --git a/tests/T-mult.at b/tests/T-mult.at
new file mode 100644 (file)
index 0000000..d011b83
--- /dev/null
@@ -0,0 +1,46 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+AT_SETUP([multiple file lists])
+AT_KEYWORDS([files-from T-mult])
+
+AT_TAR_CHECK([
+>file1
+>file2
+>file3
+>file4
+AT_DATA([F1],[file1
+file2
+])
+AT_DATA([F2],[file3
+file4
+])
+tar cf archive -T F1 -T F2
+tar tf archive
+],
+[0],
+[file1
+file2
+file3
+file4
+],[],[],[],[ustar])
+
+AT_CLEANUP
+
diff --git a/tests/T-nest.at b/tests/T-nest.at
new file mode 100644 (file)
index 0000000..5c4b69d
--- /dev/null
@@ -0,0 +1,46 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+AT_SETUP([nested file lists])
+AT_KEYWORDS([files-from T-nest])
+
+AT_TAR_CHECK([
+>file1
+>file2
+>file3
+>file4
+AT_DATA([F1],[file1
+-T F2
+file2
+])
+AT_DATA([F2],[file3
+file4
+])
+tar cf archive -T F1
+tar tf archive
+],
+[0],
+[file1
+file3
+file4
+file2
+],[],[],[],[ustar])
+
+AT_CLEANUP
diff --git a/tests/T-nonl.at b/tests/T-nonl.at
new file mode 100644 (file)
index 0000000..a694155
--- /dev/null
@@ -0,0 +1,62 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Tar malfunctioned when given a file list with the last line not ending
+# in a newline.
+#
+# Reported by: Michal Žejdl <zejdl@suas.cz>
+# References: <http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html>
+
+AT_SETUP([entries with missing newlines])
+AT_KEYWORDS([files-from nonewline nonl T-nonl])
+
+AT_TAR_CHECK([
+genfile --length=0 --file empty
+AS_ECHO_N(c) > 1.nonl
+echo d > 2.nonl
+AS_ECHO_N(e) >> 2.nonl
+touch a b c d e
+AT_DATA([filelist],[a
+b
+])
+
+tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
+tar tf archive
+echo ==
+tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
+tar tf archive
+],
+[0],
+[c
+d
+e
+a
+b
+==
+d
+e
+a
+b
+c
+],
+[],[],[],[ustar])
+
+AT_CLEANUP
+
index c45dab60c59e484d183487f9e562710a08a0d5c7..5db5cf434e0eb756570cdec65704a55d47452398 100644 (file)
@@ -1,47 +1,45 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AT_SETUP([files-from: 0-separated file without -0])
+AT_SETUP([0-separated file without -0])
 AT_KEYWORDS([files-from null T-null])
 
-AT_DATA([expout],[jeden\ndwa
-trzy
-])
-
 AT_TAR_CHECK([
 AT_SORT_PREREQ
 
-echo dwa > temp
+echo jeden > temp
+echo dwa >> temp
 echo trzy >> temp
-cat temp | tr '\n' '\0' > temp1
-echo jeden > file-list
-cat temp1 >> file-list
+cat temp | tr '\n' '\0' > file-list
 
-genfile -f "jeden
-dwa" || AT_SKIP_TEST
+genfile -f jeden
+genfile -f dwa
 genfile -f trzy
 
-tar cfTv archive file-list | sort
+tar cfTv archive file-list
 ],
 [0],
-[expout],
+[jeden
+dwa
+trzy
+],
 [tar: file-list: file name read contains nul character
 ],[],[],[ustar]) # Testing one format is enough
 
diff --git a/tests/T-rec.at b/tests/T-rec.at
new file mode 100644 (file)
index 0000000..29965a3
--- /dev/null
@@ -0,0 +1,46 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+AT_SETUP([recursive file lists])
+AT_KEYWORDS([files-from T-rec])
+
+AT_TAR_CHECK([
+>file1
+>file2
+AT_DATA([F1],[file1
+-T F2
+])
+AT_DATA([F2],[file2
+-T F1
+])
+tar cf archive -T F1
+echo $?
+tar tf archive
+],
+[0],
+[2
+file1
+file2
+],
+[tar: F1: file list requested from F2 already read from command line
+tar: Exiting with failure status due to previous errors
+],[],[],[ustar])
+
+AT_CLEANUP
diff --git a/tests/T-zfile.at b/tests/T-zfile.at
new file mode 100644 (file)
index 0000000..8761c7c
--- /dev/null
@@ -0,0 +1,52 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Tar malfunctioned when given empty file as an argument to -T.
+#
+# Reported by: Michal Žejdl <zejdl@suas.cz>
+# References: <http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html>
+
+AT_SETUP([empty file])
+AT_KEYWORDS([files-from empty-file])
+
+AT_TAR_CHECK([
+genfile --length=0 --file empty
+genfile --file a
+genfile --file b
+AT_DATA([valid],[a
+b
+])
+
+tar cf archive -T empty -T valid
+tar tf archive
+echo "=="
+tar cf archive -T valid -T empty 
+tar tf archive
+],
+[0],
+[a
+b
+==
+a
+b
+],
+[],[],[],[ustar]) # Testing one format is enough
+
+AT_CLEANUP
diff --git a/tests/acls01.at b/tests/acls01.at
new file mode 100644 (file)
index 0000000..f737fdb
--- /dev/null
@@ -0,0 +1,55 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# This is basic test for acl support.
+
+AT_SETUP([acls: basic functionality])
+AT_KEYWORDS([xattrs acls acls01])
+
+AT_TAR_CHECK([
+AT_XATTRS_UTILS_PREREQ
+AT_ACLS_PREREQ
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test "$?" = 0
+],
+[0],
+[])
+
+AT_CLEANUP
diff --git a/tests/acls02.at b/tests/acls02.at
new file mode 100644 (file)
index 0000000..244f433
--- /dev/null
@@ -0,0 +1,61 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# This is basic test for acl support.
+
+AT_SETUP([acls: work with -C])
+AT_KEYWORDS([xattrs acls acls02])
+
+AT_TAR_CHECK([
+AT_XATTRS_UTILS_PREREQ
+AT_ACLS_PREREQ
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test "$?" = 0
+],
+[0],
+[])
+
+AT_CLEANUP
index 7bf9a22995fb7374331b359522cca93c0d84fd32..8145c9b2e77eeae97de391cdea2ba58be2233a96 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([append])
 AT_KEYWORDS([append append00])
index 2dc2108f55c3b4dfa12a1485b7b0fd57d41367df..9cb01e55ec2add27aebdb642e836019b8083a0f4 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # When decoding a header tar was assigning 0 to oldgnu_header.isextended,
 # which destroyed name prefix. When updating archive, modified prefix
@@ -29,7 +29,7 @@
 AT_SETUP([appending files with long names])
 AT_KEYWORDS([append append01])
 
-m4_define([PREFIX],[This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX])
+m4_pushdef([PREFIX],[This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX])
 
 AT_TAR_CHECK([
 mkdir PREFIX
@@ -44,4 +44,5 @@ PREFIX/file2
 ],
 [],[],[],[oldgnu, ustar, posix, gnu])
 
+m4_popdef([PREFIX])
 AT_CLEANUP
index 869f8a56899b9d432f81134da05a2f3891ea8129..43bbb7e5c9e0321a4d8d6be92cf2413ade7406e1 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Using tar 1.15.x the following equivalent command sets:
 #
index 8fb24c6fda3ea5b7eecf704e29e873fc6a041c5d..0aa517c693fdaa4ac45b5c1cfcfb5ca54f7338de 100644 (file)
@@ -1,18 +1,20 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 #
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Copyright 2010, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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/>.
 
diff --git a/tests/append04.at b/tests/append04.at
new file mode 100644 (file)
index 0000000..43b32dd
--- /dev/null
@@ -0,0 +1,60 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is part of GNU tar.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# When called with --append and --verify options, tar would rewrite the
+# archive instead of appending to it.
+#
+# Last-Affected-Version: 1.26
+# Reported-by: Jivko Angelov <jivko@siteground.com>
+# References: <51D6983C.3060404@siteground.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00003.html
+
+AT_SETUP([append with verify])
+AT_KEYWORDS([append append04 verify append-verify])
+
+AT_TAR_CHECK([
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+],
+[0],
+[file1
+file2
+==
+file1
+file2
+file3
+])
+
+AT_CLEANUP
index 12591e326a4055eb3f9eb983ee638b99893bcc6d..2bef145d70e85ed2e4b2c3e0ea51038402402092 100644 (file)
@@ -1,6 +1,21 @@
 # @configure_input@                                     -*- shell-script -*-
 # Configurable variable values for tar test suite.
-# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+# Copyright 2004, 2006, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
 
 PATH=@abs_builddir@:@abs_top_builddir@/src:@abs_top_srcdir@/build-aux:$top_srcdir:$srcdir:$PATH
 
@@ -34,3 +49,11 @@ decho() {
   echo $*
   echo >&2 $*
 }
+
+mkexcltest() {
+  mkdir $1 $1/subdir
+  genfile --file=$1/top-level-file
+  genfile --file=$1/subdir/excludeme
+  genfile --file=$1/subdir/subdir-file
+}
+  
\ No newline at end of file
index cf0a9077f03e71dbd96a24e8592ca4ce3591beb5..9c8502d4718268dd315ae0f604447f614b18670b 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009-2010 Free Software Foundation, Inc.
+# Copyright 2009-2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:
 # When extracting, tar (<1.22) sometimes renamed a backup back to the
@@ -43,7 +43,7 @@ tar xfv test.tar --backup --warning=no-timestamp
 [0],
 [dir1/
 dir1/file1
-Renaming `dir1/file1' to `dir1/file1~'
+Renaming 'dir1/file1' to 'dir1/file1~'
 dir2/
 ])
 
diff --git a/tests/capabs_raw01.at b/tests/capabs_raw01.at
new file mode 100644 (file)
index 0000000..1b9ac22
--- /dev/null
@@ -0,0 +1,53 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:  Test if file capabilities are archived/restored correctly
+# using just the default xattr support (capabilities are stored/restored in
+# binary format -> system dependant).
+
+AT_SETUP([capabilities: binary store/restore])
+AT_KEYWORDS([xattrs capabilities capabs_raw01])
+
+AT_TAR_CHECK([
+AT_PRIVILEGED_PREREQ
+AT_XATTRS_PREREQ
+AT_CAPABILITIES_UTILS_PREREQ
+
+mkdir dir
+genfile --file dir/file
+
+setcap "= cap_chown=ei" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+],
+[0],
+[dir/file = cap_chown+ei
+])
+
+AT_CLEANUP
index 1ba86b3bd9f6272e12431d15f18abb9b9ffb85f1..e5b5876ee8dcdc99c96c6712a1416ccb7d707eb5 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Incremental restore malfunctions if an archive member
 # changes type before restoration, e.g. from directory to file or vice
@@ -25,7 +25,7 @@
 # References: <200605101232.25031.bugreport@wkleff.intergenia.de>
 
 AT_SETUP([changed file types in incrementals])
-AT_KEYWORDS([incremental chtype])
+AT_KEYWORDS([incremental listed chtype])
 
 AT_TAR_CHECK([
 AT_SORT_PREREQ
index f2d01413751f70e8e2bb57e3f2517c98edc49fcf..ea16fa4b9f53af1639462235c131047b646f3479 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([compressed format recognition])
 
index 76ee2cba56fd125a67392ddd26163a8b39564779..f933a42916d3318e8b3423ca6c109eb78e8b94b0 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Deleting a member after a big one was destroying the archive.
 
index ec99c6747ed8a0f69fcb004963a3a7e7104dcfef..7b4b91184fdee8851503d9d2c689b9f53916f77e 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright 2004-2005, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Deleting a member with the archive from stdin was not working correctly.
 
index 70fa3a94a0347217120bb1ff5d1f823dfce14825..1feed238e091b0847bce73ab95d3783c212c9943 100644 (file)
@@ -1,27 +1,27 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([deleting members with long names])
 AT_KEYWORDS([delete delete03])
 
-m4_define([PREFIX],[This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX])
+m4_pushdef([PREFIX],[This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX])
 
 AT_TAR_CHECK([
 
@@ -45,4 +45,5 @@ tar -cf archive ./$prefix* &&
 ./PREFIX[]9
 ],[],[],[],[gnu, oldgnu, posix])
 
+m4_popdef([PREFIX])
 AT_CLEANUP
index f1155d975e38cf18946152338e06312d14870c5b..593fac8352b0d1a5422ac0643738cacd4815efca 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Deleting a large last member was destroying earlier members.
 
index 66c6367ab0ec3192b1506fd5176ea4d5dd2e88b8..fbf24f3ac71fe1229195b2f799e3c55641a83359 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # When attempted to delete a non-existing member, tar used to destroy
 # last blocking_factor blocks.
index 7fe92a46d0bc76e9ffd6688d2b0b76c1f83b22c8..5e3e0609c9258b4d3326c76618a3fa432c4e80fc 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test the functioning of --exclude-caches and --exclude-tag option families
 
index 778a7fc822ca42acb664118013b0e1c0aed0d9a8..b5e7be195dacd29ae141c56fd9b2fbf1f9577107 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 7996d168a3bb1e8ecdb1b5a290c4f0efd75b725b..3cd767bc38ee8646fa4bc914f82783b5bbf4517c 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index d592109e532ebaffc6b3d957399ffb7a44a7dba6..9cf35c9640b1d68bde75148a9ec2003aded0e6d5 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index c6f03cba00ba329cdc6de6a998b55cb7d8ca77a9..ce566d105213580008e708f338b36c6a8498687c 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 30e922e775de702b011e6c6a63c1c04c9c9fc78d..147126bc792fa9f7edb4677e574db7dc5ab2e5df 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# Copyright 2009-2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index b1c0da7f88a52d6c1b78eeb6c1ea7613fde247c8..c9155e494b034f0e1f361cda2127d789c40fae68 100644 (file)
@@ -1,12 +1,14 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -24,7 +26,7 @@
 AT_SETUP([exclude: long files in pax archives])
 AT_KEYWORDS([exclude exclude06])
 
-m4_define([test_base_dir],[one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen])
+m4_pushdef([test_base_dir],[one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen])
 
 AT_TAR_CHECK([
 AT_TAR_MKHIER(test_base_dir)
@@ -44,4 +46,5 @@ find out -type f
 [],
 [pax])
 
+m4_popdef([test_base_dir])
 AT_CLEANUP
diff --git a/tests/exclude07.at b/tests/exclude07.at
new file mode 100644 (file)
index 0000000..7e90ee4
--- /dev/null
@@ -0,0 +1,36 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Copyright 2010, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([exclude: --exclude-backups option])
+AT_KEYWORDS([exclude exclude07])
+
+AT_TAR_CHECK([
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+],
+[0],
+[dir/
+dir/file
+])
+
+AT_CLEANUP
diff --git a/tests/exclude08.at b/tests/exclude08.at
new file mode 100644 (file)
index 0000000..aa35270
--- /dev/null
@@ -0,0 +1,54 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag option alone works
+# as expected, i.e. excludes the contents of the directory containing
+# the tag, but preserves the directory and the tag itself.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag option])
+AT_KEYWORDS([exclude exclude-tag exclude08])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+],
+[0],
+[etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
+],
+[tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+])
+
+AT_CLEANUP
+
diff --git a/tests/exclude09.at b/tests/exclude09.at
new file mode 100644 (file)
index 0000000..d60bcfe
--- /dev/null
@@ -0,0 +1,57 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag option works
+# as expected whe used together with --listed-incremental, i.e. excludes
+# the contents of the directory containing the tag, but preserves the
+# directory and the tag itself.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+AT_SETUP([--exclude-tag option and --listed-incremental])
+AT_KEYWORDS([exclude exclude-tag listed incremental exclude09])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
+],
+[0],
+[etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
+],
+[tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
diff --git a/tests/exclude10.at b/tests/exclude10.at
new file mode 100644 (file)
index 0000000..fadd020
--- /dev/null
@@ -0,0 +1,73 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag option works
+# as expected when used in conjunction with --listed-incremental.
+# If the exclusion tag is created after the level 0 dump, the level
+# 1 dump must skip the affected subdirectory and any previously-included
+# files within it, but preserve the directory and the tag itself.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag option in incremental pass])
+AT_KEYWORDS([exclude exclude-tag listed incremental exclude10])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
+],
+[0],
+[# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+etest/subdir/
+etest/subdir/excludeme
+],
+[# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
diff --git a/tests/exclude11.at b/tests/exclude11.at
new file mode 100644 (file)
index 0000000..ae78743
--- /dev/null
@@ -0,0 +1,53 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies that the --exclude-tag-under option alone works
+# as expected, i.e. excludes the contents of the directory containing
+# the tag and the tag itself, but preserves the directory.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-under option])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-under exclude11])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+],
+[0],
+[etest/
+etest/subdir/
+etest/top-level-file
+],
+[tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+])
+
+AT_CLEANUP
+
diff --git a/tests/exclude12.at b/tests/exclude12.at
new file mode 100644 (file)
index 0000000..b5b7824
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag-under option works
+# as expected whe used together with --listed-incremental, i.e. excludes
+# the contents of the directory containing the tag and the tag file, but
+# preserves the directory itself.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-under and --listed-incremental])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-under listed incremental exclude12])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
+],
+[0],
+[etest/
+etest/subdir/
+etest/top-level-file
+],
+[tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
diff --git a/tests/exclude13.at b/tests/exclude13.at
new file mode 100644 (file)
index 0000000..34353f4
--- /dev/null
@@ -0,0 +1,73 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag-under option works
+# as expected when used in conjunction with --listed-incremental.
+# If the exclusion tag is created after the level 0 dump, the level
+# 1 dump must skip the affected subdirectory and any previously-included
+# files within it, including the tag file, but preserve the directory
+# itself.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-under option in incremental pass])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-under listed incremental exclude13])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
+],
+[0],
+[# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+etest/subdir/
+],
+[# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
diff --git a/tests/exclude14.at b/tests/exclude14.at
new file mode 100644 (file)
index 0000000..22aac86
--- /dev/null
@@ -0,0 +1,52 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag-all option alone works
+# as expected, i.e. excludes entire directory containing the tag, including
+# any files located under it.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-all option])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-all exclude14])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+],
+[0],
+[etest/
+etest/top-level-file
+],
+[tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+])
+
+AT_CLEANUP
+
diff --git a/tests/exclude15.at b/tests/exclude15.at
new file mode 100644 (file)
index 0000000..7c1f6c7
--- /dev/null
@@ -0,0 +1,54 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag-all option works
+# as expected whe used together with --listed-incremental, i.e. excludes
+# excludes entire directory containing the tag.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-all and --listed-incremental])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-all listed incremental exclude15])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
+],
+[0],
+[etest/
+etest/top-level-file
+],
+[tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
diff --git a/tests/exclude16.at b/tests/exclude16.at
new file mode 100644 (file)
index 0000000..6f7c894
--- /dev/null
@@ -0,0 +1,71 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# The --exclude-tag options interacted incorrectly with --listed-incremental
+# since their very inception.  The testcases exclude08 through exclude16
+# verify that --exclude-tag operates consistently whether or not
+# --listed-incremental option is given.
+#
+# This testcase verifies whether the --exclude-tag-all option works
+# as expected whe used together with --listed-incremental.  If the
+# exclusion tag is created after the level 0 dump, the level 1 dump
+# must skip the entire affected subdirectory and any previously-included
+# files within it.
+#
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120528140419.GT2654@shire.ontko.com>,
+#   <20130311210006.GA3732@shire.ontko.com>,
+#   http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00013.html
+
+AT_SETUP([--exclude-tag-all option in incremental pass])
+AT_KEYWORDS([exclude exclude-tag exclude-tag-all listed incremental exclude16])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
+],
+[0],
+[# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+],
+[# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
+
index c84c63a52aae5c0de7092267eadd886088019f21..c08177be7f1e5519f009af21e2177c0ce807a1d0 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # There was a diagnostic when directory already exists.
 
index d5d641f7dbb51fec48bba51d0df67d14a8e3dce0..e8b125338c1a7935ffa415b67dd0b18ddde23b31 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Could not extract symlinks over an existing file.
 
index ad01752a52f78bf230f6b9292cd1bcff1746ddd0..069244eb2a4d3ac9066b39642e416abc87988e64 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Paths going up and down were inducing extraction loops.
 
index 05cb6587b790feae842782d50f6b9b4e04a9fb32..0612a6186ef94c09e612f6cbe2fcf94bb1b6488a 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check for fnmatch problems in glibc 2.1.95.
 
index 5401001ca6d936c031c58a2aa6b38d559fc5795b..47eb9ca6c03c35bea1edb02d43bcfea7920d138d 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Problem: when extracting selected members from a PAX archive,
 # tar 1.14 incorrectly deemed all members to be sparse and
index 35cb221f36feaf04c3568f91ec39373fc97268a2..e95051c6f1f7fac923a5086d3a93042e0b614cf6 100644 (file)
@@ -1,22 +1,23 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # The bug occurs when extracting from a tarfile a directory when the directory
 # already exists and the version in the tarfile has more permissive
index d993dc36be0004a946d7cfb97bbeb9601a01e6a5..e33bb31e56c924929218ae06095c275da6323264 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar 1.16 failed to extract archives that have symlinks
 # in read-only directories.
index 432aa0b8e4c62f0708d943ac29a089169db3093c..43df69edc6283dbc57d67e88e3c62ba086bc03d1 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:
 # When extracting, tar (<1.22) did not restore directory permissions on
index 8241c30a149a5501bc728c86c1795f459280f6a9..bde656f78708e6d603e52cc8102f05f44fcb6540 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 5a53f643373bc5e2131744944ae1a41404893521..a0034778d55936ebc0f17220c88021f1b89b923e 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 0481c2755098736946530ab00e9cc74771614386..799b78496c5a8108b91ccf719480c65c7f3f9afd 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 4c5962e195741e07499a00b6f913055a8ff3e80c..e62763d36a8a917223975877c5de528786d7f22f 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 7c03e02abf93b0089ecec9736bb161be30caecfc..52ad6c24a7bd05b67033b7bd5ae8255aa948fec6 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index b98c39543f98b36cc07ac3b5e27f4afb6323791a..66bd3fa71ad0c6d4d73a3fa83a17d8d0cb147f48 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index bf8d1cf18d1157e26ca25bb6c391ef2d9771bd25..beaed2a0e605b4dc5cc5ca80f806cc558c80ae68 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 625e5793596b91f15887fcccf2c0921e477ff90b..894f2061b997f2bfb1eff618901c46a41a1f4fdf 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 779af48cea0e8b52642d92e0903a2e3c6e6522bd..97a156e56c1ae137b7465282cb85a52864500033 100644 (file)
@@ -1,18 +1,20 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 #
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Copyright 2010, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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/>.
 
diff --git a/tests/extrac18.at b/tests/extrac18.at
new file mode 100644 (file)
index 0000000..9170f0e
--- /dev/null
@@ -0,0 +1,62 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# Description: Check the functionality of the --keep-old-files option.
+# It should report an error and cause tar to exit with status 2.
+#
+# There was a regression in versions 1.23 to 1.26 inclusive, where
+# this option silently skipped such files.
+# Reported by: Doug McLaren <dougmc@frenzied.us>,
+#              Gary Partis <gary@partis.co.uk>,
+#              Jim Meyering <jim@meyering.net>
+#              
+# References: <20111117045433.GA8245@algol.frenzied.us>,
+#             <4F3D824717847C4487F77228F83329A3514CBB@server.Partis.local>,
+#             <87wrar6zzz.fsf@rho.meyering.net>
+
+AT_SETUP([keep-old-files])
+AT_KEYWORDS([extract extrac18 old-files keep-old-files])
+
+AT_TAR_CHECK([
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+],
+[0],
+[status=2
+File a
+],
+[tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+])
+
+AT_CLEANUP
+
diff --git a/tests/extrac19.at b/tests/extrac19.at
new file mode 100644 (file)
index 0000000..b1bb6a5
--- /dev/null
@@ -0,0 +1,46 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([skip-old-files])
+AT_KEYWORDS([extract extrac19 old-files skip-old-files])
+
+AT_TAR_CHECK([
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+],
+[0],
+[status=0
+File a
+])
+
+AT_CLEANUP
+
index a2561d73c6752fbaf58afd8fa2fb7f9d20b5bfb1..1c2c519c8c82990d9b46fdd04a52adeb7831d5d7 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -32,7 +34,7 @@
 #
 
 AT_SETUP([file removed as we read it (ca. 22 seconds)])
-AT_KEYWORDS([create incremental filechange filerem filerem01])
+AT_KEYWORDS([create incremental listed filechange filerem filerem01])
 
 AT_TAR_CHECK([
 mkdir dir
index ed444ad7dc9239dea4d809eb7a34ea7c3af2c9c0..60f55585fc33a7200c966bc050cb30287f070882 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -22,7 +24,7 @@
 # in the command line.
 
 AT_SETUP([toplevel file removed (ca. 24 seconds)])
-AT_KEYWORDS([create incremental filechange filerem filerem02])
+AT_KEYWORDS([create incremental listed filechange filerem filerem02])
 
 AT_TAR_CHECK([
 mkdir dir
index 8541be6c4d8e692b3f790989f7259f452fd977c9..fa480ef03cce281803086c4244a76ce36c11f61e 100644 (file)
@@ -485,9 +485,11 @@ generate_files_from_list ()
 static void
 mkhole (int fd, off_t displ)
 {
-  if (lseek (fd, displ, SEEK_CUR) == -1)
+  off_t offset = lseek (fd, displ, SEEK_CUR);
+  if (offset < 0)
     error (EXIT_FAILURE, errno, "lseek");
-  ftruncate (fd, lseek (fd, 0, SEEK_CUR));
+  if (ftruncate (fd, offset) != 0)
+    error (EXIT_FAILURE, errno, "ftruncate");
 }
 
 static void
@@ -685,13 +687,18 @@ exec_checkpoint (struct action *p)
            error (0, errno, _("cannot open `%s'"), p->name);
            break;
          }
-       ftruncate (fd, p->size);
+       if (ftruncate (fd, p->size) != 0)
+         {
+           error (0, errno, _("cannot truncate `%s'"), p->name);
+           break;
+         }
        close (fd);
       }
       break;
 
     case OPT_EXEC:
-      system (p->name);
+      if (system (p->name) != 0)
+       error (0, 0, _("command failed: %s"), p->name);
       break;
 
     case OPT_UNLINK:
@@ -761,7 +768,8 @@ exec_command (void)
   signal (SIGCHLD, SIG_DFL);
 #endif
 
-  pipe (fd);
+  if (pipe (fd) != 0)
+    error (EXIT_FAILURE, errno, "pipe");
 
   pid = fork ();
   if (pid == -1)
index 27a5fbaa313191a068c1102d14206a8c7360a63a..92e7cbabeb572c0b2aedc973d51d7b6173c30045 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar should exit with error code 1 (file differs) if any files have
 # changed during archiving.
index 908b6ed20e0a58e86df07a4cc4cac7d930217ae2..f53b5e692c4a7fe0920f4576c5e51f3e3a98aaa4 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007, 2009, 2010 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2009-2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # tar should detect that its gzip child failed.
 
index 03f90450b5c2fd12c8548df9999dc1583e36373c..3f4ea56ed389d8f8848ee12db619927a9a3a49d2 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Unreadable directories yielded error despite --ignore-failed-read.
 
index fad8d3e4c08dc57360333ae93e35a43408e78576..0b14908902f68b2e8c11edf15e6557080276c6cd 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+# Copyright 2005, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:
 # Check if restore from incremental backups does not choke on dangling
@@ -46,7 +46,7 @@ tar xvfg archive.1 /dev/null --warning=no-timestamp
 directory/bar
 separator
 directory/
-tar: Deleting `directory/bar'
+tar: Deleting 'directory/bar'
 ],
 [],[],[],[gnu, oldgnu, posix])
 
index 38b78a537ad0bf99951420f9366856290a4f9ab6..5f45215a07d3fe8118911054846d241ee257157f 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+# Copyright 2005, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:
 # Restoring of directory modes and timestamps works correctly only
@@ -50,9 +50,9 @@ genfile --stat=mtime dir/subdir1 > ts
 # dir/subdir2/
 # dir/subdir1/foofile
 #
-# When restoring from this directory structure, `dir/subdir2/' used to
+# When restoring from this directory structure, 'dir/subdir2/' used to
 # trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
 # latter clobbered the directory timestamp.
 
 tar -cf archive -g db dir
index 287e1ee185e31276b80cf4fddd38339335f4779c..5f7772cdbc4de71b7a610e06ce0b46a841de8556 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:
 # Previous versions checked only mtime/ctime of directories during
index 5658ac9da1e91533ad3bf4604b6a28bd32aa87a3..0638e1b0196c1b11b71f4b3620c95f6a88ac78a9 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Rewritten incremental backup support (2006-05-08)
 # missed initialization of all struct directory members in make_directory,
@@ -29,7 +29,7 @@
 AT_SETUP([proper icontents initialization])
 AT_KEYWORDS([incremental incr04 icontents])
 
-m4_define([NAME_PREFIX],[a/b/one_31_chars_long_file_name_])
+m4_pushdef([NAME_PREFIX],[a/b/one_31_chars_long_file_name_])
 
 AT_TAR_CHECK([
 AT_TAR_MKHIER(a/b)
@@ -58,9 +58,10 @@ a/c/
 ],
 [tar: a: Directory is new
 tar: a/b: Directory is new
-tar: a/c: Directory has been renamed from `a/b'
+tar: a/c: Directory has been renamed from 'a/b'
 ],[],[],[gnu, oldgnu, posix])
 
+m4_popdef([NAME_PREFIX])
 AT_CLEANUP
 
 # End of incr04.at
index 098c52e25d113d6ae92e59b1811e401aa23fc2d7..96853db55aa411b29220105924b5c94738fab39e 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index d63a260c63c6662fd381fb95ccd66ab64ecd325e..71d904334ebc56e100ce3f381655f7c6e5882d13 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
diff --git a/tests/incr07.at b/tests/incr07.at
new file mode 100644 (file)
index 0000000..017c51d
--- /dev/null
@@ -0,0 +1,112 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+AT_SETUP([incremental restores with -C])
+AT_KEYWORDS([incremental extract incr07])
+
+# Tar 1.26 had problems extracting from incremental restores when given
+# the -C option.  The code in incremen.c:try_purge_directory and
+# misc.c:remove_any_file was using savedir(), which ignored eventual changes
+# in the current working directory and caused the malfunctioning.
+#
+# The problem was reported by Piotr Rotter on 2013-03-22.
+#
+# This testcase is based on scripts provided by Piotr Rotter and Nathan
+# Stratton Treadway.
+#
+# References: <514C8F56.90900@active24.pl>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00036.html, 
+#             <20130326181922.GZ3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00042.html,
+#             <20130327051828.GA3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00043.html,
+#             <20130327054957.GB3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00044.html
+
+AT_TAR_CHECK([
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 "toplevel A exists"
+exit 0
+],
+[0],
+[C0
+A/
+A/a
+A/b
+C1
+A/
+A/c
+C2
+A/
+E0
+A/
+A/a
+A/b
+E1
+A/
+A/c
+E2
+A/
+tar: Deleting 'A/a'
+E3
+A/
+tar: Deleting 'A/B'
+FIN
+],
+[C0
+tar: A: Directory is new
+C1
+C2
+E0
+E1
+E2
+E3
+],[],[],[gnu, oldgnu, posix])
+
+AT_CLEANUP
diff --git a/tests/incr08.at b/tests/incr08.at
new file mode 100644 (file)
index 0000000..863581c
--- /dev/null
@@ -0,0 +1,86 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: In tar 1.26 listed-incremental with -C and absolute path
+# would malfunction under certain conditions due to buggy filename
+# normalization.
+#
+# The value returned by normalize_filename() is used to populate the "caname"
+# field in both the "directory" structure in incremen.c and the "name"
+# structure in names.c, and in both cases that field is then used in the
+# "hash" and "compare" functions for the related hash tables.  Thus, the
+# fact that the returned value doesn't reflect the operation of previous
+# "-C" options means that it's possible for two different directories to
+# be given the same "caname" value in the hashed structure and thus end up
+# being confused with each other.
+#
+# The bug is triggered when dumping both relative paths after -C and
+# absolute paths that match the process' current working directory.
+#
+# Reported by: Nathan Stratton Treadway <nathanst@ontko.com>
+# References: <20130922192135.GJ32256@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-09/msg00034.html
+
+AT_SETUP([filename normalization])
+AT_KEYWORDS([incremental create incr08])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir tartest
+cd tartest
+mkdir foo
+mkdir foo/subdir
+mkdir foo/subdir/dir1
+mkdir subdir
+mkdir subdir/dir2
+decho A
+find .|sort
+
+decho B
+DIR=`pwd`
+tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR 2>../err |\
+  sed "s|$DIR|ABSPATH|"
+sed "s|$DIR|ABSPATH|" ../err >&2
+],
+[0],
+[A
+.
+./foo
+./foo/subdir
+./foo/subdir/dir1
+./subdir
+./subdir/dir2
+B
+./
+./subdir/
+./subdir/dir1/
+ABSPATH/
+ABSPATH/subdir/
+ABSPATH/subdir/dir2/
+],
+[A
+B
+tar: .: Directory is new
+tar: ./subdir: Directory is new
+tar: ./subdir/dir1: Directory is new
+tar: ABSPATH: Directory is new
+tar: ABSPATH/subdir: Directory is new
+tar: ABSPATH/subdir/dir2: Directory is new
+tar: Removing leading `/' from member names
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/incr09.at b/tests/incr09.at
new file mode 100644 (file)
index 0000000..e91fb5a
--- /dev/null
@@ -0,0 +1,67 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: For some intermediate versions of tar 1.26.90,
+# tar would fail to correctly cannonicalize archive member names
+# in incremental mode if there was a -C options with an absolute path
+# on the command line without any archive members specified within that
+# directory. (In that case, the canonical name generated for
+# members specified after later -C options wouldn't correctly reflect the
+# previous absolute path.)
+
+AT_SETUP([incremental with alternating -C])
+AT_KEYWORDS([incremental create incr09])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo bar middle
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
+echo middle/file > middle/middle_file
+decho A
+tar -cvf foo.tar --incremental -C foo . -C `pwd` middle  -C bar .
+
+rm foo.tar
+>toplevel_file
+decho B
+tar -cvf foo.tar --incremental -C foo . -C `pwd` toplevel_file  -C bar .
+],
+[0],
+[A
+./
+./
+middle/
+./bar_file
+./foo_file
+middle/middle_file
+B
+./
+./
+toplevel_file
+./bar_file
+./foo_file
+],
+[A
+tar: .: Directory is new
+tar: middle: Directory is new
+tar: .: Directory is new
+B
+tar: .: Directory is new
+tar: .: Directory is new
+],[],[],[gnu])
+
+AT_CLEANUP
index 5873d83aa9baee16aec66d04cad318ead7d18b5a..19e376b835ddd1d9a3de32c45b99325859c0254d 100644 (file)
@@ -1,27 +1,27 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # A directory older than the listed entry was skipped completely.
 
 AT_SETUP([incremental])
-AT_KEYWORDS([incremental incr00])
+AT_KEYWORDS([incremental listed incr00])
 
 AT_TAR_CHECK([
 mkdir structure
@@ -35,7 +35,7 @@ ls -l structure/file >/dev/null
 # If the time of an initial backup and the creation time of a file contained
 # in that backup are the same, the file will be backed up again when an
 # incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
+# files created "on or after" the initial backup time.  Without the sleep
 # command, behaviour of tar becomes variable, depending whether the system
 # clock ticked over to the next second between creating the file and
 # backing it up.
index 6d445f398146408eba034984541d17bfaad8c29a..07fc4dc904eb8768d17a6bf355185f23a5b57804 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # tar --index-file=FILE --file=- sent the archive to FILE, and
 # the listing to stderr.
index 933682b81711dae532cca63bccf50b1c4d4bebc6..e2519b03f8cc1e3bc2a407edab5f589d457253a3 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 7d1246fe443e54349a7688332339e64b34e60600..f737e02b76e070826df34bdde151f4a3f59ad95d 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 81b0992c221983377a8695201ffa55b50630ddca..d7d09e5059cf704f9682929223f65c56a0f4be6a 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index fc3aa263473c00f0251bf7b117fddbbddb661c69..758a4d36cf46c48247f56082b11bb74f129dcfc9 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -43,7 +45,7 @@ tar -rf archive --label='New volume' file
 ],
 [# Create volume
 # Update: wrong label
-tar: Volume `New volume' does not match `My volume'
+tar: Volume 'New volume' does not match 'My volume'
 tar: Error is not recoverable: exiting now
 # Update: right label
 ],[],[],[gnu,oldgnu,posix])
index 5b968a176536cd92674e6d3b742267c8e901b558..c77a1aaf0693fba293206e45d9f7828280f00222 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -40,7 +42,7 @@ tar -rf archive file
 ],
 [# Create volume
 # Update: wrong label
-tar: Archive not labeled to match `My volume'
+tar: Archive not labeled to match 'My volume'
 tar: Error is not recoverable: exiting now
 # Update: right label
 ],[],[],[gnu,oldgnu,posix])
index e5f7d5588805513ae7241b2ae405c4db575cbaed..dfafec0204c394b7ca4f0dbb3e837297bbc23516 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Problem: If a member with link count > 2 was stored in the archive twice,
 # previous versions of tar were not able to extract it, since they
index 320a86e444b4b84cdfe4852fb7ab31f973a9cad6..91657fd5c7adc3a2fa9afda45e50d321fc060158 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar 1.22 failed to recognize last hard link when creating an archive with
 # the --remove-files option.
index 30272bf1171122cdc783bf08e00fb91fb469e87c..0d87ccd12ce404b9e80bccd0fe2f5476b2139ed8 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Make sure -l option works correctly in conjunction with --remove-files
 # See also link02.at
@@ -24,7 +24,7 @@
 AT_SETUP([working -l with --remove-files])
 AT_KEYWORDS([hardlinks link03])
 
-m4_define([create_files],[
+m4_pushdef([create_files],[
 genfile -l 64 -f file1
 ln file1 file2
 ln file2 file3
@@ -48,7 +48,8 @@ testing archive.2
 file1
 file1
 ],
-[tar: Missing links to `file1'.
+[tar: Missing links to 'file1'.
 ])
 
+m4_popdef([create_files])
 AT_CLEANUP
index 2c6045ee9389faa6ccda14f60bf123b9cf3f6fca..92c8bf92ecf8d2de13bdadb1d36b3b3226e9f7b0 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # written by Paul Eggert
 
index cb5b841db8b4eae994602827eeaf318cb924d9c5..94aed5698f4b973e67bf5e619d96d964bb2c8514 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2004-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check if listed-incremental backups work for individual files.
 # Script proposed by Andreas Schuldei <andreas@schuldei.org>
index 94a339cdf9ee0548b48126f1395cdd2e1a20bd82..272d843b589e8786cb1d4346ceadf863bcb96d69 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2004-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check if listed-incremental backups work for files moved from one directory
 # to another.
@@ -126,8 +126,8 @@ tart/c0/cq2
 tart/c1/ca1
 tart/c1/ca2
 Extracting incremental archive
-tar: Deleting `tart/a1'
-tar: Deleting `tart/b1'
+tar: Deleting 'tart/a1'
+tar: Deleting 'tart/b1'
 tart/
 tart/b2
 tart/c0/
@@ -149,7 +149,7 @@ tar: tart/c0: Directory is new
 tar: tart/c1: Directory is new
 tar: tart: Directory is new
 Creating incremental archive
-tar: tart/c2: Directory has been renamed from `tart/c1'
+tar: tart/c2: Directory has been renamed from 'tart/c1'
 Extracting main archive
 ],
 [],[],[gnu, oldgnu])
index f3feda761e7df450d45e9d3f98c401922da7a4b4..bf6680143b065a9ab2d770cfbb841447e545d9cb 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 239998d256a88000af03120c0abb258b46c6139f..38f33dc49046745212211f2838542de47a2e19f6 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
diff --git a/tests/listed05.at b/tests/listed05.at
new file mode 100644 (file)
index 0000000..c7b3c26
--- /dev/null
@@ -0,0 +1,78 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+# Tar up to 1.26 was unable to cope with directories that had once
+# been part of the dumped system and became separate mount points
+# afterwards.  The bug has been reported by Nathan Stratton Treadway,
+# who also proposed a fix and a testcase, on which the present one is
+# built.
+# Reported-by: Nathan Stratton Treadway <nathanst+bugtar@ontko.com>
+# Last-Affected-Version: 1.26
+# References: <20120527212417.GR2654@shire.ontko.com>
+#         http://lists.gnu.org/archive/html/bug-tar/2012-05/msg00022.html
+
+# This testcase is Linux-specific and requires root privileges.
+
+AT_SETUP([--listed-incremental and remounted directories])
+AT_KEYWORDS([listed incremental listed05])
+
+AT_TAR_CHECK([
+AT_PRIVILEGED_PREREQ
+options="-C tartest --create --one-file-system --verbose"
+rm -rf archive-[01].snar archive-[01].tar tartest subdir
+
+# Create initial structure
+mkdir tartest
+echo "hi" > tartest/top-level-file
+mkdir tartest/subdir
+echo "hi" > tartest/subdir/subdir-file
+
+echo "# Level 0"
+tar $options --file archive-0.tar --listed-incremental=archive-0.snar .
+
+echo "# Remount"
+mv tartest/subdir .
+mkdir tartest/subdir
+mount -t ramfs none tartest/subdir || AT_SKIP_TEST
+tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -
+
+echo "# Level 1"
+cp archive-0.snar archive-1.snar
+tar $options --file archive-1.tar --listed-incremental=archive-1.snar .
+
+umount tartest/subdir
+],
+[0],
+[# Level 0
+./
+./subdir/
+./top-level-file
+./subdir/subdir-file
+# Remount
+# Level 1
+./
+./subdir/
+],
+[tar: .: Directory is new
+tar: ./subdir: Directory is new
+tar: ./subdir: directory is on a different filesystem; not dumped
+],[],[],[gnu])
+
+AT_CLEANUP
index f57be11883d892e44eee01f5d2eb08cd4eb0bc8a..fdab2032f7a8d65e746ef62a324bf5aad3691c3c 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # In GNU format, when extracting or listing a file member with a name
 # whose length is divisible by block size (512) tar used to read an
@@ -29,8 +29,8 @@ AT_SETUP([long file names divisible by block size])
 AT_KEYWORDS([longname long512])
 
 dnl Create a directory structure with maximum directory name length 512-16
-m4_define([NAME],[0123456789abcde])
-m4_define([FULLNAME],NAME)
+m4_pushdef([NAME],[0123456789abcde])
+m4_pushdef([FULLNAME],NAME)
 m4_for([N],0,29,,[m4_define([FULLNAME],FULLNAME/NAME)])
 
 AT_TAR_CHECK([
@@ -45,4 +45,6 @@ endfile
 ],
 [],[],[],[gnu,oldgnu])
 
+m4_popdef([NAME])
+m4_popdef([FULLNAME])
 AT_CLEANUP
index a17d66358ddb247a7920fdbd4a2fd7cf38044bae..ed3cc21412e5b460a575f47d412e2800f5adf407 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Old format (V7) archives should not accept file names longer than
 # 99 characters
@@ -24,8 +24,8 @@
 AT_SETUP([long names in V7 archives])
 AT_KEYWORDS([longname longv7])
 
-m4_define([DIR],[this_is_a_very_long_name_for_a_directory_which_causes_problems])
-m4_define([FILE],[this_is_a_very_long_file_name_which_raises_issues.c])
+m4_pushdef([DIR],[this_is_a_very_long_name_for_a_directory_which_causes_problems])
+m4_pushdef([FILE],[this_is_a_very_long_file_name_which_raises_issues.c])
 
 AT_TAR_CHECK([
 mkdir DIR
@@ -44,4 +44,6 @@ tar: Exiting with failure status due to previous errors
 ],
 [],[],[v7])
 
+m4_popdef([FILE])
+m4_popdef([DIR])
 AT_CLEANUP
index 580aa85eb85f602d30255762f55740e0e9756a8c..c3163c9a0f1cd20d6df7eba5170c84bbace99b61 100644 (file)
@@ -1,27 +1,27 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([ustar: unsplittable file name])
 AT_KEYWORDS([longname ustar lustar01])
 
-m4_define([LONGNAME],
+m4_pushdef([LONGNAME],
           [this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix])
 
 AT_TAR_CHECK([
@@ -34,4 +34,5 @@ tar cf archive LONGNAME
 tar: Exiting with failure status due to previous errors
 ],[],[],[ustar])
 
+m4_popdef([LONGNAME])
 AT_CLEANUP
index 83e0b53d16b304a1f08983d3d352f13cd07b64d2..0156142f66ae2e00f573a4797330a68268956fdb 100644 (file)
@@ -1,33 +1,33 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([ustar: unsplittable path name])
 AT_KEYWORDS([longname ustar lustar02])
 
-m4_define([PREFIX_155],
+m4_pushdef([PREFIX_155],
          [this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be])
 
-m4_define([DIR_155],
+m4_pushdef([DIR_155],
          [this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be])
 
-m4_define([NAME], [tween_name_and_prefix])
+m4_pushdef([NAME], [tween_name_and_prefix])
 
 AT_TAR_CHECK([
 AT_TAR_MKHIER(PREFIX_155,NAME)
@@ -39,4 +39,8 @@ tar cf archive PREFIX_155
 tar: Exiting with failure status due to previous errors
 ],[],[],[ustar])
 
+m4_popdef([NAME])
+m4_popdef([DIR_155])
+m4_popdef([PREFIX_155])
+
 AT_CLEANUP
index 3ff0f10e39f738525940527b173e821ed3ea7d81..055f0f4796d09909d6fc80c5c799496a70f80bc9 100644 (file)
@@ -1,30 +1,30 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([ustar: splitting long names])
 AT_KEYWORDS([longname ustar lustar03])
 
-m4_define([DIR_155],
+m4_pushdef([DIR_155],
          [this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be])
 
-m4_define([NAME], [file])
+m4_pushdef([NAME], [file])
 
 AT_TAR_CHECK([
 AT_TAR_MKHIER(DIR_155,NAME)
@@ -40,4 +40,6 @@ DIR_155/NAME
 ],
 [],[],[],[ustar])
 
+m4_popdef([NAME])
+m4_popdef([DIR_155])
 AT_CLEANUP
index 2b03b324fce526705da09bef06be1d29669cbe4c..09e2ff309f9a98c679eeb263355e471212fefeac 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Test multivolume dumps from pipes.
 
index 0c321e2c0b1921f96fe2fdf7df1dc34162314d2a..6f77e55f67fc5c8ce46c94f47770c92bce49067b 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Previous versions of tar were not able to skip a member straddling
 # the multivolume archive boundary. Reported by Mads Martin Joergensen
index e013c190c8e098a4eb750b4ae2a36be891aad5a2..786fff3cca409845100fbac7566e05d443dd8b5d 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Problem: GNU multivolume archives are not able to continue on members
 # with filenames longer than 100 characters. Versions of tar <= 1.14
@@ -36,7 +36,7 @@ BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
 
 cat > ../experr <<EOF
 tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
+tar: '$BFILE' is possibly continued on this volume: header contains truncated name
 EOF
 
 cat > ../expout <<EOF
index 9ab42560eeb415b519b47ff0ed608e0a73696907..e781d85afb80090a14dc2ee8994fac1395194883 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Problem: Tar was not able to match directory name if the directory
 # member was split between two volumes
@@ -34,7 +34,7 @@
 # 3. Test the created multi-volume archive.
 
 AT_SETUP([split directory members in a MV archive])
-AT_KEYWORDS([multivolume multiv incremental multiv04])
+AT_KEYWORDS([multivolume multiv incremental listed multiv04])
 
 AT_TAR_CHECK([
 
index 9d963c7ec593bf2033457368805bd03ee2a3b1b1..33422f4a8cf8b1e1ec44261398db195e8d4cbfa1 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright 2006-2008, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Up to version 1.15.91 tar was unable to recognize all volumes
 # given after an out-of-sync volume.
@@ -25,7 +25,7 @@
 
 AT_SETUP([Restoring after an out of sync volume])
 AT_KEYWORDS([multivolume multiv multiv05 sync])
-m4_define([FILELIST],[jeden,dwa,trzy,cztery,piec,szesc])
+m4_pushdef([FILELIST],[jeden,dwa,trzy,cztery,piec,szesc])
 
 AT_TAR_CHECK([
 exec <&-
@@ -58,7 +58,8 @@ m4_foreach([file],
   [Diffing file
 ])dnl
 ,
-[tar: `trzy' is not continued on this volume
+[tar: 'trzy' is not continued on this volume
 ],[],[], [gnu])
 
+m4_popdef([FILELIST])
 AT_CLEANUP
index 97cefbf4eb1e606a5f898a5b32e9a6cdeedcb0d9..585249976339413fe9b5e65f3e05639d36e13b74 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright 2008, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # When volume size equals record size, swapping buffers in
 # new_volume triggers a call to flush_archive.  The size left variables
index 9a40f7b3e926badfadee5ec7aeeda34658c5af12..d41eb93ab5173e2a517bc08c6840e58ac722d7ec 100644 (file)
@@ -1,12 +1,14 @@
 # Test suite for GNU tar.                             -*- Autotest -*-
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index c7bfb9d33a8fd69955e259bcf5eaec0f23f9dbe9..e6a3bfdb4152e54b6a88486be3b3ef1267ea6e28 100644 (file)
@@ -1,12 +1,14 @@
 # Test suite for GNU tar.                             -*- Autotest -*-
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
@@ -17,7 +19,7 @@
 # Description: Tar 1.23 would in some cases silently fail to create
 # a continuation header in multivolume archives.
 #
-# In this testcase, the file `a' is 18.5 blocks long and the file `b'
+# In this testcase, the file 'a' is 18.5 blocks long and the file 'b'
 # is 19.5 blocks long.
 
 AT_SETUP([multivolume header creation])
index 7e4374ea730c2150cc78f1257d5c844c86859dfc..bbf275a04eee827d13ff8498a360fcb9743d0580 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # An old archive was not receiving directories.
 
diff --git a/tests/opcomp01.at b/tests/opcomp01.at
new file mode 100644 (file)
index 0000000..f696be8
--- /dev/null
@@ -0,0 +1,34 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([occurrence compatibility])
+AT_KEYWORDS([opcomp opcomp01])
+
+AT_CHECK([
+tar --occurrence=1 -cf test.tar .
+],
+[2],
+[],
+[tar: --occurrence cannot be used with -c
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
diff --git a/tests/opcomp02.at b/tests/opcomp02.at
new file mode 100644 (file)
index 0000000..85538c8
--- /dev/null
@@ -0,0 +1,34 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([occurrence compatibility])
+AT_KEYWORDS([opcomp opcomp02])
+
+AT_CHECK([
+tar --occurrence=1 -tf test.tar
+],
+[2],
+[],
+[tar: --occurrence is meaningless without a file list
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
diff --git a/tests/opcomp03.at b/tests/opcomp03.at
new file mode 100644 (file)
index 0000000..aa54053
--- /dev/null
@@ -0,0 +1,34 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([--verify compatibility])
+AT_KEYWORDS([opcomp opcomp03])
+
+AT_CHECK([
+tar -tWf test.tar .
+],
+[2],
+[],
+[tar: --verify cannot be used with -t
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
diff --git a/tests/opcomp04.at b/tests/opcomp04.at
new file mode 100644 (file)
index 0000000..67f94b5
--- /dev/null
@@ -0,0 +1,38 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([compress option compatibility])
+AT_KEYWORDS([opcomp opcomp04])
+
+AT_CHECK([
+AT_GZIP_PREREQ
+genfile --file file
+tar czf test.tar file
+genfile --file newfile
+tar rzf test.tar newfile
+],
+[2],
+[],
+[tar: Cannot update compressed archives
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
diff --git a/tests/opcomp05.at b/tests/opcomp05.at
new file mode 100644 (file)
index 0000000..f470d4c
--- /dev/null
@@ -0,0 +1,34 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([--pax-option compatibility])
+AT_KEYWORDS([opcomp opcomp05])
+
+AT_CHECK([
+tar -Hgnu -cf test.tar --pax-option user:=root .
+],
+[2],
+[],
+[tar: --pax-option can be used only on POSIX archives
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
diff --git a/tests/opcomp06.at b/tests/opcomp06.at
new file mode 100644 (file)
index 0000000..12de5b2
--- /dev/null
@@ -0,0 +1,36 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+
+AT_SETUP([--pax-option compatibility])
+AT_KEYWORDS([opcomp opcomp06])
+
+AT_CHECK([
+AT_ACLS_PREREQ
+genfile --file file
+tar -cf test.tar --acls -Hgnu file
+],
+[2],
+[],
+[tar: --acls can be used only on POSIX archives
+Try 'tar --help' or 'tar --usage' for more information.
+])
+
+AT_CLEANUP
+
index e682f69a2ae3a49bce7055a205ce3b1d428a8ed4..891fd6ed550939bda39d92cc9eed29f6085ebed1 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Ensure that TAR_OPTIONS works in conjunction with old-style options.
 
index d4cc285a12144aa476b9882c099547c3f0cdb805..aa27d2d0a7ced76f3ef9f6ea96de69d8b015ae7c 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Ensure that tar correctly handles non-option arguments interspersed with
 # options.
diff --git a/tests/owner.at b/tests/owner.at
new file mode 100644 (file)
index 0000000..cfa155e
--- /dev/null
@@ -0,0 +1,44 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2011, 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, 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/>.
+
+# Check the --owner and --group options.
+
+AT_SETUP([--owner and --group])
+AT_KEYWORDS([owner])
+
+AT_TAR_CHECK([
+export TZ=UTC0
+
+genfile --file a
+
+tar --owner="Joe the Plumber:1234" \
+    --group="Plumber's Union:5678" \
+    --mtime='@0' \
+    --mode='u=rw,go=r' \
+    -cf arc a
+
+tar -tvf arc
+tar --numeric-owner -tvf arc
+],
+[0],
+[-rw-r--r-- Joe the Plumber/Plumber's Union 0 1970-01-01 00:00 a
+-rw-r--r-- 1234/5678         0 1970-01-01 00:00 a
+],
+[],[],[],[gnu])
+
+AT_CLEANUP
index b708753bbb556a246b96b1b993a2cf6ced0c3e6a..564cea67b0c0703507113ee5bb2b843fa9d0c2ed 100644 (file)
@@ -1,6 +1,6 @@
 # Signature of the current package.
 m4_define([AT_PACKAGE_NAME],      [GNU tar])
 m4_define([AT_PACKAGE_TARNAME],   [tar])
-m4_define([AT_PACKAGE_VERSION],   [1.26])
-m4_define([AT_PACKAGE_STRING],    [GNU tar 1.26])
+m4_define([AT_PACKAGE_VERSION],   [1.27])
+m4_define([AT_PACKAGE_STRING],    [GNU tar 1.27])
 m4_define([AT_PACKAGE_BUGREPORT], [bug-tar@gnu.org])
index cab85351c9560eb3c278bf83fe2ec2165d673460..964c9e98304984c257c25ccec31b934cd47d9431 100644 (file)
@@ -1,23 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2006, 2007, 2008,
-# 2009 Free Software Foundation, Inc.
+# Copyright 2004-2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Recognition of compressed formats, introduced with tar 1.15, broke
 # untarring of archives from standard input.
index 042073377b0e2c15f42c0313306879f90ebb5820..1b5f2dd83f8eb6ce03fa911451ca956d8cd207a4 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([recurse])
 AT_KEYWORDS([recurse])
index 1fb0fadc547d67c91974af11a2e56d343d79a1ad..948903a8d15c22c4d1420d56e5f8ed40d8e7cc0a 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: When called with --create --remove-files and a compression
 # options tar (v. <= 1.22.90) would remove files even if it had failed
index 31dc3ade9b9bb323685bb1c5bb3ca5b793de169c..b66ec2854b9cf31ea98ec48a6a694c73c6917897 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: When called with --create --remove-files and a compression
 # options tar (v. <= 1.22.90) would remove files even if it had failed
index 85d76a8287e3479ed9940960c2a557addf103045..d5d9741dc8e3d2427b36e12868b73f91d7fc46a0 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Called with --remove-files, tar 1.23 failed
 # to remove a directory if it contained symlinks to another files
diff --git a/tests/remfiles04a.at b/tests/remfiles04a.at
new file mode 100644 (file)
index 0000000..d1e4614
--- /dev/null
@@ -0,0 +1,45 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a single relative-path -C option,
+# in --create/non-incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles04 remfiles04a])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --remove-files -C foo bar
+echo A
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./foo
+./foo.tar
+],[],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles04b.at b/tests/remfiles04b.at
new file mode 100644 (file)
index 0000000..3208557
--- /dev/null
@@ -0,0 +1,53 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a single relative-path -C option,
+# in --create/incremental mode.
+#
+# (Tar 1.26 would remove files in original working directory when called in
+# this manner.  [It would follow the -C for archiving the files, but ignore it
+# for removing them afterwards.]
+#
+# Reported by: Nathan Stratton Treadway <nathanst@ontko.com>
+# References: <20130921171234.GG32256@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-09/msg00028.html
+# )
+
+AT_SETUP([remove-files with -C:rel in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles04 remfiles04b])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --incremental --remove-files -C foo bar
+echo A
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./foo
+./foo.tar
+],[],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles04c.at b/tests/remfiles04c.at
new file mode 100644 (file)
index 0000000..a1b6d56
--- /dev/null
@@ -0,0 +1,62 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a single relative-path -C option,
+# in --append mode.
+#
+# (Tar 1.26 would remove files in original working directory when called in
+# this manner.  [It would follow the -C for archiving the files, but ignore it
+# for removing them afterwards.]
+#
+# Reported by: Jörgen Strand <Jorgen.Strand@sonymobile.com>
+# References: <9FC79E5CB90CEC47B9647DCAB7BD327A01AD83B452EE@seldmbx02.corpusers.net>
+#             http://lists.gnu.org/archive/html/bug-tar/2013-09/msg00024.html
+# )
+
+AT_SETUP([remove-files with -C:rel in -r mode])
+AT_KEYWORDS([create append remove-files remfiles04 remfiles04c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar -C foo bar
+echo A
+find . | sort
+tar -rf foo.tar --remove-files -C foo bar
+echo B
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./foo
+./foo.tar
+./foo/bar
+B
+.
+./bar
+./foo
+./foo.tar
+],[],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles05a.at b/tests/remfiles05a.at
new file mode 100644 (file)
index 0000000..4ceec37
--- /dev/null
@@ -0,0 +1,64 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of two relative-path -C options,
+# in --create/non-incremental mode.
+#
+# (This specific case failed during development of tar 1.26.90:
+# There was a leftover call to chdir in name_next_elt() in
+# tar 1.26.  After commit e3d28d84 this call would confuse the 
+# tar_getcwd function.
+#
+# Reported by: Nathan Stratton Treadway <nathanst@ontko.com>
+# References: <20130924145657.GM32256@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-09/msg00045.html
+# )
+
+AT_SETUP([remove-files with -C:rel,rel in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles05 remfiles05a])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles05b.at b/tests/remfiles05b.at
new file mode 100644 (file)
index 0000000..d120efd
--- /dev/null
@@ -0,0 +1,55 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of two relative-path -C options,
+# in --create/incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel,rel in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles05 remfiles05b])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles05c.at b/tests/remfiles05c.at
new file mode 100644 (file)
index 0000000..a01b092
--- /dev/null
@@ -0,0 +1,67 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of two relative-path -C options,
+# in --append mode.
+#
+
+AT_SETUP([remove-files with -C:rel,rel in -r mode])
+AT_KEYWORDS([create append remove-files remfiles05 remfiles05c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+tar -cf foo.tar -C foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+C
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles06a.at b/tests/remfiles06a.at
new file mode 100644 (file)
index 0000000..fe762c1
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --create/non-incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles06 remfiles06a])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles06b.at b/tests/remfiles06b.at
new file mode 100644 (file)
index 0000000..3b867fb
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --create/incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles06 remfiles06b])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles06c.at b/tests/remfiles06c.at
new file mode 100644 (file)
index 0000000..ad9164d
--- /dev/null
@@ -0,0 +1,68 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --append mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -r mode])
+AT_KEYWORDS([create append remove-files remfiles06 remfiles06c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C foo file -C $DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+C
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles07a.at b/tests/remfiles07a.at
new file mode 100644 (file)
index 0000000..95f645c
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --create/non-incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles07 remfiles07a])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles07b.at b/tests/remfiles07b.at
new file mode 100644 (file)
index 0000000..ca67e5d
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --create/incremental mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles07 remfiles07b])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles07c.at b/tests/remfiles07c.at
new file mode 100644 (file)
index 0000000..6a5c870
--- /dev/null
@@ -0,0 +1,68 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of a relative -C option followed by an absolute -C,
+# in --append mode.
+#
+
+AT_SETUP([remove-files with -C:rel,abs in -r mode])
+AT_KEYWORDS([create append remove-files remfiles07 remfiles07c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C foo file -C $DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho C
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+C
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles08a.at b/tests/remfiles08a.at
new file mode 100644 (file)
index 0000000..eadf149
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of an absolute -C option followed by a relative -C,
+# in --create/non-incremental mode.
+#
+
+AT_SETUP([remove-files with -C:abs,rel in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles08 remfiles08a])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles08b.at b/tests/remfiles08b.at
new file mode 100644 (file)
index 0000000..9faf2bb
--- /dev/null
@@ -0,0 +1,56 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of an absolute -C option followed by a relative -C,
+# in --create/incremental mode.
+#
+
+AT_SETUP([remove-files with -C:abs,rel in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles08 remfiles08b])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
+decho B
+find . | sort
+],
+[0],
+[A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles08c.at b/tests/remfiles08c.at
new file mode 100644 (file)
index 0000000..a220f4c
--- /dev/null
@@ -0,0 +1,68 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: ensure tar correctly respects -C option when deleting
+# files due to the --remove-files option.
+#
+# This case checks the use of an absolute -C option followed by a relative -C,
+# in --append mode.
+#
+
+AT_SETUP([remove-files with -C:abs,rel in -r mode])
+AT_KEYWORDS([create append remove-files remfiles08 remfiles08c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C $DIR/foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+decho C
+find . | sort
+],
+[0],
+[A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
+],
+[A
+B
+C
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles09a.at b/tests/remfiles09a.at
new file mode 100644 (file)
index 0000000..fd28b4f
--- /dev/null
@@ -0,0 +1,48 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: check --remove-files operation when archiving/deleting
+# directory trees.
+#
+# This case checks the operation
+# in --create/non-incremental mode.
+#
+
+AT_SETUP([remove-files on full directory in -c/non-incr. mode])
+AT_KEYWORDS([create remove-files remfiles09 remfiles09a])
+
+AT_TAR_CHECK([
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --remove-files foo
+decho B
+find . 
+],
+[0],
+[A
+foo/
+foo/file
+B
+.
+./foo.tar
+],
+[A
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles09b.at b/tests/remfiles09b.at
new file mode 100644 (file)
index 0000000..de9b172
--- /dev/null
@@ -0,0 +1,58 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: check --remove-files operation when archiving/deleting
+# directory trees.
+#
+# This case checks the operation
+# in --create/incremental mode.
+#
+# Note: in tar 1.27, when run in incremental mode tar will attempt to remove
+# the directory before removing the files within that directory, and thus
+# the --remove-files operation will cause tar to abort with an error status.
+# This issue will be fixed in a later version of tar.
+
+AT_SETUP([remove-files on full directory in -c/incr. mode])
+AT_KEYWORDS([create incremental remove-files remfiles09 remfiles09b])
+
+AT_XFAIL_IF(true) # we expect to fail in tar 1.27
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --incremental --remove-files foo
+TARSTAT=$?
+decho B
+find .
+],
+[0],
+[A
+foo/
+foo/file
+B
+.
+./foo
+./foo.tar
+],
+[A
+tar: foo: Directory is new
+B
+],[],[],[gnu])
+
+AT_CLEANUP
diff --git a/tests/remfiles09c.at b/tests/remfiles09c.at
new file mode 100644 (file)
index 0000000..7241608
--- /dev/null
@@ -0,0 +1,58 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+#
+# GNU tar 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/>.
+
+# Description: check --remove-files operation when archiving/deleting
+# directory trees.
+#
+# This case checks the operation
+# in --append mode.
+#
+
+AT_SETUP([remove-files on full directory in -r mode])
+AT_KEYWORDS([create append remove-files remfiles09 remfiles09c])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir foo
+echo foo/file > foo/file
+tar -cf foo.tar foo
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files foo
+decho C
+find . | sort
+],
+[0],
+[A
+.
+./foo
+./foo.tar
+./foo/file
+B
+foo/
+foo/file
+C
+.
+./foo.tar
+],
+[A
+B
+C
+],[],[],[gnu])
+
+AT_CLEANUP
index e62e89d6a1baf8e5bc6a70164bff32e5b76df397..030b0b7fb8e1767350758ef5ae6a7574e0fc2de0 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Test basic handling of renamed directory in the incremental
 # archives.
@@ -81,7 +81,7 @@ End directory listing 2
 ],
 [tar: foo: Directory is new
 tar: foo/bar: Directory is new
-tar: foo/baz: Directory has been renamed from `foo/bar'
+tar: foo/baz: Directory has been renamed from 'foo/bar'
 ],
 [],[],[gnu, oldgnu, posix])
 
index 4c51f26984acbed5f0e63f7618b7f206743868a5..d1f136db2d82cbcd1bb1bf703e241d0534b6b637 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Incremental archives should be able to handle directories
 # moved between directory hierarchies.
@@ -96,7 +96,7 @@ End directory listing 2
 [tar: foo: Directory is new
 tar: foo/bar: Directory is new
 tar: foo/bar/baz: Directory is new
-tar: foo/baz: Directory has been renamed from `foo/bar/baz'
+tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
 ],
 [],[],[gnu, oldgnu, posix])
 
index d6d9a27398db01fe8a52172890ef601a400ba8a4..bd4291b31ba9aee10ea9aea5e149009d3dc9e427 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Handling of cyclic renames in incremental archives.
 
@@ -118,9 +118,9 @@ tar: foo/b: Directory is new
 tar: foo/c: Directory is new
 tar: foo: Directory is new
 Second dump
-tar: foo/a: Directory has been renamed from `foo/c'
-tar: foo/b: Directory has been renamed from `foo/a'
-tar: foo/c: Directory has been renamed from `foo/b'
+tar: foo/a: Directory has been renamed from 'foo/c'
+tar: foo/b: Directory has been renamed from 'foo/a'
+tar: foo/c: Directory has been renamed from 'foo/b'
 ],
 [],[],[gnu, oldgnu, posix])
 
index ac593de1717b9d1520ca406e04d692b3b41ea723..b5815d5086273a94bb31ddc8eef5d6bdd5ab357f 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright 2008, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: Up to version 1.20, when storing a record for renamed
 # directory in an incremental archive, tar incorrectly flagged all its
index 54a9067a14459d7287225ff61854856bb217a5ce..64654b652de929f20f2a04fc1271fd07c520351f 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright 2008, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description:  A continuation of rename04.at, that checks additionally if
 # renamed subdirectories are restored correctly.
index 2ed46701f983415284b8da5fce973104258b6337..6194e2e3773f5504701a5932e0d9d621ed147401 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Problem: -C dir did not work with --same-order
 # Reported by: Karl-Michael Schneider <schneide@phil.uni-passau.de>
index 7beecc3b8bcc424e0c6918484cb3eea502f00cda..d37cf7f350c279a22861ebda17dcddbe0c922274 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # In previous versions a single -C option did not work with --same-order
 # (see same-order01.sh). However, multiple -C options worked OK.
diff --git a/tests/selacl01.at b/tests/selacl01.at
new file mode 100644 (file)
index 0000000..6c1dcf3
--- /dev/null
@@ -0,0 +1,66 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# This is basic test for support of extended attributes.
+
+AT_SETUP([acls/selinux: special files & fifos])
+AT_KEYWORDS([xattrs selinux acls selacls01])
+
+AT_TAR_CHECK([
+AT_PRIVILEGED_PREREQ
+AT_XATTRS_UTILS_PREREQ
+AT_SELINUX_PREREQ
+AT_ACLS_PREREQ
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
+echo separator
+],
+[0],
+[separator
+])
+
+AT_CLEANUP
diff --git a/tests/selnx01.at b/tests/selnx01.at
new file mode 100644 (file)
index 0000000..fc96b36
--- /dev/null
@@ -0,0 +1,98 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# This is basic test for selinux support (store & restore).
+
+AT_SETUP([selinux: basic store/restore])
+AT_KEYWORDS([xattrs selinux selnx01])
+
+AT_TAR_CHECK([
+AT_XATTRS_UTILS_PREREQ
+AT_SELINUX_PREREQ
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
+fi
+
+],
+[0],
+[security.selinux="system_u
+security.selinux="unconfined_u
+security.selinux="system_u
+])
+
+AT_CLEANUP
index 261f42fded95a137d075a3aa2f7ca91398e5d995..9f5c3a4151d335ad9fd2a65ba9ef13fcf0f705a5 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar 1.18 in reading mode silently ignored any invalid files smaller than 512
 # Reported by: Ian <isoboroff@gmail.com> on Thu, 23 Aug 2007 15:15:51 -0400
index 69dec89981053ef078b4bbe6d7f806ee7d28698a..177221e7ee6d45430a8b4eb4e0af346bd9be87ad 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright 2005, 2007-2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check that tar doesn't complain when reading short records.
 # This can happen when the input blocksize differs from the blocksize
index a2bbd13ba25aead6b14e1ccede01b0cedb7deaf4..f9f3680b75f11b98c72f80ccdb473731b525282f 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index dff94f6c4dbf61c5dec09f9b974c4927c68d7838..46afc6450e0f191eb0b63ba69dd1f58950b10c26 100644 (file)
@@ -1,14 +1,16 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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.
index 039fbbf2098ce36dc2853d9e4852faf30cb36deb..7d75be04bda9f940f70dd3bac94aeb15a6a0cba4 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([sparse files])
 AT_KEYWORDS([sparse sparse01])
index 9e7ce8a794cb0332e40f146eab0a05563dd7f0c4..042cec902320df896912b5bc7f41e83acf8f2d5b 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([extracting sparse file over a pipe])
 AT_KEYWORDS([sparse sparse02])
index 6ab46a0a6bde2d511562903abda87ac1db5346b4..91fd87c7bfa86e650dbbc676d571f1e27f460bbb 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([storing sparse files > 8G])
 AT_KEYWORDS([sparse sparse03])
index 4d41be7cb840e7cefc6c3d732cae30ee7f545000..2cfae7983b27e29c59db1100ca1ededd367315ec 100644 (file)
@@ -1,40 +1,40 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 #
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Copyright 2010, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([storing long sparse file names])
 AT_KEYWORDS([sparse sparse04])
 
 # Description: Tar versions from 1.15.92 to 1.25 would incorrectly
 # store sparse file names longer than 100 characters in pax mode.
-# Namely, the `path' keyword of the produced PAX header would contain the
+# Namely, the 'path' keyword of the produced PAX header would contain the
 # crafted name of the header itself, instead of that of the file.
 # Reported by: Kamil Dudka <kdudka@redhat.com>
 # References: <201011250026.44908.kdudka@redhat.com>,
 #             http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00099.html
 
-m4_define([NAME_111],
+m4_pushdef([NAME_111],
          [123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960])
 
 AT_TAR_CHECK([
 genfile --sparse --file NAME_111 --block-size 512 8M A || AT_SKIP_TEST
-tar -c --sparse --posix NAME_111 | tar t
+tar -f - -c --sparse --posix NAME_111 | tar tf -
 ],
 [0],
 [NAME_111
@@ -44,4 +44,5 @@ tar -c --sparse --posix NAME_111 | tar t
 [],
 [pax])
 
+m4_popdef([NAME_111])
 AT_CLEANUP
index 654908319b3f873a79b4984d4a9e214134ae4fda..c43a099f3f5edf40b5bafc93d125bfe7cc6f089e 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright 2005-2008, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([sparse files in MV archives])
 AT_KEYWORDS([sparse multiv sparsemv])
index 729f5427e120b150e1760d4003119b791fa34c8d..05073dd0e0ccfcdf9526393f2140df2f031e1d91 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright 2005-2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check if sparse files are correctly split between PAX multi-volume
 # archives.
index 48597d4c6ca61afb899e4c1a5679181fce57cd35..a601c58e85a9b8e3b1c224dfd2201d9d28acc97c 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([sparse files in PAX MV archives, v.0.0])
 AT_KEYWORDS([sparse multivolume multiv sparsemvp sparsemvp00])
index 0451cbff2dad1d94c29d28a7be1804c396cb7bf2..4293a863a6455644695e1af3bd88c67f3224a34d 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([sparse files in PAX MV archives, v.0.1])
 AT_KEYWORDS([sparse multiv sparsemvp sparsemvp01])
index 8e1dccbc9b80cfee2583f060db091fa416358e6c..c5d287d0208928e495fe0445efeb07e3902120ae 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([sparse files in PAX MV archives, v.1.0])
 AT_KEYWORDS([sparse multivolume multiv sparsemvp sparsemvp10])
index 2b96aa6bb132bf88ac9c2491386a778c631dd688..c570270a54c31da04ffc7803f48ae1ac9dc30356 100644 (file)
@@ -3,7 +3,7 @@ star "test archives". The archives themselves can be obtained
 from ftp://ftp.berlios.de/pub/star/testscripts.
 
 These tests are disabled by default. There are two ways to run
-them.  The simplest is by `make check-full' command.  It requires wget
+them.  The simplest is by 'make check-full' command.  It requires wget
 and GNU md5sum to be installed. If you don't have these utilities,
 download the test archives manually and set the environment variable
 STAR_TESTSCRIPTS to point to the directory where they reside, for
@@ -13,9 +13,9 @@ example:
 or
        make TESTS_ENVIRONMENT='STAR_TESTSCRIPTS=testdir' check
 
-The file `quicktest.sh' is a separate test. It is never executed
-within `make check' command, you will need to run it manually.
-Please, carefully read section `quicktest.sh' below before running
+The file 'quicktest.sh' is a separate test. It is never executed
+within 'make check' command, you will need to run it manually.
+Please, carefully read section 'quicktest.sh' below before running
 it.
 
 Following is a short description of the tests:
@@ -52,18 +52,38 @@ containing very large files (in this case -- 10 GB).
 
 This is a test for compliance to POSIX.1-1990 tar specification. It
 requires two files: ustar-all-quicktest.tar and quicktest.filelist,
-(they usually reside in star/testscripts directory), and `tartest' program
+(they usually reside in star/testscripts directory), and 'tartest' program
 (also part of star distribution). The test must be run only with root
 privileges, so it is a good idea to verify the contents of
 ustar-all-quicktest.tar before running it.
 
-If `tartest' is not in your PATH, use TARTEST variable to specify its
+If 'tartest' is not in your PATH, use TARTEST variable to specify its
 full file name. You may pass both STAR_TESTSCRIPTS and TARTEST
 variables as command line arguments to quicktest.sh, as shown in
 the example below:
 
   ./quicktest.sh STAR_TESTSCRIPTS=testdir TARTEST=/path/to/tartest
 
+\f
+* Copying
+
+Copyright 2004, 2006-2008, 2010, 2012-2013 Free Software Foundation,
+Inc.
+
+This file is part of GNU tar.
+
+GNU tar is free software; you can redistribute it and/or modify
+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.
+
+GNU tar 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/>.
 \f
 Local variables:
 mode: outline
index 5f41cc1cb31febbb47cc8e8f670ed702d1915be5..da1facd596667cbb5fa49d768dfedfd720060df2 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([gtarfail])
 AT_KEYWORDS([star gtarfail])
index f00b7675e36f8cc475de749b6a2f52cf7be227e9..70922d715ab5f1781c498a8373cf6059c6fec1be 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([gtarfail2])
 AT_KEYWORDS([star gtarfail2])
index ebf77176c28f1c5ccfdaad759c5c27ac28a37c1c..4639d355386ff401f0e13da1ff2a7f4be9093690 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([multi-fail])
 AT_KEYWORDS([star multivolume multiv multi-fail])
index 732d0fafe7c581efffb4664048aa054553d1041d..e4c44da96c6276f4687d6ffaa3f15bd6aeb376c4 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([pax-big-10g])
 AT_KEYWORDS([star pax-big-10g])
index cbc65112bd8fab70870209d92787668115be79b0..91df86381771a97b72251e6c90584a3f4da7cdb9 100755 (executable)
@@ -1,21 +1,21 @@
 #! /bin/sh
 # This file is part of GNU tar testsuite.
-# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
+# Copyright 2004-2005, 2007, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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,
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 PWD=`pwd`
 P=`expr $0 : '\(.*\)/.*'`
index 1609d1b762685fe0803ea2e38464e877168c63e4..ad466f2e5e162a11c03c52b641b3e5b7132da0ad 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([ustar-big-2g])
 AT_KEYWORDS([star ustar-big-2g])
index d1ecbcdbafff1d028d38a088830297fc48799c37..7fb00d0571568f91a38471b871481555b93655e3 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([ustar-big-8g])
 AT_KEYWORDS([star ustar-big-8g])
index 89cc84e79c235710c25370a2a37d783e4ffc474d..9463a20946393af108447c286ad7663546b26546 100755 (executable)
@@ -1,17 +1,17 @@
 #! /bin/sh
-# Generated from testsuite.at by GNU Autoconf 2.63.
+# Generated from testsuite.at by GNU Autoconf 2.69.
+#
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
 #
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
 # This test suite is free software; the Free Software Foundation gives
 # unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # 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 -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -19,23 +19,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -43,7 +35,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -54,7 +52,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -77,13 +75,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -93,15 +84,16 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -113,12 +105,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# 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 \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -130,330 +126,319 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-        X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\/\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-
 # CDPATH.
-$as_unset CDPATH
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
 else
-  as_have_required=no
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
 
 exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+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 :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  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 :
+  as_have_required=yes
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_have_required=no
 fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
 
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
 else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+  as_found=:
+  case $as_dir in #(
         /*)
           for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+            # 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 :
+  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 :
+  break 2
+fi
+fi
           done;;
        esac
+  as_found=false
 done
+$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 :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
 IFS=$as_save_IFS
 
 
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+      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
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
 esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
 fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
 fi
-
 fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
-      done
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
 
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-       done
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
 
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
 
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
 
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
-fi
 
-fi
+} # as_fn_mkdir_p
 
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# 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 :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# 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 :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
 
 
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
 
-exitcode=0
-if as_func_success; then
-  :
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
 else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
+  as_expr=false
 fi
 
-if as_func_ret_success; then
-  :
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  as_basename=false
 fi
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_dirname=false
 fi
 
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf@gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
-
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  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'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
   sed -n '
     p
     /[$]LINENO/=
@@ -470,10 +455,12 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { { $as_echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-$as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -482,29 +469,18 @@ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell"
   exit
 }
 
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -519,49 +495,29 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -591,6 +547,11 @@ at_errexit_p=false
 # Shall we be verbose?  ':' means no, empty means yes.
 at_verbose=:
 at_quiet=
+# Running several jobs in parallel, 0 means as many as test groups.
+at_jobs=1
+at_traceon=:
+at_trace_echo=:
+at_check_filter_trace=:
 
 # Shall we keep the debug scripts?  Must be `:' when the suite is
 # run by a debug script, so that the script doesn't remove itself.
@@ -605,6 +566,8 @@ at_list_p=false
 at_clean=false
 # Test groups to run
 at_groups=
+# Whether to rerun failed tests.
+at_recheck=
 # Whether a write failure occurred
 at_write_fail=0
 
@@ -618,154 +581,215 @@ esac
 # Whether -C is in effect.
 at_change_dir=false
 
+# Whether to enable colored test results.
+at_color=no
 # List of the tested programs.
 at_tested='tar'
-# List of the all the test groups.
-at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121'
 # As many question marks as there are digits in the last test group number.
 # Used to normalize the test group numbers so that `ls' lists them in
 # numerical order.
 at_format='???'
 # Description of all the test groups.
 at_help_all="1;version.at:19;tar version;;
-2;pipe.at:30;decompressing from stdin;pipe;
+2;pipe.at:29;decompressing from stdin;pipe;
 3;options.at:24;mixing options;options options00;
 4;options02.at:26;interspersed options;options options02;
-5;T-empty.at:26;files-from: empty entries;files-from empty;
-6;T-null.at:21;files-from: 0-separated file without -0;files-from null t-null;
-7;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile;
-8;verbose.at:26;tar cvf -;stdout verbose;
-9;append.at:21;append;append append00;
-10;append01.at:29;appending files with long names;append append01;
-11;append02.at:54;append vs. create;append append02 append-gnu;
-12;append03.at:19;append with name transformation;append append03;
-13;xform-h.at:30;transforming hard links on create;transform xform xform-h;
-14;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume;
-15;exclude.at:23;exclude;exclude;
-16;exclude01.at:17;exclude wildcards;exclude exclude01;
-17;exclude02.at:17;exclude: anchoring;exclude exclude02;
-18;exclude03.at:17;exclude: wildcards match slash;exclude exclude03;
-19;exclude04.at:17;exclude: case insensitive;exclude exclude04;
-20;exclude05.at:19;exclude: lots of excludes;exclude exclude05;
-21;exclude06.at:24;exclude: long files in pax archives;exclude exclude06;
-22;delete01.at:23;deleting a member after a big one;delete delete01;
-23;delete02.at:23;deleting a member from stdin archive;delete delete02;
-24;delete03.at:21;deleting members with long names;delete delete03;
-25;delete04.at:23;deleting a large last member;delete delete04;
-26;delete05.at:27;deleting non-existing member;delete delete05;
-27;extrac01.at:23;extract over an existing directory;extract extract01;
-28;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink;
-29;extrac03.at:23;extraction loops;extract extract03;
-30;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch;
-31;extrac05.at:30;extracting selected members from pax;extract extract05;
-32;extrac06.at:33;mode of extracted directories;extract extract06 directory mode;
-33;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink;
-34;extrac08.at:33;restoring mode on existing directory;extract extrac08;
-35;extrac09.at:22;no need to save dir with unreadable . and ..;extract extrac09;
-36;extrac10.at:27;-C and delayed setting of metadata;extract extrac10;
-37;extrac11.at:23;scarce file descriptors;extract extrac11;
-38;extrac12.at:23;extract dot permissions;extract extrac12;
-39;extrac13.at:24;extract over symlinks;extract extrac13;
-40;extrac14.at:23;extract -C symlink;extract extrac14;
-41;extrac15.at:23;extract parent mkdir failure;extract extrac15;
-42;extrac16.at:24;extract empty directory with -C;extract extrac16;
-43;extrac17.at:19;name matching/transformation ordering;extract extrac17;
-44;label01.at:19;single-volume label;label label01;
-45;label02.at:19;multi-volume label;label label02 multi-label multivolume multiv;
-46;label03.at:25;test-label option;label label03 test-label;
-47;label04.at:25;label with non-create option;label label04;
-48;label05.at:22;label with non-create option;label label05;
-49;backup01.at:33;extracting existing dir with --backup;extract backup backup01;
-50;gzip.at:23;gzip;gzip;
-51;incremental.at:23;incremental;incremental incr00;
-52;incr01.at:27;restore broken symlinks from incremental;incremental incr01;
-53;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02;
-54;listed01.at:26;--listed for individual files;listed incremental listed01;
-55;listed02.at:28;working --listed;listed incremental listed02;
-56;listed03.at:22;incremental dump when the parent directory is unreadable;listed incremental listed03;
-57;listed04.at:24;--listed-incremental and --one-file-system;listed incremental listed04;
-58;incr03.at:28;renamed files in incrementals;incremental incr03 rename;
-59;incr04.at:29;proper icontents initialization;incremental incr04 icontents;
-60;incr05.at:19;incremental dumps with -C;incremental incr05;
-61;incr06.at:19;incremental dumps of nested directories;incremental incr06;
-62;filerem01.at:34;file removed as we read it (ca. 22 seconds);create incremental filechange filerem filerem01;
-63;filerem02.at:24;toplevel file removed (ca. 24 seconds);create incremental filechange filerem filerem02;
-64;rename01.at:24;renamed dirs in incrementals;incremental rename rename01;
-65;rename02.at:24;move between hierarchies;incremental rename rename02;
-66;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename;
-67;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename;
-68;rename05.at:24;renamed subdirectories;incremental rename05 rename;
-69;chtype.at:27;changed file types in incrementals;incremental chtype;
-70;ignfail.at:23;ignfail;ignfail;
-71;link01.at:33;link count gt 2;hardlinks link01;
-72;link02.at:32;preserve hard links with --remove-files;hardlinks link02;
-73;link03.at:24;working -l with --remove-files;hardlinks link03;
-74;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04;
-75;longv7.at:24;long names in V7 archives;longname longv7;
-76;long01.at:28;long file names divisible by block size;longname long512;
-77;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01;
-78;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02;
-79;lustar03.at:21;ustar: splitting long names;longname ustar lustar03;
-80;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01;
-81;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02;
-82;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03;
-83;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental multiv04;
-84;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync;
-85;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06;
-86;multiv07.at:26;volumes split at an extended header;multivolume multiv multiv07 xsplit;
-87;multiv08.at:23;multivolume header creation;multivolume multiv multiv08;
-88;old.at:23;old archives;old;
-89;recurse.at:21;recurse;recurse;
-90;same-order01.at:26;working -C with --same-order;same-order same-order01;
-91;same-order02.at:25;multiple -C options;same-order same-order02;
-92;shortrec.at:25;short records;shortrec;
-93;sparse01.at:21;sparse files;sparse sparse01;
-94;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02;
-95;sparse03.at:21;storing sparse files > 8G;sparse sparse03;
-96;sparse04.at:21;storing long sparse file names;sparse sparse04;
-97;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv;
-98;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00;
-99;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01;
-100;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10;
-101;update.at:28;update unchanged directories;update update00;
-102;update01.at:29;update directories;update update01;
-103;update02.at:26;update changed files;update update02;
-104;verify.at:25;verify;verify;
-105;volume.at:23;volume;volume volcheck;
-106;volsize.at:29;volume header size;volume volsize;
-107;comprec.at:21;compressed format recognition;comprec;
-108;shortfile.at:26;short input files;shortfile shortfile0;
-109;shortupd.at:29;updating short archives;shortfile shortfile1 shortupd;
-110;truncate.at:29;truncate;truncate filechange;
-111;grow.at:24;grow;grow filechange;
-112;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip;
-113;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip;
-114;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03;
-115;sigpipe.at:19;sigpipe handling;sigpipe;
-116;gtarfail.at:21;gtarfail;star gtarfail;
-117;gtarfail2.at:21;gtarfail2;star gtarfail2;
-118;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail;
-119;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g;
-120;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g;
-121;pax-big-10g.at:21;pax-big-10g;star pax-big-10g;
+5;opcomp01.at:21;occurrence compatibility;opcomp opcomp01;
+6;opcomp02.at:21;occurrence compatibility;opcomp opcomp02;
+7;opcomp03.at:21;--verify compatibility;opcomp opcomp03;
+8;opcomp04.at:21;compress option compatibility;opcomp opcomp04;
+9;opcomp05.at:21;--pax-option compatibility;opcomp opcomp05;
+10;opcomp06.at:21;--pax-option compatibility;opcomp opcomp06;
+11;T-mult.at:21;multiple file lists;files-from t-mult;
+12;T-nest.at:21;nested file lists;files-from t-nest;
+13;T-rec.at:21;recursive file lists;files-from t-rec;
+14;T-cd.at:21;-C in file lists;files-from t-cd;
+15;T-empty.at:26;empty entries;files-from empty-line;
+16;T-null.at:21;0-separated file without -0;files-from null t-null;
+17;T-zfile.at:26;empty file;files-from empty-file;
+18;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl;
+19;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile;
+20;verbose.at:26;tar cvf -;stdout verbose;
+21;gzip.at:23;gzip;gzip;
+22;recurse.at:21;recurse;recurse;
+23;shortrec.at:25;short records;shortrec;
+24;same-order01.at:26;working -C with --same-order;same-order same-order01;
+25;same-order02.at:25;multiple -C options;same-order same-order02;
+26;append.at:21;append;append append00;
+27;append01.at:29;appending files with long names;append append01;
+28;append02.at:54;append vs. create;append append02 append-gnu;
+29;append03.at:21;append with name transformation;append append03;
+30;append04.at:29;append with verify;append append04 verify append-verify;
+31;xform-h.at:30;transforming hard links on create;transform xform xform-h;
+32;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume;
+33;exclude.at:23;exclude;exclude;
+34;exclude01.at:19;exclude wildcards;exclude exclude01;
+35;exclude02.at:19;exclude: anchoring;exclude exclude02;
+36;exclude03.at:19;exclude: wildcards match slash;exclude exclude03;
+37;exclude04.at:19;exclude: case insensitive;exclude exclude04;
+38;exclude05.at:21;exclude: lots of excludes;exclude exclude05;
+39;exclude06.at:26;exclude: long files in pax archives;exclude exclude06;
+40;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07;
+41;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08;
+42;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09;
+43;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10;
+44;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11;
+45;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12;
+46;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13;
+47;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14;
+48;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15;
+49;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16;
+50;delete01.at:23;deleting a member after a big one;delete delete01;
+51;delete02.at:23;deleting a member from stdin archive;delete delete02;
+52;delete03.at:21;deleting members with long names;delete delete03;
+53;delete04.at:23;deleting a large last member;delete delete04;
+54;delete05.at:27;deleting non-existing member;delete delete05;
+55;extrac01.at:23;extract over an existing directory;extract extract01;
+56;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink;
+57;extrac03.at:23;extraction loops;extract extract03;
+58;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch;
+59;extrac05.at:30;extracting selected members from pax;extract extract05;
+60;extrac06.at:34;mode of extracted directories;extract extract06 directory mode;
+61;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink;
+62;extrac08.at:33;restoring mode on existing directory;extract extrac08;
+63;extrac09.at:24;no need to save dir with unreadable . and ..;extract extrac09;
+64;extrac10.at:29;-C and delayed setting of metadata;extract extrac10;
+65;extrac11.at:25;scarce file descriptors;extract extrac11;
+66;extrac12.at:25;extract dot permissions;extract extrac12;
+67;extrac13.at:26;extract over symlinks;extract extrac13;
+68;extrac14.at:25;extract -C symlink;extract extrac14;
+69;extrac15.at:25;extract parent mkdir failure;extract extrac15;
+70;extrac16.at:26;extract empty directory with -C;extract extrac16;
+71;extrac17.at:21;name matching/transformation ordering;extract extrac17;
+72;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files;
+73;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files;
+74;backup01.at:33;extracting existing dir with --backup;extract backup backup01;
+75;label01.at:21;single-volume label;label label01;
+76;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv;
+77;label03.at:27;test-label option;label label03 test-label;
+78;label04.at:27;label with non-create option;label label04;
+79;label05.at:24;label with non-create option;label label05;
+80;incremental.at:23;incremental;incremental listed incr00;
+81;incr01.at:27;restore broken symlinks from incremental;incremental incr01;
+82;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02;
+83;listed01.at:26;--listed for individual files;listed incremental listed01;
+84;listed02.at:28;working --listed;listed incremental listed02;
+85;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03;
+86;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04;
+87;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05;
+88;incr03.at:28;renamed files in incrementals;incremental incr03 rename;
+89;incr04.at:29;proper icontents initialization;incremental incr04 icontents;
+90;incr05.at:21;incremental dumps with -C;incremental incr05;
+91;incr06.at:21;incremental dumps of nested directories;incremental incr06;
+92;incr07.at:18;incremental restores with -C;incremental extract incr07;
+93;incr08.at:38;filename normalization;incremental create incr08;
+94;incr09.at:26;incremental with alternating -C;incremental create incr09;
+95;filerem01.at:36;file removed as we read it (ca. 22 seconds);create incremental listed filechange filerem filerem01;
+96;filerem02.at:26;toplevel file removed (ca. 24 seconds);create incremental listed filechange filerem filerem02;
+97;rename01.at:24;renamed dirs in incrementals;incremental rename rename01;
+98;rename02.at:24;move between hierarchies;incremental rename rename02;
+99;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename;
+100;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename;
+101;rename05.at:24;renamed subdirectories;incremental rename05 rename;
+102;chtype.at:27;changed file types in incrementals;incremental listed chtype;
+103;ignfail.at:23;ignfail;ignfail;
+104;link01.at:33;link count gt 2;hardlinks link01;
+105;link02.at:32;preserve hard links with --remove-files;hardlinks link02;
+106;link03.at:24;working -l with --remove-files;hardlinks link03;
+107;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04;
+108;longv7.at:24;long names in V7 archives;longname longv7;
+109;long01.at:28;long file names divisible by block size;longname long512;
+110;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01;
+111;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02;
+112;lustar03.at:21;ustar: splitting long names;longname ustar lustar03;
+113;old.at:23;old archives;old;
+114;time01.at:20;time: tricky time stamps;time time01;
+115;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01;
+116;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02;
+117;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03;
+118;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental listed multiv04;
+119;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync;
+120;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06;
+121;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit;
+122;multiv08.at:25;multivolume header creation;multivolume multiv multiv08;
+123;owner.at:21;--owner and --group;owner;
+124;sparse01.at:21;sparse files;sparse sparse01;
+125;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02;
+126;sparse03.at:21;storing sparse files > 8G;sparse sparse03;
+127;sparse04.at:21;storing long sparse file names;sparse sparse04;
+128;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv;
+129;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00;
+130;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01;
+131;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10;
+132;update.at:28;update unchanged directories;update update00;
+133;update01.at:29;update directories;update update01;
+134;update02.at:26;update changed files;update update02;
+135;verify.at:25;verify;verify;
+136;volume.at:23;volume;volume volcheck;
+137;volsize.at:29;volume header size;volume volsize;
+138;comprec.at:21;compressed format recognition;comprec;
+139;shortfile.at:26;short input files;shortfile shortfile0;
+140;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd;
+141;truncate.at:29;truncate;truncate filechange;
+142;grow.at:24;grow;grow filechange;
+143;sigpipe.at:21;sigpipe handling;sigpipe;
+144;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip;
+145;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip;
+146;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03;
+147;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a;
+148;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b;
+149;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c;
+150;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a;
+151;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b;
+152;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c;
+153;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a;
+154;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b;
+155;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c;
+156;remfiles07a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles07 remfiles07a;
+157;remfiles07b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b;
+158;remfiles07c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles07 remfiles07c;
+159;remfiles08a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles08 remfiles08a;
+160;remfiles08b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b;
+161;remfiles08c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles08 remfiles08c;
+162;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a;
+163;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b;
+164;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c;
+165;xattr01.at:25;xattrs: basic functionality;xattrs xattr01;
+166;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02;
+167;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03;
+168;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04;
+169;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05;
+170;acls01.at:25;acls: basic functionality;xattrs acls acls01;
+171;acls02.at:25;acls: work with -C;xattrs acls acls02;
+172;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01;
+173;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01;
+174;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01;
+175;gtarfail.at:21;gtarfail;star gtarfail;
+176;gtarfail2.at:21;gtarfail2;star gtarfail2;
+177;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail;
+178;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g;
+179;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g;
+180;pax-big-10g.at:21;pax-big-10g;star pax-big-10g;
 "
+# List of the all the test groups.
+at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
 
-# at_func_validate_ranges [NAME...]
-# ---------------------------------
-# Validate and normalize the test group number contained in each
-# variable NAME.  Leading zeroes are treated as decimal.
-at_func_validate_ranges ()
+# at_fn_validate_ranges NAME...
+# -----------------------------
+# Validate and normalize the test group number contained in each variable
+# NAME. Leading zeroes are treated as decimal.
+at_fn_validate_ranges ()
 {
   for at_grp
   do
     eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 121; then
+    if test $at_value -lt 1 || test $at_value -gt 180; then
       $as_echo "invalid test group: $at_value" >&2
       exit 1
     fi
     case $at_value in
       0*) # We want to treat leading 0 as decimal, like expr and test, but
-         # at_func_arith treats it as octal if it uses $(( )).
+         # AS_VAR_ARITH treats it as octal if it uses $(( )).
          # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
          # expr fork, but it is not worth the effort to determine if the
          # shell supports XSI when the user can just avoid leading 0.
@@ -784,8 +808,8 @@ do
   fi
 
   case $at_option in
-  *=*) at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'` ;;
-  *)   at_optarg= ;;
+  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
+  *)    at_optarg= ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -807,6 +831,19 @@ do
        at_clean=:
        ;;
 
+    --color )
+       at_color=always
+       ;;
+    --color=* )
+       case $at_optarg in
+       no | never | none) at_color=never ;;
+       auto | tty | if-tty) at_color=auto ;;
+       always | yes | force) at_color=always ;;
+       *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
+          as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
+       esac
+       ;;
+
     --debug | -d )
        at_debug_p=:
        ;;
@@ -821,29 +858,31 @@ do
        ;;
 
     --trace | -x )
-       at_traceon='set -x'; at_traceoff='set +x'
+       at_traceon='set -x'
+       at_trace_echo=echo
+       at_check_filter_trace=at_fn_filter_trace
        ;;
 
     [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
-       at_func_validate_ranges at_option
-       at_groups="$at_groups$at_option "
+       at_fn_validate_ranges at_option
+       as_fn_append at_groups "$at_option$as_nl"
        ;;
 
     # Ranges
     [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
        at_range_start=`echo $at_option |tr -d X-`
-       at_func_validate_ranges at_range_start
-       at_range=`$as_echo " $at_groups_all " | \
-         sed -e 's/^.* \('$at_range_start' \)/\1/'`
-       at_groups="$at_groups$at_range "
+       at_fn_validate_ranges at_range_start
+       at_range=`$as_echo "$at_groups_all" | \
+         sed -ne '/^'$at_range_start'$/,$p'`
+       as_fn_append at_groups "$at_range$as_nl"
        ;;
 
     -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
        at_range_end=`echo $at_option |tr -d X-`
-       at_func_validate_ranges at_range_end
-       at_range=`$as_echo " $at_groups_all " | \
-         sed -e 's/\( '$at_range_end'\) .*$/\1/'`
-       at_groups="$at_groups$at_range "
+       at_fn_validate_ranges at_range_end
+       at_range=`$as_echo "$at_groups_all" | \
+         sed -ne '1,/^'$at_range_end'$/p'`
+       as_fn_append at_groups "$at_range$as_nl"
        ;;
 
     [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
@@ -859,11 +898,10 @@ do
          at_range_end=$at_range_start
          at_range_start=$at_tmp
        fi
-       at_func_validate_ranges at_range_start at_range_end
-       at_range=`$as_echo " $at_groups_all " | \
-         sed -e 's/^.*\( '$at_range_start' \)/\1/' \
-             -e 's/\( '$at_range_end'\) .*$/\1/'`
-       at_groups="$at_groups$at_range "
+       at_fn_validate_ranges at_range_start at_range_end
+       at_range=`$as_echo "$at_groups_all" | \
+         sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
+       as_fn_append at_groups "$at_range$as_nl"
        ;;
 
     # Directory selection.
@@ -873,6 +911,25 @@ do
     --directory=* )
        at_change_dir=:
        at_dir=$at_optarg
+       if test x- = "x$at_dir" ; then
+         at_dir=./-
+       fi
+       ;;
+
+    # Parallel execution.
+    --jobs | -j )
+       at_jobs=0
+       ;;
+    --jobs=* | -j[0-9]* )
+       if test -n "$at_optarg"; then
+         at_jobs=$at_optarg
+       else
+         at_jobs=`expr X$at_option : 'X-j\(.*\)'`
+       fi
+       case $at_jobs in *[!0-9]*)
+         at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
+         as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+       esac
        ;;
 
     # Keywords.
@@ -899,11 +956,12 @@ do
          at_groups_selected=`$as_echo "$at_groups_selected" |
              grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
        done
-       # Smash the newlines.
-       at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//' |
-         tr "$as_nl" ' '
-       `
-       at_groups="$at_groups$at_groups_selected "
+       # Smash the keywords.
+       at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
+       as_fn_append at_groups "$at_groups_selected$as_nl"
+       ;;
+    --recheck)
+       at_recheck=:
        ;;
 
     *=*)
@@ -911,14 +969,12 @@ do
        # Reject names that are not valid shell variable names.
        case $at_envvar in
          '' | [0-9]* | *[!_$as_cr_alnum]* )
-           { { $as_echo "$as_me:$LINENO: error: invalid variable name: $at_envvar" >&5
-$as_echo "$as_me: error: invalid variable name: $at_envvar" >&2;}
-   { (exit 1); exit 1; }; } ;;
+           as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
        esac
        at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
        # Export now, but save eval for later and for debug scripts.
        export $at_envvar
-       at_debug_args="$at_debug_args $at_envvar='$at_value'"
+       as_fn_append at_debug_args " $at_envvar='$at_value'"
        ;;
 
      *) $as_echo "$as_me: invalid option: $at_option" >&2
@@ -929,19 +985,42 @@ $as_echo "$as_me: error: invalid variable name: $at_envvar" >&2;}
 done
 
 # Verify our last option didn't require an argument
-if test -n "$at_prev"; then
-  { { $as_echo "$as_me:$LINENO: error: \`$at_prev' requires an argument." >&5
-$as_echo "$as_me: error: \`$at_prev' requires an argument." >&2;}
-   { (exit 1); exit 1; }; }
+if test -n "$at_prev"; then :
+  as_fn_error $? "\`$at_prev' requires an argument"
 fi
 
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
 
 # Selected test groups.
-if test -z "$at_groups"; then
+if test -z "$at_groups$at_recheck"; then
   at_groups=$at_groups_all
 else
+  if test -n "$at_recheck" && test -r "$at_suite_log"; then
+    at_oldfails=`sed -n '
+      /^Failed tests:$/,/^Skipped tests:$/{
+       s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^Unexpected passes:$/,/^## Detailed failed tests/{
+       s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^## Detailed failed tests/q
+      ' "$at_suite_log"`
+    as_fn_append at_groups "$at_oldfails$as_nl"
+  fi
   # Sort the tests, removing duplicates.
-  at_groups=`$as_echo "$at_groups" | tr ' ' "$as_nl" | sort -nu`
+  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
+fi
+
+if test x"$at_color" = xalways \
+   || { test x"$at_color" = xauto && test -t 1; }; then
+  at_red=`printf '\033[0;31m'`
+  at_grn=`printf '\033[0;32m'`
+  at_lgn=`printf '\033[1;32m'`
+  at_blu=`printf '\033[1;34m'`
+  at_std=`printf '\033[m'`
+else
+  at_red= at_grn= at_lgn= at_blu= at_std=
 fi
 
 # Help message.
@@ -952,16 +1031,17 @@ Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
 Run all the tests, or the selected TESTS, given by numeric ranges, and
 save a detailed log file.  Upon failure, create debugging scripts.
 
-You should not change environment variables unless explicitly passed
-as command line arguments.  Set \`AUTOTEST_PATH' to select the executables
+Do not change environment variables directly.  Instead, set them via
+command line arguments.  Set \`AUTOTEST_PATH' to select the executables
 to exercise.  Each relative directory is expanded as build and source
-directories relatively to the top level of this distribution.  E.g.,
+directories relative to the top level of this distribution.
+E.g., from within the build directory /tmp/foo-1.0, invoking this:
 
   $ $0 AUTOTEST_PATH=bin
 
-possibly amounts into
+is equivalent to the following, assuming the source directory is /src/foo-1.0:
 
-  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH
+  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
 _ATEOF
 cat <<_ATEOF || at_write_fail=1
 
@@ -976,9 +1056,14 @@ cat <<_ATEOF || at_write_fail=1
 Execution tuning:
   -C, --directory=DIR
                  change to directory DIR before starting
+      --color[=never|auto|always]
+                 enable colored test results on terminal, or always
+  -j, --jobs[=N]
+                 Allow N jobs at once; infinite jobs with no arg (default 1)
   -k, --keywords=KEYWORDS
                  select the tests matching all the comma-separated KEYWORDS
                  multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+      --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
                  default for debugging scripts
@@ -989,6 +1074,7 @@ _ATEOF
 cat <<_ATEOF || at_write_fail=1
 
 Report bugs to <bug-tar@gnu.org>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
 _ATEOF
   exit $at_write_fail
 fi
@@ -996,64 +1082,147 @@ fi
 # List of tests.
 if $at_list_p; then
   cat <<_ATEOF || at_write_fail=1
-GNU tar 1.26 test suite test groups:
+GNU tar 1.27 test suite test groups:
 
  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
 
 _ATEOF
-  # Passing at_groups is tricky.  We cannot use it to form a literal string
-  # or regexp because of the limitation of AIX awk.  And Solaris' awk
-  # doesn't grok more than 99 fields in a record, so we have to use `split'.
-  # at_groups needs to be space-separated for this script to work.
-  case $at_groups in
-    *"$as_nl"* )
-      at_groups=`$as_echo "$at_groups" | tr "$as_nl" ' '` ;;
-  esac
-  $as_echo "$at_groups$as_nl$at_help_all" |
-    awk 'BEGIN { FS = ";" }
-        NR == 1 {
-          for (n = split($ 0, a, " "); n; n--) selected[a[n]] = 1
+  # Pass an empty line as separator between selected groups and help.
+  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
+    awk 'NF == 1 && FS != ";" {
+          selected[$ 1] = 1
           next
         }
-        {
+        /^$/ { FS = ";" }
+        NF > 0 {
           if (selected[$ 1]) {
             printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
-            if ($ 4) printf "      %s\n", $ 4
+            if ($ 4) {
+              lmax = 79
+              indent = "     "
+              line = indent
+              len = length (line)
+              n = split ($ 4, a, " ")
+              for (i = 1; i <= n; i++) {
+                l = length (a[i]) + 1
+                if (i > 1 && len + l > lmax) {
+                  print line
+                  line = indent " " a[i]
+                  len = length (line)
+                } else {
+                  line = line " " a[i]
+                  len += l
+                }
+              }
+              if (n)
+                print line
+            }
           }
         }' || at_write_fail=1
   exit $at_write_fail
 fi
 if $at_version_p; then
-  $as_echo "$as_me (GNU tar 1.26)" &&
-  cat <<\_ACEOF || at_write_fail=1
+  $as_echo "$as_me (GNU tar 1.27)" &&
+  cat <<\_ATEOF || at_write_fail=1
 
-Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This test suite is free software; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
-_ACEOF
+_ATEOF
   exit $at_write_fail
 fi
 
-# Should we print banners?  at_groups is space-separated for entire test,
-# newline-separated if only a subset of the testsuite is run.
-case $at_groups in
-  *' '*' '* | *"$as_nl"*"$as_nl"* )
-      at_print_banners=: ;;
+# Should we print banners?  Yes if more than one test is run.
+case $at_groups in #(
+  *$as_nl* )
+      at_print_banners=: ;; #(
   * ) at_print_banners=false ;;
 esac
-# Text for banner N, set to empty once printed.
+# Text for banner N, set to a single space once printed.
+# Banner 1. testsuite.at:191
+# Category starts at test group 5.
+at_banner_text_1="Option compatibility"
+# Banner 2. testsuite.at:199
+# Category starts at test group 11.
+at_banner_text_2="The -T option"
+# Banner 3. testsuite.at:209
+# Category starts at test group 19.
+at_banner_text_3="Various options"
+# Banner 4. testsuite.at:216
+# Category starts at test group 24.
+at_banner_text_4="The --same-order option"
+# Banner 5. testsuite.at:220
+# Category starts at test group 26.
+at_banner_text_5="Append"
+# Banner 6. testsuite.at:227
+# Category starts at test group 31.
+at_banner_text_6="Transforms"
+# Banner 7. testsuite.at:231
+# Category starts at test group 33.
+at_banner_text_7="Exclude"
+# Banner 8. testsuite.at:250
+# Category starts at test group 50.
+at_banner_text_8="Deletions"
+# Banner 9. testsuite.at:257
+# Category starts at test group 55.
+at_banner_text_9="Extracting"
+# Banner 10. testsuite.at:279
+# Category starts at test group 75.
+at_banner_text_10="Volume label operations"
+# Banner 11. testsuite.at:286
+# Category starts at test group 80.
+at_banner_text_11="Incremental archives"
+# Banner 12. testsuite.at:303
+# Category starts at test group 95.
+at_banner_text_12="Files removed while archiving"
+# Banner 13. testsuite.at:307
+# Category starts at test group 97.
+at_banner_text_13="Renames"
+# Banner 14. testsuite.at:315
+# Category starts at test group 103.
+at_banner_text_14="Ignore failing reads"
+# Banner 15. testsuite.at:318
+# Category starts at test group 104.
+at_banner_text_15="Link handling"
+# Banner 16. testsuite.at:324
+# Category starts at test group 108.
+at_banner_text_16="Specific archive formats"
+# Banner 17. testsuite.at:334
+# Category starts at test group 115.
+at_banner_text_17="Multivolume archives"
+# Banner 18. testsuite.at:344
+# Category starts at test group 123.
+at_banner_text_18="Owner and Groups"
+# Banner 19. testsuite.at:347
+# Category starts at test group 124.
+at_banner_text_19="Sparse files"
+# Banner 20. testsuite.at:357
+# Category starts at test group 132.
+at_banner_text_20="Updates"
+# Banner 21. testsuite.at:362
+# Category starts at test group 135.
+at_banner_text_21="Verifying the archive"
+# Banner 22. testsuite.at:365
+# Category starts at test group 136.
+at_banner_text_22="Volume operations"
+# Banner 23. testsuite.at:369
+# Category starts at test group 138.
+at_banner_text_23=""
+# Banner 24. testsuite.at:378
+# Category starts at test group 144.
+at_banner_text_24="Removing files after archiving"
+# Banner 25. testsuite.at:401
+# Category starts at test group 165.
+at_banner_text_25="Extended attributes"
+# Banner 26. testsuite.at:416
+# Category starts at test group 175.
+at_banner_text_26="Star tests"
 
 # Take any -C into account.
 if $at_change_dir ; then
-  if test x- = "x$at_dir" ; then
-    at_dir=./-
-  fi
   test x != "x$at_dir" && cd "$at_dir" \
-    || { { $as_echo "$as_me:$LINENO: error: unable to change directory" >&5
-$as_echo "$as_me: error: unable to change directory" >&2;}
-   { (exit 1); exit 1; }; }
+    || as_fn_error $? "unable to change directory"
   at_dir=`pwd`
 fi
 
@@ -1061,13 +1230,11 @@ fi
 for at_file in atconfig atlocal
 do
   test -r $at_file || continue
-  . ./$at_file || { { $as_echo "$as_me:$LINENO: error: invalid content: $at_file" >&5
-$as_echo "$as_me: error: invalid content: $at_file" >&2;}
-   { (exit 1); exit 1; }; }
+  . ./$at_file || as_fn_error $? "invalid content: $at_file"
 done
 
 # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
-: ${at_top_build_prefix=$at_top_builddir}
+: "${at_top_build_prefix=$at_top_builddir}"
 
 # Perform any assignments requested during argument parsing.
 eval "$at_debug_args"
@@ -1078,8 +1245,7 @@ if test -n "$at_top_srcdir"; then
   builddir=../..
   for at_dir_var in srcdir top_srcdir top_build_prefix
   do
-    at_val=`eval 'as_val=${'at_$at_dir_var'}
-                $as_echo "$as_val"'`
+    eval at_val=\$at_$at_dir_var
     case $at_val in
       [\\/$]* | ?:[\\/]* ) at_prefix= ;;
       *) at_prefix=../../ ;;
@@ -1088,9 +1254,9 @@ if test -n "$at_top_srcdir"; then
   done
 fi
 
-## ------------------- ##
-## Directory structure ##
-## ------------------- ##
+## -------------------- ##
+## Directory structure. ##
+## -------------------- ##
 
 # This is the set of directories and files used by this script
 # (non-literals are capitalized):
@@ -1121,12 +1287,14 @@ fi
 # The directory the whole suite works in.
 # Should be absolute to let the user `cd' at will.
 at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite.
+# The file containing the suite ($at_dir might have changed since earlier).
 at_suite_log=$at_dir/$as_me.log
 # The directory containing helper files per test group.
 at_helper_dir=$at_suite_dir/at-groups
 # Stop file: if it exists, do not start new jobs.
 at_stop_file=$at_suite_dir/at-stop
+# The fifo used for the job dispatcher.
+at_job_fifo=$at_suite_dir/at-job-fifo
 
 if $at_clean; then
   test -d "$at_suite_dir" &&
@@ -1150,23 +1318,23 @@ for as_dir in $AUTOTEST_PATH $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -n "$at_path" && at_path=$at_path$PATH_SEPARATOR
+    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
 case $as_dir in
   [\\/]* | ?:[\\/]* )
-    at_path=$at_path$as_dir
+    as_fn_append at_path "$as_dir"
     ;;
   * )
     if test -z "$at_top_build_prefix"; then
       # Stand-alone test suite.
-      at_path=$at_path$as_dir
+      as_fn_append at_path "$as_dir"
     else
       # Embedded test suite.
-      at_path=$at_path$at_top_build_prefix$as_dir$PATH_SEPARATOR
-      at_path=$at_path$at_top_srcdir/$as_dir
+      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
+      as_fn_append at_path "$at_top_srcdir/$as_dir"
     fi
     ;;
 esac
-done
+  done
 IFS=$as_save_IFS
 
 
@@ -1180,7 +1348,7 @@ for as_dir in $at_path
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -d "$as_dir" || continue
+    test -d "$as_dir" || continue
 case $as_dir in
   [\\/]* | ?:[\\/]* ) ;;
   * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
@@ -1188,15 +1356,18 @@ esac
 case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
   *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
   $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
-  *) at_new_path=$at_new_path$PATH_SEPARATOR$as_dir ;;
+  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
 esac
-done
+  done
 IFS=$as_save_IFS
 
 PATH=$at_new_path
 export PATH
 
 # Setting up the FDs.
+
+
+
 # 5 is the log file.  Not to be overwritten if `-d'.
 if $at_debug_p; then
   at_suite_log=/dev/null
@@ -1206,43 +1377,28 @@ fi
 exec 5>>"$at_suite_log"
 
 # Banners and logs.
-cat <<\_ASBOX
-## ------------------------ ##
-## GNU tar 1.26 test suite. ##
-## ------------------------ ##
-_ASBOX
+$as_echo "## ------------------------ ##
+## GNU tar 1.27 test suite. ##
+## ------------------------ ##"
 {
-  cat <<\_ASBOX
-## ------------------------ ##
-## GNU tar 1.26 test suite. ##
-## ------------------------ ##
-_ASBOX
+  $as_echo "## ------------------------ ##
+## GNU tar 1.27 test suite. ##
+## ------------------------ ##"
   echo
 
   $as_echo "$as_me: command line was:"
   $as_echo "  \$ $0 $at_cli_args"
   echo
 
-  # Try to find a few ChangeLogs in case it might help determining the
-  # exact version.  Use the relative dir: if the top dir is a symlink,
-  # find will not follow it (and options to follow the links are not
-  # portable), which would result in no output here.  Prune directories
-  # matching the package tarname, since they tend to be leftovers from
-  # `make dist' or `make distcheck' and contain redundant or stale logs.
-  if test -n "$at_top_srcdir"; then
-    cat <<\_ASBOX
-## ----------- ##
-## ChangeLogs. ##
-## ----------- ##
-_ASBOX
+  # If ChangeLog exists, list a few lines in case it might help determining
+  # the exact version.
+  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
+    $as_echo "## ---------- ##
+## ChangeLog. ##
+## ---------- ##"
+    echo
+    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
     echo
-    for at_file in `find "$at_top_srcdir" -name "tar-*" -prune -o -name ChangeLog -print`
-    do
-      $as_echo "$as_me: $at_file:"
-      sed 's/^/| /;10q' $at_file
-      echo
-    done
-
   fi
 
   {
@@ -1275,8 +1431,8 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
 }
@@ -1293,53 +1449,80 @@ IFS=$as_save_IFS
 } >&5
 
 
-## --------------- ##
-## Shell functions ##
-## --------------- ##
+## ------------------------- ##
+## Autotest shell functions. ##
+## ------------------------- ##
 
-# at_func_banner NUMBER
-# ---------------------
-# Output banner NUMBER, provided the testsuite is running multiple groups
-# and this particular banner has not yet been printed.
-at_func_banner ()
+# at_fn_banner NUMBER
+# -------------------
+# Output banner NUMBER, provided the testsuite is running multiple groups and
+# this particular banner has not yet been printed.
+at_fn_banner ()
 {
   $at_print_banners || return 0
   eval at_banner_text=\$at_banner_text_$1
-  test "x$at_banner_text" = x && return 0
-  eval at_banner_text_$1=
-  $as_echo "$as_nl$at_banner_text$as_nl"
-} # at_func_banner
+  test "x$at_banner_text" = "x " && return 0
+  eval "at_banner_text_$1=\" \""
+  if test -z "$at_banner_text"; then
+    $at_first || echo
+  else
+    $as_echo "$as_nl$at_banner_text$as_nl"
+  fi
+} # at_fn_banner
 
-# at_func_check_newline COMMAND
-# -----------------------------
-# Test if COMMAND includes a newline and, if so, print a message and return
-# exit code 1
-at_func_check_newline ()
+# at_fn_check_prepare_notrace REASON LINE
+# ---------------------------------------
+# Perform AT_CHECK preparations for the command at LINE for an untraceable
+# command; REASON is the reason for disabling tracing.
+at_fn_check_prepare_notrace ()
 {
-  case "$1" in
- *'
-'*) echo 'Not enabling shell tracing (command contains an embedded newline)'
-    return 1 ;;
- *) return 0 ;;
-  esac
+  $at_trace_echo "Not enabling shell tracing (command contains $1)"
+  $as_echo "$2" >"$at_check_line_file"
+  at_check_trace=: at_check_filter=:
+  : >"$at_stdout"; : >"$at_stderr"
 }
 
-# at_func_filter_trace EXIT-CODE
+# at_fn_check_prepare_trace LINE
 # ------------------------------
-# Split the contents of file "$at_stder1" into the "set -x" trace (on stderr)
-# and the other lines (on file "$at_stderr").  Return the exit code EXIT-CODE.
-at_func_filter_trace ()
+# Perform AT_CHECK preparations for the command at LINE for a traceable
+# command.
+at_fn_check_prepare_trace ()
+{
+  $as_echo "$1" >"$at_check_line_file"
+  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_dynamic COMMAND LINE
+# ----------------------------------------
+# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
+# preparation function.
+at_fn_check_prepare_dynamic ()
+{
+  case $1 in
+    *$as_nl*)
+      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
+    *)
+      at_fn_check_prepare_trace "$2" ;;
+  esac
+}
+
+# at_fn_filter_trace
+# ------------------
+# Remove the lines in the file "$at_stderr" generated by "set -x" and print
+# them to stderr.
+at_fn_filter_trace ()
 {
+  mv "$at_stderr" "$at_stder1"
   grep '^ *+' "$at_stder1" >&2
   grep -v '^ *+' "$at_stder1" >"$at_stderr"
-  return $1
 }
 
-# at_func_log_failure FILE-LIST
-# -----------------------------
+# at_fn_log_failure FILE-LIST
+# ---------------------------
 # Copy the files in the list on stdout with a "> " prefix, and exit the shell
 # with a failure exit code.
-at_func_log_failure ()
+at_fn_log_failure ()
 {
   for file
     do $as_echo "$file:"; sed 's/^/> /' "$file"; done
@@ -1347,56 +1530,62 @@ at_func_log_failure ()
   exit 1
 }
 
-# at_func_check_skip EXIT-CODE
-# ----------------------------
-# Check whether EXIT-CODE is the special exit code 77, and if so exit the shell
-# with that same exit code.
-at_func_check_skip ()
+# at_fn_check_skip EXIT-CODE LINE
+# -------------------------------
+# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
+# the test group subshell with that same exit code. Use LINE in any report
+# about test failure.
+at_fn_check_skip ()
 {
   case $1 in
+    99) echo 99 > "$at_status_file"; at_failed=:
+       $as_echo "$2: hard failure"; exit 99;;
     77) echo 77 > "$at_status_file"; exit 77;;
   esac
 }
 
-# at_func_check_status EXPECTED EXIT-CODE LINE
-# --------------------------------------------
-# Check whether EXIT-CODE is the expected exit code, and if so do nothing.
-# Otherwise, if it is 77 exit the shell with that same exit code; if it is
-# anything else print an error message and fail the test.
-at_func_check_status ()
+# at_fn_check_status EXPECTED EXIT-CODE LINE
+# ------------------------------------------
+# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
+# Otherwise, if it is 77 or 99, exit the test group subshell with that same
+# exit code; if it is anything else print an error message referring to LINE,
+# and fail the test.
+at_fn_check_status ()
 {
   case $2 in
     $1 ) ;;
     77) echo 77 > "$at_status_file"; exit 77;;
+    99) echo 99 > "$at_status_file"; at_failed=:
+       $as_echo "$3: hard failure"; exit 99;;
     *) $as_echo "$3: exit code was $2, expected $1"
       at_failed=:;;
   esac
 }
 
-# at_func_diff_devnull FILE
-# -------------------------
-# Emit a diff between /dev/null and FILE.  Uses "test -s" to avoid useless
-# diff invocations.
-at_func_diff_devnull ()
+# at_fn_diff_devnull FILE
+# -----------------------
+# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
+# invocations.
+at_fn_diff_devnull ()
 {
   test -s "$1" || return 0
   $at_diff "$at_devnull" "$1"
 }
 
-# at_func_test NUMBER
-# -------------------
+# at_fn_test NUMBER
+# -----------------
 # Parse out test NUMBER from the tail of this file.
-at_func_test ()
+at_fn_test ()
 {
   eval at_sed=\$at_sed$1
   sed "$at_sed" "$at_myself" > "$at_test_source"
 }
 
-# at_func_create_debugging_script
-# -------------------------------
+# at_fn_create_debugging_script
+# -----------------------------
 # Create the debugging script $at_group_dir/run which will reproduce the
 # current test group.
-at_func_create_debugging_script ()
+at_fn_create_debugging_script ()
 {
   {
     echo "#! /bin/sh" &&
@@ -1408,34 +1597,13 @@ at_func_create_debugging_script ()
   chmod +x "$at_group_dir/run"
 }
 
-# at_func_arith
-# -------------
-# Arithmetic evaluation, avoids expr if the shell is sane.  The
-# interpretation of leading zeroes is unspecified.
-#
-# subshell and eval are needed to keep Solaris sh from bailing out:
-if ( eval 'test $(( 1 + 1 )) = 2' ) 2>/dev/null; then
-  # With "$@", bash does not split positional parameters:
-  eval 'at_func_arith ()
-  {
-    at_func_arith_result=$(( $* ))
-  }'
-else
-  at_func_arith ()
-  {
-    at_func_arith_result=`expr "$@"`
-  }
-fi
-
-## ---------------------- ##
-## End of shell functions ##
-## ---------------------- ##
+## -------------------------------- ##
+## End of autotest shell functions. ##
+## -------------------------------- ##
 {
-  cat <<\_ASBOX
-## ---------------- ##
+  $as_echo "## ---------------- ##
 ## Tested programs. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
   echo
 } >&5
 
@@ -1443,34 +1611,35 @@ _ASBOX
 for at_program in : $at_tested
 do
   test "$at_program" = : && continue
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $at_program in
+    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
+    * )
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -f "$as_dir/$at_program" && break
-done
+    test -f "$as_dir/$at_program" && break
+  done
 IFS=$as_save_IFS
 
-  if test -f "$as_dir/$at_program"; then
+    at_program_=$as_dir/$at_program ;;
+  esac
+  if test -f "$at_program_"; then
     {
-      $as_echo "$at_srcdir/testsuite.at:112: $as_dir/$at_program --version"
-      "$as_dir/$at_program" --version </dev/null
+      $as_echo "$at_srcdir/testsuite.at:180: $at_program_ --version"
+      "$at_program_" --version </dev/null
       echo
     } >&5 2>&1
   else
-    { { $as_echo "$as_me:$LINENO: error: cannot find $at_program" >&5
-$as_echo "$as_me: error: cannot find $at_program" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error $? "cannot find $at_program" "$LINENO" 5
   fi
 done
 
 {
-  cat <<\_ASBOX
-## ------------------ ##
+  $as_echo "## ------------------ ##
 ## Running the tests. ##
-## ------------------ ##
-_ASBOX
+## ------------------ ##"
 } >&5
 
 at_start_date=`date`
@@ -1478,11 +1647,8 @@ at_start_time=`date +%s 2>/dev/null`
 $as_echo "$as_me: starting at: $at_start_date" >&5
 
 # Create the master directory if it doesn't already exist.
-test -d "$at_suite_dir" ||
-  mkdir "$at_suite_dir" ||
-  { { $as_echo "$as_me:$LINENO: error: cannot create '$at_suite_dir'" >&5
-$as_echo "$as_me: error: cannot create '$at_suite_dir'" >&2;}
-   { (exit 1); exit 1; }; }
+as_dir="$at_suite_dir"; as_fn_mkdir_p ||
+  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
 
 # Can we diff with `/dev/null'?  DU 5.0 refuses.
 if diff /dev/null /dev/null >/dev/null 2>&1; then
@@ -1516,28 +1682,40 @@ BEGIN { FS="\a" }
   if (test == "'"$at_group"'") exit
 }' "$at_myself" > "$at_suite_dir/at-source-lines" &&
 . "$at_suite_dir/at-source-lines" ||
-  { { $as_echo "$as_me:$LINENO: error: cannot create test line number cache" >&5
-$as_echo "$as_me: error: cannot create test line number cache" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
 rm -f "$at_suite_dir/at-source-lines"
 
+# Set number of jobs for `-j'; avoid more jobs than test groups.
+set X $at_groups; shift; at_max_jobs=$#
+if test $at_max_jobs -eq 0; then
+  at_jobs=1
+fi
+if test $at_jobs -ne 1 &&
+   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
+  at_jobs=$at_max_jobs
+fi
+
+# If parallel mode, don't output banners, don't split summary lines.
+if test $at_jobs -ne 1; then
+  at_print_banners=false
+  at_quiet=:
+fi
+
 # Set up helper dirs.
 rm -rf "$at_helper_dir" &&
 mkdir "$at_helper_dir" &&
 cd "$at_helper_dir" &&
 { test -z "$at_groups" || mkdir $at_groups; } ||
-{ { $as_echo "$as_me:$LINENO: error: testsuite directory setup failed" >&5
-$as_echo "$as_me: error: testsuite directory setup failed" >&2;}
-   { (exit 1); exit 1; }; }
+as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
 
 # Functions for running a test group.  We leave the actual
 # test group execution outside of a shell function in order
 # to avoid hitting zsh 4.x exit status bugs.
 
-# at_func_group_prepare
-# ---------------------
-# Prepare running a test group
-at_func_group_prepare ()
+# at_fn_group_prepare
+# -------------------
+# Prepare for running a test group.
+at_fn_group_prepare ()
 {
   # The directory for additional per-group helper files.
   at_job_dir=$at_helper_dir/$at_group
@@ -1571,56 +1749,20 @@ at_func_group_prepare ()
 
 
   # Create a fresh directory for the next test group, and enter.
+  # If one already exists, the user may have invoked ./run from
+  # within that directory; we remove the contents, but not the
+  # directory itself, so that we aren't pulling the rug out from
+  # under the shell's notion of the current directory.
   at_group_dir=$at_suite_dir/$at_group_normalized
   at_group_log=$at_group_dir/$as_me.log
   if test -d "$at_group_dir"; then
-    find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-    rm -fr "$at_group_dir" ||
-    { $as_echo "$as_me:$LINENO: WARNING: test directory for $at_group_normalized could not be cleaned." >&5
-$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned." >&2;}
-  fi
+  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
+  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
+fi ||
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
   # Be tolerant if the above `rm' was not able to remove the directory.
-  { as_dir="$at_group_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$at_group_dir"; as_fn_mkdir_p
 
   echo 0 > "$at_status_file"
 
@@ -1633,9 +1775,29 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
   fi
 }
 
-# at_func_group_postprocess
-# -------------------------
-at_func_group_postprocess ()
+# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
+# -------------------------------------------------
+# Declare the test group ORDINAL, located at LINE with group description DESC,
+# and residing under BANNER. Use PAD to align the status column.
+at_fn_group_banner ()
+{
+  at_setup_line="$2"
+  test -n "$5" && at_fn_banner $5
+  at_desc="$3"
+  case $1 in
+    [0-9])      at_desc_line="  $1: ";;
+    [0-9][0-9]) at_desc_line=" $1: " ;;
+    *)          at_desc_line="$1: "  ;;
+  esac
+  as_fn_append at_desc_line "$3$4"
+  $at_quiet $as_echo_n "$at_desc_line"
+  echo "#                             -*- compilation -*-" >> "$at_group_log"
+}
+
+# at_fn_group_postprocess
+# -----------------------
+# Perform cleanup after running a test group.
+at_fn_group_postprocess ()
 {
   # Be sure to come back to the suite directory, in particular
   # since below we might `rm' the group directory we are in currently.
@@ -1648,6 +1810,7 @@ at_func_group_postprocess ()
       report this failure to <bug-tar@gnu.org>.
 _ATEOF
     $as_echo "$at_setup_line" >"$at_check_line_file"
+    at_status=99
   fi
   $at_verbose $as_echo_n "$at_group. $at_setup_line: "
   $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
@@ -1656,31 +1819,41 @@ _ATEOF
        at_msg="UNEXPECTED PASS"
        at_res=xpass
        at_errexit=$at_errexit_p
+       at_color=$at_red
        ;;
     no:0)
        at_msg="ok"
        at_res=pass
        at_errexit=false
+       at_color=$at_grn
        ;;
     *:77)
        at_msg='skipped ('`cat "$at_check_line_file"`')'
        at_res=skip
        at_errexit=false
+       at_color=$at_blu
+       ;;
+    no:* | *:99)
+       at_msg='FAILED ('`cat "$at_check_line_file"`')'
+       at_res=fail
+       at_errexit=$at_errexit_p
+       at_color=$at_red
        ;;
     yes:*)
        at_msg='expected failure ('`cat "$at_check_line_file"`')'
        at_res=xfail
        at_errexit=false
-       ;;
-    no:*)
-       at_msg='FAILED ('`cat "$at_check_line_file"`')'
-       at_res=fail
-       at_errexit=$at_errexit_p
+       at_color=$at_lgn
        ;;
   esac
   echo "$at_res" > "$at_job_dir/$at_res"
-  # Make sure there is a separator even with long titles.
-  $as_echo " $at_msg"
+  # In parallel mode, output the summary line only afterwards.
+  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+    $as_echo "$at_desc_line $at_color$at_msg$at_std"
+  else
+    # Make sure there is a separator even with long titles.
+    $as_echo " $at_color$at_msg$at_std"
+  fi
   at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
   case $at_status in
     0|77)
@@ -1695,9 +1868,13 @@ _ATEOF
       $as_echo "$at_log_msg" >> "$at_group_log"
       $as_echo "$at_log_msg" >&5
 
-      # Cleanup the group directory, unless the user wants the files.
-      if $at_debug_p; then
-       at_func_create_debugging_script
+      # Cleanup the group directory, unless the user wants the files
+      # or the success was unexpected.
+      if $at_debug_p || test $at_res = xpass; then
+       at_fn_create_debugging_script
+       if test $at_res = xpass && $at_errexit; then
+         echo stop > "$at_stop_file"
+       fi
       else
        if test -d "$at_group_dir"; then
          find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
@@ -1714,7 +1891,7 @@ _ATEOF
 
       # Upon failure, keep the group directory for autopsy, and create
       # the debugging script.  With -e, do not start any further tests.
-      at_func_create_debugging_script
+      at_fn_create_debugging_script
       if $at_errexit; then
        echo stop > "$at_stop_file"
       fi
@@ -1727,22 +1904,134 @@ _ATEOF
 ## Driver loop. ##
 ## ------------ ##
 
+
+if (set -m && set +m && set +b) >/dev/null 2>&1; then
+  set +b
+  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
+else
+  at_job_control_on=: at_job_control_off=: at_job_group=
+fi
+
+for at_signal in 1 2 15; do
+  trap 'set +x; set +e
+       $at_job_control_off
+       at_signal='"$at_signal"'
+       echo stop > "$at_stop_file"
+       trap "" $at_signal
+       at_pgids=
+       for at_pgid in `jobs -p 2>/dev/null`; do
+         at_pgids="$at_pgids $at_job_group$at_pgid"
+       done
+       test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
+       wait
+       if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
+         echo >&2
+       fi
+       at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
+       set x $at_signame
+       test 0 -gt 2 && at_signame=$at_signal
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
+       as_fn_arith 128 + $at_signal && exit_status=$as_val
+       as_fn_exit $exit_status' $at_signal
+done
+
 rm -f "$at_stop_file"
 at_first=:
 
-for at_group in $at_groups; do
-  at_func_group_prepare
-  if cd "$at_group_dir" &&
-     at_func_test $at_group &&
-     . "$at_test_source"; then :; else
-    { $as_echo "$as_me:$LINENO: WARNING: unable to parse test group: $at_group" >&5
+if test $at_jobs -ne 1 &&
+     rm -f "$at_job_fifo" &&
+     test -n "$at_job_group" &&
+     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
+then
+  # FIFO job dispatcher.
+
+  trap 'at_pids=
+       for at_pid in `jobs -p`; do
+         at_pids="$at_pids $at_job_group$at_pid"
+       done
+       if test -n "$at_pids"; then
+         at_sig=TSTP
+         test "${TMOUT+set}" = set && at_sig=STOP
+         kill -$at_sig $at_pids 2>/dev/null
+       fi
+       kill -STOP $$
+       test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
+
+  echo
+  # Turn jobs into a list of numbers, starting from 1.
+  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
+
+  set X $at_joblist
+  shift
+  for at_group in $at_groups; do
+    $at_job_control_on 2>/dev/null
+    (
+      # Start one test group.
+      $at_job_control_off
+      if $at_first; then
+       exec 7>"$at_job_fifo"
+      else
+       exec 6<&-
+      fi
+      trap 'set +x; set +e
+           trap "" PIPE
+           echo stop > "$at_stop_file"
+           echo >&7
+           as_fn_exit 141' PIPE
+      at_fn_group_prepare
+      if cd "$at_group_dir" &&
+        at_fn_test $at_group &&
+        . "$at_test_source"
+      then :; else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
 $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
-    at_failed=:
+       at_failed=:
+      fi
+      at_fn_group_postprocess
+      echo >&7
+    ) &
+    $at_job_control_off
+    if $at_first; then
+      at_first=false
+      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
+    fi
+    shift # Consume one token.
+    if test $# -gt 0; then :; else
+      read at_token <&6 || break
+      set x $*
+    fi
+    test -f "$at_stop_file" && break
+  done
+  exec 7>&-
+  # Read back the remaining ($at_jobs - 1) tokens.
+  set X $at_joblist
+  shift
+  if test $# -gt 0; then
+    shift
+    for at_job
+    do
+      read at_token
+    done <&6
   fi
-  at_func_group_postprocess
-  test -f "$at_stop_file" && break
-  at_first=false
-done
+  exec 6<&-
+  wait
+else
+  # Run serially, avoid forks and other potential surprises.
+  for at_group in $at_groups; do
+    at_fn_group_prepare
+    if cd "$at_group_dir" &&
+       at_fn_test $at_group &&
+       . "$at_test_source"; then :; else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+      at_failed=:
+    fi
+    at_fn_group_postprocess
+    test -f "$at_stop_file" && break
+    at_first=false
+  done
+fi
 
 # Wrap up the test suite with summary statistics.
 cd "$at_helper_dir"
@@ -1763,12 +2052,9 @@ set X $at_xfail_list; shift; at_xfail_count=$#
 set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
 set X $at_skip_list; shift; at_skip_count=$#
 
-at_func_arith $at_group_count - $at_skip_count
-at_run_count=$at_func_arith_result
-at_func_arith $at_xpass_count + $at_fail_count
-at_unexpected_count=$at_func_arith_result
-at_func_arith $at_xfail_count + $at_fail_count
-at_total_fail_count=$at_func_arith_result
+as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
+as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
+as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
 
 # Back to the top directory.
 cd "$at_dir"
@@ -1780,35 +2066,26 @@ at_stop_time=`date +%s 2>/dev/null`
 $as_echo "$as_me: ending at: $at_stop_date" >&5
 case $at_start_time,$at_stop_time in
   [0-9]*,[0-9]*)
-    at_func_arith $at_stop_time - $at_start_time
-    at_duration_s=$at_func_arith_result
-    at_func_arith $at_duration_s / 60
-    at_duration_m=$at_func_arith_result
-    at_func_arith $at_duration_m / 60
-    at_duration_h=$at_func_arith_result
-    at_func_arith $at_duration_s % 60
-    at_duration_s=$at_func_arith_result
-    at_func_arith $at_duration_m % 60
-    at_duration_m=$at_func_arith_result
+    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
+    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
+    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
+    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
+    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
     at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
     $as_echo "$as_me: test suite duration: $at_duration" >&5
     ;;
 esac
 
 echo
-cat <<\_ASBOX
-## ------------- ##
+$as_echo "## ------------- ##
 ## Test results. ##
-## ------------- ##
-_ASBOX
+## ------------- ##"
 echo
 {
   echo
-  cat <<\_ASBOX
-## ------------- ##
+  $as_echo "## ------------- ##
 ## Test results. ##
-## ------------- ##
-_ASBOX
+## ------------- ##"
   echo
 } >&5
 
@@ -1826,12 +2103,14 @@ if $at_errexit_p && test $at_unexpected_count != 0; then
     at_result="$at_result $at_were run, one failed"
   fi
   at_result="$at_result unexpectedly and inhibited subsequent tests."
+  at_color=$at_red
 else
   # Don't you just love exponential explosion of the number of cases?
+  at_color=$at_red
   case $at_xpass_count:$at_fail_count:$at_xfail_count in
     # So far, so good.
-    0:0:0) at_result="$at_result $at_were successful." ;;
-    0:0:*) at_result="$at_result behaved as expected." ;;
+    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
+    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
 
     # Some unexpected failures
     0:*:0) at_result="$at_result $at_were run,
@@ -1877,18 +2156,16 @@ $at_skip_count tests were skipped." ;;
 esac
 
 if test $at_unexpected_count = 0; then
-  echo "$at_result"
+  echo "$at_color$at_result$at_std"
   echo "$at_result" >&5
 else
-  echo "ERROR: $at_result" >&2
+  echo "${at_color}ERROR: $at_result$at_std" >&2
   echo "ERROR: $at_result" >&5
   {
     echo
-    cat <<\_ASBOX
-## ------------------------ ##
+    $as_echo "## ------------------------ ##
 ## Summary of the failures. ##
-## ------------------------ ##
-_ASBOX
+## ------------------------ ##"
 
     # Summary of failed and skipped tests.
     if test $at_fail_count != 0; then
@@ -1907,11 +2184,9 @@ _ASBOX
       echo
     fi
     if test $at_fail_count != 0; then
-      cat <<\_ASBOX
-## ---------------------- ##
+      $as_echo "## ---------------------- ##
 ## Detailed failed tests. ##
-## ---------------------- ##
-_ASBOX
+## ---------------------- ##"
       echo
       for at_group in $at_fail_list
       do
@@ -1943,19 +2218,21 @@ _ASBOX
 _ASBOX
 
   echo
-  $as_echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help:
+  if $at_debug_p; then
+    at_msg='per-test log files'
+  else
+    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+  fi
+  $as_echo "Please send $at_msg and all information you think might help:
 
    To: <bug-tar@gnu.org>
-   Subject: [GNU tar 1.26] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+   Subject: [GNU tar 1.27] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+
+You may investigate any problem if you feel able to do so, in which
+case the test suite provides a good starting point.  Its output may
+be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
 "
-  if test $at_debug_p = false; then
-    echo
-    echo 'You may investigate any problem if you feel able to do so, in which'
-    echo 'case the test suite provides a good starting point.  Its output may'
-    $as_echo "be found below \`${at_testdir+${at_testdir}/}$as_me.dir'."
-    echo
-  fi
-    exit 1
+  exit 1
 fi
 
 exit 0
@@ -1964,35 +2241,27 @@ exit 0
 ## Actual tests. ##
 ## ------------- ##
 #AT_START_1
-# 1. version.at:19: tar version
-at_setup_line='version.at:19'
-at_desc="tar version"
-$at_quiet $as_echo_n "  1: $at_desc                                    "
+at_fn_group_banner 1 'version.at:19' \
+  "tar version" "                                    "
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "1. version.at:19: testing ..."
+  $as_echo "1. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/version.at:21: tar --version | sed 1q"
-echo version.at:21 >"$at_check_line_file"
-
-if test -n "$at_traceon"; then
-  ( $at_traceon; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.26
+at_fn_check_prepare_notrace 'a shell pipeline' "version.at:21"
+( $at_check_trace; tar --version | sed 1q
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.27
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/version.at:21"
-if $at_failed; then
+at_fn_check_status 0 $at_status "$at_srcdir/version.at:21"
+if $at_failed; then :
   cat >$XFAILFILE <<'_EOT'
 
 ==============================================================
@@ -2003,26 +2272,22 @@ _EOT
 else
   rm -f $XFAILFILE
 fi
-
-$at_failed && at_func_log_failure
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
 #AT_STOP_1
 #AT_START_2
-# 2. pipe.at:30: decompressing from stdin
-at_setup_line='pipe.at:30'
-at_desc="decompressing from stdin"
-$at_quiet $as_echo_n "  2: $at_desc                       "
+at_fn_group_banner 2 'pipe.at:29' \
+  "decompressing from stdin" "                       "
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "2. pipe.at:30: testing ..."
+  $as_echo "2. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -2030,8 +2295,8 @@ echo "#                             -*- compilation -*-" >> "$at_group_log"
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/pipe.at:34:
+  { set +x
+$as_echo "$at_srcdir/pipe.at:33:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -2041,7 +2306,7 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 mkdir directory
@@ -2054,36 +2319,8 @@ echo \"separator\"
 cmp orig/file1 directory/file1
 echo \"separator\"
 cmp orig/file2 directory/file2)"
-echo pipe.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 13 --file directory/file2
-tar cf archive directory
-mv directory orig
-cat archive | tar xfv - --warning=no-timestamp | sort
-echo "separator"
-cmp orig/file1 directory/file1
-echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -2105,11 +2342,11 @@ cat archive | tar xfv - --warning=no-timestamp | sort
 echo "separator"
 cmp orig/file1 directory/file1
 echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+cmp orig/file2 directory/file2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory/
 directory/file1
 directory/file2
@@ -2117,13 +2354,12 @@ separator
 separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/pipe.at:34:
+              { set +x
+$as_echo "$at_srcdir/pipe.at:33:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -2133,7 +2369,7 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 mkdir directory
@@ -2146,36 +2382,8 @@ echo \"separator\"
 cmp orig/file1 directory/file1
 echo \"separator\"
 cmp orig/file2 directory/file2)"
-echo pipe.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 13 --file directory/file2
-tar cf archive directory
-mv directory orig
-cat archive | tar xfv - --warning=no-timestamp | sort
-echo "separator"
-cmp orig/file1 directory/file1
-echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -2197,11 +2405,11 @@ cat archive | tar xfv - --warning=no-timestamp | sort
 echo "separator"
 cmp orig/file1 directory/file1
 echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+cmp orig/file2 directory/file2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory/
 directory/file1
 directory/file2
@@ -2209,13 +2417,12 @@ separator
 separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/pipe.at:34:
+              { set +x
+$as_echo "$at_srcdir/pipe.at:33:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -2225,7 +2432,7 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 mkdir directory
@@ -2238,11 +2445,8 @@ echo \"separator\"
 cmp orig/file1 directory/file1
 echo \"separator\"
 cmp orig/file2 directory/file2)"
-echo pipe.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -2264,36 +2468,11 @@ cat archive | tar xfv - --warning=no-timestamp | sort
 echo "separator"
 cmp orig/file1 directory/file1
 echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 13 --file directory/file2
-tar cf archive directory
-mv directory orig
-cat archive | tar xfv - --warning=no-timestamp | sort
-echo "separator"
-cmp orig/file1 directory/file1
-echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+cmp orig/file2 directory/file2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory/
 directory/file1
 directory/file2
@@ -2301,13 +2480,12 @@ separator
 separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/pipe.at:34:
+              { set +x
+$as_echo "$at_srcdir/pipe.at:33:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -2317,7 +2495,7 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 mkdir directory
@@ -2330,36 +2508,8 @@ echo \"separator\"
 cmp orig/file1 directory/file1
 echo \"separator\"
 cmp orig/file2 directory/file2)"
-echo pipe.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 13 --file directory/file2
-tar cf archive directory
-mv directory orig
-cat archive | tar xfv - --warning=no-timestamp | sort
-echo "separator"
-cmp orig/file1 directory/file1
-echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -2381,11 +2531,11 @@ cat archive | tar xfv - --warning=no-timestamp | sort
 echo "separator"
 cmp orig/file1 directory/file1
 echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+cmp orig/file2 directory/file2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory/
 directory/file1
 directory/file2
@@ -2393,13 +2543,12 @@ separator
 separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/pipe.at:34:
+              { set +x
+$as_echo "$at_srcdir/pipe.at:33:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -2409,7 +2558,7 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 mkdir directory
@@ -2422,36 +2571,8 @@ echo \"separator\"
 cmp orig/file1 directory/file1
 echo \"separator\"
 cmp orig/file2 directory/file2)"
-echo pipe.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 13 --file directory/file2
-tar cf archive directory
-mv directory orig
-cat archive | tar xfv - --warning=no-timestamp | sort
-echo "separator"
-cmp orig/file1 directory/file1
-echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -2473,11 +2594,11 @@ cat archive | tar xfv - --warning=no-timestamp | sort
 echo "separator"
 cmp orig/file1 directory/file1
 echo "separator"
-cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+cmp orig/file2 directory/file2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory/
 directory/file1
 directory/file2
@@ -2485,579 +2606,595 @@ separator
 separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
 #AT_STOP_2
 #AT_START_3
-# 3. options.at:24: mixing options
-at_setup_line='options.at:24'
-at_desc="mixing options"
-$at_quiet $as_echo_n "  3: $at_desc                                 "
+at_fn_group_banner 3 'options.at:24' \
+  "mixing options" "                                 "
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "3. options.at:24: testing ..."
+  $as_echo "3. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/options.at:27:
 echo > file1
 TAR_OPTIONS=--numeric-owner tar chof archive file1
 tar tf archive
 "
-echo options.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-echo > file1
-TAR_OPTIONS=--numeric-owner tar chof archive file1
-tar tf archive
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "options.at:27"
+( $at_check_trace;
 echo > file1
 TAR_OPTIONS=--numeric-owner tar chof archive file1
 tar tf archive
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/options.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/options.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
 #AT_STOP_3
 #AT_START_4
-# 4. options02.at:26: interspersed options
-at_setup_line='options02.at:26'
-at_desc="interspersed options"
-$at_quiet $as_echo_n "  4: $at_desc                           "
+at_fn_group_banner 4 'options02.at:26' \
+  "interspersed options" "                           "
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "4. options02.at:26: testing ..."
+  $as_echo "4. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/options02.at:29:
 echo > file1
 tar c file1 -f archive
 tar tf archive
 "
-echo options02.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-echo > file1
-tar c file1 -f archive
-tar tf archive
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "options02.at:29"
+( $at_check_trace;
 echo > file1
 tar c file1 -f archive
 tar tf archive
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/options02.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/options02.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
 #AT_STOP_4
 #AT_START_5
-# 5. T-empty.at:26: files-from: empty entries
-at_setup_line='T-empty.at:26'
-at_desc="files-from: empty entries"
-$at_quiet $as_echo_n "  5: $at_desc                      "
+at_fn_group_banner 5 'opcomp01.at:21' \
+  "occurrence compatibility" "                       " 1
 at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "5. T-empty.at:26: testing ..."
+  $as_echo "5. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-cat >file-list <<'_ATEOF'
-jeden
-dwa
+{ set +x
+$as_echo "$at_srcdir/opcomp01.at:24:
+tar --occurrence=1 -cf test.tar .
+"
+at_fn_check_prepare_notrace 'an embedded newline' "opcomp01.at:24"
+( $at_check_trace;
+tar --occurrence=1 -cf test.tar .
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: --occurrence cannot be used with -c
+Try 'tar --help' or 'tar --usage' for more information.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp01.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-trzy
-_ATEOF
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_5
+#AT_START_6
+at_fn_group_banner 6 'opcomp02.at:21' \
+  "occurrence compatibility" "                       " 1
+at_xfail=no
+(
+  $as_echo "6. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/T-empty.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
+{ set +x
+$as_echo "$at_srcdir/opcomp02.at:24:
+tar --occurrence=1 -tf test.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "opcomp02.at:24"
+( $at_check_trace;
+tar --occurrence=1 -tf test.tar
 
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: --occurrence is meaningless without a file list
+Try 'tar --help' or 'tar --usage' for more information.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_6
+#AT_START_7
+at_fn_group_banner 7 'opcomp03.at:21' \
+  "--verify compatibility" "                         " 1
+at_xfail=no
+(
+  $as_echo "7. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile --file jeden
-genfile --file dwa
-genfile --file trzy
 
-tar cfvT archive ../file-list | sort
-)"
-echo T-empty.at:36 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+{ set +x
+$as_echo "$at_srcdir/opcomp03.at:24:
+tar -tWf test.tar .
+"
+at_fn_check_prepare_notrace 'an embedded newline' "opcomp03.at:24"
+( $at_check_trace;
+tar -tWf test.tar .
 
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: --verify cannot be used with -t
+Try 'tar --help' or 'tar --usage' for more information.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp03.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_7
+#AT_START_8
+at_fn_group_banner 8 'opcomp04.at:21' \
+  "compress option compatibility" "                  " 1
+at_xfail=no
+(
+  $as_echo "8. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile --file jeden
-genfile --file dwa
-genfile --file trzy
 
-tar cfvT archive ../file-list | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
+{ set +x
+$as_echo "$at_srcdir/opcomp04.at:24:
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
+genfile --file file
+tar czf test.tar file
+genfile --file newfile
+tar rzf test.tar newfile
+"
+at_fn_check_prepare_notrace 'an embedded newline' "opcomp04.at:24"
+( $at_check_trace;
 
-genfile --file jeden
-genfile --file dwa
-genfile --file trzy
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar cfvT archive ../file-list | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dwa
-jeden
-trzy
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/T-empty.at:36"
+genfile --file file
+tar czf test.tar file
+genfile --file newfile
+tar rzf test.tar newfile
 
-$at_failed && at_func_log_failure
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Cannot update compressed archives
+Try 'tar --help' or 'tar --usage' for more information.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp04.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
- # Testing one format is enough
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_5
-#AT_START_6
-# 6. T-null.at:21: files-from: 0-separated file without -0
-at_setup_line='T-null.at:21'
-at_desc="files-from: 0-separated file without -0"
-$at_quiet $as_echo_n "  6: $at_desc        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_8
+#AT_START_9
+at_fn_group_banner 9 'opcomp05.at:21' \
+  "--pax-option compatibility" "                     " 1
 at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "6. T-null.at:21: testing ..."
+  $as_echo "9. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-cat >expout <<'_ATEOF'
-jeden\ndwa
-trzy
-_ATEOF
+{ set +x
+$as_echo "$at_srcdir/opcomp05.at:24:
+tar -Hgnu -cf test.tar --pax-option user:=root .
+"
+at_fn_check_prepare_notrace 'an embedded newline' "opcomp05.at:24"
+( $at_check_trace;
+tar -Hgnu -cf test.tar --pax-option user:=root .
 
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: --pax-option can be used only on POSIX archives
+Try 'tar --help' or 'tar --usage' for more information.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp05.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_9
+#AT_START_10
+at_fn_group_banner 10 'opcomp06.at:21' \
+  "--pax-option compatibility" "                     " 1
+at_xfail=no
+(
+  $as_echo "10. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  { $at_traceoff
-$as_echo "$at_srcdir/T-null.at:28:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+{ set +x
+$as_echo "$at_srcdir/opcomp06.at:24:
 
 
-echo dwa > temp
-echo trzy >> temp
-cat temp | tr '\\n' '\\0' > temp1
-echo jeden > file-list
-cat temp1 >> file-list
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile -f \"jeden
-dwa\" || exit 77
-genfile -f trzy
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cfTv archive file-list | sort
-)"
-echo T-null.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
+  rm -rf \$file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
+genfile --file file
+tar -cf test.tar --acls -Hgnu file
+"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "opcomp06.at:24"
+( $at_check_trace;
 
-echo dwa > temp
-echo trzy >> temp
-cat temp | tr '\n' '\0' > temp1
-echo jeden > file-list
-cat temp1 >> file-list
 
-genfile -f "jeden
-dwa" || exit 77
-genfile -f trzy
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cfTv archive file-list | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
+  rm -rf $file
 
-echo dwa > temp
-echo trzy >> temp
-cat temp | tr '\n' '\0' > temp1
-echo jeden > file-list
-cat temp1 >> file-list
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-genfile -f "jeden
-dwa" || exit 77
-genfile -f trzy
+genfile --file file
+tar -cf test.tar --acls -Hgnu file
 
-tar cfTv archive file-list | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: file-list: file name read contains nul character
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: --acls can be used only on POSIX archives
+Try 'tar --help' or 'tar --usage' for more information.
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-$at_diff expout "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/T-null.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/opcomp06.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
- # Testing one format is enough
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_6
-#AT_START_7
-# 7. indexfile.at:26: tar --index-file=FILE --file=-
-at_setup_line='indexfile.at:26'
-at_desc="tar --index-file=FILE --file=-"
-$at_quiet $as_echo_n "  7: $at_desc                 "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_10
+#AT_START_11
+at_fn_group_banner 11 'T-mult.at:21' \
+  "multiple file lists" "                            " 2
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "7. indexfile.at:26: testing ..."
+  $as_echo "11. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/indexfile.at:29:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/T-mult.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+>file3
+>file4
+cat >F1 <<'_ATEOF'
+file1
+file2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file3
+file4
+_ATEOF
 
-echo \"Testing the archive\"
-tar -tf archive
+tar cf archive -T F1 -T F2
+tar tf archive
 )"
-echo indexfile.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
-
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'an embedded newline' "T-mult.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+>file3
+>file4
+cat >F1 <<'_ATEOF'
+file1
+file2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file3
+file4
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+tar cf archive -T F1 -T F2
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-mult.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/indexfile.at:29:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_11
+#AT_START_12
+at_fn_group_banner 12 'T-nest.at:21' \
+  "nested file lists" "                              " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "12. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo \"Testing the archive\"
-tar -tf archive
-)"
-echo indexfile.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-nest.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+>file3
+>file4
+cat >F1 <<'_ATEOF'
+file1
+-T F2
+file2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file3
+file4
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+tar cf archive -T F1
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-nest.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+>file3
+>file4
+cat >F1 <<'_ATEOF'
+file1
+-T F2
+file2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file3
+file4
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+tar cf archive -T F1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file3
+file4
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-nest.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/indexfile.at:29:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_12
+#AT_START_13
+at_fn_group_banner 13 'T-rec.at:21' \
+  "recursive file lists" "                           " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "13. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
 
-echo \"Testing the archive\"
-tar -tf archive
-)"
-echo indexfile.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  { set +x
+$as_echo "$at_srcdir/T-rec.at:24:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+cat >F1 <<'_ATEOF'
+file1
+-T F2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file2
+-T F1
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar cf archive -T F1
+echo \$?
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-rec.at:24"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3066,351 +3203,310 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+>file1
+>file2
+cat >F1 <<'_ATEOF'
+file1
+-T F2
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+file2
+-T F1
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+tar cf archive -T F1
+echo $?
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: F1: file list requested from F2 already read from command line
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "2
+file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-rec.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/indexfile.at:29:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_13
+#AT_START_14
+at_fn_group_banner 14 'T-cd.at:21' \
+  "-C in file lists" "                               " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "14. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo \"Testing the archive\"
-tar -tf archive
-)"
-echo indexfile.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-cd.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+>file1
+mkdir dir
+>dir/file2
+>dir/file3
+cat >F1 <<'_ATEOF'
+file1
+-C dir
+.
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+tar cf archive -T F1
+tar tf archive | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-cd.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+>file1
+mkdir dir
+>dir/file2
+>dir/file3
+cat >F1 <<'_ATEOF'
+file1
+-C dir
+.
+_ATEOF
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+tar cf archive -T F1
+tar tf archive | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "./
+./file2
+./file3
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-cd.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/indexfile.at:29:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'T-empty.at:26' \
+  "empty entries" "                                  " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "15. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo \"Testing the archive\"
-tar -tf archive
-)"
-echo indexfile.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+cat >file-list <<'_ATEOF'
+jeden
+dwa
+
+trzy
+_ATEOF
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-empty.at:36:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+genfile --file jeden
+genfile --file dwa
+genfile --file trzy
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar cfvT archive ../file-list
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:36"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
 
-mkdir directory
-genfile --file=directory/a --length=1035
-
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
+genfile --file jeden
+genfile --file dwa
+genfile --file trzy
 
-echo "Testing the archive"
-tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+tar cfvT archive ../file-list
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "jeden
+dwa
+trzy
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
+ # Testing one format is enough
 
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_7
-#AT_START_8
-# 8. verbose.at:26: tar cvf -
-at_setup_line='verbose.at:26'
-at_desc="tar cvf -"
-$at_quiet $as_echo_n "  8: $at_desc                                      "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'T-null.at:21' \
+  "0-separated file without -0" "                    " 2
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "8. verbose.at:26: testing ..."
+  $as_echo "16. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/verbose.at:29:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/T-null.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-)"
-echo verbose.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "file
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-file
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+echo jeden > temp
+echo dwa >> temp
+echo trzy >> temp
+cat temp | tr '\\n' '\\0' > file-list
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+genfile -f jeden
+genfile -f dwa
+genfile -f trzy
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verbose.at:29:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+tar cfTv archive file-list
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-)"
-echo verbose.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "file
+echo jeden > temp
+echo dwa >> temp
+echo trzy >> temp
+cat temp | tr '\n' '\0' > file-list
+
+genfile -f jeden
+genfile -f dwa
+genfile -f trzy
+
+tar cfTv archive file-list
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: file-list: file name read contains nul character
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-file
+echo >>"$at_stdout"; $as_echo "jeden
+dwa
+trzy
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verbose.at:29:
+
+ # Testing one format is enough
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'T-zfile.at:26' \
+  "empty file" "                                     " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "17. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-zfile.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3419,34 +3515,23 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-)"
-echo verbose.at:29 >"$at_check_line_file"
+genfile --length=0 --file empty
+genfile --file a
+genfile --file b
+cat >valid <<'_ATEOF'
+a
+b
+_ATEOF
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
+tar cf archive -T empty -T valid
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+echo \"==\"
+tar cf archive -T valid -T empty
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-zfile.at:29"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3455,190 +3540,155 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
+genfile --length=0 --file empty
+genfile --file a
+genfile --file b
+cat >valid <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T valid
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "file
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-file
+echo "=="
+tar cf archive -T valid -T empty
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a
+b
+==
+a
+b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-zfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verbose.at:29:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-)"
-echo verbose.at:29 >"$at_check_line_file"
+ # Testing one format is enough
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
+#AT_START_18
+at_fn_group_banner 18 'T-nonl.at:27' \
+  "entries with missing newlines" "                  " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "18. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "file
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-file
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verbose.at:29:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+  { set +x
+$as_echo "$at_srcdir/T-nonl.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
-tar tf archive
-)"
-echo verbose.at:29 >"$at_check_line_file"
+genfile --length=0 --file empty
+\$as_echo_n c > 1.nonl
+echo d > 2.nonl
+\$as_echo_n e >> 2.nonl
+touch a b c d e
+cat >filelist <<'_ATEOF'
+a
+b
+_ATEOF
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
+tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo ==
+tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-nonl.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file --length 10240
-echo Creating the archive
-tar cvf - file > archive
-echo Testing the archive
+genfile --length=0 --file empty
+$as_echo_n c > 1.nonl
+echo d > 2.nonl
+$as_echo_n e >> 2.nonl
+touch a b c d e
+cat >filelist <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "file
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-file
+echo ==
+tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "c
+d
+e
+a
+b
+==
+d
+e
+a
+b
+c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/T-nonl.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_8
-#AT_START_9
-# 9. append.at:21: append
-at_setup_line='append.at:21'
-at_desc="append"
-$at_quiet $as_echo_n "  9: $at_desc                                         "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_18
+#AT_START_19
+at_fn_group_banner 19 'indexfile.at:26' \
+  "tar --index-file=FILE --file=-" "                 " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "9. append.at:21: testing ..."
+  $as_echo "19. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/append.at:24:
+  { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -3646,31 +3696,19 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive)"
-echo append.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -3678,26 +3716,33 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append.at:24:
+              { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -3705,31 +3750,19 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive)"
-echo append.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -3737,26 +3770,33 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append.at:24:
+              { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3764,16 +3804,19 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive)"
-echo append.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3781,41 +3824,33 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append.at:24:
+              { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -3823,31 +3858,19 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive)"
-echo append.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -3855,26 +3878,33 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append.at:24:
+              { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -3882,31 +3912,19 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive)"
-echo append.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -3914,88 +3932,117 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
-touch file1
-          touch file2
-          tar cf archive file1
-          tar rf archive file2
-          tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_9
-#AT_START_10
-# 10. append01.at:29: appending files with long names
-at_setup_line='append01.at:29'
-at_desc="appending files with long names"
-$at_quiet $as_echo_n " 10: $at_desc                "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_19
+#AT_START_20
+at_fn_group_banner 20 'verbose.at:26' \
+  "tar cvf -" "                                      " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "10. append01.at:29: testing ..."
+  $as_echo "20. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/append01.at:34:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+  { set +x
+$as_echo "$at_srcdir/verbose.at:29:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
 )"
-echo append01.at:34 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "file
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/verbose.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4004,27 +4051,29 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "file
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append01.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append01.at:34:
+              { set +x
+$as_echo "$at_srcdir/verbose.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -4033,34 +4082,14 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
 )"
-echo append01.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -4069,27 +4098,29 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "file
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append01.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append01.at:34:
+              { set +x
+$as_echo "$at_srcdir/verbose.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -4098,34 +4129,14 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar tf archive
-)"
-echo append01.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -4134,27 +4145,29 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "file
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append01.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append01.at:34:
+              { set +x
+$as_echo "$at_srcdir/verbose.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -4163,17 +4176,14 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
 )"
-echo append01.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -4182,138 +4192,115 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
-touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
-tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+genfile --file file --length 10240
+echo Creating the archive
+tar cvf - file > archive
+echo Testing the archive
 tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
-This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "file
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append01.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_10
-#AT_START_11
-# 11. append02.at:54: append vs. create
-at_setup_line='append02.at:54'
-at_desc="append vs. create"
-$at_quiet $as_echo_n " 11: $at_desc                              "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_20
+#AT_START_21
+at_fn_group_banner 21 'gzip.at:23' \
+  "gzip" "                                           " 3
 at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "11. append02.at:54: testing ..."
+  $as_echo "21. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
+unset TAR_OPTIONS
 
+{ set +x
+$as_echo "$at_srcdir/gzip.at:28:
 
-  { $at_traceoff
-$as_echo "$at_srcdir/append02.at:57:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
-export TAR_OPTIONS
-rm -rf *
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-genfile --file file1
-genfile --file file2
+tar xfvz /dev/null 2>err
+RC=\$?
+sed -n '/^tar:/p' err >&2
+exit \$RC
+"
+at_fn_check_prepare_notrace 'an embedded newline' "gzip.at:28"
+( $at_check_trace;
 
-# Make sure file timestamps in the archive will not differ
-MTIME=\"--mtime=@0\"
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test \$TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
-fi
+tar xfvz /dev/null 2>err
+RC=$?
+sed -n '/^tar:/p' err >&2
+exit $RC
 
-echo Creating archive.1
-tar \$MTIME -cf archive.1 file1 file2
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Child returned status 1
+tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/gzip.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Creating archive.2
-tar \$MTIME -cf archive.2 -T /dev/null
-tar \$MTIME -rf archive.2 file1
-tar \$MTIME -rf archive.2 file2
 
-echo Comparing archives
-cmp archive.1 archive.2
-)"
-echo append02.at:57 >"$at_check_line_file"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_21
+#AT_START_22
+at_fn_group_banner 22 'recurse.at:21' \
+  "recurse" "                                        " 3
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "22. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/recurse.at:24:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -4322,45 +4309,24 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive.1
-Creating archive.2
-Comparing archives
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append02.at:57"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append02.at:57:
+              { set +x
+$as_echo "$at_srcdir/recurse.at:24:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4369,34 +4335,13 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME=\"--mtime=@0\"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test \$TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
-fi
-
-echo Creating archive.1
-tar \$MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar \$MTIME -cf archive.2 -T /dev/null
-tar \$MTIME -rf archive.2 file1
-tar \$MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
 )"
-echo append02.at:57 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4405,149 +4350,281 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
+              { set +x
+$as_echo "$at_srcdir/recurse.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/recurse.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
+              { set +x
+$as_echo "$at_srcdir/recurse.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive.1
-Creating archive.2
-Comparing archives
+mkdir directory
+touch directory/file
+tar --create --file archive --no-recursion directory || exit 1
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append02.at:57"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append02.at:57:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_22
+#AT_START_23
+at_fn_group_banner 23 'shortrec.at:25' \
+  "short records" "                                  " 3
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "23. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/shortrec.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-# Make sure file timestamps in the archive will not differ
-MTIME=\"--mtime=@0\"
+rm -r directory
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test \$TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
-fi
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-echo Creating archive.1
-tar \$MTIME -cf archive.1 file1 file2
+rm -r directory
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Creating archive.2
-tar \$MTIME -cf archive.2 -T /dev/null
-tar \$MTIME -rf archive.2 file1
-tar \$MTIME -rf archive.2 file2
+              { set +x
+$as_echo "$at_srcdir/shortrec.at:28:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo Comparing archives
-cmp archive.1 archive.2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
+
+rm -r directory
 )"
-echo append02.at:57 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
+
+rm -r directory
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/shortrec.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+rm -r directory
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -4556,45 +4633,26 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
+rm -r directory
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive.1
-Creating archive.2
-Comparing archives
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append02.at:57"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/append02.at:57:
+              { set +x
+$as_echo "$at_srcdir/shortrec.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -4603,68 +4661,17 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME=\"--mtime=@0\"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test \$TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
-fi
-
-echo Creating archive.1
-tar \$MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar \$MTIME -cf archive.2 -T /dev/null
-tar \$MTIME -rf archive.2 file1
-tar \$MTIME -rf archive.2 file2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-echo Comparing archives
-cmp archive.1 archive.2
+rm -r directory
 )"
-echo append02.at:57 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -4673,45 +4680,26 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive.1
-Creating archive.2
-Comparing archives
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append02.at:57"
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-$at_failed && at_func_log_failure
+rm -r directory
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append02.at:57:
+              { set +x
+$as_echo "$at_srcdir/shortrec.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -4720,68 +4708,17 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME=\"--mtime=@0\"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test \$TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
-fi
-
-echo Creating archive.1
-tar \$MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar \$MTIME -cf archive.2 -T /dev/null
-tar \$MTIME -rf archive.2 file1
-tar \$MTIME -rf archive.2 file2
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-echo Comparing archives
-cmp archive.1 archive.2
+rm -r directory
 )"
-echo append02.at:57 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -4790,71 +4727,47 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file1
-genfile --file file2
-
-# Make sure file timestamps in the archive will not differ
-MTIME="--mtime=@0"
-
-# For PAX archives, we need to make sure extended header names are
-# reproducible and that their contents won't change with time
-if test $TEST_TAR_FORMAT = posix; then
-  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
-fi
-
-echo Creating archive.1
-tar $MTIME -cf archive.1 file1 file2
-
-echo Creating archive.2
-tar $MTIME -cf archive.2 -T /dev/null
-tar $MTIME -rf archive.2 file1
-tar $MTIME -rf archive.2 file2
-
-echo Comparing archives
-cmp archive.1 archive.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive.1
-Creating archive.2
-Comparing archives
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append02.at:57"
+mkdir directory
+(cd directory && touch a b c d e f g h i j k l m n o p q r)
+tar -c -b 1 -f - directory | tar -t -f - > /dev/null
+tar -c -b 1 -f archive directory
+tar -t -f archive > /dev/null
+tar -t -f - < archive > /dev/null
 
-$at_failed && at_func_log_failure
+rm -r directory
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_11
-#AT_START_12
-# 12. append03.at:19: append with name transformation
-at_setup_line='append03.at:19'
-at_desc="append with name transformation"
-$at_quiet $as_echo_n " 12: $at_desc                "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_23
+#AT_START_24
+at_fn_group_banner 24 'same-order01.at:26' \
+  "working -C with --same-order" "                   " 4
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "12. append03.at:19: testing ..."
+  $as_echo "24. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-# Description: Make sure filenames are transformed during append.
-
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/append03.at:24:
+  { set +x
+$as_echo "$at_srcdir/same-order01.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -4863,40 +4776,21 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-)"
-echo append03.at:24 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file.1
-genfile --file file.2
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -4905,34 +4799,33 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Appending
-plik.1
-Testing
-plik.1
-plik.2
-plik.1
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
+
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append03.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append03.at:24:
+              { set +x
+$as_echo "$at_srcdir/same-order01.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4941,40 +4834,21 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-)"
-echo append03.at:24 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file.1
-genfile --file file.2
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4983,34 +4857,33 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Appending
-plik.1
-Testing
-plik.1
-plik.2
-plik.1
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
+
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append03.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append03.at:24:
+              { set +x
+$as_echo "$at_srcdir/same-order01.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5019,40 +4892,21 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-)"
-echo append03.at:24 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file.1
-genfile --file file.2
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5061,34 +4915,33 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Appending
-plik.1
-Testing
-plik.1
-plik.2
-plik.1
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
+
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append03.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append03.at:24:
+              { set +x
+$as_echo "$at_srcdir/same-order01.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5097,40 +4950,21 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-)"
-echo append03.at:24 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file.1
-genfile --file file.2
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5139,34 +4973,33 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Appending
-plik.1
-Testing
-plik.1
-plik.2
-plik.1
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
+
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append03.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/append03.at:24:
+              { set +x
+$as_echo "$at_srcdir/same-order01.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5175,40 +5008,21 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-)"
-echo append03.at:24 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file file.1
-genfile --file file.2
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5217,60 +5031,54 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file file.1
-genfile --file file.2
-
-tar -c -f archive --transform 's/file/plik/' file.*
-echo Appending
-tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
-echo Testing
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Appending
-plik.1
-Testing
-plik.1
-plik.2
-plik.1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/append03.at:24"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
+
+mkdir directory
+tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+
+ls directory|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_12
-#AT_START_13
-# 13. xform-h.at:30: transforming hard links on create
-at_setup_line='xform-h.at:30'
-at_desc="transforming hard links on create"
-$at_quiet $as_echo_n " 13: $at_desc              "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_24
+#AT_START_25
+at_fn_group_banner 25 'same-order02.at:25' \
+  "multiple -C options" "                            " 4
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "13. xform-h.at:30: testing ..."
+  $as_echo "25. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/xform-h.at:39:
+  { set +x
+$as_echo "$at_srcdir/same-order02.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -5279,62 +5087,24 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo \"hello\" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=\`pwd\`
+tar -xf archive --same-order --warning=no-timestamp \\
+  -C \$HERE/en file1 \\
+  -C \$HERE/to file2 || exit 1
 
+ls en
+echo separator
+ls to
 )"
-echo xform-h.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -5343,45 +5113,37 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=`pwd`
+tar -xf archive --same-order --warning=no-timestamp \
+  -C $HERE/en file1 \
+  -C $HERE/to file2 || exit 1
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Default transform scope
-test
-Transforming hard links
-test
-Not transforming hard links
-basedir/test
+ls en
+echo separator
+ls to
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+separator
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/xform-h.at:39:
+              { set +x
+$as_echo "$at_srcdir/same-order02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5390,62 +5152,24 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo \"hello\" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=\`pwd\`
+tar -xf archive --same-order --warning=no-timestamp \\
+  -C \$HERE/en file1 \\
+  -C \$HERE/to file2 || exit 1
 
+ls en
+echo separator
+ls to
 )"
-echo xform-h.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5454,45 +5178,37 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=`pwd`
+tar -xf archive --same-order --warning=no-timestamp \
+  -C $HERE/en file1 \
+  -C $HERE/to file2 || exit 1
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Default transform scope
-test
-Transforming hard links
-test
-Not transforming hard links
-basedir/test
+ls en
+echo separator
+ls to
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+separator
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/xform-h.at:39:
+              { set +x
+$as_echo "$at_srcdir/same-order02.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5501,31 +5217,24 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo \"hello\" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=\`pwd\`
+tar -xf archive --same-order --warning=no-timestamp \\
+  -C \$HERE/en file1 \\
+  -C \$HERE/to file2 || exit 1
 
+ls en
+echo separator
+ls to
 )"
-echo xform-h.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5534,76 +5243,37 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=`pwd`
+tar -xf archive --same-order --warning=no-timestamp \
+  -C $HERE/en file1 \
+  -C $HERE/to file2 || exit 1
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Default transform scope
-test
-Transforming hard links
-test
-Not transforming hard links
-basedir/test
+ls en
+echo separator
+ls to
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+separator
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/xform-h.at:39:
+              { set +x
+$as_echo "$at_srcdir/same-order02.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5612,62 +5282,24 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo \"hello\" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=\`pwd\`
+tar -xf archive --same-order --warning=no-timestamp \\
+  -C \$HERE/en file1 \\
+  -C \$HERE/to file2 || exit 1
 
+ls en
+echo separator
+ls to
 )"
-echo xform-h.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5676,45 +5308,37 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=`pwd`
+tar -xf archive --same-order --warning=no-timestamp \
+  -C $HERE/en file1 \
+  -C $HERE/to file2 || exit 1
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Default transform scope
-test
-Transforming hard links
-test
-Not transforming hard links
-basedir/test
+ls en
+echo separator
+ls to
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+separator
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/xform-h.at:39:
+              { set +x
+$as_echo "$at_srcdir/same-order02.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5723,31 +5347,24 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo \"hello\" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
-
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
+mkdir en
+mkdir to
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+HERE=\`pwd\`
+tar -xf archive --same-order --warning=no-timestamp \\
+  -C \$HERE/en file1 \\
+  -C \$HERE/to file2 || exit 1
 
+ls en
+echo separator
+ls to
 )"
-echo xform-h.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5756,134 +5373,232 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
-
-
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
-
+genfile -l 1024 -f file1
+genfile -l 1024 -f file2
+tar cf archive file1 file2
 
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+mkdir en
+mkdir to
 
+HERE=`pwd`
+tar -xf archive --same-order --warning=no-timestamp \
+  -C $HERE/en file1 \
+  -C $HERE/to file2 || exit 1
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+ls en
+echo separator
+ls to
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+separator
+file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir basedir
-echo "hello" > basedir/test
-ln basedir/test basedir/test_link
 
 
-echo "Default transform scope"
-tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_25
+#AT_START_26
+at_fn_group_banner 26 'append.at:21' \
+  "append" "                                         " 5
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "26. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-echo "Transforming hard links"
-tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
 
 
-echo "Not transforming hard links"
-tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
-tar tvf archive | sed -n 's/.*test_link link to //p'
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Default transform scope
-test
-Transforming hard links
-test
-Not transforming hard links
-basedir/test
+  { set +x
+$as_echo "$at_srcdir/append.at:24:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/append.at:24:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_13
-#AT_START_14
-# 14. xform01.at:26: transformations and GNU volume labels
-at_setup_line='xform01.at:26'
-at_desc="transformations and GNU volume labels"
-$at_quiet $as_echo_n " 14: $at_desc          "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "14. xform01.at:26: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/xform01.at:29:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/append.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-genfile --file file
-tar -cf archive.tar -V /label/ file
-tar tf archive.tar
-)"
-echo xform01.at:29 >"$at_check_line_file"
+              { set +x
+$as_echo "$at_srcdir/append.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/append.at:24:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
-
-genfile --file file
-tar -cf archive.tar -V /label/ file
-tar tf archive.tar
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5891,50 +5606,92 @@ export TEST_TAR_FORMAT
 TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
-
-genfile --file file
-tar -cf archive.tar -V /label/ file
-tar tf archive.tar
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "/label/
-file
+touch file1
+          touch file2
+          tar cf archive file1
+          tar rf archive file2
+          tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/xform01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_14
-#AT_START_15
-# 15. exclude.at:23: exclude
-at_setup_line='exclude.at:23'
-at_desc="exclude"
-$at_quiet $as_echo_n " 15: $at_desc                                        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_26
+#AT_START_27
+at_fn_group_banner 27 'append01.at:29' \
+  "appending files with long names" "                " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "15. exclude.at:23: testing ..."
+  $as_echo "27. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude.at:26:
+
+
+  { set +x
+$as_echo "$at_srcdir/append01.at:34:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/append01.at:34:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5943,43 +5700,14 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir dir
-echo blues > dir/blues
-echo jazz > dir/jazz
-mkdir dir/folk
-echo tagfile > dir/folk/tagfile
-echo sanjuan > dir/folk/sanjuan
-mkdir dir/rock
-echo \"Signature: 8a477f597d28d172789f06886806bc55\" > dir/rock/CACHEDIR.TAG
-echo \"test\" > dir/rock/file
-
-for option in exclude-caches exclude-caches-under exclude-caches-all
-do
-  echo OPTION \$option
-  tar -cf archive.tar --\$option -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
-
-for option in exclude-tag exclude-tag-under exclude-tag-all
-do
-  echo OPTION \$option
-  tar -cf archive.tar --\${option}=tagfile -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
 )"
-echo exclude.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5988,220 +5716,136 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir dir
-echo blues > dir/blues
-echo jazz > dir/jazz
-mkdir dir/folk
-echo tagfile > dir/folk/tagfile
-echo sanjuan > dir/folk/sanjuan
-mkdir dir/rock
-echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG
-echo "test" > dir/rock/file
-
-for option in exclude-caches exclude-caches-under exclude-caches-all
-do
-  echo OPTION $option
-  tar -cf archive.tar --$option -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
-
-for option in exclude-tag exclude-tag-under exclude-tag-all
-do
-  echo OPTION $option
-  tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/append01.at:34:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir dir
-echo blues > dir/blues
-echo jazz > dir/jazz
-mkdir dir/folk
-echo tagfile > dir/folk/tagfile
-echo sanjuan > dir/folk/sanjuan
-mkdir dir/rock
-echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG
-echo "test" > dir/rock/file
+              { set +x
+$as_echo "$at_srcdir/append01.at:34:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-for option in exclude-caches exclude-caches-under exclude-caches-all
-do
-  echo OPTION $option
-  tar -cf archive.tar --$option -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-for option in exclude-tag exclude-tag-under exclude-tag-all
-do
-  echo OPTION $option
-  tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort
-  cat err
-  echo ARCHIVE
-  tar tf archive.tar | sort
-done
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "OPTION exclude-caches
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-OPTION exclude-caches-under
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-OPTION exclude-caches-all
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; directory not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/folk/
-dir/folk/sanjuan
-dir/folk/tagfile
-dir/jazz
-OPTION exclude-tag
-dir/
-dir/blues
-dir/folk/
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
-tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/folk/
-dir/folk/tagfile
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
-OPTION exclude-tag-under
-dir/
-dir/blues
-dir/folk/
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
-tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/folk/
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
-OPTION exclude-tag-all
-dir/
-dir/blues
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
-tar: dir/folk/: contains a cache directory tag tagfile; directory not dumped
-ARCHIVE
-dir/
-dir/blues
-dir/jazz
-dir/rock/
-dir/rock/CACHEDIR.TAG
-dir/rock/file
+mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
+touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
+This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_15
-#AT_START_16
-# 16. exclude01.at:17: exclude wildcards
-at_setup_line='exclude01.at:17'
-at_desc="exclude wildcards"
-$at_quiet $as_echo_n " 16: $at_desc                              "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_27
+#AT_START_28
+at_fn_group_banner 28 'append02.at:54' \
+  "append vs. create" "                              " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "16. exclude01.at:17: testing ..."
+  $as_echo "28. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude01.at:20:
+  { set +x
+$as_echo "$at_srcdir/append02.at:57:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -6210,92 +5854,31 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Make sure file timestamps in the archive will not differ
+MTIME=\"--mtime=@0\"
 
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test \$TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
+fi
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
+echo Creating archive.1
+tar \$MTIME -cf archive.1 file1 file2
 
-tar cf archive --exclude=testdir/dir1/\\* \\
-               --no-wildcards \\
-               --exclude=testdir/dir2/\\* \\
-               --wildcards \\
-               --exclude=testdir/dir3/\\* \\
-               testdir
-tar tf archive | sort
+echo Creating archive.2
+tar \$MTIME -cf archive.2 -T /dev/null
+tar \$MTIME -rf archive.2 file1
+tar \$MTIME -rf archive.2 file2
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t \"testdir/dir1/*\" -f archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir/dir1
-tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards \"testdir/dir1/*\" -f archive | sort
-
-rm -rf testdir
+echo Comparing archives
+cmp archive.1 archive.2
 )"
-echo exclude01.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
-
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -6304,66 +5887,44 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME="--mtime=@0"
 
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test $TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
+fi
 
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.1
+tar $MTIME -cf archive.1 file1 file2
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.2
+tar $MTIME -cf archive.2 -T /dev/null
+tar $MTIME -rf archive.2 file1
+tar $MTIME -rf archive.2 file2
 
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir2/
-testdir/dir2/file2
-testdir/dir3/
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-testdir/dir1/file1
+echo Comparing archives
+cmp archive.1 archive.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive.1
+Creating archive.2
+Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude01.at:20:
+              { set +x
+$as_echo "$at_srcdir/append02.at:57:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -6372,46 +5933,31 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
-
-tar cf archive --exclude=testdir/dir1/\\* \\
-               --no-wildcards \\
-               --exclude=testdir/dir2/\\* \\
-               --wildcards \\
-               --exclude=testdir/dir3/\\* \\
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME=\"--mtime=@0\"
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t \"testdir/dir1/*\" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test \$TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
+fi
 
-echo \"NEXT\"
-tar cf archive testdir/dir1
-tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.1
+tar \$MTIME -cf archive.1 file1 file2
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.2
+tar \$MTIME -cf archive.2 -T /dev/null
+tar \$MTIME -rf archive.2 file1
+tar \$MTIME -rf archive.2 file2
 
-rm -rf testdir
+echo Comparing archives
+cmp archive.1 archive.2
 )"
-echo exclude01.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -6420,206 +5966,77 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
+# Make sure file timestamps in the archive will not differ
+MTIME="--mtime=@0"
 
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test $TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
+fi
 
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
+echo Creating archive.1
+tar $MTIME -cf archive.1 file1 file2
 
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.2
+tar $MTIME -cf archive.2 -T /dev/null
+tar $MTIME -rf archive.2 file1
+tar $MTIME -rf archive.2 file2
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
+echo Comparing archives
+cmp archive.1 archive.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive.1
+Creating archive.2
+Comparing archives
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/append02.at:57:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Make sure file timestamps in the archive will not differ
+MTIME=\"--mtime=@0\"
 
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test \$TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
+fi
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
+echo Creating archive.1
+tar \$MTIME -cf archive.1 file1 file2
 
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
-
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir2/
-testdir/dir2/file2
-testdir/dir3/
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-testdir/dir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude01.at:20:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
-
-tar cf archive --exclude=testdir/dir1/\\* \\
-               --no-wildcards \\
-               --exclude=testdir/dir2/\\* \\
-               --wildcards \\
-               --exclude=testdir/dir3/\\* \\
-               testdir
-tar tf archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir
-tar t \"testdir/dir1/*\" -f archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir/dir1
-tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.2
+tar \$MTIME -cf archive.2 -T /dev/null
+tar \$MTIME -rf archive.2 file1
+tar \$MTIME -rf archive.2 file2
 
-rm -rf testdir
+echo Comparing archives
+cmp archive.1 archive.2
 )"
-echo exclude01.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
-
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -6628,66 +6045,44 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME="--mtime=@0"
 
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test $TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
+fi
 
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.1
+tar $MTIME -cf archive.1 file1 file2
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.2
+tar $MTIME -cf archive.2 -T /dev/null
+tar $MTIME -rf archive.2 file1
+tar $MTIME -rf archive.2 file2
 
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir2/
-testdir/dir2/file2
-testdir/dir3/
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-testdir/dir1/file1
+echo Comparing archives
+cmp archive.1 archive.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive.1
+Creating archive.2
+Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude01.at:20:
+              { set +x
+$as_echo "$at_srcdir/append02.at:57:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -6696,46 +6091,31 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
-
-tar cf archive --exclude=testdir/dir1/\\* \\
-               --no-wildcards \\
-               --exclude=testdir/dir2/\\* \\
-               --wildcards \\
-               --exclude=testdir/dir3/\\* \\
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME=\"--mtime=@0\"
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t \"testdir/dir1/*\" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test \$TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
+fi
 
-echo \"NEXT\"
-tar cf archive testdir/dir1
-tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.1
+tar \$MTIME -cf archive.1 file1 file2
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.2
+tar \$MTIME -cf archive.2 -T /dev/null
+tar \$MTIME -rf archive.2 file1
+tar \$MTIME -rf archive.2 file2
 
-rm -rf testdir
+echo Comparing archives
+cmp archive.1 archive.2
 )"
-echo exclude01.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -6744,112 +6124,44 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Make sure file timestamps in the archive will not differ
+MTIME="--mtime=@0"
 
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test $TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
+fi
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
+echo Creating archive.1
+tar $MTIME -cf archive.1 file1 file2
 
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
-
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.2
+tar $MTIME -cf archive.2 -T /dev/null
+tar $MTIME -rf archive.2 file1
+tar $MTIME -rf archive.2 file2
 
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir2/
-testdir/dir2/file2
-testdir/dir3/
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-testdir/dir1/file1
+echo Comparing archives
+cmp archive.1 archive.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive.1
+Creating archive.2
+Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude01.at:20:
+              { set +x
+$as_echo "$at_srcdir/append02.at:57:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -6858,92 +6170,31 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
-
-tar cf archive --exclude=testdir/dir1/\\* \\
-               --no-wildcards \\
-               --exclude=testdir/dir2/\\* \\
-               --wildcards \\
-               --exclude=testdir/dir3/\\* \\
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME=\"--mtime=@0\"
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t \"testdir/dir1/*\" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test \$TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
+fi
 
-echo \"NEXT\"
-tar cf archive testdir/dir1
-tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.1
+tar \$MTIME -cf archive.1 file1 file2
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards \"testdir/dir1/*\" -f archive | sort
+echo Creating archive.2
+tar \$MTIME -cf archive.2 -T /dev/null
+tar \$MTIME -rf archive.2 file1
+tar \$MTIME -rf archive.2 file2
 
-rm -rf testdir
+echo Comparing archives
+cmp archive.1 archive.2
 )"
-echo exclude01.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
-
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -6952,90 +6203,67 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file1
+genfile --file file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude=testdir/dir1/\* \
-               --no-wildcards \
-               --exclude=testdir/dir2/\* \
-               --wildcards \
-               --exclude=testdir/dir3/\* \
-               testdir
-tar tf archive | sort
+# Make sure file timestamps in the archive will not differ
+MTIME="--mtime=@0"
 
-echo "NEXT"
-tar cf archive testdir
-tar t "testdir/dir1/*" -f archive | sort
+# For PAX archives, we need to make sure extended header names are
+# reproducible and that their contents won't change with time
+if test $TEST_TAR_FORMAT = posix; then
+  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
+fi
 
-echo "NEXT"
-tar cf archive testdir/dir1
-tar t --no-wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.1
+tar $MTIME -cf archive.1 file1 file2
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards "testdir/dir1/*" -f archive | sort
+echo Creating archive.2
+tar $MTIME -cf archive.2 -T /dev/null
+tar $MTIME -rf archive.2 file1
+tar $MTIME -rf archive.2 file2
 
-rm -rf testdir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir2/
-testdir/dir2/file2
-testdir/dir3/
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-NEXT
-testdir/dir1/*
-testdir/dir1/file1
+echo Comparing archives
+cmp archive.1 archive.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive.1
+Creating archive.2
+Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_16
-#AT_START_17
-# 17. exclude02.at:17: exclude: anchoring
-at_setup_line='exclude02.at:17'
-at_desc="exclude: anchoring"
-$at_quiet $as_echo_n " 17: $at_desc                             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_28
+#AT_START_29
+at_fn_group_banner 29 'append03.at:21' \
+  "append with name transformation" "                " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "17. exclude02.at:17: testing ..."
+  $as_echo "29. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
+# Description: Make sure filenames are transformed during append.
+
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude02.at:20:
+  { set +x
+$as_echo "$at_srcdir/append03.at:26:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -7044,100 +6272,17 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 1\"
-tar cf archive --no-anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 2\"
-tar cf archive --anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 3\"
-tar cf archive testdir file1.txt
-tar t \"file1.txt\" -f archive | sort
-
-echo \"SUB 4\"
-tar t --no-anchored \"file1.txt\" -f archive | sort
-
-echo \"SUB 5\"
-tar t --anchored \"file1.txt\" -f archive | sort
-
-rm -rf testdir file1.txt
-
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
 )"
-echo exclude02.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
-
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
-
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
-
-rm -rf testdir file1.txt
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -7146,74 +6291,33 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
-
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
-
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
-
-rm -rf testdir file1.txt
-
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file2
-SUB 1
-testdir/
-testdir/file2
-SUB 2
-testdir/
-testdir/file1.txt
-testdir/file2
-SUB 3
-file1.txt
-SUB 4
-file1.txt
-testdir/file1.txt
-SUB 5
-file1.txt
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude02.at:20:
+              { set +x
+$as_echo "$at_srcdir/append03.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -7222,50 +6326,17 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 1\"
-tar cf archive --no-anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 2\"
-tar cf archive --anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 3\"
-tar cf archive testdir file1.txt
-tar t \"file1.txt\" -f archive | sort
-
-echo \"SUB 4\"
-tar t --no-anchored \"file1.txt\" -f archive | sort
-
-echo \"SUB 5\"
-tar t --anchored \"file1.txt\" -f archive | sort
-
-rm -rf testdir file1.txt
-
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
 )"
-echo exclude02.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -7274,302 +6345,432 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
-
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
-
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
-
-rm -rf testdir file1.txt
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/append03.at:26:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+genfile --file file.1
+genfile --file file.2
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+              { set +x
+$as_echo "$at_srcdir/append03.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
+genfile --file file.1
+genfile --file file.2
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-rm -rf testdir file1.txt
+genfile --file file.1
+genfile --file file.2
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file2
-SUB 1
-testdir/
-testdir/file2
-SUB 2
-testdir/
-testdir/file1.txt
-testdir/file2
-SUB 3
-file1.txt
-SUB 4
-file1.txt
-testdir/file1.txt
-SUB 5
-file1.txt
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude02.at:20:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/append03.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
+genfile --file file.1
+genfile --file file.2
 
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
+tar -c -f archive --transform 's/file/plik/' file.*
+echo Appending
+tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
+echo Testing
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Appending
+plik.1
+Testing
+plik.1
+plik.2
+plik.1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar cf archive --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
 
-echo \"SUB 1\"
-tar cf archive --no-anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
 
-echo \"SUB 2\"
-tar cf archive --anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
 
-echo \"SUB 3\"
-tar cf archive testdir file1.txt
-tar t \"file1.txt\" -f archive | sort
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_29
+#AT_START_30
+at_fn_group_banner 30 'append04.at:29' \
+  "append with verify" "                             " 5
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "30. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo \"SUB 4\"
-tar t --no-anchored \"file1.txt\" -f archive | sort
 
-echo \"SUB 5\"
-tar t --anchored \"file1.txt\" -f archive | sort
 
-rm -rf testdir file1.txt
 
-)"
-echo exclude02.at:20 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+  { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+# Create two empty files:
+touch file1 file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Append it to the already created archive:
+tar rpfW archive.tar file3
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
+# Create two empty files:
+touch file1 file2
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-rm -rf testdir file1.txt
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+# Create two empty files:
+touch file1 file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
 
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
+# Append it to the already created archive:
+tar rpfW archive.tar file3
 
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Create two empty files:
+touch file1 file2
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+# Create two empty files:
+touch file1 file2
 
-rm -rf testdir file1.txt
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file2
-SUB 1
-testdir/
-testdir/file2
-SUB 2
-testdir/
-testdir/file1.txt
-testdir/file2
-SUB 3
-file1.txt
-SUB 4
-file1.txt
-testdir/file1.txt
-SUB 5
-file1.txt
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude02.at:20:
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -7578,50 +6779,26 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+# Create two empty files:
+touch file1 file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 1\"
-tar cf archive --no-anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 2\"
-tar cf archive --anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 3\"
-tar cf archive testdir file1.txt
-tar t \"file1.txt\" -f archive | sort
-
-echo \"SUB 4\"
-tar t --no-anchored \"file1.txt\" -f archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-echo \"SUB 5\"
-tar t --anchored \"file1.txt\" -f archive | sort
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
 
-rm -rf testdir file1.txt
+# Append it to the already created archive:
+tar rpfW archive.tar file3
 
+# Verify content of the new archive:
+tar -tf archive.tar
 )"
-echo exclude02.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -7630,829 +6807,648 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+# Create two empty files:
+touch file1 file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+# Create two empty files:
+touch file1 file2
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
 
-rm -rf testdir file1.txt
+# Append it to the already created archive:
+tar rpfW archive.tar file3
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+# Create two empty files:
+touch file1 file2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Create an archive:
+tar cpfW archive.tar file1 file2
 
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
 
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_30
+#AT_START_31
+at_fn_group_banner 31 'xform-h.at:30' \
+  "transforming hard links on create" "              " 6
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "31. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
 
-rm -rf testdir file1.txt
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file2
-SUB 1
-testdir/
-testdir/file2
-SUB 2
-testdir/
-testdir/file1.txt
-testdir/file2
-SUB 3
-file1.txt
-SUB 4
-file1.txt
-testdir/file1.txt
-SUB 5
-file1.txt
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude02.at:20:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/xform-h.at:39:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo \"hello\" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
-
-echo \"SUB 1\"
-tar cf archive --no-anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
 
-echo \"SUB 2\"
-tar cf archive --anchored \\
-               --exclude=\"file1.txt\" \\
-               testdir
-tar tf archive | sort
+echo \"Default transform scope\"
+tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"SUB 3\"
-tar cf archive testdir file1.txt
-tar t \"file1.txt\" -f archive | sort
 
-echo \"SUB 4\"
-tar t --no-anchored \"file1.txt\" -f archive | sort
+echo \"Transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"SUB 5\"
-tar t --anchored \"file1.txt\" -f archive | sort
 
-rm -rf testdir file1.txt
+echo \"Not transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
 )"
-echo exclude02.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo "hello" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
 
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
+echo "Default transform scope"
+tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+echo "Transforming hard links"
+tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+echo "Not transforming hard links"
+tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir file1.txt
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Default transform scope
+test
+Transforming hard links
+test
+Not transforming hard links
+basedir/test
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/xform-h.at:39:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo \"hello\" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir
-touch file1.txt
-touch testdir/file1.txt
-touch testdir/file2
-
-tar cf archive --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 1"
-tar cf archive --no-anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
-
-echo "SUB 2"
-tar cf archive --anchored \
-               --exclude="file1.txt" \
-               testdir
-tar tf archive | sort
 
-echo "SUB 3"
-tar cf archive testdir file1.txt
-tar t "file1.txt" -f archive | sort
+echo \"Default transform scope\"
+tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "SUB 4"
-tar t --no-anchored "file1.txt" -f archive | sort
 
-echo "SUB 5"
-tar t --anchored "file1.txt" -f archive | sort
+echo \"Transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir file1.txt
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file2
-SUB 1
-testdir/
-testdir/file2
-SUB 2
-testdir/
-testdir/file1.txt
-testdir/file2
-SUB 3
-file1.txt
-SUB 4
-file1.txt
-testdir/file1.txt
-SUB 5
-file1.txt
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20"
+echo \"Not transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
+mkdir basedir
+echo "hello" > basedir/test
+ln basedir/test basedir/test_link
 
 
+echo "Default transform scope"
+tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_17
-#AT_START_18
-# 18. exclude03.at:17: exclude: wildcards match slash
-at_setup_line='exclude03.at:17'
-at_desc="exclude: wildcards match slash"
-$at_quiet $as_echo_n " 18: $at_desc                 "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "18. exclude03.at:17: testing ..."
-  $at_traceon
 
+echo "Transforming hard links"
+tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
 
+echo "Not transforming hard links"
+tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Default transform scope
+test
+Transforming hard links
+test
+Not transforming hard links
+basedir/test
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude03.at:20:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/xform-h.at:39:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo \"hello\" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\\*f\\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
 
-tar cf archive --exclude='testdir*f*1' \\
-               --no-wildcards-match-slash \\
-               --exclude='testdir*f*2' \\
-               --wildcards-match-slash \\
-               --exclude='testdir*f*3' \\
-               testdir
-tar tf archive | sort
+echo \"Default transform scope\"
+tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-echo \"NEXT\"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo \"Transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"NEXT\"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir
+echo \"Not transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
 )"
-echo exclude03.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo "hello" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+echo "Default transform scope"
+tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+echo "Transforming hard links"
+tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo "Not transforming hard links"
+tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Default transform scope
+test
+Transforming hard links
+test
+Not transforming hard links
+basedir/test
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/xform-h.at:39:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo \"hello\" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+echo \"Default transform scope\"
+tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
+echo \"Transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo \"Not transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-rm -rf testdir
+mkdir basedir
+echo "hello" > basedir/test
+ln basedir/test basedir/test_link
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir1/*
-testdir/dir2/
-testdir/dir2/*
-testdir/dir2/file2
-testdir/dir3/
-testdir/dir3/*
-NEXT
-testdir/*f*1
-testdir/dir1/file1
-NEXT
-testdir/*f*1
-NEXT
-testdir/*f*1
-testdir/dir1/file1
+
+echo "Default transform scope"
+tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
+
+
+echo "Transforming hard links"
+tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
+
+
+echo "Not transforming hard links"
+tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Default transform scope
+test
+Transforming hard links
+test
+Not transforming hard links
+basedir/test
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude03.at:20:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/xform-h.at:39:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo \"hello\" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\\*f\\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
 
-tar cf archive --exclude='testdir*f*1' \\
-               --no-wildcards-match-slash \\
-               --exclude='testdir*f*2' \\
-               --wildcards-match-slash \\
-               --exclude='testdir*f*3' \\
-               testdir
-tar tf archive | sort
+echo \"Default transform scope\"
+tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-echo \"NEXT\"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo \"Transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo \"NEXT\"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir
+echo \"Not transforming hard links\"
+tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
 )"
-echo exclude03.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir basedir
+echo "hello" > basedir/test
+ln basedir/test basedir/test_link
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+echo "Default transform scope"
+tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
+echo "Transforming hard links"
+tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo "Not transforming hard links"
+tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
+tar tvf archive | sed -n 's/.*test_link link to //p'
 
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Default transform scope
+test
+Transforming hard links
+test
+Not transforming hard links
+basedir/test
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_31
+#AT_START_32
+at_fn_group_banner 32 'xform01.at:26' \
+  "transformations and GNU volume labels" "          " 6
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "32. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
-
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
-
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir1/*
-testdir/dir2/
-testdir/dir2/*
-testdir/dir2/file2
-testdir/dir3/
-testdir/dir3/*
-NEXT
-testdir/*f*1
-testdir/dir1/file1
-NEXT
-testdir/*f*1
-NEXT
-testdir/*f*1
-testdir/dir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude03.at:20:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+  { set +x
+$as_echo "$at_srcdir/xform01.at:29:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\\*f\\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
-
-tar cf archive --exclude='testdir*f*1' \\
-               --no-wildcards-match-slash \\
-               --exclude='testdir*f*2' \\
-               --wildcards-match-slash \\
-               --exclude='testdir*f*3' \\
-               testdir
-tar tf archive | sort
-
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
-
-echo \"NEXT\"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
-
-echo \"NEXT\"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
-
-rm -rf testdir
-
+genfile --file file
+tar -cf archive.tar -V /label/ file
+tar tf archive.tar
 )"
-echo exclude03.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+at_fn_check_prepare_notrace 'an embedded newline' "xform01.at:29"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file file
+tar -cf archive.tar -V /label/ file
+tar tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "/label/
+file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform01.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'exclude.at:23' \
+  "exclude" "                                        " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "33. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  { set +x
+$as_echo "$at_srcdir/exclude.at:26:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\*
-touch testdir/dir2/file2
-touch testdir/dir2/\*
-touch testdir/dir3/file3
-touch testdir/dir3/\*
-
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
-
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
-
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir1/
-testdir/dir1/*
-testdir/dir2/
-testdir/dir2/*
-testdir/dir2/file2
-testdir/dir3/
-testdir/dir3/*
-NEXT
-testdir/*f*1
-testdir/dir1/file1
-NEXT
-testdir/*f*1
-NEXT
-testdir/*f*1
-testdir/dir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20"
+mkdir dir
+echo blues > dir/blues
+echo jazz > dir/jazz
+mkdir dir/folk
+echo tagfile > dir/folk/tagfile
+echo sanjuan > dir/folk/sanjuan
+mkdir dir/rock
+echo \"Signature: 8a477f597d28d172789f06886806bc55\" > dir/rock/CACHEDIR.TAG
+echo \"test\" > dir/rock/file
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+for option in exclude-caches exclude-caches-under exclude-caches-all
+do
+  echo OPTION \$option
+  tar -cf archive.tar --\$option -v dir 2>err | sort
+  cat err
+  echo ARCHIVE
+  tar tf archive.tar | sort
+done
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude03.at:20:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+for option in exclude-tag exclude-tag-under exclude-tag-all
+do
+  echo OPTION \$option
+  tar -cf archive.tar --\${option}=tagfile -v dir 2>err | sort
+  cat err
+  echo ARCHIVE
+  tar tf archive.tar | sort
+done
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8460,93 +7456,219 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir
-mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\\*f\\*1
-touch testdir/dir1/file1
-touch testdir/dir1/\\*
-touch testdir/dir2/file2
-touch testdir/dir2/\\*
-touch testdir/dir3/file3
-touch testdir/dir3/\\*
+mkdir dir
+echo blues > dir/blues
+echo jazz > dir/jazz
+mkdir dir/folk
+echo tagfile > dir/folk/tagfile
+echo sanjuan > dir/folk/sanjuan
+mkdir dir/rock
+echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG
+echo "test" > dir/rock/file
 
-tar cf archive --exclude='testdir*f*1' \\
-               --no-wildcards-match-slash \\
-               --exclude='testdir*f*2' \\
-               --wildcards-match-slash \\
-               --exclude='testdir*f*3' \\
-               testdir
-tar tf archive | sort
+for option in exclude-caches exclude-caches-under exclude-caches-all
+do
+  echo OPTION $option
+  tar -cf archive.tar --$option -v dir 2>err | sort
+  cat err
+  echo ARCHIVE
+  tar tf archive.tar | sort
+done
 
-echo \"NEXT\"
-tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+for option in exclude-tag exclude-tag-under exclude-tag-all
+do
+  echo OPTION $option
+  tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort
+  cat err
+  echo ARCHIVE
+  tar tf archive.tar | sort
+done
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "OPTION exclude-caches
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+OPTION exclude-caches-under
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+OPTION exclude-caches-all
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; directory not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/folk/
+dir/folk/sanjuan
+dir/folk/tagfile
+dir/jazz
+OPTION exclude-tag
+dir/
+dir/blues
+dir/folk/
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/folk/
+dir/folk/tagfile
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+OPTION exclude-tag-under
+dir/
+dir/blues
+dir/folk/
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/folk/
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+OPTION exclude-tag-all
+dir/
+dir/blues
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+tar: dir/folk/: contains a cache directory tag tagfile; directory not dumped
+ARCHIVE
+dir/
+dir/blues
+dir/jazz
+dir/rock/
+dir/rock/CACHEDIR.TAG
+dir/rock/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo \"NEXT\"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-echo \"NEXT\"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir
 
-)"
-echo exclude03.at:20 >"$at_check_line_file"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'exclude01.at:19' \
+  "exclude wildcards" "                              " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "34. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude01.at:22:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
 mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
 touch testdir/dir1/file1
-touch testdir/dir1/\*
+touch testdir/dir1/\\*
 touch testdir/dir2/file2
-touch testdir/dir2/\*
+touch testdir/dir2/\\*
 touch testdir/dir3/file3
-touch testdir/dir3/\*
+touch testdir/dir3/\\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
+tar cf archive --exclude=testdir/dir1/\\* \\
+               --no-wildcards \\
+               --exclude=testdir/dir2/\\* \\
+               --wildcards \\
+               --exclude=testdir/dir3/\\* \\
                testdir
 tar tf archive | sort
 
-echo "NEXT"
+echo \"NEXT\"
 tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+tar t \"testdir/dir1/*\" -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir/dir1
+tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
 
-echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir
+tar t --wildcards \"testdir/dir1/*\" -f archive | sort
 
 rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8556,7 +7678,6 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 rm -rf testdir
 mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
 touch testdir/dir1/file1
 touch testdir/dir1/\*
 touch testdir/dir2/file2
@@ -8564,71 +7685,66 @@ touch testdir/dir2/\*
 touch testdir/dir3/file3
 touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
+tar cf archive --exclude=testdir/dir1/\* \
+               --no-wildcards \
+               --exclude=testdir/dir2/\* \
+               --wildcards \
+               --exclude=testdir/dir3/\* \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
 tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+tar t "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir/dir1
+tar t --no-wildcards "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir
+tar t --wildcards "testdir/dir1/*" -f archive | sort
 
 rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
 testdir/dir1/
-testdir/dir1/*
 testdir/dir2/
-testdir/dir2/*
 testdir/dir2/file2
 testdir/dir3/
-testdir/dir3/*
 NEXT
-testdir/*f*1
-testdir/dir1/file1
+testdir/dir1/*
 NEXT
-testdir/*f*1
+testdir/dir1/*
 NEXT
-testdir/*f*1
+testdir/dir1/*
 testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude03.at:20:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/exclude01.at:22:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
 mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\\*f\\*1
 touch testdir/dir1/file1
 touch testdir/dir1/\\*
 touch testdir/dir2/file2
@@ -8636,37 +7752,35 @@ touch testdir/dir2/\\*
 touch testdir/dir3/file3
 touch testdir/dir3/\\*
 
-tar cf archive --exclude='testdir*f*1' \\
-               --no-wildcards-match-slash \\
-               --exclude='testdir*f*2' \\
-               --wildcards-match-slash \\
-               --exclude='testdir*f*3' \\
+tar cf archive --exclude=testdir/dir1/\\* \\
+               --no-wildcards \\
+               --exclude=testdir/dir2/\\* \\
+               --wildcards \\
+               --exclude=testdir/dir3/\\* \\
                testdir
 tar tf archive | sort
 
 echo \"NEXT\"
 tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+tar t \"testdir/dir1/*\" -f archive | sort
 
 echo \"NEXT\"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir/dir1
+tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
 
 echo \"NEXT\"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir
+tar t --wildcards \"testdir/dir1/*\" -f archive | sort
 
 rm -rf testdir
-
 )"
-echo exclude03.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8676,7 +7790,6 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 rm -rf testdir
 mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
 touch testdir/dir1/file1
 touch testdir/dir1/\*
 touch testdir/dir2/file2
@@ -8684,35 +7797,102 @@ touch testdir/dir2/\*
 touch testdir/dir3/file3
 touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
+tar cf archive --exclude=testdir/dir1/\* \
+               --no-wildcards \
+               --exclude=testdir/dir2/\* \
+               --wildcards \
+               --exclude=testdir/dir3/\* \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
 tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+tar t "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir/dir1
+tar t --no-wildcards "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir
+tar t --wildcards "testdir/dir1/*" -f archive | sort
 
 rm -rf testdir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir1/
+testdir/dir2/
+testdir/dir2/file2
+testdir/dir3/
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+testdir/dir1/file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/exclude01.at:22:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
+
+tar cf archive --exclude=testdir/dir1/\\* \\
+               --no-wildcards \\
+               --exclude=testdir/dir2/\\* \\
+               --wildcards \\
+               --exclude=testdir/dir3/\\* \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive testdir
+tar t \"testdir/dir1/*\" -f archive | sort
+
+echo \"NEXT\"
+tar cf archive testdir/dir1
+tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
+
+echo \"NEXT\"
+tar cf archive testdir
+tar t --wildcards \"testdir/dir1/*\" -f archive | sort
+
+rm -rf testdir
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8722,7 +7902,6 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 rm -rf testdir
 mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
-touch testdir/\*f\*1
 touch testdir/dir1/file1
 touch testdir/dir1/\*
 touch testdir/dir2/file2
@@ -8730,136 +7909,102 @@ touch testdir/dir2/\*
 touch testdir/dir3/file3
 touch testdir/dir3/\*
 
-tar cf archive --exclude='testdir*f*1' \
-               --no-wildcards-match-slash \
-               --exclude='testdir*f*2' \
-               --wildcards-match-slash \
-               --exclude='testdir*f*3' \
+tar cf archive --exclude=testdir/dir1/\* \
+               --no-wildcards \
+               --exclude=testdir/dir2/\* \
+               --wildcards \
+               --exclude=testdir/dir3/\* \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
 tar cf archive testdir
-tar t --wildcards 'testdir/*f*1' -f archive | sort
+tar t "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir/dir1
+tar t --no-wildcards "testdir/dir1/*" -f archive | sort
 
 echo "NEXT"
-tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+tar cf archive testdir
+tar t --wildcards "testdir/dir1/*" -f archive | sort
 
 rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
 testdir/dir1/
-testdir/dir1/*
 testdir/dir2/
-testdir/dir2/*
 testdir/dir2/file2
 testdir/dir3/
-testdir/dir3/*
 NEXT
-testdir/*f*1
-testdir/dir1/file1
+testdir/dir1/*
 NEXT
-testdir/*f*1
+testdir/dir1/*
 NEXT
-testdir/*f*1
+testdir/dir1/*
 testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_18
-#AT_START_19
-# 19. exclude04.at:17: exclude: case insensitive
-at_setup_line='exclude04.at:17'
-at_desc="exclude: case insensitive"
-$at_quiet $as_echo_n " 19: $at_desc                      "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "19. exclude04.at:17: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude04.at:20:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/exclude01.at:22:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --exclude=FILE2 \\
-               --exclude=file1 \\
-               --ignore-case \\
-               --exclude=file3 \\
-               --no-ignore-case \\
-               --exclude=FILE2 \\
-               --exclude=file4 \\
+tar cf archive --exclude=testdir/dir1/\\* \\
+               --no-wildcards \\
+               --exclude=testdir/dir2/\\* \\
+               --wildcards \\
+               --exclude=testdir/dir3/\\* \\
                testdir
 tar tf archive | sort
 
-echo \"SUB 1\"
+echo \"NEXT\"
 tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar t \"testdir/dir1/*\" -f archive | sort
 
-echo \"SUB 2\"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir/dir1
+tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
 
-echo \"SUB 3\"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir
+tar t --wildcards \"testdir/dir1/*\" -f archive | sort
 
 rm -rf testdir
-
 )"
-echo exclude04.at:20 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8868,119 +8013,110 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude=testdir/dir1/\* \
+               --no-wildcards \
+               --exclude=testdir/dir2/\* \
+               --wildcards \
+               --exclude=testdir/dir3/\* \
                testdir
 tar tf archive | sort
 
-echo "SUB 1"
+echo "NEXT"
 tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar t "testdir/dir1/*" -f archive | sort
 
-echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo "NEXT"
+tar cf archive testdir/dir1
+tar t --no-wildcards "testdir/dir1/*" -f archive | sort
 
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo "NEXT"
+tar cf archive testdir
+tar t --wildcards "testdir/dir1/*" -f archive | sort
 
 rm -rf testdir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir1/
+testdir/dir2/
+testdir/dir2/file2
+testdir/dir3/
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+testdir/dir1/file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/exclude01.at:22:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude=testdir/dir1/\\* \\
+               --no-wildcards \\
+               --exclude=testdir/dir2/\\* \\
+               --wildcards \\
+               --exclude=testdir/dir3/\\* \\
                testdir
 tar tf archive | sort
 
-echo "SUB 1"
+echo \"NEXT\"
 tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar t \"testdir/dir1/*\" -f archive | sort
 
-echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir/dir1
+tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
 
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo \"NEXT\"
+tar cf archive testdir
+tar t --wildcards \"testdir/dir1/*\" -f archive | sort
 
 rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir/
-testdir/dir/File1
-testdir/dir/File2
-testdir/dir/File4
-testdir/file2
-SUB 1
-testdir/dir/File2
-SUB 2
-testdir/dir/File2
-testdir/file2
-SUB 3
-testdir/dir/File2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude04.at:20:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
@@ -8989,98 +8125,135 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --exclude=FILE2 \\
-               --exclude=file1 \\
-               --ignore-case \\
-               --exclude=file3 \\
-               --no-ignore-case \\
-               --exclude=FILE2 \\
-               --exclude=file4 \\
+tar cf archive --exclude=testdir/dir1/\* \
+               --no-wildcards \
+               --exclude=testdir/dir2/\* \
+               --wildcards \
+               --exclude=testdir/dir3/\* \
                testdir
 tar tf archive | sort
 
-echo \"SUB 1\"
+echo "NEXT"
 tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar t "testdir/dir1/*" -f archive | sort
 
-echo \"SUB 2\"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo "NEXT"
+tar cf archive testdir/dir1
+tar t --no-wildcards "testdir/dir1/*" -f archive | sort
 
-echo \"SUB 3\"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo "NEXT"
+tar cf archive testdir
+tar t --wildcards "testdir/dir1/*" -f archive | sort
 
 rm -rf testdir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir1/
+testdir/dir2/
+testdir/dir2/file2
+testdir/dir3/
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+NEXT
+testdir/dir1/*
+testdir/dir1/file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-)"
-echo exclude04.at:20 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'exclude02.at:19' \
+  "exclude: anchoring" "                             " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "35. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude02.at:22:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude=\"file1.txt\" \\
                testdir
 tar tf archive | sort
 
-echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+echo \"SUB 1\"
+tar cf archive --no-anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
-echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo \"SUB 2\"
+tar cf archive --anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo \"SUB 3\"
+tar cf archive testdir file1.txt
+tar t \"file1.txt\" -f archive | sort
 
-rm -rf testdir
+echo \"SUB 4\"
+tar t --no-anchored \"file1.txt\" -f archive | sort
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+echo \"SUB 5\"
+tar t --anchored \"file1.txt\" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
@@ -9089,121 +8262,122 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
 echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t "file1.txt" -f archive | sort
 
-rm -rf testdir
+echo "SUB 4"
+tar t --no-anchored "file1.txt" -f archive | sort
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+echo "SUB 5"
+tar t --anchored "file1.txt" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir/
-testdir/dir/File1
-testdir/dir/File2
-testdir/dir/File4
 testdir/file2
 SUB 1
-testdir/dir/File2
+testdir/
+testdir/file2
 SUB 2
-testdir/dir/File2
+testdir/
+testdir/file1.txt
 testdir/file2
 SUB 3
-testdir/dir/File2
+file1.txt
+SUB 4
+file1.txt
+testdir/file1.txt
+SUB 5
+file1.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude04.at:20:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/exclude02.at:22:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \\
-               --exclude=file1 \\
-               --ignore-case \\
-               --exclude=file3 \\
-               --no-ignore-case \\
-               --exclude=FILE2 \\
-               --exclude=file4 \\
+tar cf archive --exclude=\"file1.txt\" \\
                testdir
 tar tf archive | sort
 
 echo \"SUB 1\"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 2\"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 3\"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t \"file1.txt\" -f archive | sort
 
-rm -rf testdir
+echo \"SUB 4\"
+tar t --no-anchored \"file1.txt\" -f archive | sort
 
-)"
-echo exclude04.at:20 >"$at_check_line_file"
+echo \"SUB 5\"
+tar t --anchored \"file1.txt\" -f archive | sort
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+rm -rf testdir file1.txt
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
@@ -9212,42 +8386,117 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
 echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t "file1.txt" -f archive | sort
+
+echo "SUB 4"
+tar t --no-anchored "file1.txt" -f archive | sort
+
+echo "SUB 5"
+tar t --anchored "file1.txt" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file2
+SUB 1
+testdir/
+testdir/file2
+SUB 2
+testdir/
+testdir/file1.txt
+testdir/file2
+SUB 3
+file1.txt
+SUB 4
+file1.txt
+testdir/file1.txt
+SUB 5
+file1.txt
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/exclude02.at:22:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
 
 rm -rf testdir
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
+touch testdir/file2
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar cf archive --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 1\"
+tar cf archive --no-anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 2\"
+tar cf archive --anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 3\"
+tar cf archive testdir file1.txt
+tar t \"file1.txt\" -f archive | sort
+
+echo \"SUB 4\"
+tar t --no-anchored \"file1.txt\" -f archive | sort
+
+echo \"SUB 5\"
+tar t --anchored \"file1.txt\" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -9261,65 +8510,68 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
 echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t "file1.txt" -f archive | sort
 
-rm -rf testdir
+echo "SUB 4"
+tar t --no-anchored "file1.txt" -f archive | sort
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+echo "SUB 5"
+tar t --anchored "file1.txt" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir/
-testdir/dir/File1
-testdir/dir/File2
-testdir/dir/File4
 testdir/file2
 SUB 1
-testdir/dir/File2
+testdir/
+testdir/file2
 SUB 2
-testdir/dir/File2
+testdir/
+testdir/file1.txt
 testdir/file2
 SUB 3
-testdir/dir/File2
+file1.txt
+SUB 4
+file1.txt
+testdir/file1.txt
+SUB 5
+file1.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude04.at:20:
+              { set +x
+$as_echo "$at_srcdir/exclude02.at:22:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -9329,48 +8581,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \\
-               --exclude=file1 \\
-               --ignore-case \\
-               --exclude=file3 \\
-               --no-ignore-case \\
-               --exclude=FILE2 \\
-               --exclude=file4 \\
+tar cf archive --exclude=\"file1.txt\" \\
                testdir
 tar tf archive | sort
 
 echo \"SUB 1\"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 2\"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 3\"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t \"file1.txt\" -f archive | sort
 
-rm -rf testdir
+echo \"SUB 4\"
+tar t --no-anchored \"file1.txt\" -f archive | sort
 
-)"
-echo exclude04.at:20 >"$at_check_line_file"
+echo \"SUB 5\"
+tar t --anchored \"file1.txt\" -f archive | sort
+
+rm -rf testdir file1.txt
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -9384,114 +8634,68 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
 echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
-
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
-
-rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
-
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --anchored \
+               --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
-echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+echo "SUB 3"
+tar cf archive testdir file1.txt
+tar t "file1.txt" -f archive | sort
 
-echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+echo "SUB 4"
+tar t --no-anchored "file1.txt" -f archive | sort
 
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+echo "SUB 5"
+tar t --anchored "file1.txt" -f archive | sort
 
-rm -rf testdir
+rm -rf testdir file1.txt
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir/
-testdir/dir/File1
-testdir/dir/File2
-testdir/dir/File4
 testdir/file2
 SUB 1
-testdir/dir/File2
+testdir/
+testdir/file2
 SUB 2
-testdir/dir/File2
+testdir/
+testdir/file1.txt
 testdir/file2
 SUB 3
-testdir/dir/File2
+file1.txt
+SUB 4
+file1.txt
+testdir/file1.txt
+SUB 5
+file1.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude04.at:20:
+              { set +x
+$as_echo "$at_srcdir/exclude02.at:22:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -9501,48 +8705,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \\
-               --exclude=file1 \\
-               --ignore-case \\
-               --exclude=file3 \\
-               --no-ignore-case \\
-               --exclude=FILE2 \\
-               --exclude=file4 \\
+tar cf archive --exclude=\"file1.txt\" \\
                testdir
 tar tf archive | sort
 
 echo \"SUB 1\"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 2\"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \\
+               --exclude=\"file1.txt\" \\
+               testdir
+tar tf archive | sort
 
 echo \"SUB 3\"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t \"file1.txt\" -f archive | sort
 
-rm -rf testdir
+echo \"SUB 4\"
+tar t --no-anchored \"file1.txt\" -f archive | sort
 
-)"
-echo exclude04.at:20 >"$at_check_line_file"
+echo \"SUB 5\"
+tar t --anchored \"file1.txt\" -f archive | sort
+
+rm -rf testdir file1.txt
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -9556,177 +8758,134 @@ test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
+mkdir -p testdir
+touch file1.txt
+touch testdir/file1.txt
 touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude="file1.txt" \
                testdir
 tar tf archive | sort
 
 echo "SUB 1"
-tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+tar cf archive --no-anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+tar cf archive --anchored \
+               --exclude="file1.txt" \
+               testdir
+tar tf archive | sort
 
 echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+tar cf archive testdir file1.txt
+tar t "file1.txt" -f archive | sort
 
-rm -rf testdir
+echo "SUB 4"
+tar t --no-anchored "file1.txt" -f archive | sort
 
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo "SUB 5"
+tar t --anchored "file1.txt" -f archive | sort
+
+rm -rf testdir file1.txt
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file2
+SUB 1
+testdir/
+testdir/file2
+SUB 2
+testdir/
+testdir/file1.txt
+testdir/file2
+SUB 3
+file1.txt
+SUB 4
+file1.txt
+testdir/file1.txt
+SUB 5
+file1.txt
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'exclude03.at:19' \
+  "exclude: wildcards match slash" "                 " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "36. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude03.at:22:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
 rm -rf testdir
-mkdir -p testdir/dir
-touch testdir/file1
-touch testdir/file2
-touch testdir/file3
-touch testdir/file4
-touch testdir/dir/File1
-touch testdir/dir/File2
-touch testdir/dir/File3
-touch testdir/dir/File4
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\\*f\\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --exclude=FILE2 \
-               --exclude=file1 \
-               --ignore-case \
-               --exclude=file3 \
-               --no-ignore-case \
-               --exclude=FILE2 \
-               --exclude=file4 \
+tar cf archive --exclude='testdir*f*1' \\
+               --no-wildcards-match-slash \\
+               --exclude='testdir*f*2' \\
+               --wildcards-match-slash \\
+               --exclude='testdir*f*3' \\
                testdir
 tar tf archive | sort
 
-echo "SUB 1"
+echo \"NEXT\"
 tar cf archive testdir
-tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
-
-echo "SUB 2"
-tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
-
-echo "SUB 3"
-tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
-
-rm -rf testdir
-
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "testdir/
-testdir/dir/
-testdir/dir/File1
-testdir/dir/File2
-testdir/dir/File4
-testdir/file2
-SUB 1
-testdir/dir/File2
-SUB 2
-testdir/dir/File2
-testdir/file2
-SUB 3
-testdir/dir/File2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_19
-#AT_START_20
-# 20. exclude05.at:19: exclude: lots of excludes
-at_setup_line='exclude05.at:19'
-at_desc="exclude: lots of excludes"
-$at_quiet $as_echo_n " 20: $at_desc                      "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "20. exclude05.at:19: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude05.at:22:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
- while read name
- do
-   genfile --file \$name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+echo \"NEXT\"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo \"NEXT\"
-tar cf archive --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
 )"
-echo exclude05.at:22 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -9739,87 +8898,65 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\*f\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --anchored --exclude-from=exclfile \
+tar cf archive --exclude='testdir*f*1' \
+               --no-wildcards-match-slash \
+               --exclude='testdir*f*2' \
+               --wildcards-match-slash \
+               --exclude='testdir*f*3' \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
-
-rm -rf testdir exclfile
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+echo "NEXT"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/dir1/
+testdir/dir1/*
+testdir/dir2/
+testdir/dir2/*
+testdir/dir2/file2
+testdir/dir3/
+testdir/dir3/*
 NEXT
-testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/*f*1
+testdir/dir1/file1
+NEXT
+testdir/*f*1
+NEXT
+testdir/*f*1
+testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude05.at:22:
+              { set +x
+$as_echo "$at_srcdir/exclude03.at:22:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -9829,36 +8966,42 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
- while read name
- do
-   genfile --file \$name
- done
 
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\\*f\\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --anchored --exclude-from=exclfile \\
+tar cf archive --exclude='testdir*f*1' \\
+               --no-wildcards-match-slash \\
+               --exclude='testdir*f*2' \\
+               --wildcards-match-slash \\
+               --exclude='testdir*f*3' \\
                testdir
 tar tf archive | sort
 
 echo \"NEXT\"
-tar cf archive --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+echo \"NEXT\"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-)"
-echo exclude05.at:22 >"$at_check_line_file"
+echo \"NEXT\"
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -9871,87 +9014,65 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\*f\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive --exclude-from=exclfile \
+tar cf archive --exclude='testdir*f*1' \
+               --no-wildcards-match-slash \
+               --exclude='testdir*f*2' \
+               --wildcards-match-slash \
+               --exclude='testdir*f*3' \
                testdir
 tar tf archive | sort
 
-rm -rf testdir exclfile
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+echo "NEXT"
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+echo "NEXT"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/dir1/
+testdir/dir1/*
+testdir/dir2/
+testdir/dir2/*
+testdir/dir2/file2
+testdir/dir3/
+testdir/dir3/*
 NEXT
-testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/*f*1
+testdir/dir1/file1
+NEXT
+testdir/*f*1
+NEXT
+testdir/*f*1
+testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude05.at:22:
+              { set +x
+$as_echo "$at_srcdir/exclude03.at:22:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -9961,36 +9082,42 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
- while read name
- do
-   genfile --file \$name
- done
 
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\\*f\\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --anchored --exclude-from=exclfile \\
+tar cf archive --exclude='testdir*f*1' \\
+               --no-wildcards-match-slash \\
+               --exclude='testdir*f*2' \\
+               --wildcards-match-slash \\
+               --exclude='testdir*f*3' \\
                testdir
 tar tf archive | sort
 
 echo \"NEXT\"
-tar cf archive --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+echo \"NEXT\"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-)"
-echo exclude05.at:22 >"$at_check_line_file"
+echo \"NEXT\"
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+
+rm -rf testdir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -10003,87 +9130,65 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\*f\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --anchored --exclude-from=exclfile \
+tar cf archive --exclude='testdir*f*1' \
+               --no-wildcards-match-slash \
+               --exclude='testdir*f*2' \
+               --wildcards-match-slash \
+               --exclude='testdir*f*3' \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
-
-rm -rf testdir exclfile
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+echo "NEXT"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/dir1/
+testdir/dir1/*
+testdir/dir2/
+testdir/dir2/*
+testdir/dir2/file2
+testdir/dir3/
+testdir/dir3/*
 NEXT
-testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/*f*1
+testdir/dir1/file1
+NEXT
+testdir/*f*1
+NEXT
+testdir/*f*1
+testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude05.at:22:
+              { set +x
+$as_echo "$at_srcdir/exclude03.at:22:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -10093,36 +9198,42 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
- while read name
- do
-   genfile --file \$name
- done
 
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\\*f\\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --anchored --exclude-from=exclfile \\
+tar cf archive --exclude='testdir*f*1' \\
+               --no-wildcards-match-slash \\
+               --exclude='testdir*f*2' \\
+               --wildcards-match-slash \\
+               --exclude='testdir*f*3' \\
                testdir
 tar tf archive | sort
 
 echo \"NEXT\"
-tar cf archive --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+echo \"NEXT\"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-)"
-echo exclude05.at:22 >"$at_check_line_file"
+echo \"NEXT\"
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -10135,87 +9246,65 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\*f\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
-
-echo "NEXT"
-tar cf archive --exclude-from=exclfile \
+tar cf archive --exclude='testdir*f*1' \
+               --no-wildcards-match-slash \
+               --exclude='testdir*f*2' \
+               --wildcards-match-slash \
+               --exclude='testdir*f*3' \
                testdir
 tar tf archive | sort
 
-rm -rf testdir exclfile
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+echo "NEXT"
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+echo "NEXT"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/dir1/
+testdir/dir1/*
+testdir/dir2/
+testdir/dir2/*
+testdir/dir2/file2
+testdir/dir3/
+testdir/dir3/*
 NEXT
-testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/*f*1
+testdir/dir1/file1
+NEXT
+testdir/*f*1
+NEXT
+testdir/*f*1
+testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/exclude05.at:22:
+              { set +x
+$as_echo "$at_srcdir/exclude03.at:22:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -10225,36 +9314,42 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
- while read name
- do
-   genfile --file \$name
- done
 
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\\*f\\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\\*
+touch testdir/dir2/file2
+touch testdir/dir2/\\*
+touch testdir/dir3/file3
+touch testdir/dir3/\\*
 
-tar cf archive --anchored --exclude-from=exclfile \\
+tar cf archive --exclude='testdir*f*1' \\
+               --no-wildcards-match-slash \\
+               --exclude='testdir*f*2' \\
+               --wildcards-match-slash \\
+               --exclude='testdir*f*3' \\
                testdir
 tar tf archive | sort
 
 echo \"NEXT\"
-tar cf archive --exclude-from=exclfile \\
-               testdir
-tar tf archive | sort
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+echo \"NEXT\"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-)"
-echo exclude05.at:22 >"$at_check_line_file"
+echo \"NEXT\"
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
+
+rm -rf testdir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -10267,274 +9362,205 @@ rm -rf *
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+rm -rf testdir
+mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
+touch testdir/\*f\*1
+touch testdir/dir1/file1
+touch testdir/dir1/\*
+touch testdir/dir2/file2
+touch testdir/dir2/\*
+touch testdir/dir3/file3
+touch testdir/dir3/\*
 
-tar cf archive --anchored --exclude-from=exclfile \
+tar cf archive --exclude='testdir*f*1' \
+               --no-wildcards-match-slash \
+               --exclude='testdir*f*2' \
+               --wildcards-match-slash \
+               --exclude='testdir*f*3' \
                testdir
 tar tf archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
-
-rm -rf testdir exclfile
-
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-rm -rf testdir exclfile
-mkdir -p testdir
-awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
- while read name
- do
-   genfile --file $name
- done
-
-awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+tar cf archive testdir
+tar t --wildcards 'testdir/*f*1' -f archive | sort
 
-tar cf archive --anchored --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+echo "NEXT"
+tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
 echo "NEXT"
-tar cf archive --exclude-from=exclfile \
-               testdir
-tar tf archive | sort
+tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
 
-rm -rf testdir exclfile
+rm -rf testdir
 
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/dir1/
+testdir/dir1/*
+testdir/dir2/
+testdir/dir2/*
+testdir/dir2/file2
+testdir/dir3/
+testdir/dir3/*
 NEXT
-testdir/
-testdir/file10
-testdir/file11
-testdir/file9
+testdir/*f*1
+testdir/dir1/file1
+NEXT
+testdir/*f*1
+NEXT
+testdir/*f*1
+testdir/dir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_20
-#AT_START_21
-# 21. exclude06.at:24: exclude: long files in pax archives
-at_setup_line='exclude06.at:24'
-at_desc="exclude: long files in pax archives"
-$at_quiet $as_echo_n " 21: $at_desc            "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'exclude04.at:19' \
+  "exclude: case insensitive" "                      " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "21. exclude06.at:24: testing ..."
+  $as_echo "37. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/exclude06.at:29:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+  { set +x
+$as_echo "$at_srcdir/exclude04.at:22:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
-mkdir out
-tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
-find out -type f
-)"
-echo exclude06.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
 
+tar cf archive --exclude=FILE2 \\
+               --exclude=file1 \\
+               --ignore-case \\
+               --exclude=file3 \\
+               --no-ignore-case \\
+               --exclude=FILE2 \\
+               --exclude=file4 \\
+               testdir
+tar tf archive | sort
 
-install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
-
-tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
-mkdir out
-tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
-find out -type f
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
-
-
-install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
-genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
-
-tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
-mkdir out
-tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
-find out -type f
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "out/one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/exclude06.at:29"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_21
-#AT_START_22
-# 22. delete01.at:23: deleting a member after a big one
-at_setup_line='delete01.at:23'
-at_desc="deleting a member after a big one"
-$at_quiet $as_echo_n " 22: $at_desc              "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "22. delete01.at:23: testing ..."
-  $at_traceon
-
+echo \"SUB 1\"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
 
+echo \"SUB 2\"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
 
+echo \"SUB 3\"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
 
+rm -rf testdir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/delete01.at:26:
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive)"
-echo delete01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \
+               --exclude=file1 \
+               --ignore-case \
+               --exclude=file3 \
+               --no-ignore-case \
+               --exclude=FILE2 \
+               --exclude=file4 \
+               testdir
+tar tf archive | sort
+
+echo "SUB 1"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo "SUB 2"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo "SUB 3"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir/
+testdir/dir/File1
+testdir/dir/File2
+testdir/dir/File4
+testdir/file2
+SUB 1
+testdir/dir/File2
+SUB 2
+testdir/dir/File2
+testdir/file2
+SUB 3
+testdir/dir/File2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude04.at:22:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -10543,32 +9569,46 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive)"
-echo delete01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \\
+               --exclude=file1 \\
+               --ignore-case \\
+               --exclude=file3 \\
+               --no-ignore-case \\
+               --exclude=FILE2 \\
+               --exclude=file4 \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 1\"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo \"SUB 2\"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo \"SUB 3\"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -10577,25 +9617,69 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \
+               --exclude=file1 \
+               --ignore-case \
+               --exclude=file3 \
+               --no-ignore-case \
+               --exclude=FILE2 \
+               --exclude=file4 \
+               testdir
+tar tf archive | sort
+
+echo "SUB 1"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo "SUB 2"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo "SUB 3"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir/
+testdir/dir/File1
+testdir/dir/File2
+testdir/dir/File4
+testdir/file2
+SUB 1
+testdir/dir/File2
+SUB 2
+testdir/dir/File2
+testdir/file2
+SUB 3
+testdir/dir/File2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude04.at:22:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -10604,59 +9688,117 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive)"
-echo delete01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \\
+               --exclude=file1 \\
+               --ignore-case \\
+               --exclude=file3 \\
+               --no-ignore-case \\
+               --exclude=FILE2 \\
+               --exclude=file4 \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 1\"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo \"SUB 2\"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo \"SUB 3\"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \
+               --exclude=file1 \
+               --ignore-case \
+               --exclude=file3 \
+               --no-ignore-case \
+               --exclude=FILE2 \
+               --exclude=file4 \
+               testdir
+tar tf archive | sort
+
+echo "SUB 1"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo "SUB 2"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo "SUB 3"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir/
+testdir/dir/File1
+testdir/dir/File2
+testdir/dir/File4
+testdir/file2
+SUB 1
+testdir/dir/File2
+SUB 2
+testdir/dir/File2
+testdir/file2
+SUB 3
+testdir/dir/File2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude04.at:22:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -10665,32 +9807,46 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive)"
-echo delete01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \\
+               --exclude=file1 \\
+               --ignore-case \\
+               --exclude=file3 \\
+               --no-ignore-case \\
+               --exclude=FILE2 \\
+               --exclude=file4 \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 1\"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo \"SUB 2\"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo \"SUB 3\"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -10699,25 +9855,69 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \
+               --exclude=file1 \
+               --ignore-case \
+               --exclude=file3 \
+               --no-ignore-case \
+               --exclude=FILE2 \
+               --exclude=file4 \
+               testdir
+tar tf archive | sort
+
+echo "SUB 1"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo "SUB 2"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo "SUB 3"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir/
+testdir/dir/File1
+testdir/dir/File2
+testdir/dir/File4
+testdir/file2
+SUB 1
+testdir/dir/File2
+SUB 2
+testdir/dir/File2
+testdir/file2
+SUB 3
+testdir/dir/File2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude04.at:22:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -10726,16 +9926,46 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive)"
-echo delete01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \\
+               --exclude=file1 \\
+               --ignore-case \\
+               --exclude=file3 \\
+               --no-ignore-case \\
+               --exclude=FILE2 \\
+               --exclude=file4 \\
+               testdir
+tar tf archive | sort
+
+echo \"SUB 1\"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo \"SUB 2\"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo \"SUB 3\"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -10744,65 +9974,90 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 50000 --file file1
-genfile -l 1024 --file file2
-tar cf archive file1 file2
-tar f archive --delete file2
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir
+mkdir -p testdir/dir
+touch testdir/file1
+touch testdir/file2
+touch testdir/file3
+touch testdir/file4
+touch testdir/dir/File1
+touch testdir/dir/File2
+touch testdir/dir/File3
+touch testdir/dir/File4
+
+tar cf archive --exclude=FILE2 \
+               --exclude=file1 \
+               --ignore-case \
+               --exclude=file3 \
+               --no-ignore-case \
+               --exclude=FILE2 \
+               --exclude=file4 \
+               testdir
+tar tf archive | sort
+
+echo "SUB 1"
+tar cf archive testdir
+tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
+
+echo "SUB 2"
+tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
+
+echo "SUB 3"
+tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
+
+rm -rf testdir
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/dir/
+testdir/dir/File1
+testdir/dir/File2
+testdir/dir/File4
+testdir/file2
+SUB 1
+testdir/dir/File2
+SUB 2
+testdir/dir/File2
+testdir/file2
+SUB 3
+testdir/dir/File2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_22
-#AT_START_23
-# 23. delete02.at:23: deleting a member from stdin archive
-at_setup_line='delete02.at:23'
-at_desc="deleting a member from stdin archive"
-$at_quiet $as_echo_n " 23: $at_desc           "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'exclude05.at:21' \
+  "exclude: lots of excludes" "                      " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "23. delete02.at:23: testing ..."
+  $as_echo "38. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/delete02.at:26:
+  { set +x
+$as_echo "$at_srcdir/exclude05.at:24:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -10811,38 +10066,34 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2)"
-echo delete02.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
+ while read name
+ do
+   genfile --file \$name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -10851,33 +10102,53 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "1
-2
-3
-separator
-1
-3
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
+ while read name
+ do
+   genfile --file $name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+echo "NEXT"
+tar cf archive --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+NEXT
+testdir/
+testdir/file10
+testdir/file11
+testdir/file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete02.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude05.at:24:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -10886,38 +10157,34 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2)"
-echo delete02.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
+ while read name
+ do
+   genfile --file \$name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -10926,73 +10193,89 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "1
-2
-3
-separator
-1
-3
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete02.at:26:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2)"
-echo delete02.at:26 >"$at_check_line_file"
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
+ while read name
+ do
+   genfile --file $name
+ done
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+echo "NEXT"
+tar cf archive --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+NEXT
+testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/exclude05.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
+ while read name
+ do
+   genfile --file \$name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -11001,33 +10284,53 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "1
-2
-3
-separator
-1
-3
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
+ while read name
+ do
+   genfile --file $name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+echo "NEXT"
+tar cf archive --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+NEXT
+testdir/
+testdir/file10
+testdir/file11
+testdir/file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete02.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude05.at:24:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11036,38 +10339,34 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2)"
-echo delete02.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
+ while read name
+ do
+   genfile --file \$name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11076,33 +10375,53 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "1
-2
-3
-separator
-1
-3
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
+ while read name
+ do
+   genfile --file $name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+echo "NEXT"
+tar cf archive --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+NEXT
+testdir/
+testdir/file10
+testdir/file11
+testdir/file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete02.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude05.at:24:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -11111,19 +10430,34 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2)"
-echo delete02.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
+ while read name
+ do
+   genfile --file \$name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+echo \"NEXT\"
+tar cf archive --exclude-from=exclfile \\
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -11132,68 +10466,66 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 3073 -p zeros --file 1
-cp 1 2
-cp 2 3
-tar cf archive 1 2 3
-tar tf archive
-cat archive | tar f - --delete 2 > archive2
-echo separator
-tar tf archive2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "1
-2
-3
-separator
-1
-3
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+rm -rf testdir exclfile
+mkdir -p testdir
+awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
+ while read name
+ do
+   genfile --file $name
+ done
+
+awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
+
+tar cf archive --anchored --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+echo "NEXT"
+tar cf archive --exclude-from=exclfile \
+               testdir
+tar tf archive | sort
+
+rm -rf testdir exclfile
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "testdir/
+testdir/file10
+testdir/file11
+testdir/file9
+NEXT
+testdir/
+testdir/file10
+testdir/file11
+testdir/file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_23
-#AT_START_24
-# 24. delete03.at:21: deleting members with long names
-at_setup_line='delete03.at:21'
-at_desc="deleting members with long names"
-$at_quiet $as_echo_n " 24: $at_desc               "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'exclude06.at:26' \
+  "exclude: long files in pax archives" "            " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "24. delete03.at:21: testing ..."
+  $as_echo "39. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11202,91 +10534,129 @@ echo "#                             -*- compilation -*-" >> "$at_group_log"
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/delete03.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/exclude06.at:31:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f \$prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch \$prefix\$i
-done
-tar -cf archive ./\$prefix* &&
- tar --delete -f archive ./\${prefix}5 &&
- tar -tf archive
-)"
-echo delete03.at:26 >"$at_check_line_file"
+install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
+genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
+genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
 
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
+mkdir out
+tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
+find out -type f
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "exclude06.at:31"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
+genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
+genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
+
+tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
+mkdir out
+tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
+find out -type f
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "out/one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude06.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'exclude07.at:19' \
+  "exclude: --exclude-backups option" "              " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "40. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude07.at:22:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file \"dir/.#file\"
+genfile --file \"dir/#file#\"
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
+tar -v -c -f archive --exclude-backups dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete03.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude07.at:22:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -11295,21 +10665,16 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file \"dir/.#file\"
+genfile --file \"dir/#file#\"
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f \$prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch \$prefix\$i
-done
-tar -cf archive ./\$prefix* &&
- tar --delete -f archive ./\${prefix}5 &&
- tar -tf archive
+tar -v -c -f archive --exclude-backups dir
 )"
-echo delete03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -11318,58 +10683,76 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/exclude07.at:22:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file \"dir/.#file\"
+genfile --file \"dir/#file#\"
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
+tar -v -c -f archive --exclude-backups dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete03.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude07.at:22:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11378,21 +10761,16 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file \"dir/.#file\"
+genfile --file \"dir/#file#\"
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f \$prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch \$prefix\$i
-done
-tar -cf archive ./\$prefix* &&
- tar --delete -f archive ./\${prefix}5 &&
- tar -tf archive
+tar -v -c -f archive --exclude-backups dir
 )"
-echo delete03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11401,82 +10779,97 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/exclude07.at:22:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file \"dir/.#file\"
+genfile --file \"dir/#file#\"
 
-prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
-rm -f $prefix*
-for i in 1 2 3 4 5 6 7 8 9
-do touch $prefix$i
-done
-tar -cf archive ./$prefix* &&
- tar --delete -f archive ./${prefix}5 &&
- tar -tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
-./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
+tar -v -c -f archive --exclude-backups dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+genfile --file dir/file
+genfile --file dir/file~
+genfile --file "dir/.#file"
+genfile --file "dir/#file#"
+
+tar -v -c -f archive --exclude-backups dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_24
-#AT_START_25
-# 25. delete04.at:23: deleting a large last member
-at_setup_line='delete04.at:23'
-at_desc="deleting a large last member"
-$at_quiet $as_echo_n " 25: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'exclude08.at:36' \
+  "--exclude-tag option" "                           " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "25. delete04.at:23: testing ..."
+  $as_echo "41. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/delete04.at:26:
+  { set +x
+$as_echo "$at_srcdir/exclude08.at:39:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -11485,50 +10878,14 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-)"
-echo delete04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -11537,42 +10894,30 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-file3
-file4
-file5
-file6
-file7
-file8
-file9
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete04.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude08.at:39:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -11581,50 +10926,14 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-)"
-echo delete04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -11633,42 +10942,30 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-file3
-file4
-file5
-file6
-file7
-file8
-file9
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete04.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude08.at:39:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -11677,50 +10974,14 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-)"
-echo delete04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -11729,42 +10990,30 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-file3
-file4
-file5
-file6
-file7
-file8
-file9
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete04.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude08.at:39:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11773,50 +11022,14 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-)"
-echo delete04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -11825,42 +11038,30 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-file3
-file4
-file5
-file6
-file7
-file8
-file9
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete04.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude08.at:39:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -11869,25 +11070,14 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-)"
-echo delete04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -11896,23 +11086,67 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'exclude09.at:37' \
+  "--exclude-tag option and --listed-incremental" "  " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "42. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude09.at:40:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude09.at:40"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -11921,108 +11155,163 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l      3 -f file1
-genfile -l      5 -f file2
-genfile -l      3 -f file3
-genfile -l      6 -f file4
-genfile -l     24 -f file5
-genfile -l     13 -f file6
-genfile -l   1385 -f file7
-genfile -l     30 -f file8
-genfile -l     10 -f file9
-genfile -l 256000 -f file10
-tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
-tar f archive --delete file10
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-file3
-file4
-file5
-file6
-file7
-file8
-file9
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/subdir/excludeme
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude09.at:40"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_25
-#AT_START_26
-# 26. delete05.at:27: deleting non-existing member
-at_setup_line='delete05.at:27'
-at_desc="deleting non-existing member"
-$at_quiet $as_echo_n " 26: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'exclude10.at:38' \
+  "--exclude-tag option in incremental pass" "       " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "26. delete05.at:27: testing ..."
+  $as_echo "43. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/delete05.at:30:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/exclude10.at:41:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho \"# Level 0\"
+tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho \"# Level 1\"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
 )"
-echo delete05.at:30 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude10.at:41"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+etest/subdir/
+etest/subdir/excludeme
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude10.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'exclude11.at:36' \
+  "--exclude-tag-under option" "                     " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "44. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  { set +x
+$as_echo "$at_srcdir/exclude11.at:39:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12031,33 +11320,29 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
-tar: Exiting with failure status due to previous errors
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "en
-to
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete05.at:30:
+              { set +x
+$as_echo "$at_srcdir/exclude11.at:39:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12066,20 +11351,14 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-)"
-echo delete05.at:30 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12088,53 +11367,29 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
-
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
-tar: Exiting with failure status due to previous errors
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "en
-to
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete05.at:30:
+              { set +x
+$as_echo "$at_srcdir/exclude11.at:39:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12143,20 +11398,14 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-)"
-echo delete05.at:30 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12165,53 +11414,29 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
-
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
-tar: Exiting with failure status due to previous errors
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "en
-to
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete05.at:30:
+              { set +x
+$as_echo "$at_srcdir/exclude11.at:39:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12220,20 +11445,14 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-)"
-echo delete05.at:30 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12242,53 +11461,97 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/exclude11.at:39:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
-tar: Exiting with failure status due to previous errors
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "en
-to
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/delete05.at:30:
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'exclude12.at:37' \
+  "--exclude-tag-under and --listed-incremental" "   " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "45. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude12.at:40:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12297,20 +11560,14 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-)"
-echo delete05.at:30 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude12.at:40"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12319,18 +11576,76 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/subdir/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude12.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'exclude13.at:39' \
+  "--exclude-tag-under option in incremental pass" " " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "46. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude13.at:42:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho \"# Level 0\"
+tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho \"# Level 1\"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude13.at:42"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12339,57 +11654,67 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f en
-genfile -l 1024 -f to
 
-tar cf archive en to
-# Make sure we don't use bogus blocking factor.
-# GNU tar up to and including 1.14.91 produced an empty archive this way:
-tar --file archive --blocking-factor=20 --delete tre
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
-tar: Exiting with failure status due to previous errors
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "en
-to
+echo >>"$at_stdout"; $as_echo "# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+etest/subdir/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/exclude13.at:42"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_26
-#AT_START_27
-# 27. extrac01.at:23: extract over an existing directory
-at_setup_line='extrac01.at:23'
-at_desc="extract over an existing directory"
-$at_quiet $as_echo_n " 27: $at_desc             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'exclude14.at:36' \
+  "--exclude-tag-all option" "                       " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "27. extrac01.at:23: testing ..."
+  $as_echo "47. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac01.at:26:
+  { set +x
+$as_echo "$at_srcdir/exclude14.at:39:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12398,32 +11723,14 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-)"
-echo extrac01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12432,23 +11739,28 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
 
-$at_failed && at_func_log_failure
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude14.at:39:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12457,32 +11769,14 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-)"
-echo extrac01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12491,23 +11785,28 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac01.at:26:
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/exclude14.at:39:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12516,32 +11815,14 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-)"
-echo extrac01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12550,23 +11831,28 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
 
-$at_failed && at_func_log_failure
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude14.at:39:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12575,32 +11861,14 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-)"
-echo extrac01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12609,23 +11877,28 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
 
-$at_failed && at_func_log_failure
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac01.at:26:
+              { set +x
+$as_echo "$at_srcdir/exclude14.at:39:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12634,16 +11907,14 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-)"
-echo extrac01.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12652,14 +11923,65 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'exclude15.at:36' \
+  "--exclude-tag-all and --listed-incremental" "     " 7
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "48. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/exclude15.at:39:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude15.at:39"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12668,87 +11990,158 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar cf archive directory || exit 1
-tar xf archive --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
 
-$at_failed && at_func_log_failure
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "etest/
+etest/top-level-file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude15.at:39"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_27
-#AT_START_28
-# 28. extrac02.at:23: extracting symlinks over an existing file
-at_setup_line='extrac02.at:23'
-at_desc="extracting symlinks over an existing file"
-$at_quiet $as_echo_n " 28: $at_desc      "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'exclude16.at:38' \
+  "--exclude-tag-all option in incremental pass" "   " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "28. extrac02.at:23: testing ..."
+  $as_echo "49. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-# FIXME: Skip if symlinks are not supported on the system
-
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac02.at:28:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/exclude16.at:41:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho \"# Level 0\"
+tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho \"# Level 1\"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
 )"
-echo extrac02.at:28 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'a `...` command substitution' "exclude16.at:41"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkexcltest etest
+rm etest/subdir/excludeme
+decho "# Level 0"
+tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
+touch etest/subdir/excludeme
+touch etest/subdir/otherfile
+
+decho "# Level 1"
+cp snar-0 snar-1
+tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Level 0
+tar: etest: Directory is new
+tar: etest/subdir: Directory is new
+# Level 1
+tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Level 0
+etest/
+etest/subdir/
+etest/subdir/subdir-file
+etest/top-level-file
+# Level 1
+etest/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/exclude16.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'delete01.at:23' \
+  "deleting a member after a big one" "              " 8
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "50. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/delete01.at:26:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12757,25 +12150,24 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
-
-$at_failed && at_func_log_failure
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac02.at:28:
+              { set +x
+$as_echo "$at_srcdir/delete01.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12784,18 +12176,13 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-)"
-echo extrac02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12804,81 +12191,39 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/delete01.at:26:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac02.at:28:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
-
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-)"
-echo extrac02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12887,25 +12232,24 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
-
-$at_failed && at_func_log_failure
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac02.at:28:
+              { set +x
+$as_echo "$at_srcdir/delete01.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12914,36 +12258,13 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-)"
-echo extrac02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12952,25 +12273,24 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
-
-$at_failed && at_func_log_failure
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac02.at:28:
+              { set +x
+$as_echo "$at_srcdir/delete01.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12979,36 +12299,13 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-)"
-echo extrac02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13017,49 +12314,45 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-touch file
-ln -s file link 2> /dev/null || ln file link
-tar cf archive link
-rm link
-touch link
-tar xf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
-
-$at_failed && at_func_log_failure
+genfile -l 50000 --file file1
+genfile -l 1024 --file file2
+tar cf archive file1 file2
+tar f archive --delete file2
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_28
-#AT_START_29
-# 29. extrac03.at:23: extraction loops
-at_setup_line='extrac03.at:23'
-at_desc="extraction loops"
-$at_quiet $as_echo_n " 29: $at_desc                               "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'delete02.at:23' \
+  "deleting a member from stdin archive" "           " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "29. extrac03.at:23: testing ..."
+  $as_echo "51. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac03.at:26:
+  { set +x
+$as_echo "$at_srcdir/delete02.at:26:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -13068,30 +12361,16 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
-echo separator
-tar -xPvf archive --warning=no-timestamp)"
-echo extrac03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar tf archive2)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -13100,26 +12379,32 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/../directory/
+tar tf archive2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+2
+3
 separator
-directory/../directory/
+1
+3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac03.at:26:
+              { set +x
+$as_echo "$at_srcdir/delete02.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13128,30 +12413,16 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
-echo separator
-tar -xPvf archive --warning=no-timestamp)"
-echo extrac03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar tf archive2)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13160,26 +12431,32 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/../directory/
+tar tf archive2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+2
+3
 separator
-directory/../directory/
+1
+3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac03.at:26:
+              { set +x
+$as_echo "$at_srcdir/delete02.at:26:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -13188,15 +12465,16 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp)"
-echo extrac03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar tf archive2)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -13205,41 +12483,32 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-tar -cPvf archive directory/../directory
-echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/../directory/
+tar tf archive2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+2
+3
 separator
-directory/../directory/
+1
+3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac03.at:26:
+              { set +x
+$as_echo "$at_srcdir/delete02.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -13248,30 +12517,16 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
-echo separator
-tar -xPvf archive --warning=no-timestamp)"
-echo extrac03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar tf archive2)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -13280,26 +12535,32 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/../directory/
+tar tf archive2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+2
+3
 separator
-directory/../directory/
+1
+3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac03.at:26:
+              { set +x
+$as_echo "$at_srcdir/delete02.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13308,30 +12569,16 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
-echo separator
-tar -xPvf archive --warning=no-timestamp)"
-echo extrac03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar tf archive2)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13340,146 +12587,113 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-tar -cPvf archive directory/../directory
+genfile -l 3073 -p zeros --file 1
+cp 1 2
+cp 2 3
+tar cf archive 1 2 3
+tar tf archive
+cat archive | tar f - --delete 2 > archive2
 echo separator
-tar -xPvf archive --warning=no-timestamp) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/../directory/
+tar tf archive2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "1
+2
+3
 separator
-directory/../directory/
+1
+3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_29
-#AT_START_30
-# 30. extrac04.at:23: extract + fnmatch
-at_setup_line='extrac04.at:23'
-at_desc="extract + fnmatch"
-$at_quiet $as_echo_n " 30: $at_desc                              "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'delete03.at:21' \
+  "deleting members with long names" "               " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "30. extrac04.at:23: testing ..."
+  $as_echo "52. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac04.at:26:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \\
-  --exclude='./*1' \\
-  --exclude='d*/*1' \\
-  --exclude='d*/s*/*2' | sort
-)"
-echo extrac04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/delete03.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f \$prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch \$prefix\$i
+done
+tar -cf archive ./\$prefix* &&
+ tar --delete -f archive ./\${prefix}5 &&
+ tar -tf archive
+)"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/file2
-directory/subdirectory/
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f $prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch $prefix$i
+done
+tar -cf archive ./$prefix* &&
+ tar --delete -f archive ./${prefix}5 &&
+ tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac04.at:26:
+              { set +x
+$as_echo "$at_srcdir/delete03.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13489,26 +12703,17 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \\
-  --exclude='./*1' \\
-  --exclude='d*/*1' \\
-  --exclude='d*/s*/*2' | sort
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f \$prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch \$prefix\$i
+done
+tar -cf archive ./\$prefix* &&
+ tar --delete -f archive ./\${prefix}5 &&
+ tar -tf archive
 )"
-echo extrac04.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13518,312 +12723,407 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f $prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch $prefix$i
+done
+tar -cf archive ./$prefix* &&
+ tar --delete -f archive ./${prefix}5 &&
+ tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/delete03.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f \$prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch \$prefix\$i
+done
+tar -cf archive ./\$prefix* &&
+ tar --delete -f archive ./\${prefix}5 &&
+ tar -tf archive
+)"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/file2
-directory/subdirectory/
+
+prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
+rm -f $prefix*
+for i in 1 2 3 4 5 6 7 8 9
+do touch $prefix$i
+done
+tar -cf archive ./$prefix* &&
+ tar --delete -f archive ./${prefix}5 &&
+ tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
+./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac04.at:26:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \\
-  --exclude='./*1' \\
-  --exclude='d*/*1' \\
-  --exclude='d*/s*/*2' | sort
-)"
-echo extrac04.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'delete04.at:23' \
+  "deleting a large last member" "                   " 8
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "53. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+
+  { set +x
+$as_echo "$at_srcdir/delete04.at:26:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/file2
-directory/subdirectory/
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
+file5
+file6
+file7
+file8
+file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac04.at:26:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/delete04.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \\
-  --exclude='./*1' \\
-  --exclude='d*/*1' \\
-  --exclude='d*/s*/*2' | sort
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
 )"
-echo extrac04.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
+file5
+file6
+file7
+file8
+file9
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/delete04.at:26:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/file2
-directory/subdirectory/
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
+file5
+file6
+file7
+file8
+file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac04.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/delete04.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \\
-  --exclude='./*1' \\
-  --exclude='d*/*1' \\
-  --exclude='d*/s*/*2' | sort
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
 )"
-echo extrac04.at:26 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
+file5
+file6
+file7
+file8
+file9
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/delete04.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13832,122 +13132,240 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-touch file1
-mkdir directory
-mkdir directory/subdirectory
-touch directory/file1
-touch directory/file2
-touch directory/subdirectory/file1
-touch directory/subdirectory/file2
-tar -cf archive ./file1 directory
-tar -tf archive \
-  --exclude='./*1' \
-  --exclude='d*/*1' \
-  --exclude='d*/s*/*2' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/file2
-directory/subdirectory/
+genfile -l      3 -f file1
+genfile -l      5 -f file2
+genfile -l      3 -f file3
+genfile -l      6 -f file4
+genfile -l     24 -f file5
+genfile -l     13 -f file6
+genfile -l   1385 -f file7
+genfile -l     30 -f file8
+genfile -l     10 -f file9
+genfile -l 256000 -f file10
+tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
+tar f archive --delete file10
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+file3
+file4
+file5
+file6
+file7
+file8
+file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_30
-#AT_START_31
-# 31. extrac05.at:30: extracting selected members from pax
-at_setup_line='extrac05.at:30'
-at_desc="extracting selected members from pax"
-$at_quiet $as_echo_n " 31: $at_desc           "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'delete05.at:27' \
+  "deleting non-existing member" "                   " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "31. extrac05.at:30: testing ..."
+  $as_echo "54. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-cat >list <<'_ATEOF'
-jeden
-cztery
-_ATEOF
-
 
 
-
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac05.at:38:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+  { set +x
+$as_echo "$at_srcdir/delete05.at:30:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
-genfile --length 118 --file jeden
-genfile --length 223 --file dwa
-genfile --length 517 --file trzy
-genfile --length 110 --file cztery
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-tar cf archive jeden dwa trzy cztery || exit 1
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir dir
-cd dir
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "en
+to
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-cd ..
+              { set +x
+$as_echo "$at_srcdir/delete05.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile -l 1024 -f en
+genfile -l 1024 -f to
+
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
 )"
-echo extrac05.at:38 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+genfile -l 1024 -f en
+genfile -l 1024 -f to
+
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "en
+to
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/delete05.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
-genfile --length 118 --file jeden
-genfile --length 223 --file dwa
-genfile --length 517 --file trzy
-genfile --length 110 --file cztery
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-tar cf archive jeden dwa trzy cztery || exit 1
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir dir
-cd dir
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "en
+to
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-cd ..
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+              { set +x
+$as_echo "$at_srcdir/delete05.at:30:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile -l 1024 -f en
+genfile -l 1024 -f to
+
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -13956,60 +13374,106 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
-genfile --length 118 --file jeden
-genfile --length 223 --file dwa
-genfile --length 517 --file trzy
-genfile --length 110 --file cztery
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-tar cf archive jeden dwa trzy cztery || exit 1
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "en
+to
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir dir
-cd dir
+              { set +x
+$as_echo "$at_srcdir/delete05.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
+genfile -l 1024 -f en
+genfile -l 1024 -f to
 
-cd ..
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "jeden
-cztery
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile -l 1024 -f en
+genfile -l 1024 -f to
+
+tar cf archive en to
+# Make sure we don't use bogus blocking factor.
+# GNU tar up to and including 1.14.91 produced an empty archive this way:
+tar --file archive --blocking-factor=20 --delete tre
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "en
+to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac05.at:38"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_31
-#AT_START_32
-# 32. extrac06.at:33: mode of extracted directories
-at_setup_line='extrac06.at:33'
-at_desc="mode of extracted directories"
-$at_quiet $as_echo_n " 32: $at_desc                  "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'extrac01.at:23' \
+  "extract over an existing directory" "             " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "32. extrac06.at:33: testing ..."
+  $as_echo "55. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac06.at:36:
+  { set +x
+$as_echo "$at_srcdir/extrac01.at:26:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -14018,131 +13482,259 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+              { set +x
+$as_echo "$at_srcdir/extrac01.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-# After both restores, the directory mode should be 755
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
 )"
-echo extrac06.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Force umask
-umask 022
+              { set +x
+$as_echo "$at_srcdir/extrac01.at:26:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Archive it
-tar cf arc directory
+              { set +x
+$as_echo "$at_srcdir/extrac01.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+              { set +x
+$as_echo "$at_srcdir/extrac01.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+touch directory/file
+tar cf archive directory || exit 1
+tar xf archive --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Force umask
-umask 022
 
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
 
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
 
-# Archive it
-tar cf arc directory
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'extrac02.at:23' \
+  "extracting symlinks over an existing file" "      " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "56. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
 
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+# FIXME: Skip if symlinks are not supported on the system
 
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "777
-755
-755
-755
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36"
 
-$at_failed && at_func_log_failure
+
+  { set +x
+$as_echo "$at_srcdir/extrac02.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac06.at:36:
+              { set +x
+$as_echo "$at_srcdir/extrac02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -14151,39 +13743,15 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
-
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
 )"
-echo extrac06.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -14192,170 +13760,270 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
+              { set +x
+$as_echo "$at_srcdir/extrac02.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-# Archive it
-tar cf arc directory
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
+              { set +x
+$as_echo "$at_srcdir/extrac02.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/extrac02.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-# Force umask
-umask 022
+touch file
+ln -s file link 2> /dev/null || ln file link
+tar cf archive link
+rm link
+touch link
+tar xf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
 
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
 
-# Archive it
-tar cf arc directory
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'extrac03.at:23' \
+  "extraction loops" "                               " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "57. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
 
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "777
-755
-755
-755
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac06.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+  { set +x
+$as_echo "$at_srcdir/extrac03.at:26:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
+mkdir directory
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/../directory/
+separator
+directory/../directory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+              { set +x
+$as_echo "$at_srcdir/extrac03.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
+mkdir directory
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-# After both restores, the directory mode should be 755
-)"
-echo extrac06.at:36 >"$at_check_line_file"
+mkdir directory
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/../directory/
+separator
+directory/../directory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/extrac03.at:26:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -14364,51 +14032,25 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "777
-755
-755
-755
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/../directory/
+separator
+directory/../directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac06.at:36:
+              { set +x
+$as_echo "$at_srcdir/extrac03.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14417,78 +14059,12 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
-
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-)"
-echo extrac06.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14497,51 +14073,25 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "777
-755
-755
-755
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/../directory/
+separator
+directory/../directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac06.at:36:
+              { set +x
+$as_echo "$at_srcdir/extrac03.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -14550,78 +14100,12 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
-
-# Create a directory
-mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-)"
-echo extrac06.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -14630,452 +14114,398 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-# Force umask
-umask 022
-
-# Make sure user's umask is honored, even if we are superuser
-TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
-
-# Create a directory
 mkdir directory
-chmod 777 directory
-genfile --stat=mode:777 directory
-
-# Archive it
-tar cf arc directory
-
-# Change its permissions ...
-chmod 755 directory
-genfile --stat=mode:777 directory
-
-# ... and attempt to restore it twice
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-tar xf arc directory --warning=no-timestamp
-genfile --stat=mode:777 directory
-
-# After both restores, the directory mode should be 755
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "777
-755
-755
-755
+tar -cPvf archive directory/../directory
+echo separator
+tar -xPvf archive --warning=no-timestamp)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/../directory/
+separator
+directory/../directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_32
-#AT_START_33
-# 33. extrac07.at:27: extracting symlinks to a read-only dir
-at_setup_line='extrac07.at:27'
-at_desc="extracting symlinks to a read-only dir"
-$at_quiet $as_echo_n " 33: $at_desc         "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'extrac04.at:23' \
+  "extract + fnmatch" "                              " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "33. extrac07.at:27: testing ..."
+  $as_echo "58. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac07.at:30:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+  { set +x
+$as_echo "$at_srcdir/extrac04.at:26:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo Prepare the directory
-mkdir dir
-genfile -f foo
-cd dir
-ln -s ../foo .
-cd ..
-chmod a-w dir
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \\
+  --exclude='./*1' \\
+  --exclude='d*/*1' \\
+  --exclude='d*/s*/*2' | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-echo Create the archive
-tar cf archive dir || exit 1
 
-chmod +w dir
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo Extract
-mkdir out
-tar -C out -xvf archive
-)"
-echo extrac07.at:30 >"$at_check_line_file"
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \
+  --exclude='./*1' \
+  --exclude='d*/*1' \
+  --exclude='d*/s*/*2' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/file2
+directory/subdirectory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/extrac04.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \\
+  --exclude='./*1' \\
+  --exclude='d*/*1' \\
+  --exclude='d*/s*/*2' | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo Prepare the directory
-mkdir dir
-genfile -f foo
-cd dir
-ln -s ../foo .
-cd ..
-chmod a-w dir
 
-echo Create the archive
-tar cf archive dir || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-chmod +w dir
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \
+  --exclude='./*1' \
+  --exclude='d*/*1' \
+  --exclude='d*/s*/*2' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/file2
+directory/subdirectory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Extract
-mkdir out
-tar -C out -xvf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+              { set +x
+$as_echo "$at_srcdir/extrac04.at:26:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo Prepare the directory
-mkdir dir
-genfile -f foo
-cd dir
-ln -s ../foo .
-cd ..
-chmod a-w dir
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \\
+  --exclude='./*1' \\
+  --exclude='d*/*1' \\
+  --exclude='d*/s*/*2' | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-echo Create the archive
-tar cf archive dir || exit 1
 
-chmod +w dir
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo Extract
-mkdir out
-tar -C out -xvf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Prepare the directory
-Create the archive
-Extract
-dir/
-dir/foo
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \
+  --exclude='./*1' \
+  --exclude='d*/*1' \
+  --exclude='d*/s*/*2' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/file2
+directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/extrac04.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
- # Testing one format is enough
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_33
-#AT_START_34
-# 34. extrac08.at:33: restoring mode on existing directory
-at_setup_line='extrac08.at:33'
-at_desc="restoring mode on existing directory"
-$at_quiet $as_echo_n " 34: $at_desc           "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "34. extrac08.at:33: testing ..."
-  $at_traceon
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \\
+  --exclude='./*1' \\
+  --exclude='d*/*1' \\
+  --exclude='d*/s*/*2' | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
 
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \
+  --exclude='./*1' \
+  --exclude='d*/*1' \
+  --exclude='d*/s*/*2' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/file2
+directory/subdirectory/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac08.at:36:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/extrac04.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-)"
-echo extrac08.at:36 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \\
+  --exclude='./*1' \\
+  --exclude='d*/*1' \\
+  --exclude='d*/s*/*2' | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/file
-755
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+touch file1
+mkdir directory
+mkdir directory/subdirectory
+touch directory/file1
+touch directory/file2
+touch directory/subdirectory/file1
+touch directory/subdirectory/file2
+tar -cf archive ./file1 directory
+tar -tf archive \
+  --exclude='./*1' \
+  --exclude='d*/*1' \
+  --exclude='d*/s*/*2' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/file2
+directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac08.at:36:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
-
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-)"
-echo extrac08.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/file
-755
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'extrac05.at:30' \
+  "extracting selected members from pax" "           " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "59. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac08.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-)"
-echo extrac08.at:36 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+cat >list <<'_ATEOF'
+jeden
+cztery
+_ATEOF
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/file
-755
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac08.at:36:
+  { set +x
+$as_echo "$at_srcdir/extrac05.at:38:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -15084,40 +14514,23 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-)"
-echo extrac08.at:36 >"$at_check_line_file"
+genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
+genfile --length 118 --file jeden
+genfile --length 223 --file dwa
+genfile --length 517 --file trzy
+genfile --length 110 --file cztery
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+tar cf archive jeden dwa trzy cztery || exit 1
 
-umask 000
 mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+cd dir
+
+tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
+
+cd ..
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:38"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -15126,501 +14539,454 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-umask 000
+genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
+genfile --length 118 --file jeden
+genfile --length 223 --file dwa
+genfile --length 517 --file trzy
+genfile --length 110 --file cztery
+
+tar cf archive jeden dwa trzy cztery || exit 1
+
 mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/file
-755
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+cd dir
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac08.at:36:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
-
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-)"
-echo extrac08.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-umask 000
-mkdir dir
-chmod 755 dir
-echo bla > dir/file
-tar cf test.tar dir
-chmod 700 dir
-tar xfv test.tar --warning=no-timestamp
-genfile --stat=mode.777 dir
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/file
-755
+cd ..
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "jeden
+cztery
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:38"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_34
-#AT_START_35
-# 35. extrac09.at:22: no need to save dir with unreadable . and ..
-at_setup_line='extrac09.at:22'
-at_desc="no need to save dir with unreadable . and .."
-$at_quiet $as_echo_n " 35: $at_desc   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'extrac06.at:34' \
+  "mode of extracted directories" "                  " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "35. extrac09.at:22: testing ..."
+  $as_echo "60. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac09.at:25:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/extrac06.at:37:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+# Force umask
+umask 022
 
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/extract
-genfile --file dir/sub/f
-cd dir/sub
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
 
-tar -cf archive.tar f
+# Archive it
+tar cf arc directory
 
-chmod a-r . ..
-tar -xvf archive.tar -C extract f
-status=\$?
-chmod a+r . ..
-cmp f extract/f || status=\$?
-exit \$status
-)"
-echo extrac09.at:25 >"$at_check_line_file"
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
-
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/extract
-genfile --file dir/sub/f
-cd dir/sub
-
-tar -cf archive.tar f
+# Force umask
+umask 022
 
-chmod a-r . ..
-tar -xvf archive.tar -C extract f
-status=$?
-chmod a+r . ..
-cmp f extract/f || status=$?
-exit $status
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
 
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+# Archive it
+tar cf arc directory
 
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/extract
-genfile --file dir/sub/f
-cd dir/sub
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-tar -cf archive.tar f
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-chmod a-r . ..
-tar -xvf archive.tar -C extract f
-status=$?
-chmod a+r . ..
-cmp f extract/f || status=$?
-exit $status
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "f
+# After both restores, the directory mode should be 755
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "777
+755
+755
+755
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac09.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/extrac06.at:37:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
 
+# Force umask
+umask 022
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_35
-#AT_START_36
-# 36. extrac10.at:27: -C and delayed setting of metadata
-at_setup_line='extrac10.at:27'
-at_desc="-C and delayed setting of metadata"
-$at_quiet $as_echo_n " 36: $at_desc             "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "36. extrac10.at:27: testing ..."
-  $at_traceon
-
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
 
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
 
+# Archive it
+tar cf arc directory
 
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac10.at:30:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-mkdir d x x/y
-echo foo >d/d1
-echo bar >e
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-tar -cf archive.tar d e &&
-tar -xf archive.tar -C x d -C y e &&
-diff -r d x/d &&
-diff e x/y/e
+# After both restores, the directory mode should be 755
 )"
-echo extrac10.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir d x x/y
-echo foo >d/d1
-echo bar >e
 
-tar -cf archive.tar d e &&
-tar -xf archive.tar -C x d -C y e &&
-diff -r d x/d &&
-diff e x/y/e
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+# Force umask
+umask 022
+
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
+
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
+
+# Archive it
+tar cf arc directory
+
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
+
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "777
+755
+755
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac06.at:37:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir d x x/y
-echo foo >d/d1
-echo bar >e
 
-tar -cf archive.tar d e &&
-tar -xf archive.tar -C x d -C y e &&
-diff -r d x/d &&
-diff e x/y/e
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac10.at:30"
+# Force umask
+umask 022
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
+
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
+
+# Archive it
+tar cf arc directory
 
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
 
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_36
-#AT_START_37
-# 37. extrac11.at:23: scarce file descriptors
-at_setup_line='extrac11.at:23'
-at_desc="scarce file descriptors"
-$at_quiet $as_echo_n " 37: $at_desc                        "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "37. extrac11.at:23: testing ..."
-  $at_traceon
+# After both restores, the directory mode should be 755
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+# Force umask
+umask 022
+
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
 
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
 
+# Archive it
+tar cf arc directory
 
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
 
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac11.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "777
+755
+755
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac06.at:37:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec </dev/null
-dirs='a
-      a/b
-      a/b/c
-      a/b/c/d
-      a/b/c/d/e
-      a/b/c/d/e/f
-      a/b/c/d/e/f/g
-      a/b/c/d/e/f/g/h
-      a/b/c/d/e/f/g/h/i
-      a/b/c/d/e/f/g/h/i/j
-      a/b/c/d/e/f/g/h/i/j/k
-'
-files=
-mkdir \$dirs dest1 dest2 dest3 || exit
-for dir in \$dirs; do
-  for file in X Y Z; do
-    echo \$file >\$dir/\$file || exit
-    files=\"\$files \$file\"
-  done
-done
 
-# Check that \"ulimit\" itself works.  Close file descriptors before
-# invoking ulimit, to work around a bug (or a \"feature\") in some shells,
-# where they squirrel away dups of file descriptors into FD 10 and up
-# before closing the originals.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 100 &&
-   tar -cf archive1.tar a &&
-   tar -xf archive1.tar -C dest1 a
-  ) &&
-  diff -r a dest1/a
-) >/dev/null 2>&1 ||
-   exit 77
+# Force umask
+umask 022
 
-# Another test that \"ulimit\" itself works:
-# tar should fail when completely starved of file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 4 &&
-   tar -cf archive2.tar a &&
-   tar -xf archive2.tar -C dest2 a
-  ) &&
-  diff -r a dest2/a
-) >/dev/null 2>&1 &&
-   exit 77
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
 
-# Tar should work when there are few, but enough, file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 10 &&
-   tar -cf archive3.tar a &&
-   tar -xf archive3.tar -C dest3 a
-  ) &&
-  diff -r a dest3/a >/dev/null 2>&1
-) || { diff -r a dest3/a; exit 1; }
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
+
+# Archive it
+tar cf arc directory
+
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
+
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
 )"
-echo extrac11.at:26 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+# Force umask
+umask 022
+
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
+
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
+
+# Archive it
+tar cf arc directory
+
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
+
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "777
+755
+755
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/extrac06.at:37:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec </dev/null
-dirs='a
-      a/b
-      a/b/c
-      a/b/c/d
-      a/b/c/d/e
-      a/b/c/d/e/f
-      a/b/c/d/e/f/g
-      a/b/c/d/e/f/g/h
-      a/b/c/d/e/f/g/h/i
-      a/b/c/d/e/f/g/h/i/j
-      a/b/c/d/e/f/g/h/i/j/k
-'
-files=
-mkdir $dirs dest1 dest2 dest3 || exit
-for dir in $dirs; do
-  for file in X Y Z; do
-    echo $file >$dir/$file || exit
-    files="$files $file"
-  done
-done
 
-# Check that "ulimit" itself works.  Close file descriptors before
-# invoking ulimit, to work around a bug (or a "feature") in some shells,
-# where they squirrel away dups of file descriptors into FD 10 and up
-# before closing the originals.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 100 &&
-   tar -cf archive1.tar a &&
-   tar -xf archive1.tar -C dest1 a
-  ) &&
-  diff -r a dest1/a
-) >/dev/null 2>&1 ||
-   exit 77
+# Force umask
+umask 022
 
-# Another test that "ulimit" itself works:
-# tar should fail when completely starved of file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 4 &&
-   tar -cf archive2.tar a &&
-   tar -xf archive2.tar -C dest2 a
-  ) &&
-  diff -r a dest2/a
-) >/dev/null 2>&1 &&
-   exit 77
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
 
-# Tar should work when there are few, but enough, file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 10 &&
-   tar -cf archive3.tar a &&
-   tar -xf archive3.tar -C dest3 a
-  ) &&
-  diff -r a dest3/a >/dev/null 2>&1
-) || { diff -r a dest3/a; exit 1; }
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
+
+# Archive it
+tar cf arc directory
+
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
+
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -15629,332 +14995,455 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec </dev/null
-dirs='a
-      a/b
-      a/b/c
-      a/b/c/d
-      a/b/c/d/e
-      a/b/c/d/e/f
-      a/b/c/d/e/f/g
-      a/b/c/d/e/f/g/h
-      a/b/c/d/e/f/g/h/i
-      a/b/c/d/e/f/g/h/i/j
-      a/b/c/d/e/f/g/h/i/j/k
-'
-files=
-mkdir $dirs dest1 dest2 dest3 || exit
-for dir in $dirs; do
-  for file in X Y Z; do
-    echo $file >$dir/$file || exit
-    files="$files $file"
-  done
-done
 
-# Check that "ulimit" itself works.  Close file descriptors before
-# invoking ulimit, to work around a bug (or a "feature") in some shells,
-# where they squirrel away dups of file descriptors into FD 10 and up
-# before closing the originals.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 100 &&
-   tar -cf archive1.tar a &&
-   tar -xf archive1.tar -C dest1 a
-  ) &&
-  diff -r a dest1/a
-) >/dev/null 2>&1 ||
-   exit 77
+# Force umask
+umask 022
 
-# Another test that "ulimit" itself works:
-# tar should fail when completely starved of file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 4 &&
-   tar -cf archive2.tar a &&
-   tar -xf archive2.tar -C dest2 a
-  ) &&
-  diff -r a dest2/a
-) >/dev/null 2>&1 &&
-   exit 77
+# Make sure user's umask is honored, even if we are superuser
+TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
 
-# Tar should work when there are few, but enough, file descriptors.
-( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
-   ulimit -n 10 &&
-   tar -cf archive3.tar a &&
-   tar -xf archive3.tar -C dest3 a
-  ) &&
-  diff -r a dest3/a >/dev/null 2>&1
-) || { diff -r a dest3/a; exit 1; }
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac11.at:26"
+# Create a directory
+mkdir directory
+chmod 777 directory
+genfile --stat=mode:777 directory
 
-$at_failed && at_func_log_failure
+# Archive it
+tar cf arc directory
+
+# Change its permissions ...
+chmod 755 directory
+genfile --stat=mode:777 directory
+
+# ... and attempt to restore it twice
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+tar xf arc directory --warning=no-timestamp
+genfile --stat=mode:777 directory
+
+# After both restores, the directory mode should be 755
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "777
+755
+755
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_37
-#AT_START_38
-# 38. extrac12.at:23: extract dot permissions
-at_setup_line='extrac12.at:23'
-at_desc="extract dot permissions"
-$at_quiet $as_echo_n " 38: $at_desc                        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'extrac07.at:27' \
+  "extracting symlinks to a read-only dir" "         " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "38. extrac12.at:23: testing ..."
+  $as_echo "61. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac12.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/extrac07.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src dst
-echo file1 >src/file1
-echo file2 >src/file2
-chmod a-w src
 
-tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
-tar -xf archive.tar -C dst &&
-cmp src/file1 dst/file1 &&
-cmp src/file2 dst/file2
-)"
-echo extrac12.at:26 >"$at_check_line_file"
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir src dst
-echo file1 >src/file1
-echo file2 >src/file2
-chmod a-w src
+echo Prepare the directory
+mkdir dir
+genfile -f foo
+cd dir
+ln -s ../foo .
+cd ..
+chmod a-w dir
 
-tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
-tar -xf archive.tar -C dst &&
-cmp src/file1 dst/file1 &&
-cmp src/file2 dst/file2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo Create the archive
+tar cf archive dir || exit 1
+
+chmod +w dir
+
+echo Extract
+mkdir out
+tar -C out -xvf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac07.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src dst
-echo file1 >src/file1
-echo file2 >src/file2
-chmod a-w src
 
-tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
-tar -xf archive.tar -C dst &&
-cmp src/file1 dst/file1 &&
-cmp src/file2 dst/file2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac12.at:26"
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
+echo Prepare the directory
+mkdir dir
+genfile -f foo
+cd dir
+ln -s ../foo .
+cd ..
+chmod a-w dir
+
+echo Create the archive
+tar cf archive dir || exit 1
+
+chmod +w dir
+
+echo Extract
+mkdir out
+tar -C out -xvf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Prepare the directory
+Create the archive
+Extract
+dir/
+dir/foo
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac07.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
+ # Testing one format is enough
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_38
-#AT_START_39
-# 39. extrac13.at:24: extract over symlinks
-at_setup_line='extrac13.at:24'
-at_desc="extract over symlinks"
-$at_quiet $as_echo_n " 39: $at_desc                          "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'extrac08.at:33' \
+  "restoring mode on existing directory" "           " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "39. extrac13.at:24: testing ..."
+  $as_echo "62. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac13.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/extrac08.at:36:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src dst1 dst2 dst3
-echo file1 >src/file1
-ln -s target1 dst1/file1
-echo target1 >dst1/target1
-echo target1 >target1
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-tar -cf archive.tar -C src . &&
-tar -xf archive.tar -C dst1 --warning=no-timestamp &&
-diff src/file1 dst1/file1 &&
-diff target1 dst1/target1
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-ln -s target1 dst2/file1
-echo target1 >dst2/target1
-tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
-diff src/file1 dst2/file1 &&
-diff target1 dst2/target1
+              { set +x
+$as_echo "$at_srcdir/extrac08.at:36:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-ln -s target1 dst3/file1
-echo target1 >dst3/target1
-tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
-diff src/file1 dst3/file1 &&
-diff src/file1 dst3/target1
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
 )"
-echo extrac13.at:27 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac08.at:36:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src dst1 dst2 dst3
-echo file1 >src/file1
-ln -s target1 dst1/file1
-echo target1 >dst1/target1
-echo target1 >target1
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-tar -cf archive.tar -C src . &&
-tar -xf archive.tar -C dst1 --warning=no-timestamp &&
-diff src/file1 dst1/file1 &&
-diff target1 dst1/target1
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-ln -s target1 dst2/file1
-echo target1 >dst2/target1
-tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
-diff src/file1 dst2/file1 &&
-diff target1 dst2/target1
+              { set +x
+$as_echo "$at_srcdir/extrac08.at:36:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-ln -s target1 dst3/file1
-echo target1 >dst3/target1
-tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
-diff src/file1 dst3/file1 &&
-diff src/file1 dst3/target1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac08.at:36:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src dst1 dst2 dst3
-echo file1 >src/file1
-ln -s target1 dst1/file1
-echo target1 >dst1/target1
-echo target1 >target1
-
-tar -cf archive.tar -C src . &&
-tar -xf archive.tar -C dst1 --warning=no-timestamp &&
-diff src/file1 dst1/file1 &&
-diff target1 dst1/target1
-
-ln -s target1 dst2/file1
-echo target1 >dst2/target1
-tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
-diff src/file1 dst2/file1 &&
-diff target1 dst2/target1
-
-ln -s target1 dst3/file1
-echo target1 >dst3/target1
-tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
-diff src/file1 dst3/file1 &&
-diff src/file1 dst3/target1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac13.at:27"
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-$at_failed && at_func_log_failure
+umask 000
+mkdir dir
+chmod 755 dir
+echo bla > dir/file
+tar cf test.tar dir
+chmod 700 dir
+tar xfv test.tar --warning=no-timestamp
+genfile --stat=mode.777 dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file
+755
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_39
-#AT_START_40
-# 40. extrac14.at:23: extract -C symlink
-at_setup_line='extrac14.at:23'
-at_desc="extract -C symlink"
-$at_quiet $as_echo_n " 40: $at_desc                             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'extrac09.at:24' \
+  "no need to save dir with unreadable . and .." "   " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "40. extrac14.at:23: testing ..."
+  $as_echo "63. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac14.at:26:
+  { set +x
+$as_echo "$at_srcdir/extrac09.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -15963,119 +15452,32 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dest
-ln -s dest symlink
-echo foo >foo
-tar -cf archive.tar foo &&
-tar -xf archive.tar -C symlink --warning=no-timestamp &&
-cmp foo dest/foo
-)"
-echo extrac14.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir dest
-ln -s dest symlink
-echo foo >foo
-tar -cf archive.tar foo &&
-tar -xf archive.tar -C symlink --warning=no-timestamp &&
-cmp foo dest/foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir dest
-ln -s dest symlink
-echo foo >foo
-tar -cf archive.tar foo &&
-tar -xf archive.tar -C symlink --warning=no-timestamp &&
-cmp foo dest/foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac14.at:26"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_40
-#AT_START_41
-# 41. extrac15.at:23: extract parent mkdir failure
-at_setup_line='extrac15.at:23'
-at_desc="extract parent mkdir failure"
-$at_quiet $as_echo_n " 41: $at_desc                   "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "41. extrac15.at:23: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac15.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
 
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/extract
+genfile --file dir/sub/f
+cd dir/sub
 
-mkdir src src/a src/a/b dest dest/a
-touch src/a/b/c
-chmod a-w dest/a
+tar -cf archive.tar f
 
-tar -cf archive.tar -C src a/b/c &&
-if tar -xf archive.tar -C dest a/b/c
-then (exit 1)
-else (exit 0)
-fi
+chmod a-r . ..
+tar -xvf archive.tar -C extract f
+status=\$?
+chmod a+r . ..
+cmp f extract/f || status=\$?
+exit \$status
 )"
-echo extrac15.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "extrac09.at:27"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16093,86 +15495,55 @@ rm -f $$
 test $result -eq 0 && exit 77
 
 
-mkdir src src/a src/a/b dest dest/a
-touch src/a/b/c
-chmod a-w dest/a
-
-tar -cf archive.tar -C src a/b/c &&
-if tar -xf archive.tar -C dest a/b/c
-then (exit 1)
-else (exit 0)
-fi
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/extract
+genfile --file dir/sub/f
+cd dir/sub
 
-mkdir src src/a src/a/b dest dest/a
-touch src/a/b/c
-chmod a-w dest/a
+tar -cf archive.tar f
 
-tar -cf archive.tar -C src a/b/c &&
-if tar -xf archive.tar -C dest a/b/c
-then (exit 1)
-else (exit 0)
-fi
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: a/b: Cannot mkdir: Permission denied
-tar: a/b/c: Cannot open: No such file or directory
-tar: Exiting with failure status due to previous errors
+chmod a-r . ..
+tar -xvf archive.tar -C extract f
+status=$?
+chmod a+r . ..
+cmp f extract/f || status=$?
+exit $status
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "f
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac15.at:26"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac09.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_41
-#AT_START_42
-# 42. extrac16.at:24: extract empty directory with -C
-at_setup_line='extrac16.at:24'
-at_desc="extract empty directory with -C"
-$at_quiet $as_echo_n " 42: $at_desc                "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'extrac10.at:29' \
+  "-C and delayed setting of metadata" "             " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "42. extrac16.at:24: testing ..."
+  $as_echo "64. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac16.at:27:
+  { set +x
+$as_echo "$at_srcdir/extrac10.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16181,34 +15552,17 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src src/a src/a/b dest
-touch src/a/c
+mkdir d x x/y
+echo foo >d/d1
+echo bar >e
 
-tar -cf archive.tar -C src a &&
-tar -xf archive.tar -C dest
+tar -cf archive.tar d e &&
+tar -xf archive.tar -C x d -C y e &&
+diff -r d x/d &&
+diff e x/y/e
 )"
-echo extrac16.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir src src/a src/a/b dest
-touch src/a/c
-
-tar -cf archive.tar -C src a &&
-tar -xf archive.tar -C dest
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "extrac10.at:32"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16217,350 +15571,373 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir src src/a src/a/b dest
-touch src/a/c
-
-tar -cf archive.tar -C src a &&
-tar -xf archive.tar -C dest
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac16.at:27"
+mkdir d x x/y
+echo foo >d/d1
+echo bar >e
 
-$at_failed && at_func_log_failure
+tar -cf archive.tar d e &&
+tar -xf archive.tar -C x d -C y e &&
+diff -r d x/d &&
+diff e x/y/e
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac10.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_42
-#AT_START_43
-# 43. extrac17.at:19: name matching/transformation ordering
-at_setup_line='extrac17.at:19'
-at_desc="name matching/transformation ordering"
-$at_quiet $as_echo_n " 43: $at_desc          "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'extrac11.at:25' \
+  "scarce file descriptors" "                        " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "43. extrac17.at:19: testing ..."
+  $as_echo "65. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-# Description: Tar 1.24 changed the ordering of name matching and
-# name transformation so that the former saw already transformed
-# file names (see commit 9c194c99 and exclude06.at).  This reverted
-# ordering made it impossible to match file names in certain cases.
-# In particular, the testcase below would not extract anything.
-#
-# Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
-# References: <x6r5fd9jye@gzp>, <20101026175126.29028@Pirx.gnu.org.ua>
-#             http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00047.html
-
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/extrac17.at:32:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/extrac11.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
-
-tar cf dir.tar dir
-
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
-  dir/subdir1/
-)"
-echo extrac17.at:32 >"$at_check_line_file"
+exec </dev/null
+dirs='a
+      a/b
+      a/b/c
+      a/b/c/d
+      a/b/c/d/e
+      a/b/c/d/e/f
+      a/b/c/d/e/f/g
+      a/b/c/d/e/f/g/h
+      a/b/c/d/e/f/g/h/i
+      a/b/c/d/e/f/g/h/i/j
+      a/b/c/d/e/f/g/h/i/j/k
+'
+files=
+mkdir \$dirs dest1 dest2 dest3 || exit
+for dir in \$dirs; do
+  for file in X Y Z; do
+    echo \$file >\$dir/\$file || exit
+    files=\"\$files \$file\"
+  done
+done
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+# Check that \"ulimit\" itself works.  Close file descriptors before
+# invoking ulimit, to work around a bug (or a \"feature\") in some shells,
+# where they squirrel away dups of file descriptors into FD 10 and up
+# before closing the originals.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 100 &&
+   tar -cf archive1.tar a &&
+   tar -xf archive1.tar -C dest1 a
+  ) &&
+  diff -r a dest1/a
+) >/dev/null 2>&1 ||
+   exit 77
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
-
-tar cf dir.tar dir
+# Another test that \"ulimit\" itself works:
+# tar should fail when completely starved of file descriptors.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 4 &&
+   tar -cf archive2.tar a &&
+   tar -xf archive2.tar -C dest2 a
+  ) &&
+  diff -r a dest2/a
+) >/dev/null 2>&1 &&
+   exit 77
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+# Tar should work when there are few, but enough, file descriptors.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 10 &&
+   tar -cf archive3.tar a &&
+   tar -xf archive3.tar -C dest3 a
+  ) &&
+  diff -r a dest3/a >/dev/null 2>&1
+) || { diff -r a dest3/a; exit 1; }
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac11.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
+exec </dev/null
+dirs='a
+      a/b
+      a/b/c
+      a/b/c/d
+      a/b/c/d/e
+      a/b/c/d/e/f
+      a/b/c/d/e/f/g
+      a/b/c/d/e/f/g/h
+      a/b/c/d/e/f/g/h/i
+      a/b/c/d/e/f/g/h/i/j
+      a/b/c/d/e/f/g/h/i/j/k
+'
+files=
+mkdir $dirs dest1 dest2 dest3 || exit
+for dir in $dirs; do
+  for file in X Y Z; do
+    echo $file >$dir/$file || exit
+    files="$files $file"
+  done
+done
 
-tar cf dir.tar dir
+# Check that "ulimit" itself works.  Close file descriptors before
+# invoking ulimit, to work around a bug (or a "feature") in some shells,
+# where they squirrel away dups of file descriptors into FD 10 and up
+# before closing the originals.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 100 &&
+   tar -cf archive1.tar a &&
+   tar -xf archive1.tar -C dest1 a
+  ) &&
+  diff -r a dest1/a
+) >/dev/null 2>&1 ||
+   exit 77
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac17.at:32"
+# Another test that "ulimit" itself works:
+# tar should fail when completely starved of file descriptors.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 4 &&
+   tar -cf archive2.tar a &&
+   tar -xf archive2.tar -C dest2 a
+  ) &&
+  diff -r a dest2/a
+) >/dev/null 2>&1 &&
+   exit 77
 
-$at_failed && at_func_log_failure
+# Tar should work when there are few, but enough, file descriptors.
+( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
+   ulimit -n 10 &&
+   tar -cf archive3.tar a &&
+   tar -xf archive3.tar -C dest3 a
+  ) &&
+  diff -r a dest3/a >/dev/null 2>&1
+) || { diff -r a dest3/a; exit 1; }
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac11.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac17.at:32:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
-  dir/subdir1/
-)"
-echo extrac17.at:32 >"$at_check_line_file"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'extrac12.at:25' \
+  "extract dot permissions" "                        " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "66. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+  { set +x
+$as_echo "$at_srcdir/extrac12.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
-
-tar cf dir.tar dir
-
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac17.at:32"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
+mkdir src dst
+echo file1 >src/file1
+echo file2 >src/file2
+chmod a-w src
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac17.at:32:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
+tar -xf archive.tar -C dst &&
+cmp src/file1 dst/file1 &&
+cmp src/file2 dst/file2
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac12.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
-
-tar cf dir.tar dir
+mkdir src dst
+echo file1 >src/file1
+echo file2 >src/file2
+chmod a-w src
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
-  dir/subdir1/
-)"
-echo extrac17.at:32 >"$at_check_line_file"
+tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
+tar -xf archive.tar -C dst &&
+cmp src/file1 dst/file1 &&
+cmp src/file2 dst/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac12.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'extrac13.at:26' \
+  "extract over symlinks" "                          " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "67. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac17.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac17.at:32:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+  { set +x
+$as_echo "$at_srcdir/extrac13.at:29:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
+mkdir src dst1 dst2 dst3
+echo file1 >src/file1
+ln -s target1 dst1/file1
+echo target1 >dst1/target1
+echo target1 >target1
 
-tar cf dir.tar dir
+tar -cf archive.tar -C src . &&
+tar -xf archive.tar -C dst1 --warning=no-timestamp &&
+diff src/file1 dst1/file1 &&
+diff target1 dst1/target1
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
-  dir/subdir1/
-)"
-echo extrac17.at:32 >"$at_check_line_file"
+ln -s target1 dst2/file1
+echo target1 >dst2/target1
+tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
+diff src/file1 dst2/file1 &&
+diff target1 dst2/target1
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+ln -s target1 dst3/file1
+echo target1 >dst3/target1
+tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
+diff src/file1 dst3/file1 &&
+diff src/file1 dst3/target1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac13.at:29"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
+mkdir src dst1 dst2 dst3
+echo file1 >src/file1
+ln -s target1 dst1/file1
+echo target1 >dst1/target1
+echo target1 >target1
 
-tar cf dir.tar dir
+tar -cf archive.tar -C src . &&
+tar -xf archive.tar -C dst1 --warning=no-timestamp &&
+diff src/file1 dst1/file1 &&
+diff target1 dst1/target1
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+ln -s target1 dst2/file1
+echo target1 >dst2/target1
+tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
+diff src/file1 dst2/file1 &&
+diff target1 dst2/target1
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
+ln -s target1 dst3/file1
+echo target1 >dst3/target1
+tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
+diff src/file1 dst3/file1 &&
+diff src/file1 dst3/target1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac13.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac17.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/extrac17.at:32:
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'extrac14.at:25' \
+  "extract -C symlink" "                             " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "68. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/extrac14.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16569,40 +15946,91 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
+mkdir dest
+ln -s dest symlink
+echo foo >foo
+tar -cf archive.tar foo &&
+tar -xf archive.tar -C symlink --warning=no-timestamp &&
+cmp foo dest/foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac14.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dest
+ln -s dest symlink
+echo foo >foo
+tar -cf archive.tar foo &&
+tar -xf archive.tar -C symlink --warning=no-timestamp &&
+cmp foo dest/foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac14.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'extrac15.at:25' \
+  "extract parent mkdir failure" "                   " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "69. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
 
-tar cf dir.tar dir
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
-  dir/subdir1/
-)"
-echo extrac17.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+  { set +x
+$as_echo "$at_srcdir/extrac15.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir src src/a src/a/b dest dest/a
+touch src/a/b/c
+chmod a-w dest/a
+
+tar -cf archive.tar -C src a/b/c &&
+if tar -xf archive.tar -C dest a/b/c
+then (exit 1)
+else (exit 0)
+fi
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac15.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16611,53 +16039,61 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir dir/subdir1 dir/subdir2 out
-genfile --file dir/subdir1/file1
-genfile --file dir/subdir2/file2
 
-tar cf dir.tar dir
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
-  dir/subdir1/
-) ) >"$at_stdout" 2>"$at_stderr"
+
+mkdir src src/a src/a/b dest dest/a
+touch src/a/b/c
+chmod a-w dest/a
+
+tar -cf archive.tar -C src a/b/c &&
+if tar -xf archive.tar -C dest a/b/c
+then (exit 1)
+else (exit 0)
 fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: a/b: Cannot mkdir: Permission denied
+tar: a/b/c: Cannot open: No such file or directory
+tar: Exiting with failure status due to previous errors
 " | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/extrac17.at:32"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac15.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_43
-#AT_START_44
-# 44. label01.at:19: single-volume label
-at_setup_line='label01.at:19'
-at_desc="single-volume label"
-$at_quiet $as_echo_n " 44: $at_desc                            "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'extrac16.at:26' \
+  "extract empty directory with -C" "                " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "44. label01.at:19: testing ..."
+  $as_echo "70. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/label01.at:22:
+  { set +x
+$as_echo "$at_srcdir/extrac16.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16666,16 +16102,14 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-)"
-echo label01.at:22 >"$at_check_line_file"
+mkdir src src/a src/a/b dest
+touch src/a/c
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar -cf archive.tar -C src a &&
+tar -xf archive.tar -C dest
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac16.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -16684,43 +16118,103 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+mkdir src src/a src/a/b dest
+touch src/a/c
+
+tar -cf archive.tar -C src a &&
+tar -xf archive.tar -C dest
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac16.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'extrac17.at:21' \
+  "name matching/transformation ordering" "          " 9
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "71. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# Description: Tar 1.24 changed the ordering of name matching and
+# name transformation so that the former saw already transformed
+# file names (see commit 9c194c99 and exclude06.at).  This reverted
+# ordering made it impossible to match file names in certain cases.
+# In particular, the testcase below would not extract anything.
+#
+# Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
+# References: <x6r5fd9jye@gzp>, <20101026175126.29028@Pirx.gnu.org.ua>
+#             http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00047.html
+
+
+
+  { set +x
+$as_echo "$at_srcdir/extrac17.at:34:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test
-foo
-bar
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
+  dir/subdir1/
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
+  dir/subdir1/
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label01.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label01.at:22:
+              { set +x
+$as_echo "$at_srcdir/extrac17.at:34:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -16729,16 +16223,17 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-)"
-echo label01.at:22 >"$at_check_line_file"
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
+  dir/subdir1/
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -16747,43 +16242,77 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
+  dir/subdir1/
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac17.at:34:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test
-foo
-bar
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
+  dir/subdir1/
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
+  dir/subdir1/
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label01.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label01.at:22:
+              { set +x
+$as_echo "$at_srcdir/extrac17.at:34:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -16792,16 +16321,17 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-)"
-echo label01.at:22 >"$at_check_line_file"
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
+  dir/subdir1/
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -16810,137 +16340,163 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
+  dir/subdir1/
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac17.at:34:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo
-genfile --file bar
-tar -cf archive --label=Test foo bar
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test
-foo
-bar
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
+  dir/subdir1/
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir dir/subdir1 dir/subdir2 out
+genfile --file dir/subdir1/file1
+genfile --file dir/subdir2/file2
+
+tar cf dir.tar dir
+
+tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
+  dir/subdir1/
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/subdir1/file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label01.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_44
-#AT_START_45
-# 45. label02.at:19: multi-volume label
-at_setup_line='label02.at:19'
-at_desc="multi-volume label"
-$at_quiet $as_echo_n " 45: $at_desc                             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'extrac18.at:34' \
+  "keep-old-files" "                                 " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "45. label02.at:19: testing ..."
+  $as_echo "72. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/label02.at:22:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/extrac18.at:37:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-)"
-echo label02.at:22 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+tar cf ../archive .
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test Volume 1
-foo
-bar
-baz
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=2
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label02.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label02.at:22:
+              { set +x
+$as_echo "$at_srcdir/extrac18.at:37:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -16949,18 +16505,23 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-)"
-echo label02.at:22 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -16969,48 +16530,103 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=2
+File a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac18.at:37:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test Volume 1
-foo
-bar
-baz
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=2
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label02.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label02.at:22:
+              { set +x
+$as_echo "$at_srcdir/extrac18.at:37:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17019,18 +16635,23 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-)"
-echo label02.at:22 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17039,218 +16660,186 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=2
+File a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac18.at:37:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 0 --file foo
-genfile --length 12288 --file bar
-genfile --length 12288 --file baz
-tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
-tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Test Volume 1
-foo
-bar
-baz
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x -k -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: ./a: Cannot open: File exists
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=2
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label02.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_45
-#AT_START_46
-# 46. label03.at:25: test-label option
-at_setup_line='label03.at:25'
-at_desc="test-label option"
-$at_quiet $as_echo_n " 46: $at_desc                              "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'extrac19.at:21' \
+  "skip-old-files" "                                 " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "46. label03.at:25: testing ..."
+  $as_echo "73. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/label03.at:28:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/extrac19.at:24:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho \"# Display label\"
-tar --test-label --file=iamanarchive; echo \$?
-decho \"# Display label: unlabeled\"
-tar --test-label --file=unlabeled.tar; echo \$?
-decho \"# Test label: success\"
-tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label: failure\"
-tar --test-label --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: unlabeled\"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
-decho \"# Test label, verbose: success\"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label, verbose: failure\"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: multiple arguments\"
-tar --test-label --file=iamanarchive a iamalabel b; echo \$?
-decho \"# Test label: wildcards\"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
-)"
-echo label03.at:28 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+tar cf ../archive .
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Display label
-# Display label: unlabeled
-# Test label: success
-# Test label: failure
-# Test label: unlabeled
-# Test label, verbose: success
-# Test label, verbose: failure
-tar: Archive label mismatch
-# Test label: multiple arguments
-# Test label: wildcards
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Display label
-iamalabel
-0
-# Display label: unlabeled
-0
-# Test label: success
-0
-# Test label: failure
-1
-# Test label: unlabeled
-1
-# Test label, verbose: success
-iamalabel
-0
-# Test label, verbose: failure
-iamalabel
-1
-# Test label: multiple arguments
-0
-# Test label: wildcards
-0
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=0
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label03.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label03.at:28:
+              { set +x
+$as_echo "$at_srcdir/extrac19.at:24:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17259,34 +16848,23 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho \"# Display label\"
-tar --test-label --file=iamanarchive; echo \$?
-decho \"# Display label: unlabeled\"
-tar --test-label --file=unlabeled.tar; echo \$?
-decho \"# Test label: success\"
-tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label: failure\"
-tar --test-label --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: unlabeled\"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
-decho \"# Test label, verbose: success\"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label, verbose: failure\"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: multiple arguments\"
-tar --test-label --file=iamanarchive a iamalabel b; echo \$?
-decho \"# Test label: wildcards\"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
-)"
-echo label03.at:28 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar -x --skip-old-files -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17295,108 +16873,97 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=0
+File a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac19.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Display label
-# Display label: unlabeled
-# Test label: success
-# Test label: failure
-# Test label: unlabeled
-# Test label, verbose: success
-# Test label, verbose: failure
-tar: Archive label mismatch
-# Test label: multiple arguments
-# Test label: wildcards
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Display label
-iamalabel
-0
-# Display label: unlabeled
-0
-# Test label: success
-0
-# Test label: failure
-1
-# Test label: unlabeled
-1
-# Test label, verbose: success
-iamalabel
-0
-# Test label, verbose: failure
-iamalabel
-1
-# Test label: multiple arguments
-0
-# Test label: wildcards
-0
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=0
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label03.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label03.at:28:
+              { set +x
+$as_echo "$at_srcdir/extrac19.at:24:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17405,34 +16972,23 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho \"# Display label\"
-tar --test-label --file=iamanarchive; echo \$?
-decho \"# Display label: unlabeled\"
-tar --test-label --file=unlabeled.tar; echo \$?
-decho \"# Test label: success\"
-tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label: failure\"
-tar --test-label --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: unlabeled\"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
-decho \"# Test label, verbose: success\"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
-decho \"# Test label, verbose: failure\"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
-decho \"# Test label: multiple arguments\"
-tar --test-label --file=iamanarchive a iamalabel b; echo \$?
-decho \"# Test label: wildcards\"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
-)"
-echo label03.at:28 >"$at_check_line_file"
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar -x --skip-old-files -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17441,214 +16997,164 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=0
+File a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/extrac19.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-tar -c --label='iamalabel' --file iamanarchive file
-tar -c --file unlabeled.tar file
-decho "# Display label"
-tar --test-label --file=iamanarchive; echo $?
-decho "# Display label: unlabeled"
-tar --test-label --file=unlabeled.tar; echo $?
-decho "# Test label: success"
-tar --test-label --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label: failure"
-tar --test-label --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: unlabeled"
-tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
-decho "# Test label, verbose: success"
-tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
-decho "# Test label, verbose: failure"
-tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
-decho "# Test label: multiple arguments"
-tar --test-label --file=iamanarchive a iamalabel b; echo $?
-decho "# Test label: wildcards"
-tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Display label
-# Display label: unlabeled
-# Test label: success
-# Test label: failure
-# Test label: unlabeled
-# Test label, verbose: success
-# Test label, verbose: failure
-tar: Archive label mismatch
-# Test label: multiple arguments
-# Test label: wildcards
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Display label
-iamalabel
-0
-# Display label: unlabeled
-0
-# Test label: success
-0
-# Test label: failure
-1
-# Test label: unlabeled
-1
-# Test label, verbose: success
-iamalabel
-0
-# Test label, verbose: failure
-iamalabel
-1
-# Test label: multiple arguments
-0
-# Test label: wildcards
-0
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=\$?
+
+cat a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+cd dir
+echo 'Old file a' > a
+echo 'Old file b' > b
+
+tar cf ../archive .
+
+rm b
+echo 'File a' > a
+
+tar -x --skip-old-files -f ../archive
+echo status=$?
+
+cat a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "status=0
+File a
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label03.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_46
-#AT_START_47
-# 47. label04.at:25: label with non-create option
-at_setup_line='label04.at:25'
-at_desc="label with non-create option"
-$at_quiet $as_echo_n " 47: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'backup01.at:33' \
+  "extracting existing dir with --backup" "          " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "47. label04.at:25: testing ..."
+  $as_echo "74. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/label04.at:28:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/backup01.at:36:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive --label='New volume' file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive --label='New volume' file
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
 )"
-echo label04.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Volume \`New volume' does not match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir1/
+dir1/file1
+Renaming 'dir1/file1' to 'dir1/file1~'
+dir2/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label04.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label04.at:28:
+              { set +x
+$as_echo "$at_srcdir/backup01.at:36:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17657,20 +17163,14 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive --label='New volume' file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive --label='New volume' file
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
 )"
-echo label04.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17679,58 +17179,74 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir1/
+dir1/file1
+Renaming 'dir1/file1' to 'dir1/file1~'
+dir2/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/backup01.at:36:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Volume \`New volume' does not match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir1/
+dir1/file1
+Renaming 'dir1/file1' to 'dir1/file1~'
+dir2/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label04.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label04.at:28:
+              { set +x
+$as_echo "$at_srcdir/backup01.at:36:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17739,20 +17255,14 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive --label='New volume' file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive --label='New volume' file
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
 )"
-echo label04.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -17761,82 +17271,95 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir1/
+dir1/file1
+Renaming 'dir1/file1' to 'dir1/file1~'
+dir2/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/backup01.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive --label='New volume' file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive --label='New volume' file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Volume \`New volume' does not match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+unset VERSION_CONTROL
+mkdir dir1 dir2
+echo bla > dir1/file1
+tar cf test.tar dir1 dir2
+tar xfv test.tar --backup --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir1/
+dir1/file1
+Renaming 'dir1/file1' to 'dir1/file1~'
+dir2/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label04.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_47
-#AT_START_48
-# 48. label05.at:22: label with non-create option
-at_setup_line='label05.at:22'
-at_desc="label with non-create option"
-$at_quiet $as_echo_n " 48: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'label01.at:21' \
+  "single-volume label" "                            " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "48. label05.at:22: testing ..."
+  $as_echo "75. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/label05.at:25:
+  { set +x
+$as_echo "$at_srcdir/label01.at:24:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -17845,40 +17368,13 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive file
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
 )"
-echo label05.at:25 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -17887,38 +17383,26 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Archive not labeled to match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test
+foo
+bar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label05.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label05.at:25:
+              { set +x
+$as_echo "$at_srcdir/label01.at:24:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17927,40 +17411,13 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive file
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
 )"
-echo label05.at:25 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -17969,38 +17426,26 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Archive not labeled to match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test
+foo
+bar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label05.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/label05.at:25:
+              { set +x
+$as_echo "$at_srcdir/label01.at:24:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18009,40 +17454,13 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho \"# Create volume\"
-tar -c -f archive file
-decho \"# Update: wrong label\"
-tar -rf archive --label='My volume' file; echo \$?
-decho \"# Update: right label\"
-tar -rf archive file
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
 )"
-echo label05.at:25 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18051,129 +17469,95 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --file file
-decho "# Create volume"
-tar -c -f archive file
-decho "# Update: wrong label"
-tar -rf archive --label='My volume' file; echo $?
-decho "# Update: right label"
-tar -rf archive file
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "# Create volume
-# Update: wrong label
-tar: Archive not labeled to match \`My volume'
-tar: Error is not recoverable: exiting now
-# Update: right label
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "# Create volume
-# Update: wrong label
-2
-# Update: right label
+genfile --file foo
+genfile --file bar
+tar -cf archive --label=Test foo bar
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test
+foo
+bar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/label05.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_48
-#AT_START_49
-# 49. backup01.at:33: extracting existing dir with --backup
-at_setup_line='backup01.at:33'
-at_desc="extracting existing dir with --backup"
-$at_quiet $as_echo_n " 49: $at_desc          "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'label02.at:21' \
+  "multi-volume label" "                             " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "49. backup01.at:33: testing ..."
+  $as_echo "76. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/backup01.at:36:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/label02.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
 )"
-echo backup01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir1/
-dir1/file1
-Renaming \`dir1/file1' to \`dir1/file1~'
-dir2/
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test Volume 1
+foo
+bar
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/backup01.at:36:
+              { set +x
+$as_echo "$at_srcdir/label02.at:24:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -18182,34 +17566,15 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
 )"
-echo backup01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -18218,96 +17583,29 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir1/
-dir1/file1
-Renaming \`dir1/file1' to \`dir1/file1~'
-dir2/
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/backup01.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-)"
-echo backup01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir1/
-dir1/file1
-Renaming \`dir1/file1' to \`dir1/file1~'
-dir2/
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test Volume 1
+foo
+bar
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/backup01.at:36:
+              { set +x
+$as_echo "$at_srcdir/label02.at:24:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18316,34 +17614,15 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
 )"
-echo backup01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18352,65 +17631,83 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir1/
-dir1/file1
-Renaming \`dir1/file1' to \`dir1/file1~'
-dir2/
+exec <&-
+genfile --length 0 --file foo
+genfile --length 12288 --file bar
+genfile --length 12288 --file baz
+tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
+tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Test Volume 1
+foo
+bar
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/backup01.at:36:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-)"
-echo backup01.at:36 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'label03.at:27' \
+  "test-label option" "                              " 10
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "77. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/label03.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho \"# Display label\"
+tar --test-label --file=iamanarchive; echo \$?
+decho \"# Display label: unlabeled\"
+tar --test-label --file=unlabeled.tar; echo \$?
+decho \"# Test label: success\"
+tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label: failure\"
+tar --test-label --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: unlabeled\"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
+decho \"# Test label, verbose: success\"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label, verbose: failure\"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: multiple arguments\"
+tar --test-label --file=iamanarchive a iamalabel b; echo \$?
+decho \"# Test label: wildcards\"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -18419,251 +17716,73 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-unset VERSION_CONTROL
-mkdir dir1 dir2
-echo bla > dir1/file1
-tar cf test.tar dir1 dir2
-tar xfv test.tar --backup --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir1/
-dir1/file1
-Renaming \`dir1/file1' to \`dir1/file1~'
-dir2/
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_49
-#AT_START_50
-# 50. gzip.at:23: gzip
-at_setup_line='gzip.at:23'
-at_desc="gzip"
-$at_quiet $as_echo_n " 50: $at_desc                                           "
-at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "50. gzip.at:23: testing ..."
-  $at_traceon
-
-
-
-unset TAR_OPTIONS
-
-{ $at_traceoff
-$as_echo "$at_srcdir/gzip.at:28:
-
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
-
-tar xfvz /dev/null 2>err
-RC=\$?
-sed -n '/^tar:/p' err >&2
-exit \$RC
-"
-echo gzip.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
-
-tar xfvz /dev/null 2>err
-RC=$?
-sed -n '/^tar:/p' err >&2
-exit $RC
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
-
-tar xfvz /dev/null 2>err
-RC=$?
-sed -n '/^tar:/p' err >&2
-exit $RC
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Child returned status 1
-tar: Error is not recoverable: exiting now
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho "# Display label"
+tar --test-label --file=iamanarchive; echo $?
+decho "# Display label: unlabeled"
+tar --test-label --file=unlabeled.tar; echo $?
+decho "# Test label: success"
+tar --test-label --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label: failure"
+tar --test-label --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: unlabeled"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
+decho "# Test label, verbose: success"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label, verbose: failure"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: multiple arguments"
+tar --test-label --file=iamanarchive a iamalabel b; echo $?
+decho "# Test label: wildcards"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Display label
+# Display label: unlabeled
+# Test label: success
+# Test label: failure
+# Test label: unlabeled
+# Test label, verbose: success
+# Test label, verbose: failure
+tar: Archive label mismatch
+# Test label: multiple arguments
+# Test label: wildcards
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/gzip.at:28"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_50
-#AT_START_51
-# 51. incremental.at:23: incremental
-at_setup_line='incremental.at:23'
-at_desc="incremental"
-$at_quiet $as_echo_n " 51: $at_desc                                    "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "51. incremental.at:23: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/incremental.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created \`on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-)"
-echo incremental.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "structure/
-separator
-structure/
-structure/file
+echo >>"$at_stdout"; $as_echo "# Display label
+iamalabel
+0
+# Display label: unlabeled
+0
+# Test label: success
+0
+# Test label: failure
+1
+# Test label: unlabeled
+1
+# Test label, verbose: success
+iamalabel
+0
+# Test label, verbose: failure
+iamalabel
+1
+# Test label: multiple arguments
+0
+# Test label: wildcards
+0
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incremental.at:26:
+              { set +x
+$as_echo "$at_srcdir/label03.at:30:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -18672,38 +17791,31 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created \`on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho \"# Display label\"
+tar --test-label --file=iamanarchive; echo \$?
+decho \"# Display label: unlabeled\"
+tar --test-label --file=unlabeled.tar; echo \$?
+decho \"# Test label: success\"
+tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label: failure\"
+tar --test-label --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: unlabeled\"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
+decho \"# Test label, verbose: success\"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label, verbose: failure\"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: multiple arguments\"
+tar --test-label --file=iamanarchive a iamalabel b; echo \$?
+decho \"# Test label: wildcards\"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
 )"
-echo incremental.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -18712,88 +17824,73 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "structure/
-separator
-structure/
-structure/file
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho "# Display label"
+tar --test-label --file=iamanarchive; echo $?
+decho "# Display label: unlabeled"
+tar --test-label --file=unlabeled.tar; echo $?
+decho "# Test label: success"
+tar --test-label --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label: failure"
+tar --test-label --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: unlabeled"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
+decho "# Test label, verbose: success"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label, verbose: failure"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: multiple arguments"
+tar --test-label --file=iamanarchive a iamalabel b; echo $?
+decho "# Test label: wildcards"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Display label
+# Display label: unlabeled
+# Test label: success
+# Test label: failure
+# Test label: unlabeled
+# Test label, verbose: success
+# Test label, verbose: failure
+tar: Archive label mismatch
+# Test label: multiple arguments
+# Test label: wildcards
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Display label
+iamalabel
+0
+# Display label: unlabeled
+0
+# Test label: success
+0
+# Test label: failure
+1
+# Test label: unlabeled
+1
+# Test label, verbose: success
+iamalabel
+0
+# Test label, verbose: failure
+iamalabel
+1
+# Test label: multiple arguments
+0
+# Test label: wildcards
+0
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incremental.at:26:
+              { set +x
+$as_echo "$at_srcdir/label03.at:30:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18802,38 +17899,31 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created \`on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho \"# Display label\"
+tar --test-label --file=iamanarchive; echo \$?
+decho \"# Display label: unlabeled\"
+tar --test-label --file=unlabeled.tar; echo \$?
+decho \"# Test label: success\"
+tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label: failure\"
+tar --test-label --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: unlabeled\"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
+decho \"# Test label, verbose: success\"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
+decho \"# Test label, verbose: failure\"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
+decho \"# Test label: multiple arguments\"
+tar --test-label --file=iamanarchive a iamalabel b; echo \$?
+decho \"# Test label: wildcards\"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
 )"
-echo incremental.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -18842,112 +17932,94 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir structure
-echo x >structure/file
-
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
+exec <&-
+genfile --file file
+tar -c --label='iamalabel' --file iamanarchive file
+tar -c --file unlabeled.tar file
+decho "# Display label"
+tar --test-label --file=iamanarchive; echo $?
+decho "# Display label: unlabeled"
+tar --test-label --file=unlabeled.tar; echo $?
+decho "# Test label: success"
+tar --test-label --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label: failure"
+tar --test-label --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: unlabeled"
+tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
+decho "# Test label, verbose: success"
+tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
+decho "# Test label, verbose: failure"
+tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
+decho "# Test label: multiple arguments"
+tar --test-label --file=iamanarchive a iamalabel b; echo $?
+decho "# Test label: wildcards"
+tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Display label
+# Display label: unlabeled
+# Test label: success
+# Test label: failure
+# Test label: unlabeled
+# Test label, verbose: success
+# Test label, verbose: failure
+tar: Archive label mismatch
+# Test label: multiple arguments
+# Test label: wildcards
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Display label
+iamalabel
+0
+# Display label: unlabeled
+0
+# Test label: success
+0
+# Test label: failure
+1
+# Test label: unlabeled
+1
+# Test label, verbose: success
+iamalabel
+0
+# Test label, verbose: failure
+iamalabel
+1
+# Test label: multiple arguments
+0
+# Test label: wildcards
+0
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
 
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir structure
-echo x >structure/file
 
-# On Nextstep (and perhaps other 4.3BSD systems),
-# a newly created file's ctime isn't updated
-# until the next sync or stat operation on the file.
-ls -l structure/file >/dev/null
-
-# If the time of an initial backup and the creation time of a file contained
-# in that backup are the same, the file will be backed up again when an
-# incremental backup is done, because the incremental backup backs up
-# files created `on or after' the initial backup time.  Without the sleep
-# command, behaviour of tar becomes variable, depending whether the system
-# clock ticked over to the next second between creating the file and
-# backing it up.
-sleep 1
-
-tar cf archive --listed=list structure
-tar cfv archive --listed=list structure
-echo separator
-# ReiserFS often offsets the timestamps of newly created files
-# 1 second to the past.  Try to compensate for it, until a better
-# solution is found.
-sleep 2
-echo y >structure/file
-tar cfv archive --listed=list structure
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "structure/
-separator
-structure/
-structure/file
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_51
-#AT_START_52
-# 52. incr01.at:27: restore broken symlinks from incremental
-at_setup_line='incr01.at:27'
-at_desc="restore broken symlinks from incremental"
-$at_quiet $as_echo_n " 52: $at_desc       "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_77
+#AT_START_78
+at_fn_group_banner 78 'label04.at:27' \
+  "label with non-create option" "                   " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "52. incr01.at:27: testing ..."
+  $as_echo "78. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/incr01.at:30:
+  { set +x
+$as_echo "$at_srcdir/label04.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -18956,48 +18028,17 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-\$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive --label='New volume' file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive --label='New volume' file
 )"
-echo incr01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19006,37 +18047,37 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/bar
-separator
-directory/
-tar: Deleting \`directory/bar'
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive --label='New volume' file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive --label='New volume' file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Volume 'New volume' does not match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr01.at:30:
+              { set +x
+$as_echo "$at_srcdir/label04.at:30:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19045,48 +18086,17 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-\$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive --label='New volume' file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive --label='New volume' file
 )"
-echo incr01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19095,37 +18105,37 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/bar
-separator
-directory/
-tar: Deleting \`directory/bar'
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive --label='New volume' file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive --label='New volume' file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Volume 'New volume' does not match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr01.at:30:
+              { set +x
+$as_echo "$at_srcdir/label04.at:30:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -19134,24 +18144,17 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-\$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive --label='New volume' file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive --label='New volume' file
 )"
-echo incr01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -19160,85 +18163,58 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-$as_ln_s foo directory/bar
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive --label='New volume' file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive --label='New volume' file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Volume 'New volume' does not match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
 
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-$as_ln_s foo directory/bar
-
-tar -cf archive.0 -g db directory
-rm directory/bar
-tar -cf archive.1 -g db directory
-
-mv directory orig
-
-tar xvfg archive.0 /dev/null --warning=no-timestamp
-echo separator
-tar xvfg archive.1 /dev/null --warning=no-timestamp
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/bar
-separator
-directory/
-tar: Deleting \`directory/bar'
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
 
 
-
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_52
-#AT_START_53
-# 53. incr02.at:32: restoring timestamps from incremental
-at_setup_line='incr02.at:32'
-at_desc="restoring timestamps from incremental"
-$at_quiet $as_echo_n " 53: $at_desc          "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_78
+#AT_START_79
+at_fn_group_banner 79 'label05.at:24' \
+  "label with non-create option" "                   " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "53. incr02.at:32: testing ..."
+  $as_echo "79. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/incr02.at:35:
+  { set +x
+$as_echo "$at_srcdir/label05.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19247,94 +18223,17 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, \`dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive file
 )"
-echo incr02.at:35 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19343,54 +18242,37 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35"
-
-$at_failed && at_func_log_failure
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Archive not labeled to match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr02.at:35:
+              { set +x
+$as_echo "$at_srcdir/label05.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19399,47 +18281,17 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, \`dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive file
 )"
-echo incr02.at:35 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19448,197 +18300,56 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Archive not labeled to match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
+              { set +x
+$as_echo "$at_srcdir/label05.at:27:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/incr02.at:35:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
-
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, \`dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
+exec <&-
+genfile --file file
+decho \"# Create volume\"
+tar -c -f archive file
+decho \"# Update: wrong label\"
+tar -rf archive --label='My volume' file; echo \$?
+decho \"# Update: right label\"
+tar -rf archive file
 )"
-echo incr02.at:35 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -19647,78 +18358,58 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-# Create directory structure
-mkdir dir
-mkdir dir/subdir1
-mkdir dir/subdir2
-genfile --length 10 --file dir/subdir1/file
-
-# Save mtime for later comparison
-genfile --stat=mtime dir/subdir1 > ts
-
-# Create an archive. Using incremental mode makes sure the
-# archive will have a directory-first member ordering,
-# i.e.:
-# dir/
-# dir/subdir1/
-# dir/subdir2/
-# dir/subdir1/foofile
-#
-# When restoring from this directory structure, `dir/subdir2/' used to
-# trigger apply_nonancestor_delayed_set_stat() which restored stats for
-# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the
-# latter clobbered the directory timestamp.
-
-tar -cf archive -g db dir
-
-# Move away the directory
-mv dir orig
-
-# Wait enough time for timestamps to differ in case of failure.
-sleep 5
-
-# Restore the directory
-tar -xf archive dir
-
-# Check the timestamp
-genfile --stat=mtime dir/subdir1 | diff ts -
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35"
-
-$at_failed && at_func_log_failure
+exec <&-
+genfile --file file
+decho "# Create volume"
+tar -c -f archive file
+decho "# Update: wrong label"
+tar -rf archive --label='My volume' file; echo $?
+decho "# Update: right label"
+tar -rf archive file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "# Create volume
+# Update: wrong label
+tar: Archive not labeled to match 'My volume'
+tar: Error is not recoverable: exiting now
+# Update: right label
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Create volume
+# Update: wrong label
+2
+# Update: right label
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_53
-#AT_START_54
-# 54. listed01.at:26: --listed for individual files
-at_setup_line='listed01.at:26'
-at_desc="--listed for individual files"
-$at_quiet $as_echo_n " 54: $at_desc                  "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_79
+#AT_START_80
+at_fn_group_banner 80 'incremental.at:23' \
+  "incremental" "                                    " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "54. listed01.at:26: testing ..."
+  $as_echo "80. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/listed01.at:29:
+  { set +x
+$as_echo "$at_srcdir/incremental.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19727,121 +18418,86 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
-sleep 1
+mkdir structure
+echo x >structure/file
 
-tar --create \\
-    --file=archive.1 \\
-    --listed-incremental=listing \\
-    directory/file*
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
-tar tf archive.1 || exit 1
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created \"on or after\" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
+sleep 1
 
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
 sleep 2
+echo y >structure/file
+tar cfv archive --listed=list structure
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo \"separator\"
-cp listing listing.old
-tar --create \\
-    --file=archive.2 \\
-    --listed-incremental=listing \\
-    directory/file* || exit 1
-
-tar tf archive.2 || exit 1
-)"
-echo listed01.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
-sleep 1
-
-tar --create \
-    --file=archive.1 \
-    --listed-incremental=listing \
-    directory/file*
-
-tar tf archive.1 || exit 1
-
-sleep 2
-
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo "separator"
-cp listing listing.old
-tar --create \
-    --file=archive.2 \
-    --listed-incremental=listing \
-    directory/file* || exit 1
+mkdir structure
+echo x >structure/file
 
-tar tf archive.2 || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created "on or after" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
 sleep 1
 
-tar --create \
-    --file=archive.1 \
-    --listed-incremental=listing \
-    directory/file*
-
-tar tf archive.1 || exit 1
-
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
 sleep 2
-
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo "separator"
-cp listing listing.old
-tar --create \
-    --file=archive.2 \
-    --listed-incremental=listing \
-    directory/file* || exit 1
-
-tar tf archive.2 || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/file1
+echo y >structure/file
+tar cfv archive --listed=list structure
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "structure/
 separator
-directory/file2
+structure/
+structure/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/listed01.at:29:
+              { set +x
+$as_echo "$at_srcdir/incremental.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19850,36 +18506,35 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
-sleep 1
+mkdir structure
+echo x >structure/file
 
-tar --create \\
-    --file=archive.1 \\
-    --listed-incremental=listing \\
-    directory/file*
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
-tar tf archive.1 || exit 1
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created \"on or after\" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
+sleep 1
 
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
 sleep 2
-
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo \"separator\"
-cp listing listing.old
-tar --create \\
-    --file=archive.2 \\
-    --listed-incremental=listing \\
-    directory/file* || exit 1
-
-tar tf archive.2 || exit 1
+echo y >structure/file
+tar cfv archive --listed=list structure
 )"
-echo listed01.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19888,249 +18543,181 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
-sleep 1
-
-tar --create \
-    --file=archive.1 \
-    --listed-incremental=listing \
-    directory/file*
-
-tar tf archive.1 || exit 1
-
-sleep 2
-
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo "separator"
-cp listing listing.old
-tar --create \
-    --file=archive.2 \
-    --listed-incremental=listing \
-    directory/file* || exit 1
+mkdir structure
+echo x >structure/file
 
-tar tf archive.2 || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-# Let the things settle
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created "on or after" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
 sleep 1
 
-tar --create \
-    --file=archive.1 \
-    --listed-incremental=listing \
-    directory/file*
-
-tar tf archive.1 || exit 1
-
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
 sleep 2
-
-genfile --length 10240 --pattern zeros --file directory/file2
-
-echo "separator"
-cp listing listing.old
-tar --create \
-    --file=archive.2 \
-    --listed-incremental=listing \
-    directory/file* || exit 1
-
-tar tf archive.2 || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/file1
+echo y >structure/file
+tar cfv archive --listed=list structure
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "structure/
 separator
-directory/file2
+structure/
+structure/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_54
-#AT_START_55
-# 55. listed02.at:28: working --listed
-at_setup_line='listed02.at:28'
-at_desc="working --listed"
-$at_quiet $as_echo_n " 55: $at_desc                               "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "55. listed02.at:28: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/listed02.at:31:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/incremental.at:26:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir structure
+echo x >structure/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-echo Create directories
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created \"on or after\" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
 sleep 1
 
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File \$file > \$file
-  sleep 1
-done
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
+sleep 2
+echo y >structure/file
+tar cfv archive --listed=list structure
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-sleep 1
-echo Creating main archive
-echo >&2 \"Creating main archive\"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+mkdir structure
+echo x >structure/file
 
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
+# On Nextstep (and perhaps other 4.3BSD systems),
+# a newly created file's ctime isn't updated
+# until the next sync or stat operation on the file.
+ls -l structure/file >/dev/null
 
+# If the time of an initial backup and the creation time of a file contained
+# in that backup are the same, the file will be backed up again when an
+# incremental backup is done, because the incremental backup backs up
+# files created "on or after" the initial backup time.  Without the sleep
+# command, behaviour of tar becomes variable, depending whether the system
+# clock ticked over to the next second between creating the file and
+# backing it up.
 sleep 1
-echo Modifying filesystem
-rm tart/a1
 
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
+tar cf archive --listed=list structure
+tar cfv archive --listed=list structure
+echo separator
+# ReiserFS often offsets the timestamps of newly created files
+# 1 second to the past.  Try to compensate for it, until a better
+# solution is found.
+sleep 2
+echo y >structure/file
+tar cfv archive --listed=list structure
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "structure/
+separator
+structure/
+structure/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Directory contents
-find tart -print | sort 2>/dev/null
 
-sleep 1
-echo Creating incremental archive
-echo >&2 \"Creating incremental archive\"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
 
-sleep 1
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 \"Extracting main archive\"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_80
+#AT_START_81
+at_fn_group_banner 81 'incr01.at:27' \
+  "restore broken symlinks from incremental" "       " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "81. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
 
-echo Final files:
-find tart -print | sort 2>/dev/null
-)"
-echo listed02.at:31 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+  { set +x
+$as_echo "$at_srcdir/incr01.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+\$as_ln_s foo directory/bar
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-echo Create directories
-
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
-sleep 1
-
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File $file > $file
-  sleep 1
-done
-
-sleep 1
-echo Creating main archive
-echo >&2 "Creating main archive"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
-
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
-
-sleep 1
-echo Modifying filesystem
-rm tart/a1
-
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
-
-echo Directory contents
-find tart -print | sort 2>/dev/null
-
-sleep 1
-echo Creating incremental archive
-echo >&2 "Creating incremental archive"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
-
-sleep 1
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 "Extracting main archive"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+mv directory orig
 
-echo Final files:
-find tart -print | sort 2>/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -20139,588 +18726,503 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+$as_ln_s foo directory/bar
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-echo Create directories
+mv directory orig
 
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
-sleep 1
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/bar
+separator
+directory/
+tar: Deleting 'directory/bar'
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File $file > $file
-  sleep 1
-done
+              { set +x
+$as_echo "$at_srcdir/incr01.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-sleep 1
-echo Creating main archive
-echo >&2 "Creating main archive"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+mkdir directory
+\$as_ln_s foo directory/bar
 
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-sleep 1
-echo Modifying filesystem
-rm tart/a1
+mv directory orig
 
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo Directory contents
-find tart -print | sort 2>/dev/null
+mkdir directory
+$as_ln_s foo directory/bar
 
-sleep 1
-echo Creating incremental archive
-echo >&2 "Creating incremental archive"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-sleep 1
+mv directory orig
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 "Extracting main archive"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
-
-echo Final files:
-find tart -print | sort 2>/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating main archive
-tar: tart/c0: Directory is new
-tar: tart/c1: Directory is new
-tar: tart: Directory is new
-Creating incremental archive
-tar: tart/c2: Directory has been renamed from \`tart/c1'
-Extracting main archive
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Create directories
-Creating main archive
-tart/
-tart/c0/
-tart/c1/
-tart/a1
-tart/b1
-tart/c0/cq1
-tart/c0/cq2
-tart/c1/ca1
-tart/c1/ca2
-Modifying filesystem
-Directory contents
-tart
-tart/b2
-tart/c0
-tart/c0/cq1
-tart/c0/cq2
-tart/c2
-tart/c2/ca1
-tart/c2/ca2
-tart/c2/ca3
-Creating incremental archive
-tart/
-tart/c0/
-tart/c2/
-tart/b2
-tart/c2/ca3
-Extracting main archive
-tart/
-tart/c0/
-tart/c1/
-tart/a1
-tart/b1
-tart/c0/cq1
-tart/c0/cq2
-tart/c1/ca1
-tart/c1/ca2
-Extracting incremental archive
-tar: Deleting \`tart/a1'
-tar: Deleting \`tart/b1'
-tart/
-tart/b2
-tart/c0/
-tart/c2/
-tart/c2/ca3
-Final files:
-tart
-tart/b2
-tart/c0
-tart/c0/cq1
-tart/c0/cq2
-tart/c2
-tart/c2/ca1
-tart/c2/ca2
-tart/c2/ca3
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/bar
+separator
+directory/
+tar: Deleting 'directory/bar'
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed02.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/listed02.at:31:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/incr01.at:30:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+\$as_ln_s foo directory/bar
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-echo Create directories
+mv directory orig
 
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
-sleep 1
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File \$file > \$file
-  sleep 1
-done
+mkdir directory
+$as_ln_s foo directory/bar
 
-sleep 1
-echo Creating main archive
-echo >&2 \"Creating main archive\"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+tar -cf archive.0 -g db directory
+rm directory/bar
+tar -cf archive.1 -g db directory
 
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
+mv directory orig
 
-sleep 1
-echo Modifying filesystem
-rm tart/a1
+tar xvfg archive.0 /dev/null --warning=no-timestamp
+echo separator
+tar xvfg archive.1 /dev/null --warning=no-timestamp
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/bar
+separator
+directory/
+tar: Deleting 'directory/bar'
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
 
-echo Directory contents
-find tart -print | sort 2>/dev/null
 
-sleep 1
-echo Creating incremental archive
-echo >&2 \"Creating incremental archive\"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
 
-sleep 1
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_81
+#AT_START_82
+at_fn_group_banner 82 'incr02.at:32' \
+  "restoring timestamps from incremental" "          " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "82. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 \"Extracting main archive\"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 
-echo Final files:
-find tart -print | sort 2>/dev/null
-)"
-echo listed02.at:31 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+  { set +x
+$as_echo "$at_srcdir/incr02.at:35:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+# Create directory structure
+mkdir dir
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
-echo Create directories
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
-sleep 1
+tar -cf archive -g db dir
 
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File $file > $file
-  sleep 1
-done
+# Move away the directory
+mv dir orig
 
-sleep 1
-echo Creating main archive
-echo >&2 "Creating main archive"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
 
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
+# Restore the directory
+tar -xf archive dir
 
-sleep 1
-echo Modifying filesystem
-rm tart/a1
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
+# Create directory structure
+mkdir dir
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
-echo Directory contents
-find tart -print | sort 2>/dev/null
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
-sleep 1
-echo Creating incremental archive
-echo >&2 "Creating incremental archive"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
-sleep 1
+tar -cf archive -g db dir
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 "Extracting main archive"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+# Move away the directory
+mv dir orig
 
-echo Final files:
-find tart -print | sort 2>/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
+
+# Restore the directory
+tar -xf archive dir
+
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr02.at:35:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+# Create directory structure
+mkdir dir
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
-echo Create directories
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
-mkdir tart
-sleep 1
-mkdir tart/c0
-sleep 1
-mkdir tart/c1
-sleep 1
+tar -cf archive -g db dir
 
-for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
-do
-  echo File $file > $file
-  sleep 1
-done
+# Move away the directory
+mv dir orig
 
-sleep 1
-echo Creating main archive
-echo >&2 "Creating main archive"
-tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
 
-# The above prints two lines to stderr announcing the new directories c0 and c1.
-# Ensure that they appear in this script's stderr in sorted order.
-sort err 1>&2; rm -f err
+# Restore the directory
+tar -xf archive dir
 
-sleep 1
-echo Modifying filesystem
-rm tart/a1
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-mv tart/b1 tart/b2
-mv tart/c1 tart/c2
-touch tart/c2/ca3
+# Create directory structure
+mkdir dir
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
-echo Directory contents
-find tart -print | sort 2>/dev/null
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
-sleep 1
-echo Creating incremental archive
-echo >&2 "Creating incremental archive"
-cp -p tart.incr1 tart.incr2
-tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
-sleep 1
+tar -cf archive -g db dir
 
-rm -rf tart/*
-echo Extracting main archive
-echo >&2 "Extracting main archive"
-tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
-echo Extracting incremental archive
-# This command should produce three messages about deletion
-# of the existing files, that may appear in any order. Piping
-# to sort makes sure we don't depend on any particular ordering.
-tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+# Move away the directory
+mv dir orig
 
-echo Final files:
-find tart -print | sort 2>/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating main archive
-tar: tart/c0: Directory is new
-tar: tart/c1: Directory is new
-tar: tart: Directory is new
-Creating incremental archive
-tar: tart/c2: Directory has been renamed from \`tart/c1'
-Extracting main archive
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Create directories
-Creating main archive
-tart/
-tart/c0/
-tart/c1/
-tart/a1
-tart/b1
-tart/c0/cq1
-tart/c0/cq2
-tart/c1/ca1
-tart/c1/ca2
-Modifying filesystem
-Directory contents
-tart
-tart/b2
-tart/c0
-tart/c0/cq1
-tart/c0/cq2
-tart/c2
-tart/c2/ca1
-tart/c2/ca2
-tart/c2/ca3
-Creating incremental archive
-tart/
-tart/c0/
-tart/c2/
-tart/b2
-tart/c2/ca3
-Extracting main archive
-tart/
-tart/c0/
-tart/c1/
-tart/a1
-tart/b1
-tart/c0/cq1
-tart/c0/cq2
-tart/c1/ca1
-tart/c1/ca2
-Extracting incremental archive
-tar: Deleting \`tart/a1'
-tar: Deleting \`tart/b1'
-tart/
-tart/b2
-tart/c0/
-tart/c2/
-tart/c2/ca3
-Final files:
-tart
-tart/b2
-tart/c0
-tart/c0/cq1
-tart/c0/cq2
-tart/c2
-tart/c2/ca1
-tart/c2/ca2
-tart/c2/ca3
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed02.at:31"
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
 
-$at_failed && at_func_log_failure
+# Restore the directory
+tar -xf archive dir
+
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/incr02.at:35:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
+# Create directory structure
+mkdir dir
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_55
-#AT_START_56
-# 56. listed03.at:22: incremental dump when the parent directory is unreadable
-at_setup_line='listed03.at:22'
-at_desc="incremental dump when the parent directory is unreadable"
-$at_quiet $as_echo_n " 56: $at_desc"
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "56. listed03.at:22: testing ..."
-  $at_traceon
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
+tar -cf archive -g db dir
 
+# Move away the directory
+mv dir orig
 
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
 
+# Restore the directory
+tar -xf archive dir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/listed03.at:25:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
-
-
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
-
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-genfile --file dir/sub/a/file
-cd dir/sub
-
-chmod a-r ..
-tar -c -f archive.tar --listed-incremental=db.1 -v a
-status=\$?
-chmod a+r ..
-exit \$status
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
 )"
-echo listed03.at:25 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
-
+# Create directory structure
 mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-genfile --file dir/sub/a/file
-cd dir/sub
+mkdir dir/subdir1
+mkdir dir/subdir2
+genfile --length 10 --file dir/subdir1/file
 
-chmod a-r ..
-tar -c -f archive.tar --listed-incremental=db.1 -v a
-status=$?
-chmod a+r ..
-exit $status
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+# Save mtime for later comparison
+genfile --stat=mtime dir/subdir1 > ts
 
+# Create an archive. Using incremental mode makes sure the
+# archive will have a directory-first member ordering,
+# i.e.:
+# dir/
+# dir/subdir1/
+# dir/subdir2/
+# dir/subdir1/foofile
+#
+# When restoring from this directory structure, 'dir/subdir2/' used to
+# trigger apply_nonancestor_delayed_set_stat() which restored stats for
+# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
+# latter clobbered the directory timestamp.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+tar -cf archive -g db dir
 
+# Move away the directory
+mv dir orig
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-genfile --file dir/sub/a/file
-cd dir/sub
+# Wait enough time for timestamps to differ in case of failure.
+sleep 5
 
-chmod a-r ..
-tar -c -f archive.tar --listed-incremental=db.1 -v a
-status=$?
-chmod a+r ..
-exit $status
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "a/
-a/file
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed03.at:25"
+# Restore the directory
+tar -xf archive dir
 
-$at_failed && at_func_log_failure
+# Check the timestamp
+genfile --stat=mtime dir/subdir1 | diff ts -
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_56
-#AT_START_57
-# 57. listed04.at:24: --listed-incremental and --one-file-system
-at_setup_line='listed04.at:24'
-at_desc="--listed-incremental and --one-file-system"
-$at_quiet $as_echo_n " 57: $at_desc     "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_82
+#AT_START_83
+at_fn_group_banner 83 'listed01.at:26' \
+  "--listed for individual files" "                  " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "57. listed04.at:24: testing ..."
+  $as_echo "83. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/listed04.at:27:
+  { set +x
+$as_echo "$at_srcdir/listed01.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -20729,38 +19231,33 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+# Let the things settle
+sleep 1
 
-mkdir dir
-echo a >dir/a
-echo b >dir/b
+tar --create \\
+    --file=archive.1 \\
+    --listed-incremental=listing \\
+    directory/file*
 
-tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
-tar -tf archive.tar || exit
-)"
-echo listed04.at:27 >"$at_check_line_file"
+tar tf archive.1 || exit 1
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+sleep 2
 
+genfile --length 10240 --pattern zeros --file directory/file2
 
-mkdir dir
-echo a >dir/a
-echo b >dir/b
+echo \"separator\"
+cp listing listing.old
+tar --create \\
+    --file=archive.2 \\
+    --listed-incremental=listing \\
+    directory/file* || exit 1
 
-tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
-tar -tf archive.tar || exit
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar tf archive.2 || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -20769,535 +19266,595 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+# Let the things settle
+sleep 1
 
-mkdir dir
-echo a >dir/a
-echo b >dir/b
+tar --create \
+    --file=archive.1 \
+    --listed-incremental=listing \
+    directory/file*
 
-tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
-tar -tf archive.tar || exit
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/a
-dir/b
-dir/
-dir/a
-dir/b
+tar tf archive.1 || exit 1
+
+sleep 2
+
+genfile --length 10240 --pattern zeros --file directory/file2
+
+echo "separator"
+cp listing listing.old
+tar --create \
+    --file=archive.2 \
+    --listed-incremental=listing \
+    directory/file* || exit 1
+
+tar tf archive.2 || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/file1
+separator
+directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/listed04.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/listed01.at:29:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+# Let the things settle
+sleep 1
 
+tar --create \\
+    --file=archive.1 \\
+    --listed-incremental=listing \\
+    directory/file*
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_57
-#AT_START_58
-# 58. incr03.at:28: renamed files in incrementals
-at_setup_line='incr03.at:28'
-at_desc="renamed files in incrementals"
-$at_quiet $as_echo_n " 58: $at_desc                  "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "58. incr03.at:28: testing ..."
-  $at_traceon
-
+tar tf archive.1 || exit 1
 
+sleep 2
 
+genfile --length 10240 --pattern zeros --file directory/file2
 
+echo \"separator\"
+cp listing listing.old
+tar --create \\
+    --file=archive.2 \\
+    --listed-incremental=listing \\
+    directory/file* || exit 1
 
-  { $at_traceoff
-$as_echo "$at_srcdir/incr03.at:31:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar tf archive.2 || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
 mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
-
+genfile --length 10240 --pattern zeros --file directory/file1
+# Let the things settle
 sleep 1
 
-tar -cf archive.1 -g db directory
+tar --create \
+    --file=archive.1 \
+    --listed-incremental=listing \
+    directory/file*
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
+tar tf archive.1 || exit 1
 
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
-
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+sleep 2
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-)"
-echo incr03.at:31 >"$at_check_line_file"
+genfile --length 10240 --pattern zeros --file directory/file2
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+echo "separator"
+cp listing listing.old
+tar --create \
+    --file=archive.2 \
+    --listed-incremental=listing \
+    directory/file* || exit 1
 
+tar tf archive.2 || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/file1
+separator
+directory/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
 
-sleep 1
 
-tar -cf archive.1 -g db directory
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_83
+#AT_START_84
+at_fn_group_banner 84 'listed02.at:28' \
+  "working --listed" "                               " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "84. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
 
-mv directory orig
 
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
 
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  { set +x
+$as_echo "$at_srcdir/listed02.at:31:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Create directories
 
+mkdir tart
+sleep 1
+mkdir tart/c0
+sleep 1
+mkdir tart/c1
 sleep 1
 
-tar -cf archive.1 -g db directory
-
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
-
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
-
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
-
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Listing of archive.1
-directory/
-directory/x
-directory/y
-Listing of archive.2
-directory/
-directory/z
-Directory after first restore
-directory
-directory/x
-directory/y
-Directory after second restore
-directory
-directory/y
-directory/z
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/incr03.at:31:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
-
+for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
+do
+  echo File \$file > \$file
+  sleep 1
+done
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+sleep 1
+echo Creating main archive
+echo >&2 \"Creating main archive\"
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+# The above prints two lines to stderr announcing the new directories c0 and c1.
+# Ensure that they appear in this script's stderr in sorted order.
+sort err 1>&2; rm -f err
 
 sleep 1
+echo Modifying filesystem
+rm tart/a1
 
-tar -cf archive.1 -g db directory
+mv tart/b1 tart/b2
+mv tart/c1 tart/c2
+touch tart/c2/ca3
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
+echo Directory contents
+find tart -print | sort 2>/dev/null
 
-mv directory orig
+sleep 1
+echo Creating incremental archive
+echo >&2 \"Creating incremental archive\"
+cp -p tart.incr1 tart.incr2
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
 
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
+sleep 1
 
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+rm -rf tart/*
+echo Extracting main archive
+echo >&2 \"Extracting main archive\"
+tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
+echo Extracting incremental archive
+# This command should produce three messages about deletion
+# of the existing files, that may appear in any order. Piping
+# to sort makes sure we don't depend on any particular ordering.
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
+echo Final files:
+find tart -print | sort 2>/dev/null
 )"
-echo incr03.at:31 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Create directories
 
+mkdir tart
+sleep 1
+mkdir tart/c0
+sleep 1
+mkdir tart/c1
 sleep 1
 
-tar -cf archive.1 -g db directory
-
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
-
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
+for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
+do
+  echo File $file > $file
+  sleep 1
+done
 
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+sleep 1
+echo Creating main archive
+echo >&2 "Creating main archive"
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+# The above prints two lines to stderr announcing the new directories c0 and c1.
+# Ensure that they appear in this script's stderr in sorted order.
+sort err 1>&2; rm -f err
 
+sleep 1
+echo Modifying filesystem
+rm tart/a1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+mv tart/b1 tart/b2
+mv tart/c1 tart/c2
+touch tart/c2/ca3
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Directory contents
+find tart -print | sort 2>/dev/null
 
 sleep 1
+echo Creating incremental archive
+echo >&2 "Creating incremental archive"
+cp -p tart.incr1 tart.incr2
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
 
-tar -cf archive.1 -g db directory
+sleep 1
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
-
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
-
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+rm -rf tart/*
+echo Extracting main archive
+echo >&2 "Extracting main archive"
+tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
+echo Extracting incremental archive
+# This command should produce three messages about deletion
+# of the existing files, that may appear in any order. Piping
+# to sort makes sure we don't depend on any particular ordering.
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Listing of archive.1
-directory/
-directory/x
-directory/y
-Listing of archive.2
-directory/
-directory/z
-Directory after first restore
-directory
-directory/x
-directory/y
-Directory after second restore
-directory
-directory/y
-directory/z
+echo Final files:
+find tart -print | sort 2>/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating main archive
+tar: tart/c0: Directory is new
+tar: tart/c1: Directory is new
+tar: tart: Directory is new
+Creating incremental archive
+tar: tart/c2: Directory has been renamed from 'tart/c1'
+Extracting main archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Create directories
+Creating main archive
+tart/
+tart/c0/
+tart/c1/
+tart/a1
+tart/b1
+tart/c0/cq1
+tart/c0/cq2
+tart/c1/ca1
+tart/c1/ca2
+Modifying filesystem
+Directory contents
+tart
+tart/b2
+tart/c0
+tart/c0/cq1
+tart/c0/cq2
+tart/c2
+tart/c2/ca1
+tart/c2/ca2
+tart/c2/ca3
+Creating incremental archive
+tart/
+tart/c0/
+tart/c2/
+tart/b2
+tart/c2/ca3
+Extracting main archive
+tart/
+tart/c0/
+tart/c1/
+tart/a1
+tart/b1
+tart/c0/cq1
+tart/c0/cq2
+tart/c1/ca1
+tart/c1/ca2
+Extracting incremental archive
+tar: Deleting 'tart/a1'
+tar: Deleting 'tart/b1'
+tart/
+tart/b2
+tart/c0/
+tart/c2/
+tart/c2/ca3
+Final files:
+tart
+tart/b2
+tart/c0
+tart/c0/cq1
+tart/c0/cq2
+tart/c2
+tart/c2/ca1
+tart/c2/ca2
+tart/c2/ca3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr03.at:31:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/listed02.at:31:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Create directories
 
+mkdir tart
+sleep 1
+mkdir tart/c0
+sleep 1
+mkdir tart/c1
 sleep 1
 
-tar -cf archive.1 -g db directory
+for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
+do
+  echo File \$file > \$file
+  sleep 1
+done
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
+sleep 1
+echo Creating main archive
+echo >&2 \"Creating main archive\"
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
 
-mv directory orig
+# The above prints two lines to stderr announcing the new directories c0 and c1.
+# Ensure that they appear in this script's stderr in sorted order.
+sort err 1>&2; rm -f err
 
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
+sleep 1
+echo Modifying filesystem
+rm tart/a1
 
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+mv tart/b1 tart/b2
+mv tart/c1 tart/c2
+touch tart/c2/ca3
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-)"
-echo incr03.at:31 >"$at_check_line_file"
+echo Directory contents
+find tart -print | sort 2>/dev/null
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+sleep 1
+echo Creating incremental archive
+echo >&2 \"Creating incremental archive\"
+cp -p tart.incr1 tart.incr2
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
+
+sleep 1
+
+rm -rf tart/*
+echo Extracting main archive
+echo >&2 \"Extracting main archive\"
+tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
+echo Extracting incremental archive
+# This command should produce three messages about deletion
+# of the existing files, that may appear in any order. Piping
+# to sort makes sure we don't depend on any particular ordering.
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
+
+echo Final files:
+find tart -print | sort 2>/dev/null
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Create directories
 
+mkdir tart
+sleep 1
+mkdir tart/c0
+sleep 1
+mkdir tart/c1
 sleep 1
 
-tar -cf archive.1 -g db directory
-
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
-
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
+for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
+do
+  echo File $file > $file
+  sleep 1
+done
 
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+sleep 1
+echo Creating main archive
+echo >&2 "Creating main archive"
+tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+# The above prints two lines to stderr announcing the new directories c0 and c1.
+# Ensure that they appear in this script's stderr in sorted order.
+sort err 1>&2; rm -f err
 
+sleep 1
+echo Modifying filesystem
+rm tart/a1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+mv tart/b1 tart/b2
+mv tart/c1 tart/c2
+touch tart/c2/ca3
 
-mkdir directory
-genfile --file=directory/x
-genfile --file=directory/y
+echo Directory contents
+find tart -print | sort 2>/dev/null
 
 sleep 1
+echo Creating incremental archive
+echo >&2 "Creating incremental archive"
+cp -p tart.incr1 tart.incr2
+tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
 
-tar -cf archive.1 -g db directory
+sleep 1
 
-mv directory/x directory/z
-cp db db.old
-tar -cf archive.2 -g db directory
-
-mv directory orig
-
-echo Listing of archive.1
-tar -tf archive.1 | sort
-echo Listing of archive.2
-tar -tf archive.2 | sort
-
-echo Directory after first restore
-tar -xf archive.1 -g db --warning=no-timestamp
-find directory | sort
+rm -rf tart/*
+echo Extracting main archive
+echo >&2 "Extracting main archive"
+tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
+echo Extracting incremental archive
+# This command should produce three messages about deletion
+# of the existing files, that may appear in any order. Piping
+# to sort makes sure we don't depend on any particular ordering.
+tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 
-echo Directory after second restore
-tar -xf archive.2 -g db --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Listing of archive.1
-directory/
-directory/x
-directory/y
-Listing of archive.2
-directory/
-directory/z
-Directory after first restore
-directory
-directory/x
-directory/y
-Directory after second restore
-directory
-directory/y
-directory/z
+echo Final files:
+find tart -print | sort 2>/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating main archive
+tar: tart/c0: Directory is new
+tar: tart/c1: Directory is new
+tar: tart: Directory is new
+Creating incremental archive
+tar: tart/c2: Directory has been renamed from 'tart/c1'
+Extracting main archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Create directories
+Creating main archive
+tart/
+tart/c0/
+tart/c1/
+tart/a1
+tart/b1
+tart/c0/cq1
+tart/c0/cq2
+tart/c1/ca1
+tart/c1/ca2
+Modifying filesystem
+Directory contents
+tart
+tart/b2
+tart/c0
+tart/c0/cq1
+tart/c0/cq2
+tart/c2
+tart/c2/ca1
+tart/c2/ca2
+tart/c2/ca3
+Creating incremental archive
+tart/
+tart/c0/
+tart/c2/
+tart/b2
+tart/c2/ca3
+Extracting main archive
+tart/
+tart/c0/
+tart/c1/
+tart/a1
+tart/b1
+tart/c0/cq1
+tart/c0/cq2
+tart/c1/ca1
+tart/c1/ca2
+Extracting incremental archive
+tar: Deleting 'tart/a1'
+tar: Deleting 'tart/b1'
+tart/
+tart/b2
+tart/c0/
+tart/c2/
+tart/c2/ca3
+Final files:
+tart
+tart/b2
+tart/c0
+tart/c0/cq1
+tart/c0/cq2
+tart/c2
+tart/c2/ca1
+tart/c2/ca2
+tart/c2/ca3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_58
-#AT_START_59
-# 59. incr04.at:29: proper icontents initialization
-at_setup_line='incr04.at:29'
-at_desc="proper icontents initialization"
-$at_quiet $as_echo_n " 59: $at_desc                "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_84
+#AT_START_85
+at_fn_group_banner 85 'listed03.at:24' \
+  "incremental dump when the parent directory is unreadable" "" 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "59. incr04.at:29: testing ..."
+  $as_echo "85. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/incr04.at:34:
+  { set +x
+$as_echo "$at_srcdir/listed03.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -21307,25 +19864,28 @@ export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
-  }' < /dev/null | genfile --files-from -
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-sleep 1
 
-echo \"Initial dump\"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo \"Incremental dump\"
-tar cvf a1.tar -g a.sna a
-)"
-echo incr04.at:34 >"$at_check_line_file"
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+genfile --file dir/sub/a/file
+cd dir/sub
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+chmod a-r ..
+tar -c -f archive.tar --listed-incremental=db.1 -v a
+status=\$?
+chmod a+r ..
+exit \$status
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "listed03.at:27"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -21335,312 +19895,1100 @@ export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-sleep 1
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+genfile --file dir/sub/a/file
+cd dir/sub
+
+chmod a-r ..
+tar -c -f archive.tar --listed-incremental=db.1 -v a
+status=$?
+chmod a+r ..
+exit $status
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a/
+a/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/listed03.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_85
+#AT_START_86
+at_fn_group_banner 86 'listed04.at:26' \
+  "--listed-incremental and --one-file-system" "     " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "86. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/listed04.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+mkdir dir
+echo a >dir/a
+echo b >dir/b
 
-sleep 1
+tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
+tar -tf archive.tar || exit
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "listed04.at:29"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
-tar: a/b: Directory is new
-tar: a/c: Directory has been renamed from \`a/b'
+
+mkdir dir
+echo a >dir/a
+echo b >dir/b
+
+tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
+tar -tf archive.tar || exit
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Initial dump
-a/
-a/b/
-a/b/one_31_chars_long_file_name_001
-a/b/one_31_chars_long_file_name_002
-a/b/one_31_chars_long_file_name_003
-a/b/one_31_chars_long_file_name_004
-a/b/one_31_chars_long_file_name_005
-a/b/one_31_chars_long_file_name_006
-a/b/one_31_chars_long_file_name_007
-a/b/one_31_chars_long_file_name_008
-a/b/one_31_chars_long_file_name_009
-a/b/one_31_chars_long_file_name_010
-a/b/one_31_chars_long_file_name_011
-a/b/one_31_chars_long_file_name_012
-a/b/one_31_chars_long_file_name_013
-a/b/one_31_chars_long_file_name_014
-a/b/one_31_chars_long_file_name_015
-a/b/one_31_chars_long_file_name_016
-a/b/one_31_chars_long_file_name_017
-a/b/one_31_chars_long_file_name_018
-a/b/one_31_chars_long_file_name_019
-a/b/one_31_chars_long_file_name_020
-a/b/one_31_chars_long_file_name_021
-a/b/one_31_chars_long_file_name_022
-a/b/one_31_chars_long_file_name_023
-a/b/one_31_chars_long_file_name_024
-a/b/one_31_chars_long_file_name_025
-a/b/one_31_chars_long_file_name_026
-a/b/one_31_chars_long_file_name_027
-a/b/one_31_chars_long_file_name_028
-a/b/one_31_chars_long_file_name_029
-a/b/one_31_chars_long_file_name_030
-a/b/one_31_chars_long_file_name_031
-a/b/one_31_chars_long_file_name_032
-a/b/one_31_chars_long_file_name_033
-a/b/one_31_chars_long_file_name_034
-a/b/one_31_chars_long_file_name_035
-a/b/one_31_chars_long_file_name_036
-a/b/one_31_chars_long_file_name_037
-a/b/one_31_chars_long_file_name_038
-a/b/one_31_chars_long_file_name_039
-a/b/one_31_chars_long_file_name_040
-a/b/one_31_chars_long_file_name_041
-a/b/one_31_chars_long_file_name_042
-a/b/one_31_chars_long_file_name_043
-a/b/one_31_chars_long_file_name_044
-a/b/one_31_chars_long_file_name_045
-a/b/one_31_chars_long_file_name_046
-a/b/one_31_chars_long_file_name_047
-a/b/one_31_chars_long_file_name_048
-a/b/one_31_chars_long_file_name_049
-a/b/one_31_chars_long_file_name_050
-a/b/one_31_chars_long_file_name_051
-a/b/one_31_chars_long_file_name_052
-a/b/one_31_chars_long_file_name_053
-a/b/one_31_chars_long_file_name_054
-a/b/one_31_chars_long_file_name_055
-a/b/one_31_chars_long_file_name_056
-a/b/one_31_chars_long_file_name_057
-a/b/one_31_chars_long_file_name_058
-a/b/one_31_chars_long_file_name_059
-a/b/one_31_chars_long_file_name_060
-a/b/one_31_chars_long_file_name_061
-a/b/one_31_chars_long_file_name_062
-a/b/one_31_chars_long_file_name_063
-a/b/one_31_chars_long_file_name_064
-a/b/one_31_chars_long_file_name_065
-a/b/one_31_chars_long_file_name_066
-a/b/one_31_chars_long_file_name_067
-a/b/one_31_chars_long_file_name_068
-a/b/one_31_chars_long_file_name_069
-a/b/one_31_chars_long_file_name_070
-a/b/one_31_chars_long_file_name_071
-a/b/one_31_chars_long_file_name_072
-a/b/one_31_chars_long_file_name_073
-a/b/one_31_chars_long_file_name_074
-a/b/one_31_chars_long_file_name_075
-a/b/one_31_chars_long_file_name_076
-a/b/one_31_chars_long_file_name_077
-a/b/one_31_chars_long_file_name_078
-a/b/one_31_chars_long_file_name_079
-a/b/one_31_chars_long_file_name_080
-a/b/one_31_chars_long_file_name_081
-a/b/one_31_chars_long_file_name_082
-a/b/one_31_chars_long_file_name_083
-a/b/one_31_chars_long_file_name_084
-a/b/one_31_chars_long_file_name_085
-a/b/one_31_chars_long_file_name_086
-a/b/one_31_chars_long_file_name_087
-a/b/one_31_chars_long_file_name_088
-a/b/one_31_chars_long_file_name_089
-a/b/one_31_chars_long_file_name_090
-a/b/one_31_chars_long_file_name_091
-a/b/one_31_chars_long_file_name_092
-a/b/one_31_chars_long_file_name_093
-a/b/one_31_chars_long_file_name_094
-a/b/one_31_chars_long_file_name_095
-a/b/one_31_chars_long_file_name_096
-a/b/one_31_chars_long_file_name_097
-a/b/one_31_chars_long_file_name_098
-a/b/one_31_chars_long_file_name_099
-a/b/one_31_chars_long_file_name_100
-a/b/one_31_chars_long_file_name_101
-a/b/one_31_chars_long_file_name_102
-a/b/one_31_chars_long_file_name_103
-a/b/one_31_chars_long_file_name_104
-a/b/one_31_chars_long_file_name_105
-a/b/one_31_chars_long_file_name_106
-a/b/one_31_chars_long_file_name_107
-a/b/one_31_chars_long_file_name_108
-a/b/one_31_chars_long_file_name_109
-a/b/one_31_chars_long_file_name_110
-a/b/one_31_chars_long_file_name_111
-a/b/one_31_chars_long_file_name_112
-a/b/one_31_chars_long_file_name_113
-a/b/one_31_chars_long_file_name_114
-a/b/one_31_chars_long_file_name_115
-a/b/one_31_chars_long_file_name_116
-a/b/one_31_chars_long_file_name_117
-a/b/one_31_chars_long_file_name_118
-a/b/one_31_chars_long_file_name_119
-a/b/one_31_chars_long_file_name_120
-a/b/one_31_chars_long_file_name_121
-a/b/one_31_chars_long_file_name_122
-a/b/one_31_chars_long_file_name_123
-a/b/one_31_chars_long_file_name_124
-a/b/one_31_chars_long_file_name_125
-a/b/one_31_chars_long_file_name_126
-a/b/one_31_chars_long_file_name_127
-a/b/one_31_chars_long_file_name_128
-a/b/one_31_chars_long_file_name_129
-a/b/one_31_chars_long_file_name_130
-a/b/one_31_chars_long_file_name_131
-a/b/one_31_chars_long_file_name_132
-a/b/one_31_chars_long_file_name_133
-a/b/one_31_chars_long_file_name_134
-a/b/one_31_chars_long_file_name_135
-a/b/one_31_chars_long_file_name_136
-a/b/one_31_chars_long_file_name_137
-a/b/one_31_chars_long_file_name_138
-a/b/one_31_chars_long_file_name_139
-a/b/one_31_chars_long_file_name_140
-a/b/one_31_chars_long_file_name_141
-a/b/one_31_chars_long_file_name_142
-Incremental dump
-a/
-a/c/
+echo >>"$at_stdout"; $as_echo "dir/
+dir/a
+dir/b
+dir/
+dir/a
+dir/b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/listed04.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr04.at:34:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_86
+#AT_START_87
+at_fn_group_banner 87 'listed05.at:33' \
+  "--listed-incremental and remounted directories" " " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "87. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/listed05.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
-  }' < /dev/null | genfile --files-from -
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-sleep 1
+options=\"-C tartest --create --one-file-system --verbose\"
+rm -rf archive-01.snar archive-01.tar tartest subdir
 
-echo \"Initial dump\"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo \"Incremental dump\"
-tar cvf a1.tar -g a.sna a
-)"
-echo incr04.at:34 >"$at_check_line_file"
+# Create initial structure
+mkdir tartest
+echo \"hi\" > tartest/top-level-file
+mkdir tartest/subdir
+echo \"hi\" > tartest/subdir/subdir-file
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+echo \"# Level 0\"
+tar \$options --file archive-0.tar --listed-incremental=archive-0.snar .
+
+echo \"# Remount\"
+mv tartest/subdir .
+mkdir tartest/subdir
+mount -t ramfs none tartest/subdir || exit 77
+tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -
+
+echo \"# Level 1\"
+cp archive-0.snar archive-1.snar
+tar \$options --file archive-1.tar --listed-incremental=archive-1.snar .
+
+umount tartest/subdir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "listed05.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+options="-C tartest --create --one-file-system --verbose"
+rm -rf archive-01.snar archive-01.tar tartest subdir
+
+# Create initial structure
+mkdir tartest
+echo "hi" > tartest/top-level-file
+mkdir tartest/subdir
+echo "hi" > tartest/subdir/subdir-file
+
+echo "# Level 0"
+tar $options --file archive-0.tar --listed-incremental=archive-0.snar .
+
+echo "# Remount"
+mv tartest/subdir .
+mkdir tartest/subdir
+mount -t ramfs none tartest/subdir || exit 77
+tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -
+
+echo "# Level 1"
+cp archive-0.snar archive-1.snar
+tar $options --file archive-1.tar --listed-incremental=archive-1.snar .
+
+umount tartest/subdir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: .: Directory is new
+tar: ./subdir: Directory is new
+tar: ./subdir: directory is on a different filesystem; not dumped
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "# Level 0
+./
+./subdir/
+./top-level-file
+./subdir/subdir-file
+# Remount
+# Level 1
+./
+./subdir/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/listed05.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-sleep 1
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_87
+#AT_START_88
+at_fn_group_banner 88 'incr03.at:28' \
+  "renamed files in incrementals" "                  " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "88. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr03.at:31:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
 
 sleep 1
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
-tar: a/b: Directory is new
-tar: a/c: Directory has been renamed from \`a/b'
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Initial dump
-a/
-a/b/
-a/b/one_31_chars_long_file_name_001
-a/b/one_31_chars_long_file_name_002
-a/b/one_31_chars_long_file_name_003
-a/b/one_31_chars_long_file_name_004
-a/b/one_31_chars_long_file_name_005
-a/b/one_31_chars_long_file_name_006
-a/b/one_31_chars_long_file_name_007
-a/b/one_31_chars_long_file_name_008
-a/b/one_31_chars_long_file_name_009
-a/b/one_31_chars_long_file_name_010
-a/b/one_31_chars_long_file_name_011
-a/b/one_31_chars_long_file_name_012
-a/b/one_31_chars_long_file_name_013
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
+
+sleep 1
+
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Listing of archive.1
+directory/
+directory/x
+directory/y
+Listing of archive.2
+directory/
+directory/z
+Directory after first restore
+directory
+directory/x
+directory/y
+Directory after second restore
+directory
+directory/y
+directory/z
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr03.at:31:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
+
+sleep 1
+
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
+
+sleep 1
+
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Listing of archive.1
+directory/
+directory/x
+directory/y
+Listing of archive.2
+directory/
+directory/z
+Directory after first restore
+directory
+directory/x
+directory/y
+Directory after second restore
+directory
+directory/y
+directory/z
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr03.at:31:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
+
+sleep 1
+
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir directory
+genfile --file=directory/x
+genfile --file=directory/y
+
+sleep 1
+
+tar -cf archive.1 -g db directory
+
+mv directory/x directory/z
+cp db db.old
+tar -cf archive.2 -g db directory
+
+mv directory orig
+
+echo Listing of archive.1
+tar -tf archive.1 | sort
+echo Listing of archive.2
+tar -tf archive.2 | sort
+
+echo Directory after first restore
+tar -xf archive.1 -g db --warning=no-timestamp
+find directory | sort
+
+echo Directory after second restore
+tar -xf archive.2 -g db --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Listing of archive.1
+directory/
+directory/x
+directory/y
+Listing of archive.2
+directory/
+directory/z
+Directory after first restore
+directory
+directory/x
+directory/y
+Directory after second restore
+directory
+directory/y
+directory/z
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_88
+#AT_START_89
+at_fn_group_banner 89 'incr04.at:29' \
+  "proper icontents initialization" "                " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "89. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr04.at:34:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo \"Initial dump\"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo \"Incremental dump\"
+tar cvf a1.tar -g a.sna a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo "Initial dump"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo "Incremental dump"
+tar cvf a1.tar -g a.sna a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
+tar: a/b: Directory is new
+tar: a/c: Directory has been renamed from 'a/b'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Initial dump
+a/
+a/b/
+a/b/one_31_chars_long_file_name_001
+a/b/one_31_chars_long_file_name_002
+a/b/one_31_chars_long_file_name_003
+a/b/one_31_chars_long_file_name_004
+a/b/one_31_chars_long_file_name_005
+a/b/one_31_chars_long_file_name_006
+a/b/one_31_chars_long_file_name_007
+a/b/one_31_chars_long_file_name_008
+a/b/one_31_chars_long_file_name_009
+a/b/one_31_chars_long_file_name_010
+a/b/one_31_chars_long_file_name_011
+a/b/one_31_chars_long_file_name_012
+a/b/one_31_chars_long_file_name_013
+a/b/one_31_chars_long_file_name_014
+a/b/one_31_chars_long_file_name_015
+a/b/one_31_chars_long_file_name_016
+a/b/one_31_chars_long_file_name_017
+a/b/one_31_chars_long_file_name_018
+a/b/one_31_chars_long_file_name_019
+a/b/one_31_chars_long_file_name_020
+a/b/one_31_chars_long_file_name_021
+a/b/one_31_chars_long_file_name_022
+a/b/one_31_chars_long_file_name_023
+a/b/one_31_chars_long_file_name_024
+a/b/one_31_chars_long_file_name_025
+a/b/one_31_chars_long_file_name_026
+a/b/one_31_chars_long_file_name_027
+a/b/one_31_chars_long_file_name_028
+a/b/one_31_chars_long_file_name_029
+a/b/one_31_chars_long_file_name_030
+a/b/one_31_chars_long_file_name_031
+a/b/one_31_chars_long_file_name_032
+a/b/one_31_chars_long_file_name_033
+a/b/one_31_chars_long_file_name_034
+a/b/one_31_chars_long_file_name_035
+a/b/one_31_chars_long_file_name_036
+a/b/one_31_chars_long_file_name_037
+a/b/one_31_chars_long_file_name_038
+a/b/one_31_chars_long_file_name_039
+a/b/one_31_chars_long_file_name_040
+a/b/one_31_chars_long_file_name_041
+a/b/one_31_chars_long_file_name_042
+a/b/one_31_chars_long_file_name_043
+a/b/one_31_chars_long_file_name_044
+a/b/one_31_chars_long_file_name_045
+a/b/one_31_chars_long_file_name_046
+a/b/one_31_chars_long_file_name_047
+a/b/one_31_chars_long_file_name_048
+a/b/one_31_chars_long_file_name_049
+a/b/one_31_chars_long_file_name_050
+a/b/one_31_chars_long_file_name_051
+a/b/one_31_chars_long_file_name_052
+a/b/one_31_chars_long_file_name_053
+a/b/one_31_chars_long_file_name_054
+a/b/one_31_chars_long_file_name_055
+a/b/one_31_chars_long_file_name_056
+a/b/one_31_chars_long_file_name_057
+a/b/one_31_chars_long_file_name_058
+a/b/one_31_chars_long_file_name_059
+a/b/one_31_chars_long_file_name_060
+a/b/one_31_chars_long_file_name_061
+a/b/one_31_chars_long_file_name_062
+a/b/one_31_chars_long_file_name_063
+a/b/one_31_chars_long_file_name_064
+a/b/one_31_chars_long_file_name_065
+a/b/one_31_chars_long_file_name_066
+a/b/one_31_chars_long_file_name_067
+a/b/one_31_chars_long_file_name_068
+a/b/one_31_chars_long_file_name_069
+a/b/one_31_chars_long_file_name_070
+a/b/one_31_chars_long_file_name_071
+a/b/one_31_chars_long_file_name_072
+a/b/one_31_chars_long_file_name_073
+a/b/one_31_chars_long_file_name_074
+a/b/one_31_chars_long_file_name_075
+a/b/one_31_chars_long_file_name_076
+a/b/one_31_chars_long_file_name_077
+a/b/one_31_chars_long_file_name_078
+a/b/one_31_chars_long_file_name_079
+a/b/one_31_chars_long_file_name_080
+a/b/one_31_chars_long_file_name_081
+a/b/one_31_chars_long_file_name_082
+a/b/one_31_chars_long_file_name_083
+a/b/one_31_chars_long_file_name_084
+a/b/one_31_chars_long_file_name_085
+a/b/one_31_chars_long_file_name_086
+a/b/one_31_chars_long_file_name_087
+a/b/one_31_chars_long_file_name_088
+a/b/one_31_chars_long_file_name_089
+a/b/one_31_chars_long_file_name_090
+a/b/one_31_chars_long_file_name_091
+a/b/one_31_chars_long_file_name_092
+a/b/one_31_chars_long_file_name_093
+a/b/one_31_chars_long_file_name_094
+a/b/one_31_chars_long_file_name_095
+a/b/one_31_chars_long_file_name_096
+a/b/one_31_chars_long_file_name_097
+a/b/one_31_chars_long_file_name_098
+a/b/one_31_chars_long_file_name_099
+a/b/one_31_chars_long_file_name_100
+a/b/one_31_chars_long_file_name_101
+a/b/one_31_chars_long_file_name_102
+a/b/one_31_chars_long_file_name_103
+a/b/one_31_chars_long_file_name_104
+a/b/one_31_chars_long_file_name_105
+a/b/one_31_chars_long_file_name_106
+a/b/one_31_chars_long_file_name_107
+a/b/one_31_chars_long_file_name_108
+a/b/one_31_chars_long_file_name_109
+a/b/one_31_chars_long_file_name_110
+a/b/one_31_chars_long_file_name_111
+a/b/one_31_chars_long_file_name_112
+a/b/one_31_chars_long_file_name_113
+a/b/one_31_chars_long_file_name_114
+a/b/one_31_chars_long_file_name_115
+a/b/one_31_chars_long_file_name_116
+a/b/one_31_chars_long_file_name_117
+a/b/one_31_chars_long_file_name_118
+a/b/one_31_chars_long_file_name_119
+a/b/one_31_chars_long_file_name_120
+a/b/one_31_chars_long_file_name_121
+a/b/one_31_chars_long_file_name_122
+a/b/one_31_chars_long_file_name_123
+a/b/one_31_chars_long_file_name_124
+a/b/one_31_chars_long_file_name_125
+a/b/one_31_chars_long_file_name_126
+a/b/one_31_chars_long_file_name_127
+a/b/one_31_chars_long_file_name_128
+a/b/one_31_chars_long_file_name_129
+a/b/one_31_chars_long_file_name_130
+a/b/one_31_chars_long_file_name_131
+a/b/one_31_chars_long_file_name_132
+a/b/one_31_chars_long_file_name_133
+a/b/one_31_chars_long_file_name_134
+a/b/one_31_chars_long_file_name_135
+a/b/one_31_chars_long_file_name_136
+a/b/one_31_chars_long_file_name_137
+a/b/one_31_chars_long_file_name_138
+a/b/one_31_chars_long_file_name_139
+a/b/one_31_chars_long_file_name_140
+a/b/one_31_chars_long_file_name_141
+a/b/one_31_chars_long_file_name_142
+Incremental dump
+a/
+a/c/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr04.at:34:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo \"Initial dump\"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo \"Incremental dump\"
+tar cvf a1.tar -g a.sna a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo "Initial dump"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo "Incremental dump"
+tar cvf a1.tar -g a.sna a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
+tar: a/b: Directory is new
+tar: a/c: Directory has been renamed from 'a/b'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Initial dump
+a/
+a/b/
+a/b/one_31_chars_long_file_name_001
+a/b/one_31_chars_long_file_name_002
+a/b/one_31_chars_long_file_name_003
+a/b/one_31_chars_long_file_name_004
+a/b/one_31_chars_long_file_name_005
+a/b/one_31_chars_long_file_name_006
+a/b/one_31_chars_long_file_name_007
+a/b/one_31_chars_long_file_name_008
+a/b/one_31_chars_long_file_name_009
+a/b/one_31_chars_long_file_name_010
+a/b/one_31_chars_long_file_name_011
+a/b/one_31_chars_long_file_name_012
+a/b/one_31_chars_long_file_name_013
+a/b/one_31_chars_long_file_name_014
+a/b/one_31_chars_long_file_name_015
+a/b/one_31_chars_long_file_name_016
+a/b/one_31_chars_long_file_name_017
+a/b/one_31_chars_long_file_name_018
+a/b/one_31_chars_long_file_name_019
+a/b/one_31_chars_long_file_name_020
+a/b/one_31_chars_long_file_name_021
+a/b/one_31_chars_long_file_name_022
+a/b/one_31_chars_long_file_name_023
+a/b/one_31_chars_long_file_name_024
+a/b/one_31_chars_long_file_name_025
+a/b/one_31_chars_long_file_name_026
+a/b/one_31_chars_long_file_name_027
+a/b/one_31_chars_long_file_name_028
+a/b/one_31_chars_long_file_name_029
+a/b/one_31_chars_long_file_name_030
+a/b/one_31_chars_long_file_name_031
+a/b/one_31_chars_long_file_name_032
+a/b/one_31_chars_long_file_name_033
+a/b/one_31_chars_long_file_name_034
+a/b/one_31_chars_long_file_name_035
+a/b/one_31_chars_long_file_name_036
+a/b/one_31_chars_long_file_name_037
+a/b/one_31_chars_long_file_name_038
+a/b/one_31_chars_long_file_name_039
+a/b/one_31_chars_long_file_name_040
+a/b/one_31_chars_long_file_name_041
+a/b/one_31_chars_long_file_name_042
+a/b/one_31_chars_long_file_name_043
+a/b/one_31_chars_long_file_name_044
+a/b/one_31_chars_long_file_name_045
+a/b/one_31_chars_long_file_name_046
+a/b/one_31_chars_long_file_name_047
+a/b/one_31_chars_long_file_name_048
+a/b/one_31_chars_long_file_name_049
+a/b/one_31_chars_long_file_name_050
+a/b/one_31_chars_long_file_name_051
+a/b/one_31_chars_long_file_name_052
+a/b/one_31_chars_long_file_name_053
+a/b/one_31_chars_long_file_name_054
+a/b/one_31_chars_long_file_name_055
+a/b/one_31_chars_long_file_name_056
+a/b/one_31_chars_long_file_name_057
+a/b/one_31_chars_long_file_name_058
+a/b/one_31_chars_long_file_name_059
+a/b/one_31_chars_long_file_name_060
+a/b/one_31_chars_long_file_name_061
+a/b/one_31_chars_long_file_name_062
+a/b/one_31_chars_long_file_name_063
+a/b/one_31_chars_long_file_name_064
+a/b/one_31_chars_long_file_name_065
+a/b/one_31_chars_long_file_name_066
+a/b/one_31_chars_long_file_name_067
+a/b/one_31_chars_long_file_name_068
+a/b/one_31_chars_long_file_name_069
+a/b/one_31_chars_long_file_name_070
+a/b/one_31_chars_long_file_name_071
+a/b/one_31_chars_long_file_name_072
+a/b/one_31_chars_long_file_name_073
+a/b/one_31_chars_long_file_name_074
+a/b/one_31_chars_long_file_name_075
+a/b/one_31_chars_long_file_name_076
+a/b/one_31_chars_long_file_name_077
+a/b/one_31_chars_long_file_name_078
+a/b/one_31_chars_long_file_name_079
+a/b/one_31_chars_long_file_name_080
+a/b/one_31_chars_long_file_name_081
+a/b/one_31_chars_long_file_name_082
+a/b/one_31_chars_long_file_name_083
+a/b/one_31_chars_long_file_name_084
+a/b/one_31_chars_long_file_name_085
+a/b/one_31_chars_long_file_name_086
+a/b/one_31_chars_long_file_name_087
+a/b/one_31_chars_long_file_name_088
+a/b/one_31_chars_long_file_name_089
+a/b/one_31_chars_long_file_name_090
+a/b/one_31_chars_long_file_name_091
+a/b/one_31_chars_long_file_name_092
+a/b/one_31_chars_long_file_name_093
+a/b/one_31_chars_long_file_name_094
+a/b/one_31_chars_long_file_name_095
+a/b/one_31_chars_long_file_name_096
+a/b/one_31_chars_long_file_name_097
+a/b/one_31_chars_long_file_name_098
+a/b/one_31_chars_long_file_name_099
+a/b/one_31_chars_long_file_name_100
+a/b/one_31_chars_long_file_name_101
+a/b/one_31_chars_long_file_name_102
+a/b/one_31_chars_long_file_name_103
+a/b/one_31_chars_long_file_name_104
+a/b/one_31_chars_long_file_name_105
+a/b/one_31_chars_long_file_name_106
+a/b/one_31_chars_long_file_name_107
+a/b/one_31_chars_long_file_name_108
+a/b/one_31_chars_long_file_name_109
+a/b/one_31_chars_long_file_name_110
+a/b/one_31_chars_long_file_name_111
+a/b/one_31_chars_long_file_name_112
+a/b/one_31_chars_long_file_name_113
+a/b/one_31_chars_long_file_name_114
+a/b/one_31_chars_long_file_name_115
+a/b/one_31_chars_long_file_name_116
+a/b/one_31_chars_long_file_name_117
+a/b/one_31_chars_long_file_name_118
+a/b/one_31_chars_long_file_name_119
+a/b/one_31_chars_long_file_name_120
+a/b/one_31_chars_long_file_name_121
+a/b/one_31_chars_long_file_name_122
+a/b/one_31_chars_long_file_name_123
+a/b/one_31_chars_long_file_name_124
+a/b/one_31_chars_long_file_name_125
+a/b/one_31_chars_long_file_name_126
+a/b/one_31_chars_long_file_name_127
+a/b/one_31_chars_long_file_name_128
+a/b/one_31_chars_long_file_name_129
+a/b/one_31_chars_long_file_name_130
+a/b/one_31_chars_long_file_name_131
+a/b/one_31_chars_long_file_name_132
+a/b/one_31_chars_long_file_name_133
+a/b/one_31_chars_long_file_name_134
+a/b/one_31_chars_long_file_name_135
+a/b/one_31_chars_long_file_name_136
+a/b/one_31_chars_long_file_name_137
+a/b/one_31_chars_long_file_name_138
+a/b/one_31_chars_long_file_name_139
+a/b/one_31_chars_long_file_name_140
+a/b/one_31_chars_long_file_name_141
+a/b/one_31_chars_long_file_name_142
+Incremental dump
+a/
+a/c/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr04.at:34:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo \"Initial dump\"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo \"Incremental dump\"
+tar cvf a1.tar -g a.sna a
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+install-sh -d a/b >/dev/null  || exit 77
+awk 'BEGIN {
+  for (i=1;i<=142;i++)
+    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
+  }' < /dev/null | genfile --files-from -
+
+sleep 1
+
+echo "Initial dump"
+tar cvf a0.tar -g a.sna a
+mv a/b a/c
+echo "Incremental dump"
+tar cvf a1.tar -g a.sna a
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
+tar: a/b: Directory is new
+tar: a/c: Directory has been renamed from 'a/b'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Initial dump
+a/
+a/b/
+a/b/one_31_chars_long_file_name_001
+a/b/one_31_chars_long_file_name_002
+a/b/one_31_chars_long_file_name_003
+a/b/one_31_chars_long_file_name_004
+a/b/one_31_chars_long_file_name_005
+a/b/one_31_chars_long_file_name_006
+a/b/one_31_chars_long_file_name_007
+a/b/one_31_chars_long_file_name_008
+a/b/one_31_chars_long_file_name_009
+a/b/one_31_chars_long_file_name_010
+a/b/one_31_chars_long_file_name_011
+a/b/one_31_chars_long_file_name_012
+a/b/one_31_chars_long_file_name_013
 a/b/one_31_chars_long_file_name_014
 a/b/one_31_chars_long_file_name_015
 a/b/one_31_chars_long_file_name_016
 a/c/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_89
+#AT_START_90
+at_fn_group_banner 90 'incr05.at:21' \
+  "incremental dumps with -C" "                      " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "90. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr05.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0
+./
+./sub/
+./file1
+./sub/file2
+Level 1
+./
+./sub/
+./file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr05.at:24:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0
+./
+./sub/
+./file1
+./sub/file2
+Level 1
+./
+./sub/
+./file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr05.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+echo Level 0
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+
+genfile --file dir/file3
+echo Level 1
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0
+./
+./sub/
+./file1
+./sub/file2
+Level 1
+./
+./sub/
+./file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_90
+#AT_START_91
+at_fn_group_banner 91 'incr06.at:21' \
+  "incremental dumps of nested directories" "        " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "91. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr06.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0 . sub
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 0 sub .
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 1 . sub
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+Level 1 sub .
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr06.at:24:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0 . sub
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 0 sub .
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 1 . sub
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+Level 1 sub .
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr06.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+mkdir dir/sub/a
+mkdir dir/sub/b
+genfile --file dir/file1
+genfile --file dir/sub/file2
+genfile --file dir/sub/a/file3
+
+echo Level 0 . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 0 sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+
+mkdir dir/c
+genfile --file dir/sub/b/file4
+
+echo Level 1 . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
+echo Level 1 sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0 . sub
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 0 sub .
+./
+sub/
+sub/a/
+sub/b/
+./file1
+sub/file2
+sub/a/file3
+Level 1 . sub
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+Level 1 sub .
+./
+./c/
+sub/
+sub/a/
+sub/b/
+sub/b/file4
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_91
+#AT_START_92
+at_fn_group_banner 92 'incr07.at:18' \
+  "incremental restores with -C" "                   " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "92. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# Tar 1.26 had problems extracting from incremental restores when given
+# the -C option.  The code in incremen.c:try_purge_directory and
+# misc.c:remove_any_file was using savedir(), which ignored eventual changes
+# in the current working directory and caused the malfunctioning.
+#
+# The problem was reported by Piotr Rotter on 2013-03-22.
+#
+# This testcase is based on scripts provided by Piotr Rotter and Nathan
+# Stratton Treadway.
+#
+# References: <514C8F56.90900@active24.pl>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00036.html,
+#             <20130326181922.GZ3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00042.html,
+#             <20130327051828.GA3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00043.html,
+#             <20130327054957.GB3732@shire.ontko.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00044.html
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr07.at:40:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 \"toplevel A exists\"
+exit 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 "toplevel A exists"
+exit 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "C0
+tar: A: Directory is new
+C1
+C2
+E0
+E1
+E2
+E3
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "C0
+A/
+A/a
+A/b
+C1
+A/
+A/c
+C2
+A/
+E0
+A/
+A/a
+A/b
+E1
+A/
+A/c
+E2
+A/
+tar: Deleting 'A/a'
+E3
+A/
+tar: Deleting 'A/B'
+FIN
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr07.at:40:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 \"toplevel A exists\"
+exit 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 "toplevel A exists"
+exit 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "C0
+tar: A: Directory is new
+C1
+C2
+E0
+E1
+E2
+E3
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "C0
+A/
+A/a
+A/b
+C1
+A/
+A/c
+C2
+A/
+E0
+A/
+A/a
+A/b
+E1
+A/
+A/c
+E2
+A/
+tar: Deleting 'A/a'
+E3
+A/
+tar: Deleting 'A/B'
+FIN
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/incr07.at:40:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 \"toplevel A exists\"
+exit 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir A
+echo 'a' > A/a
+echo 'a' > A/b
+
+decho C0
+tar -g test.snar -vcf test.0.tar A
+
+echo 'a' > A/c
+decho C1
+tar -g test.snar -vcf test.1.tar A
+
+rm -f A/a
+decho C2
+tar -g test.snar -vcf test.2.tar A
+
+mkdir ext
+rm -rf A
+
+decho E0
+tar -g test.snar -vxf test.0.tar -C ext/
+decho E1
+tar -g test.snar -vxf test.1.tar -C ext/
+
+decho E2
+tar -g test.snar -vxf test.2.tar -C ext/
+
+mkdir ext/A/B
+touch ext/A/B/file
+
+decho E3
+tar -g test.snar -vxf test.2.tar -C ext/
+
+echo FIN
+test -d A && echo >&2 "toplevel A exists"
+exit 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "C0
+tar: A: Directory is new
+C1
+C2
+E0
+E1
+E2
+E3
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "C0
+A/
+A/a
+A/b
+C1
+A/
+A/c
+C2
+A/
+E0
+A/
+A/a
+A/b
+E1
+A/
+A/c
+E2
+A/
+tar: Deleting 'A/a'
+E3
+A/
+tar: Deleting 'A/B'
+FIN
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_92
+#AT_START_93
+at_fn_group_banner 93 'incr08.at:38' \
+  "filename normalization" "                         " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "93. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr08.at:41:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir tartest
+cd tartest
+mkdir foo
+mkdir foo/subdir
+mkdir foo/subdir/dir1
+mkdir subdir
+mkdir subdir/dir2
+decho A
+find .|sort
+
+decho B
+DIR=\`pwd\`
+tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . \$DIR 2>../err |\\
+  sed \"s|\$DIR|ABSPATH|\"
+sed \"s|\$DIR|ABSPATH|\" ../err >&2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir tartest
+cd tartest
+mkdir foo
+mkdir foo/subdir
+mkdir foo/subdir/dir1
+mkdir subdir
+mkdir subdir/dir2
+decho A
+find .|sort
+
+decho B
+DIR=`pwd`
+tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR 2>../err |\
+  sed "s|$DIR|ABSPATH|"
+sed "s|$DIR|ABSPATH|" ../err >&2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+tar: .: Directory is new
+tar: ./subdir: Directory is new
+tar: ./subdir/dir1: Directory is new
+tar: ABSPATH: Directory is new
+tar: ABSPATH/subdir: Directory is new
+tar: ABSPATH/subdir/dir2: Directory is new
+tar: Removing leading \`/' from member names
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./foo
+./foo/subdir
+./foo/subdir/dir1
+./subdir
+./subdir/dir2
+B
+./
+./subdir/
+./subdir/dir1/
+ABSPATH/
+ABSPATH/subdir/
+ABSPATH/subdir/dir2/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr08.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_93
+#AT_START_94
+at_fn_group_banner 94 'incr09.at:26' \
+  "incremental with alternating -C" "                " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "94. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr09.at:29:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo bar middle
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
+echo middle/file > middle/middle_file
+decho A
+tar -cvf foo.tar --incremental -C foo . -C \`pwd\` middle  -C bar .
+
+rm foo.tar
+>toplevel_file
+decho B
+tar -cvf foo.tar --incremental -C foo . -C \`pwd\` toplevel_file  -C bar .
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr09.at:29"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo bar middle
+echo foo/foo_file > foo/foo_file
+echo bar/bar_file > bar/bar_file
+echo middle/file > middle/middle_file
+decho A
+tar -cvf foo.tar --incremental -C foo . -C `pwd` middle  -C bar .
+
+rm foo.tar
+>toplevel_file
+decho B
+tar -cvf foo.tar --incremental -C foo . -C `pwd` toplevel_file  -C bar .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+tar: .: Directory is new
+tar: middle: Directory is new
+tar: .: Directory is new
+B
+tar: .: Directory is new
+tar: .: Directory is new
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+./
+./
+middle/
+./bar_file
+./foo_file
+middle/middle_file
+B
+./
+./
+toplevel_file
+./bar_file
+./foo_file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr09.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_94
+#AT_START_95
+at_fn_group_banner 95 'filerem01.at:36' \
+  "file removed as we read it (ca. 22 seconds)" "    " 12
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "95. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/filerem01.at:39:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+genfile --run --checkpoint=3 --unlink dir/file1 -- \\
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
+       --checkpoint-action='echo' -c -f archive.tar \\
+       --listed-incremental db -v dir >/dev/null
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+genfile --run --checkpoint=3 --unlink dir/file1 -- \
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+       --checkpoint-action='echo' -c -f archive.tar \
+       --listed-incremental db -v dir >/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
+tar: dir/sub: Directory is new
+tar: dir/file1: File removed before we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/filerem01.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/filerem01.at:39:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+genfile --run --checkpoint=3 --unlink dir/file1 -- \\
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
+       --checkpoint-action='echo' -c -f archive.tar \\
+       --listed-incremental db -v dir >/dev/null
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+
+genfile --run --checkpoint=3 --unlink dir/file1 -- \
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+       --checkpoint-action='echo' -c -f archive.tar \
+       --listed-incremental db -v dir >/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
+tar: dir/sub: Directory is new
+tar: dir/file1: File removed before we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/filerem01.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+# Timing information:
+#
+# For -Hgnu the above command line takes about 8 seconds to execute and
+# produces:
+#
+# tar: dir: Directory is new
+# tar: dir/sub: Directory is new
+# dir/
+# tar: Write checkpoint 1
+# tar: Write checkpoint 2
+# dir/sub/
+# tar: Write checkpoint 3
+# tar: Write checkpoint 4
+# dir/file1
+# tar: Write checkpoint 5
+# dir/sub/file2
+# tar: Write checkpoint 6
+# tar: Write checkpoint 7
+# tar: Write checkpoint 8
+#
+# For -Hposix the above command line takes about 14 seconds to execute and
+# produces:
+#
+# ./tar: dir: Directory is new
+# ./tar: dir/sub: Directory is new
+# dir/
+# ./tar: Write checkpoint 1
+# ./tar: Write checkpoint 2
+# ./tar: Write checkpoint 3
+# dir/sub/
+# ./tar: Write checkpoint 4
+# ./tar: Write checkpoint 5
+# ./tar: Write checkpoint 6
+# dir/file1
+# ./tar: Write checkpoint 7
+# ./tar: Write checkpoint 8
+# ./tar: Write checkpoint 9
+# dir/sub/file2
+# ./tar: Write checkpoint 10
+# ./tar: Write checkpoint 11
+# ./tar: Write checkpoint 12
+# ./tar: Write checkpoint 13
+# ./tar: Write checkpoint 14
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_95
+#AT_START_96
+at_fn_group_banner 96 'filerem02.at:26' \
+  "toplevel file removed (ca. 24 seconds)" "         " 12
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "96. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/filerem02.at:29:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+mkdir dir2
+genfile --file dir2/file1
+
+genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
+       --checkpoint-action='echo' -c -f archive.tar \\
+       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "filerem02.at:29"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+mkdir dir2
+genfile --file dir2/file1
+
+genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+       --checkpoint-action='echo' -c -f archive.tar \
+       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/filerem02.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/filerem02.at:29:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+mkdir dir2
+genfile --file dir2/file1
+
+genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
+       --checkpoint-action='echo' -c -f archive.tar \\
+       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "filerem02.at:29"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+mkdir dir/sub
+genfile --file dir/file1
+genfile --file dir/sub/file2
+mkdir dir2
+genfile --file dir2/file1
+
+genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
+       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+       --checkpoint-action='echo' -c -f archive.tar \
+       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 2 $at_status "$at_srcdir/filerem02.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+# Ignore stdout and stderr because their contents depend on
+# the file system implementation.
+
+# Timing information: see filerem01.at
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_96
+#AT_START_97
+at_fn_group_banner 97 'rename01.at:24' \
+  "renamed dirs in incrementals" "                   " 13
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "97. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/rename01.at:27:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/file1
+foo/file2
+foo/bar/file
+Creating incremental archive
+foo/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/file
+foo/file1
+foo/file2
+End directory listing 1
+Begin directory listing 2
+foo
+foo/baz
+foo/baz/file
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/rename01.at:27:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/file1
+foo/file2
+foo/bar/file
+Creating incremental archive
+foo/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/file
+foo/file1
+foo/file2
+End directory listing 1
+Begin directory listing 2
+foo
+foo/baz
+foo/baz/file
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/rename01.at:27:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar foo/baz
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfg arch.2 /dev/null
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/file1
+foo/file2
+foo/bar/file
+Creating incremental archive
+foo/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/file
+foo/file1
+foo/file2
+End directory listing 1
+Begin directory listing 2
+foo
+foo/baz
+foo/baz/file
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_97
+#AT_START_98
+at_fn_group_banner 98 'rename02.at:24' \
+  "move between hierarchies" "                       " 13
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "98. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/rename02.at:27:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/bar/baz: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/bar/baz/
+foo/file1
+foo/file2
+foo/bar/file.r
+foo/bar/baz/file.z
+Creating incremental archive
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/baz
+foo/bar/baz/file.z
+foo/bar/file.r
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 2
+foo
+foo/bar
+foo/bar/file.r
+foo/baz
+foo/baz/file.z
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/rename02.at:27:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/bar/baz: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/bar/baz/
+foo/file1
+foo/file2
+foo/bar/file.r
+foo/bar/baz/file.z
+Creating incremental archive
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/baz
+foo/bar/baz/file.z
+foo/bar/file.r
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 2
+foo
+foo/bar
+foo/bar/file.r
+foo/baz
+foo/baz/file.z
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/rename02.at:27:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo \"Creating base archive\"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo \"Creating incremental archive\"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+mkdir foo/bar
+genfile --file foo/bar/file.r
+mkdir foo/bar/baz
+genfile --file foo/bar/baz/file.z
+
+sleep 1
+
+echo "Creating base archive"
+tar -g incr -cf arch.1 -v foo
+
+mv foo/bar/baz foo
+
+echo "Creating incremental archive"
+tar -g incr -cf arch.2 -v foo
+
+mv foo old
+
+tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
+sort tmperr >&2
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
+tar: foo/bar: Directory is new
+tar: foo/bar/baz: Directory is new
+tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating base archive
+foo/
+foo/bar/
+foo/bar/baz/
+foo/file1
+foo/file2
+foo/bar/file.r
+foo/bar/baz/file.z
+Creating incremental archive
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 1
+foo
+foo/bar
+foo/bar/baz
+foo/bar/baz/file.z
+foo/bar/file.r
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/bar/
+foo/baz/
+Begin directory listing 2
+foo
+foo/bar
+foo/bar/file.r
+foo/baz
+foo/baz/file.z
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_98
+#AT_START_99
+at_fn_group_banner 99 'rename03.at:23' \
+  "cyclic renames" "                                 " 13
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "99. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/rename03.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
+
+sleep 1
+
+echo \"First dump\"
+echo \"First dump\">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
+
+# Shuffle directories:
+(cd foo
+mv a \$\$
+mv c a
+mv b c
+mv \$\$ b)
+
+echo \"Second dump\"
+echo \"Second dump\" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
+
+sleep 1
+
+echo "First dump"
+echo "First dump">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
+
+# Shuffle directories:
+(cd foo
+mv a $$
+mv c a
+mv b c
+mv $$ b)
+
+echo "Second dump"
+echo "Second dump" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "First dump
+tar: foo/a: Directory is new
+tar: foo/b: Directory is new
+tar: foo/c: Directory is new
+tar: foo: Directory is new
+Second dump
+tar: foo/a: Directory has been renamed from 'foo/c'
+tar: foo/b: Directory has been renamed from 'foo/a'
+tar: foo/c: Directory has been renamed from 'foo/b'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "First dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+foo/file1
+foo/file2
+foo/a/filea
+foo/b/fileb
+foo/c/filec
+Second dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 1
+foo
+foo/a
+foo/a/filea
+foo/b
+foo/b/fileb
+foo/c
+foo/c/filec
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 2
+foo
+foo/a
+foo/a/filec
+foo/b
+foo/b/filea
+foo/c
+foo/c/fileb
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/rename03.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
+
+sleep 1
+
+echo \"First dump\"
+echo \"First dump\">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+# Shuffle directories:
+(cd foo
+mv a \$\$
+mv c a
+mv b c
+mv \$\$ b)
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr04.at:34:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+echo \"Second dump\"
+echo \"Second dump\" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
-  }' < /dev/null | genfile --files-from -
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
 
 sleep 1
 
-echo \"Initial dump\"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo \"Incremental dump\"
-tar cvf a1.tar -g a.sna a
-)"
-echo incr04.at:34 >"$at_check_line_file"
+echo "First dump"
+echo "First dump">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
+
+# Shuffle directories:
+(cd foo
+mv a $$
+mv c a
+mv b c
+mv $$ b)
+
+echo "Second dump"
+echo "Second dump" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "First dump
+tar: foo/a: Directory is new
+tar: foo/b: Directory is new
+tar: foo/c: Directory is new
+tar: foo: Directory is new
+Second dump
+tar: foo/a: Directory has been renamed from 'foo/c'
+tar: foo/b: Directory has been renamed from 'foo/a'
+tar: foo/c: Directory has been renamed from 'foo/b'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "First dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+foo/file1
+foo/file2
+foo/a/filea
+foo/b/fileb
+foo/c/filec
+Second dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 1
+foo
+foo/a
+foo/a/filea
+foo/b
+foo/b/fileb
+foo/c
+foo/c/filec
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 2
+foo
+foo/a
+foo/a/filec
+foo/b
+foo/b/filea
+foo/c
+foo/c/fileb
+foo/file1
+foo/file2
+End directory listing 2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/rename03.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
 
 sleep 1
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+echo \"First dump\"
+echo \"First dump\">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
+
+# Shuffle directories:
+(cd foo
+mv a \$\$
+mv c a
+mv b c
+mv \$\$ b)
+
+echo \"Second dump\"
+echo \"Second dump\" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo \"Begin directory listing 1\"
+find foo | sort
+echo \"End directory listing 1\"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -21845,209 +23878,136 @@ export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d a/b >/dev/null  || exit 77
-awk 'BEGIN {
-  for (i=1;i<=142;i++)
-    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
-  }' < /dev/null | genfile --files-from -
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir foo
+genfile --file foo/file1
+genfile --file foo/file2
+
+mkdir foo/a
+genfile --file foo/a/filea
+
+mkdir foo/b
+genfile --file foo/b/fileb
+
+mkdir foo/c
+genfile --file foo/c/filec
 
 sleep 1
 
-echo "Initial dump"
-tar cvf a0.tar -g a.sna a
-mv a/b a/c
-echo "Incremental dump"
-tar cvf a1.tar -g a.sna a
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: a: Directory is new
-tar: a/b: Directory is new
-tar: a/c: Directory has been renamed from \`a/b'
+echo "First dump"
+echo "First dump">&2
+tar -g incr -cf arch.1 -v foo 2>tmperr
+sort tmperr >&2
+
+# Shuffle directories:
+(cd foo
+mv a $$
+mv c a
+mv b c
+mv $$ b)
+
+echo "Second dump"
+echo "Second dump" >&2
+tar -g incr -cf arch.2 -v foo 2>tmperr
+sort tmperr >&2
+
+tar xfg arch.1 /dev/null --warning=no-timestamp
+
+echo "Begin directory listing 1"
+find foo | sort
+echo "End directory listing 1"
+
+tar xfgv arch.2 /dev/null --warning=no-timestamp
+echo Begin directory listing 2
+find foo | sort
+echo End directory listing 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "First dump
+tar: foo/a: Directory is new
+tar: foo/b: Directory is new
+tar: foo/c: Directory is new
+tar: foo: Directory is new
+Second dump
+tar: foo/a: Directory has been renamed from 'foo/c'
+tar: foo/b: Directory has been renamed from 'foo/a'
+tar: foo/c: Directory has been renamed from 'foo/b'
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Initial dump
-a/
-a/b/
-a/b/one_31_chars_long_file_name_001
-a/b/one_31_chars_long_file_name_002
-a/b/one_31_chars_long_file_name_003
-a/b/one_31_chars_long_file_name_004
-a/b/one_31_chars_long_file_name_005
-a/b/one_31_chars_long_file_name_006
-a/b/one_31_chars_long_file_name_007
-a/b/one_31_chars_long_file_name_008
-a/b/one_31_chars_long_file_name_009
-a/b/one_31_chars_long_file_name_010
-a/b/one_31_chars_long_file_name_011
-a/b/one_31_chars_long_file_name_012
-a/b/one_31_chars_long_file_name_013
-a/b/one_31_chars_long_file_name_014
-a/b/one_31_chars_long_file_name_015
-a/b/one_31_chars_long_file_name_016
-a/b/one_31_chars_long_file_name_017
-a/b/one_31_chars_long_file_name_018
-a/b/one_31_chars_long_file_name_019
-a/b/one_31_chars_long_file_name_020
-a/b/one_31_chars_long_file_name_021
-a/b/one_31_chars_long_file_name_022
-a/b/one_31_chars_long_file_name_023
-a/b/one_31_chars_long_file_name_024
-a/b/one_31_chars_long_file_name_025
-a/b/one_31_chars_long_file_name_026
-a/b/one_31_chars_long_file_name_027
-a/b/one_31_chars_long_file_name_028
-a/b/one_31_chars_long_file_name_029
-a/b/one_31_chars_long_file_name_030
-a/b/one_31_chars_long_file_name_031
-a/b/one_31_chars_long_file_name_032
-a/b/one_31_chars_long_file_name_033
-a/b/one_31_chars_long_file_name_034
-a/b/one_31_chars_long_file_name_035
-a/b/one_31_chars_long_file_name_036
-a/b/one_31_chars_long_file_name_037
-a/b/one_31_chars_long_file_name_038
-a/b/one_31_chars_long_file_name_039
-a/b/one_31_chars_long_file_name_040
-a/b/one_31_chars_long_file_name_041
-a/b/one_31_chars_long_file_name_042
-a/b/one_31_chars_long_file_name_043
-a/b/one_31_chars_long_file_name_044
-a/b/one_31_chars_long_file_name_045
-a/b/one_31_chars_long_file_name_046
-a/b/one_31_chars_long_file_name_047
-a/b/one_31_chars_long_file_name_048
-a/b/one_31_chars_long_file_name_049
-a/b/one_31_chars_long_file_name_050
-a/b/one_31_chars_long_file_name_051
-a/b/one_31_chars_long_file_name_052
-a/b/one_31_chars_long_file_name_053
-a/b/one_31_chars_long_file_name_054
-a/b/one_31_chars_long_file_name_055
-a/b/one_31_chars_long_file_name_056
-a/b/one_31_chars_long_file_name_057
-a/b/one_31_chars_long_file_name_058
-a/b/one_31_chars_long_file_name_059
-a/b/one_31_chars_long_file_name_060
-a/b/one_31_chars_long_file_name_061
-a/b/one_31_chars_long_file_name_062
-a/b/one_31_chars_long_file_name_063
-a/b/one_31_chars_long_file_name_064
-a/b/one_31_chars_long_file_name_065
-a/b/one_31_chars_long_file_name_066
-a/b/one_31_chars_long_file_name_067
-a/b/one_31_chars_long_file_name_068
-a/b/one_31_chars_long_file_name_069
-a/b/one_31_chars_long_file_name_070
-a/b/one_31_chars_long_file_name_071
-a/b/one_31_chars_long_file_name_072
-a/b/one_31_chars_long_file_name_073
-a/b/one_31_chars_long_file_name_074
-a/b/one_31_chars_long_file_name_075
-a/b/one_31_chars_long_file_name_076
-a/b/one_31_chars_long_file_name_077
-a/b/one_31_chars_long_file_name_078
-a/b/one_31_chars_long_file_name_079
-a/b/one_31_chars_long_file_name_080
-a/b/one_31_chars_long_file_name_081
-a/b/one_31_chars_long_file_name_082
-a/b/one_31_chars_long_file_name_083
-a/b/one_31_chars_long_file_name_084
-a/b/one_31_chars_long_file_name_085
-a/b/one_31_chars_long_file_name_086
-a/b/one_31_chars_long_file_name_087
-a/b/one_31_chars_long_file_name_088
-a/b/one_31_chars_long_file_name_089
-a/b/one_31_chars_long_file_name_090
-a/b/one_31_chars_long_file_name_091
-a/b/one_31_chars_long_file_name_092
-a/b/one_31_chars_long_file_name_093
-a/b/one_31_chars_long_file_name_094
-a/b/one_31_chars_long_file_name_095
-a/b/one_31_chars_long_file_name_096
-a/b/one_31_chars_long_file_name_097
-a/b/one_31_chars_long_file_name_098
-a/b/one_31_chars_long_file_name_099
-a/b/one_31_chars_long_file_name_100
-a/b/one_31_chars_long_file_name_101
-a/b/one_31_chars_long_file_name_102
-a/b/one_31_chars_long_file_name_103
-a/b/one_31_chars_long_file_name_104
-a/b/one_31_chars_long_file_name_105
-a/b/one_31_chars_long_file_name_106
-a/b/one_31_chars_long_file_name_107
-a/b/one_31_chars_long_file_name_108
-a/b/one_31_chars_long_file_name_109
-a/b/one_31_chars_long_file_name_110
-a/b/one_31_chars_long_file_name_111
-a/b/one_31_chars_long_file_name_112
-a/b/one_31_chars_long_file_name_113
-a/b/one_31_chars_long_file_name_114
-a/b/one_31_chars_long_file_name_115
-a/b/one_31_chars_long_file_name_116
-a/b/one_31_chars_long_file_name_117
-a/b/one_31_chars_long_file_name_118
-a/b/one_31_chars_long_file_name_119
-a/b/one_31_chars_long_file_name_120
-a/b/one_31_chars_long_file_name_121
-a/b/one_31_chars_long_file_name_122
-a/b/one_31_chars_long_file_name_123
-a/b/one_31_chars_long_file_name_124
-a/b/one_31_chars_long_file_name_125
-a/b/one_31_chars_long_file_name_126
-a/b/one_31_chars_long_file_name_127
-a/b/one_31_chars_long_file_name_128
-a/b/one_31_chars_long_file_name_129
-a/b/one_31_chars_long_file_name_130
-a/b/one_31_chars_long_file_name_131
-a/b/one_31_chars_long_file_name_132
-a/b/one_31_chars_long_file_name_133
-a/b/one_31_chars_long_file_name_134
-a/b/one_31_chars_long_file_name_135
-a/b/one_31_chars_long_file_name_136
-a/b/one_31_chars_long_file_name_137
-a/b/one_31_chars_long_file_name_138
-a/b/one_31_chars_long_file_name_139
-a/b/one_31_chars_long_file_name_140
-a/b/one_31_chars_long_file_name_141
-a/b/one_31_chars_long_file_name_142
-Incremental dump
-a/
-a/c/
+echo >>"$at_stdout"; $as_echo "First dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+foo/file1
+foo/file2
+foo/a/filea
+foo/b/fileb
+foo/c/filec
+Second dump
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 1
+foo
+foo/a
+foo/a/filea
+foo/b
+foo/b/fileb
+foo/c
+foo/c/filec
+foo/file1
+foo/file2
+End directory listing 1
+foo/
+foo/a/
+foo/b/
+foo/c/
+Begin directory listing 2
+foo
+foo/a
+foo/a/filec
+foo/b
+foo/b/filea
+foo/c
+foo/c/fileb
+foo/file1
+foo/file2
+End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_59
-#AT_START_60
-# 60. incr05.at:19: incremental dumps with -C
-at_setup_line='incr05.at:19'
-at_desc="incremental dumps with -C"
-$at_quiet $as_echo_n " 60: $at_desc                      "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_99
+#AT_START_100
+at_fn_group_banner 100 'rename04.at:27' \
+  "renamed directory containing subdirectories" "    " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "60. incr05.at:19: testing ..."
+  $as_echo "100. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/incr05.at:22:
+  { set +x
+$as_echo "$at_srcdir/rename04.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22056,46 +24016,37 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-)"
-echo incr05.at:22 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+decho Renaming
+mv directory dir
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22104,40 +24055,65 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0
-./
-./sub/
-./file1
-./sub/file2
-Level 1
-./
-./sub/
-./file3
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr05.at:22:
+              { set +x
+$as_echo "$at_srcdir/rename04.at:30:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -22146,46 +24122,37 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-)"
-echo incr05.at:22 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+decho Renaming
+mv directory dir
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -22194,40 +24161,65 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0
-./
-./sub/
-./file1
-./sub/file2
-Level 1
-./
-./sub/
-./file3
+
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr05.at:22:
+              { set +x
+$as_echo "$at_srcdir/rename04.at:30:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -22236,46 +24228,37 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-)"
-echo incr05.at:22 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+decho Renaming
+mv directory dir
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -22284,64 +24267,86 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-echo Level 0
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile --file dir/file3
-echo Level 1
-tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0
-./
-./sub/
-./file1
-./sub/file2
-Level 1
-./
-./sub/
-./file3
+
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_60
-#AT_START_61
-# 61. incr06.at:19: incremental dumps of nested directories
-at_setup_line='incr06.at:19'
-at_desc="incremental dumps of nested directories"
-$at_quiet $as_echo_n " 61: $at_desc        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_100
+#AT_START_101
+at_fn_group_banner 101 'rename05.at:24' \
+  "renamed subdirectories" "                         " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "61. incr06.at:19: testing ..."
+  $as_echo "101. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/incr06.at:22:
+  { set +x
+$as_echo "$at_srcdir/rename05.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22350,64 +24355,38 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-)"
-echo incr06.at:22 >"$at_check_line_file"
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
+mv dir orig
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22416,70 +24395,66 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0 . sub
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 0 sub .
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 1 . sub
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
-Level 1 sub .
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir.0
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr06.at:22:
+              { set +x
+$as_echo "$at_srcdir/rename05.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -22488,64 +24463,38 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-)"
-echo incr06.at:22 >"$at_check_line_file"
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
+mv dir orig
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -22554,70 +24503,66 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0 . sub
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 0 sub .
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 1 . sub
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
-Level 1 sub .
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir.0
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/incr06.at:22:
+              { set +x
+$as_echo "$at_srcdir/rename05.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -22626,64 +24571,38 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-)"
-echo incr06.at:22 >"$at_check_line_file"
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
+mv dir orig
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -22692,94 +24611,87 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-mkdir dir/sub/a
-mkdir dir/sub/b
-genfile --file dir/file1
-genfile --file dir/sub/file2
-genfile --file dir/sub/a/file3
 
-echo Level 0 . sub
-tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 0 sub .
-tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir dir/c
-genfile --file dir/sub/b/file4
 
-echo Level 1 . sub
-tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
-echo Level 1 sub .
-tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Level 0 . sub
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 0 sub .
-./
-sub/
-sub/a/
-sub/b/
-./file1
-sub/file2
-sub/a/file3
-Level 1 . sub
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
-Level 1 sub .
-./
-./c/
-sub/
-sub/a/
-sub/b/
-sub/b/file4
+decho Creating directory structure
+mkdir directory
+mkdir directory/subdir
+genfile --file=directory/file
+
+decho Creating initial archive
+tar -cf archive.1 -g db.1 directory
+
+decho Renaming
+mv directory/subdir directory/subdir.0
+mv directory dir
+
+decho Creating incremental archive
+cp db.1 db.2
+tar -cf archive.2 -g db.2 dir
+
+mv dir orig
+
+decho First restore
+tar -xf archive.1 -g db.1 --warning=no-timestamp
+find directory | sort
+
+decho Second restore
+tar -xf archive.2 -g db.2 --warning=no-timestamp
+find dir | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+Second restore
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating directory structure
+Creating initial archive
+Renaming
+Creating incremental archive
+First restore
+directory
+directory/file
+directory/subdir
+Second restore
+dir
+dir/subdir.0
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_61
-#AT_START_62
-# 62. filerem01.at:34: file removed as we read it (ca. 22 seconds)
-at_setup_line='filerem01.at:34'
-at_desc="file removed as we read it (ca. 22 seconds)"
-$at_quiet $as_echo_n " 62: $at_desc    "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_101
+#AT_START_102
+at_fn_group_banner 102 'chtype.at:27' \
+  "changed file types in incrementals" "             " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "62. filerem01.at:34: testing ..."
+  $as_echo "102. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/filerem01.at:37:
+  { set +x
+$as_echo "$at_srcdir/chtype.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22788,42 +24700,39 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
 
-genfile --run --checkpoint=3 --unlink dir/file1 -- \\
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
-       --checkpoint-action='echo' -c -f archive.tar \\
-       --listed-incremental db -v dir >/dev/null
-)"
-echo filerem01.at:37 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
 
-genfile --run --checkpoint=3 --unlink dir/file1 -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v dir >/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
+
+sleep 2
+
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
+
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
+
+# Delete a
+rm -r directory
+
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -22832,259 +24741,159 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-
-genfile --run --checkpoint=3 --unlink dir/file1 -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v dir >/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
-tar: dir/sub: Directory is new
-tar: dir/file1: File removed before we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_func_check_status 1 $at_status "$at_srcdir/filerem01.at:37"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-              { $at_traceoff
-$as_echo "$at_srcdir/filerem01.at:37:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
 
-genfile --run --checkpoint=3 --unlink dir/file1 -- \\
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
-       --checkpoint-action='echo' -c -f archive.tar \\
-       --listed-incremental db -v dir >/dev/null
-)"
-echo filerem01.at:37 >"$at_check_line_file"
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+sleep 2
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
 
-genfile --run --checkpoint=3 --unlink dir/file1 -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v dir >/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
+# Delete a
+rm -r directory
 
-genfile --run --checkpoint=3 --unlink dir/file1 -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v dir >/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new
-tar: dir/sub: Directory is new
-tar: dir/file1: File removed before we read it
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "First backup
+Second backup
+Restore archive.1
+Restore archive.2
+directory
+directory/a
+directory/a/a
+directory/a/b
+directory/b
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo stdout:; cat "$at_stdout"
-at_func_check_status 1 $at_status "$at_srcdir/filerem01.at:37"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/chtype.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
 
-
-# Timing information:
-#
-# For -Hgnu the above command line takes about 8 seconds to execute and
-# produces:
-#
-# tar: dir: Directory is new
-# tar: dir/sub: Directory is new
-# dir/
-# tar: Write checkpoint 1
-# tar: Write checkpoint 2
-# dir/sub/
-# tar: Write checkpoint 3
-# tar: Write checkpoint 4
-# dir/file1
-# tar: Write checkpoint 5
-# dir/sub/file2
-# tar: Write checkpoint 6
-# tar: Write checkpoint 7
-# tar: Write checkpoint 8
-#
-# For -Hposix the above command line takes about 14 seconds to execute and
-# produces:
-#
-# ./tar: dir: Directory is new
-# ./tar: dir/sub: Directory is new
-# dir/
-# ./tar: Write checkpoint 1
-# ./tar: Write checkpoint 2
-# ./tar: Write checkpoint 3
-# dir/sub/
-# ./tar: Write checkpoint 4
-# ./tar: Write checkpoint 5
-# ./tar: Write checkpoint 6
-# dir/file1
-# ./tar: Write checkpoint 7
-# ./tar: Write checkpoint 8
-# ./tar: Write checkpoint 9
-# dir/sub/file2
-# ./tar: Write checkpoint 10
-# ./tar: Write checkpoint 11
-# ./tar: Write checkpoint 12
-# ./tar: Write checkpoint 13
-# ./tar: Write checkpoint 14
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_62
-#AT_START_63
-# 63. filerem02.at:24: toplevel file removed (ca. 24 seconds)
-at_setup_line='filerem02.at:24'
-at_desc="toplevel file removed (ca. 24 seconds)"
-$at_quiet $as_echo_n " 63: $at_desc         "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "63. filerem02.at:24: testing ..."
-  $at_traceon
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
 
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
 
+sleep 2
 
-  { $at_traceoff
-$as_echo "$at_srcdir/filerem02.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
 
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
-       --checkpoint-action='echo' -c -f archive.tar \\
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-)"
-echo filerem02.at:27 >"$at_check_line_file"
+# Delete a
+rm -r directory
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
 
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
 
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo stderr:; cat "$at_stderr"
-echo stdout:; cat "$at_stdout"
-at_func_check_status 2 $at_status "$at_srcdir/filerem02.at:27"
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
+
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
+
+sleep 2
+
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
+
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
 
-$at_failed && at_func_log_failure
+# Delete a
+rm -r directory
+
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "First backup
+Second backup
+Restore archive.1
+Restore archive.2
+directory
+directory/a
+directory/a/a
+directory/a/b
+directory/b
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/filerem02.at:27:
+              { set +x
+$as_echo "$at_srcdir/chtype.at:30:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -23093,46 +24902,39 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
 
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\
-       --checkpoint-action='echo' -c -f archive.tar \\
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-)"
-echo filerem02.at:27 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
 
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
+
+sleep 2
+
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
+
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
+
+# Delete a
+rm -r directory
+
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -23141,224 +24943,203 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-mkdir dir/sub
-genfile --file dir/file1
-genfile --file dir/sub/file2
-mkdir dir2
-genfile --file dir2/file1
-
-genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
-       tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
-       --checkpoint-action='echo' -c -f archive.tar \
-       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo stderr:; cat "$at_stderr"
-echo stdout:; cat "$at_stdout"
-at_func_check_status 2 $at_status "$at_srcdir/filerem02.at:27"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-# Ignore stdout and stderr because their contents depend on
-# the file system implementation.
-
-# Timing information: see filerem01.at
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_63
-#AT_START_64
-# 64. rename01.at:24: renamed dirs in incrementals
-at_setup_line='rename01.at:24'
-at_desc="renamed dirs in incrementals"
-$at_quiet $as_echo_n " 64: $at_desc                   "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "64. rename01.at:24: testing ..."
-  $at_traceon
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
+install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
+mkdir directory/a
+genfile --file directory/a/a
 
+echo First backup
+tar --create --file=archive.1 --listed-incremental=db.1 directory
 
+sleep 2
 
-  { $at_traceoff
-$as_echo "$at_srcdir/rename01.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+# Remove directory b and create a file with this name.
+# Previous versions were not able to restore over this file.
+rm -r directory/b
+genfile --file directory/b
+genfile --file directory/a/b
 
+echo Second backup
+tar --create --file=archive.2 --listed-incremental=db.2 directory
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Delete a
+rm -r directory
 
+echo Restore archive.1
+tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
+echo Restore archive.2
+tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
+find directory | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "First backup
+Second backup
+Restore archive.1
+Restore archive.2
+directory
+directory/a
+directory/a/a
+directory/a/b
+directory/b
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
 
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
 
-mv foo/bar foo/baz
 
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_102
+#AT_START_103
+at_fn_group_banner 103 'ignfail.at:23' \
+  "ignfail" "                                        " 14
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "103. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-mv foo old
 
-tar xfg arch.1 /dev/null
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-)"
-echo rename01.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/ignfail.at:26:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=\$?
+chmod 600 file
+test \$status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=\$?
+chmod 600 file
+test \$status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=\$?
+chmod 700 directory
+test \$status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=\$?
+chmod 700 directory
+test \$status = 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=$?
+chmod 600 file
+test $status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=$?
+chmod 600 file
+test $status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=$?
+chmod 700 directory
+test $status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar'
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=$?
+chmod 700 directory
+test $status = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: file: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: file: Warning: Cannot open: Permission denied
+-----
+tar: directory: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/file1
-foo/file2
-foo/bar/file
-Creating incremental archive
-foo/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/file
-foo/file1
-foo/file2
-End directory listing 1
-Begin directory listing 2
-foo
-foo/baz
-foo/baz/file
-foo/file1
-foo/file2
-End directory listing 2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename01.at:27:
+              { set +x
+$as_echo "$at_srcdir/ignfail.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -23367,42 +25148,50 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=\$?
+chmod 600 file
+test \$status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=\$?
+chmod 600 file
+test \$status = 0 || exit 1
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=\$?
+chmod 700 directory
+test \$status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=\$?
+chmod 700 directory
+test \$status = 0
 )"
-echo rename01.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -23411,119 +25200,194 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
+
+
+touch file
+mkdir directory
+touch directory/file
+
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=$?
+chmod 600 file
+test $status = 2 || exit 1
+
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=$?
+chmod 600 file
+test $status = 0 || exit 1
+
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=$?
+chmod 700 directory
+test $status = 2 || exit 1
+
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=$?
+chmod 700 directory
+test $status = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: file: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: file: Warning: Cannot open: Permission denied
+-----
+tar: directory: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: directory: Warning: Cannot open: Permission denied
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/ignfail.at:26:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
+# The test is meaningless for super-user.
 
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=\$?
+chmod 600 file
+test \$status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=\$?
+chmod 600 file
+test \$status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=\$?
+chmod 700 directory
+test \$status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=\$?
+chmod 700 directory
+test \$status = 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=$?
+chmod 600 file
+test $status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=$?
+chmod 600 file
+test $status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=$?
+chmod 700 directory
+test $status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar'
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=$?
+chmod 700 directory
+test $status = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: file: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: file: Warning: Cannot open: Permission denied
+-----
+tar: directory: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/file1
-foo/file2
-foo/bar/file
-Creating incremental archive
-foo/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/file
-foo/file1
-foo/file2
-End directory listing 1
-Begin directory listing 2
-foo
-foo/baz
-foo/baz/file
-foo/file1
-foo/file2
-End directory listing 2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename01.at:27:
+              { set +x
+$as_echo "$at_srcdir/ignfail.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -23532,657 +25396,741 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
+touch file
+mkdir directory
+touch directory/file
 
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=\$?
+chmod 600 file
+test \$status = 2 || exit 1
 
-mv foo/bar foo/baz
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=\$?
+chmod 600 file
+test \$status = 0 || exit 1
 
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=\$?
+chmod 700 directory
+test \$status = 2 || exit 1
 
-mv foo old
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=\$?
+chmod 700 directory
+test \$status = 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-tar xfg arch.1 /dev/null
+# The test is meaningless for super-user.
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-)"
-echo rename01.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+touch file
+mkdir directory
+touch directory/file
+
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=$?
+chmod 600 file
+test $status = 2 || exit 1
+
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=$?
+chmod 600 file
+test $status = 0 || exit 1
+
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=$?
+chmod 700 directory
+test $status = 2 || exit 1
+
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=$?
+chmod 700 directory
+test $status = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: file: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: file: Warning: Cannot open: Permission denied
+-----
+tar: directory: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: directory: Warning: Cannot open: Permission denied
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/ignfail.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=\$?
+chmod 600 file
+test \$status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=\$?
+chmod 600 file
+test \$status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=\$?
+chmod 700 directory
+test \$status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=\$?
+chmod 700 directory
+test \$status = 0
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+# The test is meaningless for super-user.
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
-mv foo/bar foo/baz
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+touch file
+mkdir directory
+touch directory/file
 
-mv foo old
+echo 1>&2 -----
+chmod 000 file
+tar cf archive file
+status=$?
+chmod 600 file
+test $status = 2 || exit 1
 
-tar xfg arch.1 /dev/null
+echo 1>&2 -----
+chmod 000 file
+tar cf archive --ignore-failed-read file || exit 1
+status=$?
+chmod 600 file
+test $status = 0 || exit 1
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive directory
+status=$?
+chmod 700 directory
+test $status = 2 || exit 1
 
-tar xfg arch.2 /dev/null
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar'
+echo 1>&2 -----
+chmod 000 directory
+tar cf archive --ignore-failed-read directory || exit 1
+status=$?
+chmod 700 directory
+test $status = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: file: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: file: Warning: Cannot open: Permission denied
+-----
+tar: directory: Cannot open: Permission denied
+tar: Exiting with failure status due to previous errors
+-----
+tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/file1
-foo/file2
-foo/bar/file
-Creating incremental archive
-foo/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/file
-foo/file1
-foo/file2
-End directory listing 1
-Begin directory listing 2
-foo
-foo/baz
-foo/baz/file
-foo/file1
-foo/file2
-End directory listing 2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_64
-#AT_START_65
-# 65. rename02.at:24: move between hierarchies
-at_setup_line='rename02.at:24'
-at_desc="move between hierarchies"
-$at_quiet $as_echo_n " 65: $at_desc                       "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_103
+#AT_START_104
+at_fn_group_banner 104 'link01.at:33' \
+  "link count gt 2" "                                " 15
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "65. rename02.at:24: testing ..."
+  $as_echo "104. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/rename02.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/link01.at:36:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
-
-sleep 1
-
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
-
-mv foo/bar/baz foo
-
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
-
-mv foo old
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+ls directory/test1
 )"
-echo rename02.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
-
-sleep 1
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
-
-mv foo/bar/baz foo
-
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-mv foo old
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+ls directory/test1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "test.txt
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/link01.at:36:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-sleep 1
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-mv foo/bar/baz foo
+ls directory/test1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-mv foo old
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/bar/baz: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar/baz'
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/bar/baz/
-foo/file1
-foo/file2
-foo/bar/file.r
-foo/bar/baz/file.z
-Creating incremental archive
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/baz
-foo/bar/baz/file.z
-foo/bar/file.r
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 2
-foo
-foo/bar
-foo/bar/file.r
-foo/baz
-foo/baz/file.z
-foo/file1
-foo/file2
-End directory listing 2
+ls directory/test1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename02.at:27:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/link01.at:36:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-sleep 1
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-mv foo/bar/baz foo
+ls directory/test1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-mv foo old
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-)"
-echo rename02.at:27 >"$at_check_line_file"
+ls directory/test1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "test.txt
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/link01.at:36:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-sleep 1
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-mv foo/bar/baz foo
+ls directory/test1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-mv foo old
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+ls directory/test1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "test.txt
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/link01.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-sleep 1
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-mv foo/bar/baz foo
+ls directory/test1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+mkdir directory
+mkdir directory/test1
+mkdir directory/test2
 
-mv foo old
+echo TEST > directory/test1/test.txt
+ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+rm -r directory
+tar xf archive --warning=no-timestamp
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/bar/baz: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar/baz'
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/bar/baz/
-foo/file1
-foo/file2
-foo/bar/file.r
-foo/bar/baz/file.z
-Creating incremental archive
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/baz
-foo/bar/baz/file.z
-foo/bar/file.r
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 2
-foo
-foo/bar
-foo/bar/file.r
-foo/baz
-foo/baz/file.z
-foo/file1
-foo/file2
-End directory listing 2
+ls directory/test1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename02.at:27:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
 
-sleep 1
 
-echo \"Creating base archive\"
-tar -g incr -cf arch.1 -v foo
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_104
+#AT_START_105
+at_fn_group_banner 105 'link02.at:32' \
+  "preserve hard links with --remove-files" "        " 15
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "105. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-mv foo/bar/baz foo
 
-echo \"Creating incremental archive\"
-tar -g incr -cf arch.2 -v foo
 
-mv foo old
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+  { set +x
+$as_echo "$at_srcdir/link02.at:35:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
 )"
-echo rename02.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
-
-sleep 1
+              { set +x
+$as_echo "$at_srcdir/link02.at:35:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-mv foo/bar/baz foo
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
+              { set +x
+$as_echo "$at_srcdir/link02.at:35:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-mv foo old
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+              { set +x
+$as_echo "$at_srcdir/link02.at:35:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -24191,116 +26139,28 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-mkdir foo/bar
-genfile --file foo/bar/file.r
-mkdir foo/bar/baz
-genfile --file foo/bar/baz/file.z
-
-sleep 1
-
-echo "Creating base archive"
-tar -g incr -cf arch.1 -v foo
-
-mv foo/bar/baz foo
-
-echo "Creating incremental archive"
-tar -g incr -cf arch.2 -v foo
-
-mv foo old
-
-tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
-sort tmperr >&2
-
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
-
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new
-tar: foo/bar: Directory is new
-tar: foo/bar/baz: Directory is new
-tar: foo/baz: Directory has been renamed from \`foo/bar/baz'
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating base archive
-foo/
-foo/bar/
-foo/bar/baz/
-foo/file1
-foo/file2
-foo/bar/file.r
-foo/bar/baz/file.z
-Creating incremental archive
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 1
-foo
-foo/bar
-foo/bar/baz
-foo/bar/baz/file.z
-foo/bar/file.r
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/bar/
-foo/baz/
-Begin directory listing 2
-foo
-foo/bar
-foo/bar/file.r
-foo/baz
-foo/baz/file.z
-foo/file1
-foo/file2
-End directory listing 2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file1
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_65
-#AT_START_66
-# 66. rename03.at:23: cyclic renames
-at_setup_line='rename03.at:23'
-at_desc="cyclic renames"
-$at_quiet $as_echo_n " 66: $at_desc                                 "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "66. rename03.at:23: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/rename03.at:26:
+              { set +x
+$as_echo "$at_srcdir/link02.at:35:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -24309,58 +26169,15 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-
-mkdir foo/a
-genfile --file foo/a/filea
-
-mkdir foo/b
-genfile --file foo/b/fileb
-
-mkdir foo/c
-genfile --file foo/c/filec
-
-sleep 1
-
-echo \"First dump\"
-echo \"First dump\">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
-
-# Shuffle directories:
-(cd foo
-mv a \$\$
-mv c a
-mv b c
-mv \$\$ b)
-
-echo \"Second dump\"
-echo \"Second dump\" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
-
-tar xfg arch.1 /dev/null --warning=no-timestamp
-
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
-
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
 )"
-echo rename03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -24369,175 +26186,126 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+tar -c -f archive --remove-files file1 file2 file3 file4
+tar tfv archive | sed -n 's/.*file[2-4] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-
-mkdir foo/a
-genfile --file foo/a/filea
-
-mkdir foo/b
-genfile --file foo/b/fileb
-
-mkdir foo/c
-genfile --file foo/c/filec
-
-sleep 1
 
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
 
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_105
+#AT_START_106
+at_fn_group_banner 106 'link03.at:24' \
+  "working -l with --remove-files" "                 " 15
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "106. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
+  { set +x
+$as_echo "$at_srcdir/link03.at:34:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir foo/a
-genfile --file foo/a/filea
 
-mkdir foo/b
-genfile --file foo/b/fileb
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-mkdir foo/c
-genfile --file foo/c/filec
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-sleep 1
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "First dump
-tar: foo/a: Directory is new
-tar: foo/b: Directory is new
-tar: foo/c: Directory is new
-tar: foo: Directory is new
-Second dump
-tar: foo/a: Directory has been renamed from \`foo/c'
-tar: foo/b: Directory has been renamed from \`foo/a'
-tar: foo/c: Directory has been renamed from \`foo/b'
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Missing links to 'file1'.
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-foo/file1
-foo/file2
-foo/a/filea
-foo/b/fileb
-foo/c/filec
-Second dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 1
-foo
-foo/a
-foo/a/filea
-foo/b
-foo/b/fileb
-foo/c
-foo/c/filec
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 2
-foo
-foo/a
-foo/a/filec
-foo/b
-foo/b/filea
-foo/c
-foo/c/fileb
-foo/file1
-foo/file2
-End directory listing 2
+echo >>"$at_stdout"; $as_echo "archive.1
+archive.2
+testing archive.2
+file1
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename03.at:26:
+              { set +x
+$as_echo "$at_srcdir/link03.at:34:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -24547,57 +26315,26 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-
-mkdir foo/a
-genfile --file foo/a/filea
-
-mkdir foo/b
-genfile --file foo/b/fileb
-
-mkdir foo/c
-genfile --file foo/c/filec
-
-sleep 1
-
-echo \"First dump\"
-echo \"First dump\">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
-
-# Shuffle directories:
-(cd foo
-mv a \$\$
-mv c a
-mv b c
-mv \$\$ b)
-
-echo \"Second dump\"
-echo \"Second dump\" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
 )"
-echo rename03.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -24607,174 +26344,118 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-
-mkdir foo/a
-genfile --file foo/a/filea
-
-mkdir foo/b
-genfile --file foo/b/fileb
-
-mkdir foo/c
-genfile --file foo/c/filec
-
-sleep 1
-
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
-
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Missing links to 'file1'.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "archive.1
+archive.2
+testing archive.2
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/link03.at:34:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
-
-mkdir foo/a
-genfile --file foo/a/filea
-
-mkdir foo/b
-genfile --file foo/b/fileb
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-mkdir foo/c
-genfile --file foo/c/filec
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-sleep 1
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "First dump
-tar: foo/a: Directory is new
-tar: foo/b: Directory is new
-tar: foo/c: Directory is new
-tar: foo: Directory is new
-Second dump
-tar: foo/a: Directory has been renamed from \`foo/c'
-tar: foo/b: Directory has been renamed from \`foo/a'
-tar: foo/c: Directory has been renamed from \`foo/b'
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Missing links to 'file1'.
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-foo/file1
-foo/file2
-foo/a/filea
-foo/b/fileb
-foo/c/filec
-Second dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 1
-foo
-foo/a
-foo/a/filea
-foo/b
-foo/b/fileb
-foo/c
-foo/c/filec
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 2
-foo
-foo/a
-foo/a/filec
-foo/b
-foo/b/filea
-foo/c
-foo/c/fileb
-foo/file1
-foo/file2
-End directory listing 2
+echo >>"$at_stdout"; $as_echo "archive.1
+archive.2
+testing archive.2
+file1
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename03.at:26:
+              { set +x
+$as_echo "$at_srcdir/link03.at:34:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -24784,340 +26465,501 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-mkdir foo/a
-genfile --file foo/a/filea
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir foo/b
-genfile --file foo/b/fileb
 
-mkdir foo/c
-genfile --file foo/c/filec
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-sleep 1
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-echo \"First dump\"
-echo \"First dump\">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-# Shuffle directories:
-(cd foo
-mv a \$\$
-mv c a
-mv b c
-mv \$\$ b)
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Missing links to 'file1'.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "archive.1
+archive.2
+testing archive.2
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo \"Second dump\"
-echo \"Second dump\" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+              { set +x
+$as_echo "$at_srcdir/link03.at:34:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
 
-echo \"Begin directory listing 1\"
-find foo | sort
-echo \"End directory listing 1\"
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
 )"
-echo rename03.at:26 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
+
+echo archive.1
+tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+
+genfile -l 64 -f file1
+ln file1 file2
+ln file2 file3
+ln file3 file4
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+echo archive.2
+tar -c -f archive.2 -l --remove-files file1 file2 file3
+echo testing archive.2
+tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: Missing links to 'file1'.
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "archive.1
+archive.2
+testing archive.2
+file1
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
 
-mkdir foo/a
-genfile --file foo/a/filea
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_106
+#AT_START_107
+at_fn_group_banner 107 'link04.at:29' \
+  "link count is 1 but multiple occurrences" "       " 15
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "107. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-mkdir foo/b
-genfile --file foo/b/fileb
 
-mkdir foo/c
-genfile --file foo/c/filec
 
-sleep 1
 
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
 
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
+  { set +x
+$as_echo "$at_srcdir/link04.at:32:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo ==
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-mkdir foo
-genfile --file foo/file1
-genfile --file foo/file2
+echo ==
 
-mkdir foo/a
-genfile --file foo/a/filea
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/
+dir/file
+dir/file link to dir/file
+dir/symlink -> file
+dir/symlink link to dir/symlink
+==
+dir/
+dir/FOO
+dir/FOO link to dir/FOO
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir foo/b
-genfile --file foo/b/fileb
+              { set +x
+$as_echo "$at_srcdir/link04.at:32:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir foo/c
-genfile --file foo/c/filec
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-sleep 1
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-echo "First dump"
-echo "First dump">&2
-tar -g incr -cf arch.1 -v foo 2>tmperr
-sort tmperr >&2
+echo ==
 
-# Shuffle directories:
-(cd foo
-mv a $$
-mv c a
-mv b c
-mv $$ b)
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo "Second dump"
-echo "Second dump" >&2
-tar -g incr -cf arch.2 -v foo 2>tmperr
-sort tmperr >&2
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-tar xfg arch.1 /dev/null --warning=no-timestamp
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-echo "Begin directory listing 1"
-find foo | sort
-echo "End directory listing 1"
+echo ==
 
-tar xfgv arch.2 /dev/null --warning=no-timestamp
-echo Begin directory listing 2
-find foo | sort
-echo End directory listing 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "First dump
-tar: foo/a: Directory is new
-tar: foo/b: Directory is new
-tar: foo/c: Directory is new
-tar: foo: Directory is new
-Second dump
-tar: foo/a: Directory has been renamed from \`foo/c'
-tar: foo/b: Directory has been renamed from \`foo/a'
-tar: foo/c: Directory has been renamed from \`foo/b'
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-foo/file1
-foo/file2
-foo/a/filea
-foo/b/fileb
-foo/c/filec
-Second dump
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 1
-foo
-foo/a
-foo/a/filea
-foo/b
-foo/b/fileb
-foo/c
-foo/c/filec
-foo/file1
-foo/file2
-End directory listing 1
-foo/
-foo/a/
-foo/b/
-foo/c/
-Begin directory listing 2
-foo
-foo/a
-foo/a/filec
-foo/b
-foo/b/filea
-foo/c
-foo/c/fileb
-foo/file1
-foo/file2
-End directory listing 2
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/
+dir/file
+dir/file link to dir/file
+dir/symlink -> file
+dir/symlink link to dir/symlink
+==
+dir/
+dir/FOO
+dir/FOO link to dir/FOO
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/link04.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_66
-#AT_START_67
-# 67. rename04.at:27: renamed directory containing subdirectories
-at_setup_line='rename04.at:27'
-at_desc="renamed directory containing subdirectories"
-$at_quiet $as_echo_n " 67: $at_desc    "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "67. rename04.at:27: testing ..."
-  $at_traceon
+echo ==
 
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
+echo ==
 
-  { $at_traceoff
-$as_echo "$at_srcdir/rename04.at:30:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/
+dir/file
+dir/file link to dir/file
+dir/symlink -> file
+dir/symlink link to dir/symlink
+==
+dir/
+dir/FOO
+dir/FOO link to dir/FOO
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/link04.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+echo ==
 
-decho Renaming
-mv directory dir
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-mv dir orig
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
+echo ==
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-)"
-echo rename04.at:30 >"$at_check_line_file"
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/
+dir/file
+dir/file link to dir/file
+dir/symlink -> file
+dir/symlink link to dir/symlink
+==
+dir/
+dir/FOO
+dir/FOO link to dir/FOO
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/link04.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
-
-decho Renaming
-mv directory dir
-
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
-
-mv dir orig
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
+echo ==
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -25126,873 +26968,924 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir dir
+echo TEST > dir/file
+ln -s file dir/symlink || exit 77
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
-
-decho Renaming
-mv directory dir
-
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
-
-mv dir orig
+tar cf archive dir dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+' | sort
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
+echo ==
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir
+tar chf archive dir
+tar tvf archive | sed '
+  s,.*[0-9] dir/,dir/,
+  s,file,FOO,g
+  s,symlink,FOO,g
+' | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/
+dir/file
+dir/file link to dir/file
+dir/symlink -> file
+dir/symlink link to dir/symlink
+==
+dir/
+dir/FOO
+dir/FOO link to dir/FOO
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename04.at:30:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_107
+#AT_START_108
+at_fn_group_banner 108 'longv7.at:24' \
+  "long names in V7 archives" "                      " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "108. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-)"
-echo rename04.at:30 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+  { set +x
+$as_echo "$at_srcdir/longv7.at:30:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
+touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
+echo separator
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "longv7.at:30"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-decho Renaming
-mv directory dir
+mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
+touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
+echo separator
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c: file name is too long (max 99); not dumped
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+this_is_a_very_long_name_for_a_directory_which_causes_problems/
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/longv7.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_108
+#AT_START_109
+at_fn_group_banner 109 'long01.at:28' \
+  "long file names divisible by block size" "        " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "109. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename04.at:30:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+  { set +x
+$as_echo "$at_srcdir/long01.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
-
-decho Renaming
-mv directory dir
+install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
+echo test > endfile
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
+install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
+echo test > endfile
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-)"
-echo rename04.at:30 >"$at_check_line_file"
+tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
+endfile
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/long01.at:36:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
+echo test > endfile
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory dir
+install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
+echo test > endfile
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
+endfile
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_109
+#AT_START_110
+at_fn_group_banner 110 'lustar01.at:21' \
+  "ustar: unsplittable file name" "                  " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "110. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
+  { set +x
+$as_echo "$at_srcdir/lustar01.at:27:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "lustar01.at:27"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix: file name is too long (cannot be split); not dumped
+tar: Exiting with failure status due to previous errors
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/lustar01.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_67
-#AT_START_68
-# 68. rename05.at:24: renamed subdirectories
-at_setup_line='rename05.at:24'
-at_desc="renamed subdirectories"
-$at_quiet $as_echo_n " 68: $at_desc                         "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_110
+#AT_START_111
+at_fn_group_banner 111 'lustar02.at:21' \
+  "ustar: unsplittable path name" "                  " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "68. rename05.at:24: testing ..."
+  $as_echo "111. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/rename05.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/lustar02.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "lustar02.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/: file name is too long (cannot be split); not dumped
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/lustar02.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-)"
-echo rename05.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_111
+#AT_START_112
+at_fn_group_banner 112 'lustar03.at:21' \
+  "ustar: splitting long names" "                    " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "112. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/lustar03.at:29:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
+echo \"Create archive\"
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
+echo \"List archive\"
+tar tf archive)"
+at_fn_check_prepare_notrace 'an embedded newline' "lustar03.at:29"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
+echo "Create archive"
+tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
+echo "List archive"
+tar tf archive)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Create archive
+List archive
+this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/
+this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/lustar03.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir.0
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_112
+#AT_START_113
+at_fn_group_banner 113 'old.at:23' \
+  "old archives" "                                   " 16
+at_xfail=no
+(
+  $as_echo "113. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+unset TAR_OPTIONS
+{ set +x
+$as_echo "$at_srcdir/old.at:27:
+mkdir directory
+tar cfvo archive directory || exit 1
+tar tf archive
+"
+at_fn_check_prepare_notrace 'an embedded newline' "old.at:27"
+( $at_check_trace;
+mkdir directory
+tar cfvo archive directory || exit 1
+tar tf archive
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+directory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/old.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename05.at:27:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_113
+#AT_START_114
+at_fn_group_banner 114 'time01.at:20' \
+  "time: tricky time stamps" "                       " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "114. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
+  { set +x
+$as_echo "$at_srcdir/time01.at:23:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H pax\"
+export TAR_OPTIONS
+rm -rf *
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+export TZ=UTC0
+mkdir dir
 
-mv dir orig
+# Test files with time stamps that are near common sources of error,
+# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
+# Use GNU-style @ notation for very large time stamps, since they
+# typically don't render into years correctly due to int overflow.
+for s in \\
+  @-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \\
+  0000-01-01T00:00:00 0000-01-01T00:00:01 \\
+  0000-01-02T00:00:00 \\
+  1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \\
+  1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \\
+  1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \\
+  1901-12-14T20:45:51 \\
+  1969-12-31T23:59:58 1969-12-31T23:59:59 \\
+  1970-01-01T00:00:00 1970-01-01T00:00:01 \\
+  2038-01-18T03:14:07 \\
+  2038-01-19T03:14:07 2038-01-19T03:14:08 \\
+  2106-02-07T06:28:15 2106-02-07T06:28:16 \\
+  2242-03-16T12:56:31 2242-03-16T12:56:32 \\
+  9999-12-31T23:59:58 9999-12-31T23:59:59 \\
+  @9223372036854775807 @9223372036854775808
+do
+  # Skip a time stamp \$s if it's out of range for this platform,
+  # of if it uses a notation that this platform does not recognize.
+  touch -d \$s dir/f\$s >/dev/null 2>&1 || continue
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+  # Likewise for \$s.1.  If \$s is the most negative time stamp and
+  # time stamps are signed, then \$s.1 is out of range.
+  touch -d \$s.1 dir/f\$s.\$ns >/dev/null 2>&1 || continue
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-)"
-echo rename05.at:27 >"$at_check_line_file"
+  for frac in   01 001 00001 000001 0000001 00000001 000000001 0000000001 \\
+             9 99 999 99999 999999 9999999 99999999 999999999 9999999999
+  do
+    touch -d \$s.\$frac dir/f\$s.\$frac
+  done
+done
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+tar -c -f archive.tar dir
+tar -d -f archive.tar dir
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "time01.at:23"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
+export TZ=UTC0
+mkdir dir
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# Test files with time stamps that are near common sources of error,
+# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
+# Use GNU-style @ notation for very large time stamps, since they
+# typically don't render into years correctly due to int overflow.
+for s in \
+  @-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \
+  0000-01-01T00:00:00 0000-01-01T00:00:01 \
+  0000-01-02T00:00:00 \
+  1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \
+  1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \
+  1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \
+  1901-12-14T20:45:51 \
+  1969-12-31T23:59:58 1969-12-31T23:59:59 \
+  1970-01-01T00:00:00 1970-01-01T00:00:01 \
+  2038-01-18T03:14:07 \
+  2038-01-19T03:14:07 2038-01-19T03:14:08 \
+  2106-02-07T06:28:15 2106-02-07T06:28:16 \
+  2242-03-16T12:56:31 2242-03-16T12:56:32 \
+  9999-12-31T23:59:58 9999-12-31T23:59:59 \
+  @9223372036854775807 @9223372036854775808
+do
+  # Skip a time stamp $s if it's out of range for this platform,
+  # of if it uses a notation that this platform does not recognize.
+  touch -d $s dir/f$s >/dev/null 2>&1 || continue
 
+  # Likewise for $s.1.  If $s is the most negative time stamp and
+  # time stamps are signed, then $s.1 is out of range.
+  touch -d $s.1 dir/f$s.$ns >/dev/null 2>&1 || continue
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+  for frac in   01 001 00001 000001 0000001 00000001 000000001 0000000001 \
+             9 99 999 99999 999999 9999999 99999999 999999999 9999999999
+  do
+    touch -d $s.$frac dir/f$s.$frac
+  done
+done
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+tar -c -f archive.tar dir
+tar -d -f archive.tar dir
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/time01.at:23"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
 
-mv dir orig
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_114
+#AT_START_115
+at_fn_group_banner 115 'multiv01.at:23' \
+  "multivolume dumps from pipes" "                   " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "115. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+# Fixme: should be configurable
+#  TRUSS=truss -o /tmp/tr
+#  TRUSS=strace
+
+
+
+  { set +x
+$as_echo "$at_srcdir/multiv01.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+exec <&-
+genfile --length 7168 --file file1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
+              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
+  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  done
+done >file2
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+if test \$TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
+fi
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
+mkdir extract-dir-pipe
+dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
+      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
+)"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-mv dir orig
+exec <&-
+genfile --length 7168 --file file1
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
+              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
+  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  done
+done >file2
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
+if test $TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
 fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir.0
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27"
 
-$at_failed && at_func_log_failure
+tar -c --multi-volume --tape-length=$TAPE_LENGTH \
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+
+mkdir extract-dir-pipe
+dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
+      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
+
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/rename05.at:27:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/multiv01.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+exec <&-
+genfile --length 7168 --file file1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
-
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
+for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
+              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
+  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  done
+done >file2
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+if test \$TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
+fi
 
-mv dir orig
+tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+mkdir extract-dir-pipe
+dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
+      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
 )"
-echo rename05.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+exec <&-
+genfile --length 7168 --file file1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
-
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
+              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
+  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  done
+done >file2
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
+if test $TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
+fi
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+tar -c --multi-volume --tape-length=$TAPE_LENGTH \
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-mv dir orig
+mkdir extract-dir-pipe
+dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
+      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/multiv01.at:30:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
+exec <&-
+genfile --length 7168 --file file1
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
+              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
+  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
+  done
+done >file2
 
-decho Creating directory structure
-mkdir directory
-mkdir directory/subdir
-genfile --file=directory/file
+if test \$TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
+fi
 
-decho Creating initial archive
-tar -cf archive.1 -g db.1 directory
+tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-decho Renaming
-mv directory/subdir directory/subdir.0
-mv directory dir
+mkdir extract-dir-pipe
+dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
+      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
 
-decho Creating incremental archive
-cp db.1 db.2
-tar -cf archive.2 -g db.2 dir
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
+)"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H pax"
+export TAR_OPTIONS
+rm -rf *
 
-mv dir orig
+exec <&-
+genfile --length 7168 --file file1
 
-decho First restore
-tar -xf archive.1 -g db.1 --warning=no-timestamp
-find directory | sort
+for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
+              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
+  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  for count in 2 3 4 5 6 7 8 ; do
+    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
+  done
+done >file2
 
-decho Second restore
-tar -xf archive.2 -g db.2 --warning=no-timestamp
-find dir | sort
-) ) >"$at_stdout" 2>"$at_stderr"
+if test $TEST_TAR_FORMAT = pax; then
+  TAPE_LENGTH=11
+else
+  TAPE_LENGTH=10
 fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-Second restore
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating directory structure
-Creating initial archive
-Renaming
-Creating incremental archive
-First restore
-directory
-directory/file
-directory/subdir
-Second restore
-dir
-dir/subdir.0
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27"
 
-$at_failed && at_func_log_failure
+tar -c --multi-volume --tape-length=$TAPE_LENGTH \
+  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+
+mkdir extract-dir-pipe
+dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
+PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
+      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
+      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
+
+cmp file1 extract-dir-pipe/file1
+cmp file2 extract-dir-pipe/file2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_68
-#AT_START_69
-# 69. chtype.at:27: changed file types in incrementals
-at_setup_line='chtype.at:27'
-at_desc="changed file types in incrementals"
-$at_quiet $as_echo_n " 69: $at_desc             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_115
+#AT_START_116
+at_fn_group_banner 116 'multiv02.at:28' \
+  "skipping a straddling member" "                   " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "69. chtype.at:27: testing ..."
+  $as_echo "116. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/chtype.at:30:
+  { set +x
+$as_echo "$at_srcdir/multiv02.at:31:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -26001,84 +27894,19 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
-
-# Delete a
-rm -r directory
-
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-)"
-echo chtype.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
-
-# Delete a
-rm -r directory
+exec <&-
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -26087,59 +27915,31 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
-
-# Delete a
-rm -r directory
+exec <&-
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First backup
-Second backup
-Restore archive.1
-Restore archive.2
-directory
-directory/a
-directory/a/a
-directory/a/b
-directory/b
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+en
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/chtype.at:30:
+              { set +x
+$as_echo "$at_srcdir/multiv02.at:31:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -26148,42 +27948,19 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
-
-# Delete a
-rm -r directory
+exec <&-
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
 )"
-echo chtype.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -26192,561 +27969,404 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
+exec <&-
 
-# Delete a
-rm -r directory
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+en
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/multiv02.at:31:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
-
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
-
-sleep 2
-
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
-
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
-
-# Delete a
-rm -r directory
-
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First backup
-Second backup
-Restore archive.1
-Restore archive.2
-directory
-directory/a
-directory/a/a
-directory/a/b
-directory/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
+exec <&-
 
-              { $at_traceoff
-$as_echo "$at_srcdir/chtype.at:30:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --length 10240 --file en
+genfile --length 20000 --file to
+genfile --length 20000 --file tre
+genfile --length 10240 --file fire
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+exec <&-
 
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
+tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
+echo separator
+tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+en
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
 
-sleep 2
 
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
 
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_116
+#AT_START_117
+at_fn_group_banner 117 'multiv03.at:30' \
+  "MV archive & long filenames" "                    " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "117. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-# Delete a
-rm -r directory
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-)"
-echo chtype.at:30 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+
+  { set +x
+$as_echo "$at_srcdir/multiv03.at:33:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
+BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
+cat > ../experr <<EOF
+tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
+tar: '\$BFILE' is possibly continued on this volume: header contains truncated name
+EOF
 
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
+cat > ../expout <<EOF
+\$AFILE
+separator-1
+separator-2
+EOF
 
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
+genfile --length 15360 --file \$AFILE
 
-sleep 2
+exec <&-
 
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
+tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
+tar -tM -f arch.1 -f arch.2 || exit 1
 
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
+echo separator-1
 
-# Delete a
-rm -r directory
+genfile --length 15360 --file \$BFILE
+tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+echo separator-2
+mv \$BFILE bfile
+tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
+cmp \$BFILE bfile
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
+BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
-mkdir directory/a
-genfile --file directory/a/a
+cat > ../experr <<EOF
+tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
+tar: '$BFILE' is possibly continued on this volume: header contains truncated name
+EOF
 
-echo First backup
-tar --create --file=archive.1 --listed-incremental=db.1 directory
+cat > ../expout <<EOF
+$AFILE
+separator-1
+separator-2
+EOF
 
-sleep 2
+genfile --length 15360 --file $AFILE
 
-# Remove directory b and create a file with this name.
-# Previous versions were not able to restore over this file.
-rm -r directory/b
-genfile --file directory/b
-genfile --file directory/a/b
+exec <&-
 
-echo Second backup
-tar --create --file=archive.2 --listed-incremental=db.2 directory
+tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
+tar -tM -f arch.1 -f arch.2 || exit 1
 
-# Delete a
-rm -r directory
+echo separator-1
 
-echo Restore archive.1
-tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
-echo Restore archive.2
-tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
-find directory | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "First backup
-Second backup
-Restore archive.1
-Restore archive.2
-directory
-directory/a
-directory/a/a
-directory/a/b
-directory/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30"
+genfile --length 15360 --file $BFILE
+tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
 
-$at_failed && at_func_log_failure
+echo separator-2
+mv $BFILE bfile
+tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
+cmp $BFILE bfile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+$at_diff experr "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/multiv03.at:33:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
+BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
 
+cat > ../experr <<EOF
+tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
+tar: '\$BFILE' is possibly continued on this volume: header contains truncated name
+EOF
 
+cat > ../expout <<EOF
+\$AFILE
+separator-1
+separator-2
+EOF
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_69
-#AT_START_70
-# 70. ignfail.at:23: ignfail
-at_setup_line='ignfail.at:23'
-at_desc="ignfail"
-$at_quiet $as_echo_n " 70: $at_desc                                        "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "70. ignfail.at:23: testing ..."
-  $at_traceon
+genfile --length 15360 --file \$AFILE
 
+exec <&-
 
+tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
+tar -tM -f arch.1 -f arch.2 || exit 1
 
+echo separator-1
 
+genfile --length 15360 --file \$BFILE
+tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
 
-  { $at_traceoff
-$as_echo "$at_srcdir/ignfail.at:26:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+echo separator-2
+mv \$BFILE bfile
+tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
+cmp \$BFILE bfile
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
+AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
+BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+cat > ../experr <<EOF
+tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
+tar: '$BFILE' is possibly continued on this volume: header contains truncated name
+EOF
 
+cat > ../expout <<EOF
+$AFILE
+separator-1
+separator-2
+EOF
 
-touch file
-mkdir directory
-touch directory/file
+genfile --length 15360 --file $AFILE
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=\$?
-chmod 600 file
-test \$status = 2 || exit 1
+exec <&-
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=\$?
-chmod 600 file
-test \$status = 0 || exit 1
+tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
+tar -tM -f arch.1 -f arch.2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=\$?
-chmod 700 directory
-test \$status = 2 || exit 1
+echo separator-1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=\$?
-chmod 700 directory
-test \$status = 0
-)"
-echo ignfail.at:26 >"$at_check_line_file"
+genfile --length 15360 --file $BFILE
+tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+echo separator-2
+mv $BFILE bfile
+tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
+cmp $BFILE bfile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+$at_diff experr "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-# The test is meaningless for super-user.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
 
 
-touch file
-mkdir directory
-touch directory/file
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_117
+#AT_START_118
+at_fn_group_banner 118 'multiv04.at:36' \
+  "split directory members in a MV archive" "        " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "118. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/multiv04.at:39:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
-
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
 
-touch file
 mkdir directory
-touch directory/file
+awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+exec <&-
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
+sleep 2
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+tar --listed-incremental=list -c -f archive.a directory
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: file: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: file: Warning: Cannot open: Permission denied
------
-tar: directory: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: directory: Warning: Cannot open: Permission denied
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+sleep 2
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
 
-              { $at_traceoff
-$as_echo "$at_srcdir/ignfail.at:26:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+echo separator
+
+tar -MRt -f arc.1 -f arc.2)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+mkdir directory
+awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
 
+exec <&-
 
-touch file
-mkdir directory
-touch directory/file
+sleep 2
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=\$?
-chmod 600 file
-test \$status = 2 || exit 1
+tar --listed-incremental=list -c -f archive.a directory
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=\$?
-chmod 600 file
-test \$status = 0 || exit 1
+sleep 2
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=\$?
-chmod 700 directory
-test \$status = 2 || exit 1
+tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=\$?
-chmod 700 directory
-test \$status = 0
-)"
-echo ignfail.at:26 >"$at_check_line_file"
+echo separator
+
+tar -MRt -f arc.1 -f arc.2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+separator
+block 0: directory/
+block 35: ** Block of NULs **
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/multiv04.at:39:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+mkdir directory
+awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
 
+exec <&-
 
-touch file
-mkdir directory
-touch directory/file
+sleep 2
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+tar --listed-incremental=list -c -f archive.a directory
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
+sleep 2
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+echo separator
+
+tar -MRt -f arc.1 -f arc.2)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -26755,433 +28375,445 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+mkdir directory
+awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
 
+exec <&-
 
-touch file
-mkdir directory
-touch directory/file
+sleep 2
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+tar --listed-incremental=list -c -f archive.a directory
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
+sleep 2
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: file: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: file: Warning: Cannot open: Permission denied
------
-tar: directory: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: directory: Warning: Cannot open: Permission denied
+echo separator
+
+tar -MRt -f arc.1 -f arc.2)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory/
+separator
+block 0: directory/
+block 35: ** Block of NULs **
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/ignfail.at:26:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-# The test is meaningless for super-user.
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_118
+#AT_START_119
+at_fn_group_banner 119 'multiv05.at:26' \
+  "Restoring after an out of sync volume" "          " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "119. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
 
 
-touch file
-mkdir directory
-touch directory/file
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=\$?
-chmod 600 file
-test \$status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=\$?
-chmod 600 file
-test \$status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=\$?
-chmod 700 directory
-test \$status = 2 || exit 1
+  { set +x
+$as_echo "$at_srcdir/multiv05.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=\$?
-chmod 700 directory
-test \$status = 0
-)"
-echo ignfail.at:26 >"$at_check_line_file"
+exec <&-
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+genfile --length 250k --file jeden
+genfile --length 250k --file dwa
+genfile --length 250k --file trzy
+genfile --length 250k --file cztery
+genfile --length 250k --file piec
+genfile --length 250k --file szesc
+
+
+echo Creating archive
+tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
+echo separator
+mkdir bak
+mv jeden dwa trzy cztery piec szesc bak
+tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
+echo Diffing jeden
+   cmp bak/jeden jeden || exit 1
+echo Diffing dwa
+   cmp bak/dwa dwa || exit 1
+echo Diffing trzy
+   cmp bak/trzy trzy || exit 1
+echo Diffing cztery
+   cmp bak/cztery cztery || exit 1
+echo Diffing piec
+   cmp bak/piec piec || exit 1
+echo Diffing szesc
+   cmp bak/szesc szesc || exit 1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv05.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
+exec <&-
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+genfile --length 250k --file jeden
+genfile --length 250k --file dwa
+genfile --length 250k --file trzy
+genfile --length 250k --file cztery
+genfile --length 250k --file piec
+genfile --length 250k --file szesc
 
 
-touch file
-mkdir directory
-touch directory/file
+echo Creating archive
+tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
+echo separator
+mkdir bak
+mv jeden dwa trzy cztery piec szesc bak
+tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
+echo Diffing jeden
+   cmp bak/jeden jeden || exit 1
+echo Diffing dwa
+   cmp bak/dwa dwa || exit 1
+echo Diffing trzy
+   cmp bak/trzy trzy || exit 1
+echo Diffing cztery
+   cmp bak/cztery cztery || exit 1
+echo Diffing piec
+   cmp bak/piec piec || exit 1
+echo Diffing szesc
+   cmp bak/szesc szesc || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: 'trzy' is not continued on this volume
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating archive
+separator
+jeden
+dwa
+trzy
+cztery
+piec
+szesc
+Diffing jeden
+Diffing dwa
+Diffing trzy
+Diffing cztery
+Diffing piec
+Diffing szesc
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv05.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-# The test is meaningless for super-user.
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_119
+#AT_START_120
+at_fn_group_banner 120 'multiv06.at:27' \
+  "Multivolumes with L=record_size" "                " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "120. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
 
 
-touch file
-mkdir directory
-touch directory/file
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
+  { set +x
+$as_echo "$at_srcdir/multiv06.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+exec <&-
+decho Creating file
+genfile --length 20139 --file file
+decho Creating archive
+tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
+decho Testing archive
+tar -t -M -farc.1 -farc.2 -farc.3)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv06.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: file: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: file: Warning: Cannot open: Permission denied
------
-tar: directory: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: directory: Warning: Cannot open: Permission denied
+exec <&-
+decho Creating file
+genfile --length 20139 --file file
+decho Creating archive
+tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
+decho Testing archive
+tar -t -M -farc.1 -farc.2 -farc.3)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating file
+Creating archive
+Testing archive
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
-
-$at_failed && at_func_log_failure
+echo >>"$at_stdout"; $as_echo "Creating file
+Creating archive
+Testing archive
+file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/ignfail.at:26:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+              { set +x
+$as_echo "$at_srcdir/multiv06.at:30:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
+exec <&-
+decho Creating file
+genfile --length 20139 --file file
+decho Creating archive
+tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
+decho Testing archive
+tar -t -M -farc.1 -farc.2 -farc.3)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv06.at:30"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H pax"
+export TAR_OPTIONS
+rm -rf *
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+exec <&-
+decho Creating file
+genfile --length 20139 --file file
+decho Creating archive
+tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
+decho Testing archive
+tar -t -M -farc.1 -farc.2 -farc.3)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating file
+Creating archive
+Testing archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating file
+Creating archive
+Testing archive
+file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
-touch file
-mkdir directory
-touch directory/file
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=\$?
-chmod 600 file
-test \$status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=\$?
-chmod 600 file
-test \$status = 0 || exit 1
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_120
+#AT_START_121
+at_fn_group_banner 121 'multiv07.at:28' \
+  "volumes split at an extended header" "            " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "121. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=\$?
-chmod 700 directory
-test \$status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=\$?
-chmod 700 directory
-test \$status = 0
-)"
-echo ignfail.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+{ set +x
+$as_echo "$at_srcdir/multiv07.at:31:
 
-# The test is meaningless for super-user.
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-touch file
-mkdir directory
-touch directory/file
+exec <&-
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+cd \$TEST_DATA_DIR
+tar -t -M -fxsplit-1.tar -fxsplit-2.tar
+"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv07.at:31"
+( $at_check_trace;
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-# The test is meaningless for super-user.
+exec <&-
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+cd $TEST_DATA_DIR
+tar -t -M -fxsplit-1.tar -fxsplit-2.tar
 
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Archive volumes split at an extended header Volume 1
+foo
+bar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv07.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-touch file
-mkdir directory
-touch directory/file
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_121
+#AT_START_122
+at_fn_group_banner 122 'multiv08.at:25' \
+  "multivolume header creation" "                    " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "122. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: file: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: file: Warning: Cannot open: Permission denied
------
-tar: directory: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: directory: Warning: Cannot open: Permission denied
+
+
+  { set +x
+$as_echo "$at_srcdir/multiv08.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 9472 --file a
+genfile --length 9984 --file b
+decho Creating
+tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
+decho Testing
+tar -tMR -f A.tar -f B.tar -f C.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv08.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 9472 --file a
+genfile --length 9984 --file b
+decho Creating
+tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
+decho Testing
+tar -tMR -f A.tar -f B.tar -f C.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Creating
+Testing
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating
+Testing
+block 0: a
+block 21: b
+block 43: ** Block of NULs **
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/multiv08.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/ignfail.at:26:
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_122
+#AT_START_123
+at_fn_group_banner 123 'owner.at:21' \
+  "--owner and --group" "                            " 18
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "123. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/owner.at:24:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -27190,53 +28822,21 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
-
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
-
-
-touch file
-mkdir directory
-touch directory/file
-
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=\$?
-chmod 600 file
-test \$status = 2 || exit 1
+export TZ=UTC0
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=\$?
-chmod 600 file
-test \$status = 0 || exit 1
+genfile --file a
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=\$?
-chmod 700 directory
-test \$status = 2 || exit 1
+tar --owner=\"Joe the Plumber:1234\" \\
+    --group=\"Plumber's Union:5678\" \\
+    --mtime='@0' \\
+    --mode='u=rw,go=r' \\
+    -cf arc a
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=\$?
-chmod 700 directory
-test \$status = 0
+tar -tvf arc
+tar --numeric-owner -tvf arc
 )"
-echo ignfail.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "owner.at:24"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -27245,236 +28845,352 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
+export TZ=UTC0
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+genfile --file a
 
+tar --owner="Joe the Plumber:1234" \
+    --group="Plumber's Union:5678" \
+    --mtime='@0' \
+    --mode='u=rw,go=r' \
+    -cf arc a
 
-touch file
-mkdir directory
-touch directory/file
+tar -tvf arc
+tar --numeric-owner -tvf arc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-rw-r--r-- Joe the Plumber/Plumber's Union 0 1970-01-01 00:00 a
+-rw-r--r-- 1234/5678         0 1970-01-01 00:00 a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/owner.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_123
+#AT_START_124
+at_fn_group_banner 124 'sparse01.at:21' \
+  "sparse files" "                                   " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "124. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/sparse01.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
+
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
+
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/sparse01.at:24:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# The test is meaningless for super-user.
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-touch file
+tar tfv archive
+echo separator
 mkdir directory
-touch directory/file
-
-echo 1>&2 -----
-chmod 000 file
-tar cf archive file
-status=$?
-chmod 600 file
-test $status = 2 || exit 1
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo 1>&2 -----
-chmod 000 file
-tar cf archive --ignore-failed-read file || exit 1
-status=$?
-chmod 600 file
-test $status = 0 || exit 1
+              { set +x
+$as_echo "$at_srcdir/sparse01.at:24:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive directory
-status=$?
-chmod 700 directory
-test $status = 2 || exit 1
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-echo 1>&2 -----
-chmod 000 directory
-tar cf archive --ignore-failed-read directory || exit 1
-status=$?
-chmod 700 directory
-test $status = 0
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: file: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: file: Warning: Cannot open: Permission denied
------
-tar: directory: Cannot open: Permission denied
-tar: Exiting with failure status due to previous errors
------
-tar: directory: Warning: Cannot open: Permission denied
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 1000 -f begin
+genfile --length 1000 -f end
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-$at_failed && at_func_log_failure
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive --warning=no-timestamp
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+
+cat >stdout.re <<'_ATEOF'
+separator
+-rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
+-rw-r--r-- ^ ^ *  *10344448 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
+-rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
+separator
+sparsefile 10344448
+_ATEOF
+
+awk '{print NR " " $0}' stdout > $$.1
+awk '{print NR " " $0}' stdout.re | join - $$.1 |
+while read NUM RE LINE
+do
+  echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
+done
+
+
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_70
-#AT_START_71
-# 71. link01.at:33: link count gt 2
-at_setup_line='link01.at:33'
-at_desc="link count gt 2"
-$at_quiet $as_echo_n " 71: $at_desc                                "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_124
+#AT_START_125
+at_fn_group_banner 125 'sparse02.at:21' \
+  "extracting sparse file over a pipe" "             " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "71. link01.at:33: testing ..."
+  $as_echo "125. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
+# Tar 1.14 - 1.15.1 was unable to extract sparse files to a pipe.
+# References: <16896.21739.460782.124775@jik.kamens.brookline.ma.us>
+# http://lists.gnu.org/archive/html/bug-tar/2005-02/msg00003.html
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/link01.at:36:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+
+  { set +x
+$as_echo "$at_srcdir/sparse02.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-ls directory/test1
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
 )"
-echo link01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-rm -r directory
-tar xf archive --warning=no-timestamp
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/sparse02.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-tar cf archive directory/test1/test.txt directory/test1/test.txt
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-rm -r directory
-tar xf archive --warning=no-timestamp
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "test.txt
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link01.at:36:
+              { set +x
+$as_echo "$at_srcdir/sparse02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -27483,50 +29199,15 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-ls directory/test1
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
 )"
-echo link01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
-
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -27535,122 +29216,52 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
+genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
+tar -c -f archive --sparse sparsefile || exit 1
+echo separator
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "test.txt
+tar xfO archive | cat - > sparsecopy || exit 1
+cmp sparsefile sparsecopy
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link01.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
-
-ls directory/test1
-)"
-echo link01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-rm -r directory
-tar xf archive --warning=no-timestamp
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_125
+#AT_START_126
+at_fn_group_banner 126 'sparse03.at:21' \
+  "storing sparse files > 8G" "                      " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "126. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-rm -r directory
-tar xf archive --warning=no-timestamp
+# Tar 1.15.1 incorrectly computed sparse member size if the extended
+# PAX header contained size keyword.
+# References: <87vf46nb36.fsf@penguin.cs.ucla.edu>
+# http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "test.txt
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link01.at:36"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link01.at:36:
+  { set +x
+$as_echo "$at_srcdir/sparse03.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -27659,25 +29270,21 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
+genfile --length 1000 --file begin
+genfile --length 1000 --file end
+genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-ls directory/test1
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
 )"
-echo link01.at:36 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "sparse03.at:29"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -27686,240 +29293,223 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
+genfile --length 1000 --file begin
+genfile --length 1000 --file end
+genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
+tar -c -f archive --sparse begin sparsefile end || exit 1
+echo separator
 
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
+tar tfv archive
+echo separator
+mkdir directory
+tar Cxf directory archive
+genfile --stat=name,size sparsefile
+cmp sparsefile directory/sparsefile
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse03.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-rm -r directory
-tar xf archive --warning=no-timestamp
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
 
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
+cat >stdout.re <<'_ATEOF'
+separator
+-rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
+-rw-r--r-- ^ ^ *  *8589935104 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
+-rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
+separator
+sparsefile 8589935104
+_ATEOF
 
-tar cf archive directory/test1/test.txt directory/test1/test.txt
+awk '{print NR " " $0}' stdout > $$.1
+awk '{print NR " " $0}' stdout.re | join - $$.1 |
+while read NUM RE LINE
+do
+  echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
+done
 
-rm -r directory
-tar xf archive --warning=no-timestamp
 
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "test.txt
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link01.at:36"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_126
+#AT_START_127
+at_fn_group_banner 127 'sparse04.at:21' \
+  "storing long sparse file names" "                 " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "127. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link01.at:36:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
+# Description: Tar versions from 1.15.92 to 1.25 would incorrectly
+# store sparse file names longer than 100 characters in pax mode.
+# Namely, the 'path' keyword of the produced PAX header would contain the
+# crafted name of the header itself, instead of that of the file.
+# Reported by: Kamil Dudka <kdudka@redhat.com>
+# References: <201011250026.44908.kdudka@redhat.com>,
+#             http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00099.html
 
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
 
-tar cf archive directory/test1/test.txt directory/test1/test.txt
 
-rm -r directory
-tar xf archive --warning=no-timestamp
 
-ls directory/test1
-)"
-echo link01.at:36 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/sparse04.at:35:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
-
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
+tar -f - -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar tf -
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse04.at:35"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-mkdir directory/test1
-mkdir directory/test2
-
-echo TEST > directory/test1/test.txt
-ln directory/test1/test.txt directory/test2/test.txt || exit 77
-
-tar cf archive directory/test1/test.txt directory/test1/test.txt
-
-rm -r directory
-tar xf archive --warning=no-timestamp
-
-ls directory/test1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "test.txt
+genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
+tar -f - -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar tf -
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/sparse04.at:35"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_71
-#AT_START_72
-# 72. link02.at:32: preserve hard links with --remove-files
-at_setup_line='link02.at:32'
-at_desc="preserve hard links with --remove-files"
-$at_quiet $as_echo_n " 72: $at_desc        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_127
+#AT_START_128
+at_fn_group_banner 128 'sparsemv.at:21' \
+  "sparse files in MV archives" "                    " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "72. link02.at:32: testing ..."
+  $as_echo "128. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
+# Check if sparse files are correctly split between GNU multi-volume
+# archives.
+# There are two cases: the file can be split within an empty (null) block,
+# or within a data block. Since null blocks are not archived, the first
+# case means the file is split between two consecutive data blocks.
+#
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/link02.at:35:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+
+  { set +x
+$as_echo "$at_srcdir/sparsemv.at:31:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-)"
-echo link02.at:35 >"$at_check_line_file"
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo \"Pass 1: Split between data blocks\"
+echo \"Create archive\"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo \"Test archive\"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo \"Compare archive\"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+echo \"Pass 2: Split within a data block\"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo \"Create archive\"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo \"Test archive\"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo \"Compare archive\"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo "Pass 1: Split between data blocks"
+echo "Create archive"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo "Test archive"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo "Compare archive"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file1
-file1
+echo "Pass 2: Split within a data block"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo "Create archive"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo "Test archive"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo "Compare archive"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
+Create archive
+Test archive
+sparsefile
+Compare archive
+Pass 2: Split within a data block
+Create archive
+Test archive
+sparsefile
+Compare archive
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link02.at:35"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link02.at:35:
+              { set +x
+$as_echo "$at_srcdir/sparsemv.at:31:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -27928,18 +29518,27 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-)"
-echo link02.at:35 >"$at_check_line_file"
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo \"Pass 1: Split between data blocks\"
+echo \"Create archive\"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo \"Test archive\"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo \"Compare archive\"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+echo \"Pass 2: Split within a data block\"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo \"Create archive\"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo \"Test archive\"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo \"Compare archive\"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -27948,270 +29547,260 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo "Pass 1: Split between data blocks"
+echo "Create archive"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo "Test archive"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo "Compare archive"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file1
-file1
+echo "Pass 2: Split within a data block"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo "Create archive"
+tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
+echo "Test archive"
+tar --record-size=512 -t -M -f arc.1 -f arc.2
+echo "Compare archive"
+tar --record-size=512 -d -M -f arc.1 -f arc.2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
+Create archive
+Test archive
+sparsefile
+Compare archive
+Pass 2: Split within a data block
+Create archive
+Test archive
+sparsefile
+Compare archive
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link02.at:35"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link02.at:35:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-)"
-echo link02.at:35 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_128
+#AT_START_129
+at_fn_group_banner 129 'spmvp00.at:21' \
+  "sparse files in PAX MV archives, v.0.0" "         " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "129. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file1
-file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link02.at:35"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link02.at:35:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-)"
-echo link02.at:35 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+  { set +x
+$as_echo "$at_srcdir/spmvp00.at:24:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
+echo \"Pass 1: Split between data blocks\"
+echo \"Create archive\"
+tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+
+echo \"Pass 2: Split within a data block\"
+genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
+echo \"Create archive\"
+tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "spmvp00.at:24"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file1
-file1
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
+echo "Pass 1: Split between data blocks"
+echo "Create archive"
+tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+
+echo "Pass 2: Split within a data block"
+genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
+echo "Create archive"
+tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
+Create archive
+Test archive
+sparsefile
+Compare archive
+Pass 2: Split within a data block
+Create archive
+Test archive
+sparsefile
+Compare archive
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link02.at:35"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/spmvp00.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link02.at:35:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-)"
-echo link02.at:35 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_129
+#AT_START_130
+at_fn_group_banner 130 'spmvp01.at:21' \
+  "sparse files in PAX MV archives, v.0.1" "         " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "130. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/spmvp01.at:24:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H pax\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo \"Pass 1: Split between data blocks\"
+echo \"Create archive\"
+tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+
+echo \"Pass 2: Split within a data block\"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo \"Create archive\"
+tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "spmvp01.at:24"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-tar -c -f archive --remove-files file1 file2 file3 file4
-tar tfv archive | sed -n 's/.*file[2-4] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file1
-file1
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
+echo "Pass 1: Split between data blocks"
+echo "Create archive"
+tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+
+echo "Pass 2: Split within a data block"
+genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
+echo "Create archive"
+tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
+Create archive
+Test archive
+sparsefile
+Compare archive
+Pass 2: Split within a data block
+Create archive
+Test archive
+sparsefile
+Compare archive
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link02.at:35"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/spmvp01.at:24"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_72
-#AT_START_73
-# 73. link03.at:24: working -l with --remove-files
-at_setup_line='link03.at:24'
-at_desc="working -l with --remove-files"
-$at_quiet $as_echo_n " 73: $at_desc                 "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_130
+#AT_START_131
+at_fn_group_banner 131 'spmvp10.at:21' \
+  "sparse files in PAX MV archives, v.1.0" "         " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "73. link03.at:24: testing ..."
+  $as_echo "131. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28219,180 +29808,191 @@ echo "#                             -*- compilation -*-" >> "$at_group_log"
 
 
 
+  { set +x
+$as_echo "$at_srcdir/spmvp10.at:24:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H pax\"
+export TAR_OPTIONS
+rm -rf *
 
-  { $at_traceoff
-$as_echo "$at_srcdir/link03.at:34:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
+echo \"Pass 1: Split between data blocks\"
+echo \"Create archive\"
+tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+
+echo \"Pass 2: Split within a data block\"
+genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
+echo \"Create archive\"
+tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo \"Test archive\"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo \"Compare archive\"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "spmvp10.at:24"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS="-H pax"
 export TAR_OPTIONS
 rm -rf *
 
+exec <&-
+genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
+echo "Pass 1: Split between data blocks"
+echo "Create archive"
+tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+echo "Pass 2: Split within a data block"
+genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
+echo "Create archive"
+tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
+echo "Test archive"
+tar -t -M -f arc.1 -f arc.2 -f arc.3
+echo "Compare archive"
+tar -d -M -f arc.1 -f arc.2 -f arc.3
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
+Create archive
+Test archive
+sparsefile
+Compare archive
+Pass 2: Split within a data block
+Create archive
+Test archive
+sparsefile
+Compare archive
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/spmvp10.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-)"
-echo link03.at:34 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_131
+#AT_START_132
+at_fn_group_banner 132 'update.at:28' \
+  "update unchanged directories" "                   " 20
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "132. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
 
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  { set +x
+$as_echo "$at_srcdir/update.at:31:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'.
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "archive.1
-archive.2
-testing archive.2
-file1
-file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link03.at:34"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link03.at:34:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-)"
-echo link03.at:34 >"$at_check_line_file"
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+directory/
+directory/file1
+directory/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/update.at:31:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -28402,44 +30002,35 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'.
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "archive.1
-archive.2
-testing archive.2
-file1
-file1
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+directory/
+directory/file1
+directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link03.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link03.at:34:
+              { set +x
+$as_echo "$at_srcdir/update.at:31:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -28449,59 +30040,20 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
 )"
-echo link03.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -28511,44 +30063,35 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'.
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "archive.1
-archive.2
-testing archive.2
-file1
-file1
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+directory/
+directory/file1
+directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link03.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link03.at:34:
+              { set +x
+$as_echo "$at_srcdir/update.at:31:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -28558,59 +30101,20 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-)"
-echo link03.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
-
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -28620,44 +30124,35 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'.
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "archive.1
-archive.2
-testing archive.2
-file1
-file1
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+directory/
+directory/file1
+directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link03.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link03.at:34:
+              { set +x
+$as_echo "$at_srcdir/update.at:31:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -28667,59 +30162,20 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
 )"
-echo link03.at:34 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
-
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -28729,68 +30185,56 @@ export TAR_OPTIONS
 rm -rf *
 
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
-
-echo archive.1
-tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-genfile -l 64 -f file1
-ln file1 file2
-ln file2 file3
-ln file3 file4
+mkdir directory
+genfile --length 10240 --pattern zeros --file directory/file1
+genfile --length 10240 --pattern default --file directory/file2
 
-echo archive.2
-tar -c -f archive.2 -l --remove-files file1 file2 file3
-echo testing archive.2
-tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'.
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "archive.1
-archive.2
-testing archive.2
-file1
-file1
+tar cf archive directory || exit 1
+echo separator
+tar uf archive directory || exit 1
+echo separator
+tar tf archive | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+directory/
+directory/file1
+directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link03.at:34"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_73
-#AT_START_74
-# 74. link04.at:29: link count is 1 but multiple occurrences
-at_setup_line='link04.at:29'
-at_desc="link count is 1 but multiple occurrences"
-$at_quiet $as_echo_n " 74: $at_desc       "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_132
+#AT_START_133
+at_fn_group_banner 133 'update01.at:29' \
+  "update directories" "                             " 20
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "74. link04.at:29: testing ..."
+  $as_echo "133. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/link04.at:32:
+  { set +x
+$as_echo "$at_srcdir/update01.at:32:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -28799,58 +30243,25 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
-
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
-
-echo ==
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-)"
-echo link04.at:32 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+mkdir a
+genfile --file a/b
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
+tar cf arc a
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+echo \"separator\"
 
-echo ==
+sleep 2
+genfile --file a/c
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -28859,107 +30270,68 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
-
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
-
-echo ==
-
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/
-dir/file
-dir/file link to dir/file
-dir/symlink -> file
-dir/symlink link to dir/symlink
-==
-dir/
-dir/FOO
-dir/FOO link to dir/FOO
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link04.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link04.at:32:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
+mkdir a
+genfile --file a/b
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
+tar cf arc a
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+echo "separator"
 
-echo ==
+sleep 2
+genfile --file a/c
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-)"
-echo link04.at:32 >"$at_check_line_file"
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/c
+separator
+a/
+a/b
+a/c
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/update01.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar cf arc a
+
+echo \"separator\"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -28968,47 +30340,41 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/
-dir/file
-dir/file link to dir/file
-dir/symlink -> file
-dir/symlink link to dir/symlink
-==
-dir/
-dir/FOO
-dir/FOO link to dir/FOO
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/c
+separator
+a/
+a/b
+a/c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link04.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link04.at:32:
+              { set +x
+$as_echo "$at_srcdir/update01.at:32:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -29017,29 +30383,25 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-)"
-echo link04.at:32 >"$at_check_line_file"
+tar cf arc a
+
+echo \"separator\"
+
+sleep 2
+genfile --file a/c
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -29048,420 +30410,482 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/c
+separator
+a/
+a/b
+a/c
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/update01.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
+
+tar cf arc a
+
+echo \"separator\"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir a
+genfile --file a/b
+
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/c
+separator
+a/
+a/b
+a/c
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/update01.at:32:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir a
+genfile --file a/b
+
+tar cf arc a
+
+echo \"separator\"
+
+sleep 2
+genfile --file a/c
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir a
+genfile --file a/b
+
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+genfile --file a/c
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/
-dir/file
-dir/file link to dir/file
-dir/symlink -> file
-dir/symlink link to dir/symlink
-==
-dir/
-dir/FOO
-dir/FOO link to dir/FOO
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/c
+separator
+a/
+a/b
+a/c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link04.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link04.at:32:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
 
-echo ==
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_133
+#AT_START_134
+at_fn_group_banner 134 'update02.at:26' \
+  "update changed files" "                           " 20
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "134. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-)"
-echo link04.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+
+
+  { set +x
+$as_echo "$at_srcdir/update02.at:29:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+tar cf arc a
+
+echo \"separator\"
+
+sleep 2
+touch a/b
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/
-dir/file
-dir/file link to dir/file
-dir/symlink -> file
-dir/symlink link to dir/symlink
-==
-dir/
-dir/FOO
-dir/FOO link to dir/FOO
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+touch a/b
+
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/b
+separator
+a/
+a/b
+a/b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link04.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/link04.at:32:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/update02.at:29:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-echo ==
+mkdir a
+genfile --file a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-)"
-echo link04.at:32 >"$at_check_line_file"
+tar cf arc a
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+echo \"separator\"
+
+sleep 2
+touch a/b
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
-
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
 
-echo ==
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+mkdir a
+genfile --file a/b
 
-mkdir dir
-echo TEST > dir/file
-ln -s file dir/symlink || exit 77
+tar cf arc a
 
-tar cf archive dir dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-' | sort
+echo "separator"
 
-echo ==
+sleep 2
+touch a/b
 
-tar chf archive dir
-tar tvf archive | sed '
-  s,.*[0-9] dir/,dir/,
-  s,file,FOO,g
-  s,symlink,FOO,g
-' | sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "dir/
-dir/
-dir/file
-dir/file link to dir/file
-dir/symlink -> file
-dir/symlink link to dir/symlink
-==
-dir/
-dir/FOO
-dir/FOO link to dir/FOO
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/b
+separator
+a/
+a/b
+a/b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/link04.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/update02.at:29:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
 
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_74
-#AT_START_75
-# 75. longv7.at:24: long names in V7 archives
-at_setup_line='longv7.at:24'
-at_desc="long names in V7 archives"
-$at_quiet $as_echo_n " 75: $at_desc                      "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "75. longv7.at:24: testing ..."
-  $at_traceon
-
-
-
-
+mkdir a
+genfile --file a/b
 
+tar cf arc a
 
+echo \"separator\"
 
+sleep 2
+touch a/b
 
-  { $at_traceoff
-$as_echo "$at_srcdir/longv7.at:30:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
-touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
 
-tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
-echo separator
-tar tf archive
-)"
-echo longv7.at:30 >"$at_check_line_file"
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+mkdir a
+genfile --file a/b
 
-mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
-touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
+tar cf arc a
 
-tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
-echo separator
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+echo "separator"
 
-mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
-touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
+sleep 2
+touch a/b
 
-tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
-echo separator
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c: file name is too long (max 99); not dumped
-tar: Exiting with failure status due to previous errors
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
-this_is_a_very_long_name_for_a_directory_which_causes_problems/
+a/b
+separator
+a/
+a/b
+a/b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/longv7.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/update02.at:29:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
 
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
+mkdir a
+genfile --file a/b
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_75
-#AT_START_76
-# 76. long01.at:28: long file names divisible by block size
-at_setup_line='long01.at:28'
-at_desc="long file names divisible by block size"
-$at_quiet $as_echo_n " 76: $at_desc        "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "76. long01.at:28: testing ..."
-  $at_traceon
+tar cf arc a
+
+echo \"separator\"
 
+sleep 2
+touch a/b
+
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
 
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
+mkdir a
+genfile --file a/b
 
+tar cf arc a
 
+echo "separator"
 
+sleep 2
+touch a/b
 
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/b
+separator
+a/
+a/b
+a/b
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  { $at_traceoff
-$as_echo "$at_srcdir/long01.at:36:
+              { set +x
+$as_echo "$at_srcdir/update02.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -29471,33 +30895,24 @@ export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive)"
-echo long01.at:36 >"$at_check_line_file"
+mkdir a
+genfile --file a/b
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+tar cf arc a
 
+echo \"separator\"
 
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
+sleep 2
+touch a/b
 
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar ufv arc a
+echo \"separator\"
+tar tf arc | sort || exit 1
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -29507,62 +30922,112 @@ export TAR_OPTIONS
 rm -rf *
 
 
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
-endfile
+mkdir a
+genfile --file a/b
+
+tar cf arc a
+
+echo "separator"
+
+sleep 2
+touch a/b
+
+tar ufv arc a
+echo "separator"
+tar tf arc | sort || exit 1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+a/b
+separator
+a/
+a/b
+a/b
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/long01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/long01.at:36:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_134
+#AT_START_135
+at_fn_group_banner 135 'verify.at:25' \
+  "verify" "                                         " 21
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "135. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/verify.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+touch foo
+tar -cvf archive.tar --verify foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
-
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive)"
-echo long01.at:36 >"$at_check_line_file"
+touch foo
+tar -cvf archive.tar --verify foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+Verify foo
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/verify.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
-rm -rf *
-
-
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
+rm -rf *
 
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+touch foo
+tar -cvf archive.tar --verify foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -29571,53 +31036,23 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
-echo test > endfile
-
-tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
-endfile
+touch foo
+tar -cvf archive.tar --verify foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+Verify foo
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/long01.at:36"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_76
-#AT_START_77
-# 77. lustar01.at:21: ustar: unsplittable file name
-at_setup_line='lustar01.at:21'
-at_desc="ustar: unsplittable file name"
-$at_quiet $as_echo_n " 77: $at_desc                  "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "77. lustar01.at:21: testing ..."
-  $at_traceon
-
-
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/lustar01.at:27:
+              { set +x
+$as_echo "$at_srcdir/verify.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -29626,28 +31061,11 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
+touch foo
+tar -cvf archive.tar --verify foo
 )"
-echo lustar01.at:27 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
-
-genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -29656,367 +31074,352 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix: file name is too long (cannot be split); not dumped
-tar: Exiting with failure status due to previous errors
+touch foo
+tar -cvf archive.tar --verify foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+Verify foo
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/lustar01.at:27"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_77
-#AT_START_78
-# 78. lustar02.at:21: ustar: unsplittable path name
-at_setup_line='lustar02.at:21'
-at_desc="ustar: unsplittable path name"
-$at_quiet $as_echo_n " 78: $at_desc                  "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "78. lustar02.at:21: testing ..."
-  $at_traceon
-
-
-
-
-
-
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/lustar02.at:32:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/verify.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
+touch foo
+tar -cvf archive.tar --verify foo
 )"
-echo lustar02.at:32 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+touch foo
+tar -cvf archive.tar --verify foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+Verify foo
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+              { set +x
+$as_echo "$at_srcdir/verify.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+touch foo
+tar -cvf archive.tar --verify foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/: file name is too long (cannot be split); not dumped
-tar: Exiting with failure status due to previous errors
+touch foo
+tar -cvf archive.tar --verify foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+Verify foo
 " | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/lustar02.at:32"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_78
-#AT_START_79
-# 79. lustar03.at:21: ustar: splitting long names
-at_setup_line='lustar03.at:21'
-at_desc="ustar: splitting long names"
-$at_quiet $as_echo_n " 79: $at_desc                    "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_135
+#AT_START_136
+at_fn_group_banner 136 'volume.at:23' \
+  "volume" "                                         " 22
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "79. lustar03.at:21: testing ..."
+  $as_echo "136. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
+  { set +x
+$as_echo "$at_srcdir/volume.at:26:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
+tar -cf archive -V label -T /dev/null || exit 1
 
+tar xfV archive label || exit 1
+tar xfV archive 'la?el' || exit 1
+tar xfV archive 'l*l' || exit 1
 
-
-  { $at_traceoff
-$as_echo "$at_srcdir/lustar03.at:29:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+echo 1>&2 -----
+tar xfV archive lab
+test \$? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive bel
+test \$? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive babel
+test \$? = 2
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+tar -cf archive -V label -T /dev/null || exit 1
 
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
-echo \"Create archive\"
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
-echo \"List archive\"
-tar tf archive)"
-echo lustar03.at:29 >"$at_check_line_file"
+tar xfV archive label || exit 1
+tar xfV archive 'la?el' || exit 1
+tar xfV archive 'l*l' || exit 1
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+echo 1>&2 -----
+tar xfV archive lab
+test $? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive bel
+test $? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive babel
+test $? = 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: Volume 'label' does not match 'lab'
+tar: Error is not recoverable: exiting now
+-----
+tar: Volume 'label' does not match 'bel'
+tar: Error is not recoverable: exiting now
+-----
+tar: Volume 'label' does not match 'babel'
+tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/volume.at:26:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+tar -cf archive -V label -T /dev/null || exit 1
+
+tar xfV archive label || exit 1
+tar xfV archive 'la?el' || exit 1
+tar xfV archive 'l*l' || exit 1
 
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
-echo "Create archive"
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
-echo "List archive"
-tar tf archive) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+echo 1>&2 -----
+tar xfV archive lab
+test \$? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive bel
+test \$? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive babel
+test \$? = 2
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+tar -cf archive -V label -T /dev/null || exit 1
+
+tar xfV archive label || exit 1
+tar xfV archive 'la?el' || exit 1
+tar xfV archive 'l*l' || exit 1
 
-install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
-echo "Create archive"
-tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
-echo "List archive"
-tar tf archive) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Create archive
-List archive
-this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/
-this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file
+echo 1>&2 -----
+tar xfV archive lab
+test $? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive bel
+test $? = 2 || exit 1
+echo 1>&2 -----
+tar xfV archive babel
+test $? = 2
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "-----
+tar: Volume 'label' does not match 'lab'
+tar: Error is not recoverable: exiting now
+-----
+tar: Volume 'label' does not match 'bel'
+tar: Error is not recoverable: exiting now
+-----
+tar: Volume 'label' does not match 'babel'
+tar: Error is not recoverable: exiting now
 " | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/lustar03.at:29"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_79
-#AT_START_80
-# 80. multiv01.at:23: multivolume dumps from pipes
-at_setup_line='multiv01.at:23'
-at_desc="multivolume dumps from pipes"
-$at_quiet $as_echo_n " 80: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_136
+#AT_START_137
+at_fn_group_banner 137 'volsize.at:29' \
+  "volume header size" "                             " 22
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "80. multiv01.at:23: testing ..."
+  $as_echo "137. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-# Fixme: should be configurable
-#  TRUSS=truss -o /tmp/tr
-#  TRUSS=strace
-
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv01.at:30:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/volsize.at:32:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
-
-for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
-              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
-  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  done
-done >file2
 
-if test \$TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-mkdir extract-dir-pipe
-dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
-      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
+echo Short Listing
+tar tf \$TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf \$TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf \$TEST_DATA_DIR/abc.tar
+find abc|sort
 )"
-echo multiv01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --length 7168 --file file1
-
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
-
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
-
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
-
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
-
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
-
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
-
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
 
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-$at_failed && at_func_log_failure
+echo Short Listing
+tar tf $TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf $TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf $TEST_DATA_DIR/abc.tar
+find abc|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Short Listing
+abc/not-a-file.gif
+abc/CCC
+Verbose Listing
+V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
+-rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
+Extracted directory
+abc
+abc/CCC
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv01.at:30:
+              { set +x
+$as_echo "$at_srcdir/volsize.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30025,80 +31428,23 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
-
-for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
-              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
-  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  done
-done >file2
 
-if test \$TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-mkdir extract-dir-pipe
-dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
-      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
+echo Short Listing
+tar tf \$TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf \$TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf \$TEST_DATA_DIR/abc.tar
+find abc|sort
 )"
-echo multiv01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
-
-exec <&-
-genfile --length 7168 --file file1
-
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
-
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
-
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
-
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
-
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30107,282 +31453,326 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
-
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
-
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
 
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-$at_failed && at_func_log_failure
+echo Short Listing
+tar tf $TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf $TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf $TEST_DATA_DIR/abc.tar
+find abc|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Short Listing
+abc/not-a-file.gif
+abc/CCC
+Verbose Listing
+V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
+-rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
+Extracted directory
+abc
+abc/CCC
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv01.at:30:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+              { set +x
+$as_echo "$at_srcdir/volsize.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
-
-for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
-              \" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
-  echo \"file2  block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
-  done
-done >file2
 
-if test \$TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
 
-mkdir extract-dir-pipe
-dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
-      --tape-length=\$TAPE_LENGTH --read-full-records || exit 1
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
+echo Short Listing
+tar tf \$TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf \$TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf \$TEST_DATA_DIR/abc.tar
+find abc|sort
 )"
-echo multiv01.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
 
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
 
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
+echo Short Listing
+tar tf $TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf $TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf $TEST_DATA_DIR/abc.tar
+find abc|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Short Listing
+abc/not-a-file.gif
+abc/CCC
+Verbose Listing
+V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
+-rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
+Extracted directory
+abc
+abc/CCC
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+              { set +x
+$as_echo "$at_srcdir/volsize.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --length 7168 --file file1
 
-for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
-              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
-  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  for count in 2 3 4 5 6 7 8 ; do
-    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
-  done
-done >file2
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if test $TEST_TAR_FORMAT = pax; then
-  TAPE_LENGTH=11
-else
-  TAPE_LENGTH=10
-fi
 
-tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-mkdir extract-dir-pipe
-dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
-PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
-      --tape-length=$TAPE_LENGTH --read-full-records || exit 1
+echo Short Listing
+tar tf \$TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf \$TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf \$TEST_DATA_DIR/abc.tar
+find abc|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-cmp file1 extract-dir-pipe/file1
-cmp file2 extract-dir-pipe/file2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
+echo Short Listing
+tar tf $TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf $TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf $TEST_DATA_DIR/abc.tar
+find abc|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Short Listing
+abc/not-a-file.gif
+abc/CCC
+Verbose Listing
+V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
+-rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
+Extracted directory
+abc
+abc/CCC
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_80
-#AT_START_81
-# 81. multiv02.at:28: skipping a straddling member
-at_setup_line='multiv02.at:28'
-at_desc="skipping a straddling member"
-$at_quiet $as_echo_n " 81: $at_desc                   "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "81. multiv02.at:28: testing ..."
-  $at_traceon
+              { set +x
+$as_echo "$at_srcdir/volsize.at:32:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
 
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
 
+test -z \"\$TEST_DATA_DIR\" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
 
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv02.at:31:
+echo Short Listing
+tar tf \$TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf \$TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf \$TEST_DATA_DIR/abc.tar
+find abc|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+test -z "$TEST_DATA_DIR" && exit 77
+tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+
+echo Short Listing
+tar tf $TEST_DATA_DIR/abc.tar
+echo Verbose Listing
+tar --utc -tvf $TEST_DATA_DIR/abc.tar
+echo Extracted directory
+tar xf $TEST_DATA_DIR/abc.tar
+find abc|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Short Listing
+abc/not-a-file.gif
+abc/CCC
+Verbose Listing
+V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
+-rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
+Extracted directory
+abc
+abc/CCC
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_137
+#AT_START_138
+at_fn_group_banner 138 'comprec.at:21' \
+  "compressed format recognition" "                  " 23
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "138. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-)"
-echo multiv02.at:31 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+
+  { set +x
+$as_echo "$at_srcdir/comprec.at:25:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+genfile --length 10240 --file file1
+echo \"separator\"
+tar cfz archive file1
+echo \"separator\"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+genfile --length 10240 --file file1
+echo "separator"
+tar cfz archive file1
+echo "separator"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
-en
+separator
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv02.at:31:
+              { set +x
+$as_echo "$at_srcdir/comprec.at:25:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30391,22 +31781,19 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+genfile --length 10240 --file file1
+echo \"separator\"
+tar cfz archive file1
+echo \"separator\"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
 )"
-echo multiv02.at:31 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30415,158 +31802,218 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+genfile --length 10240 --file file1
+echo "separator"
+tar cfz archive file1
+echo "separator"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comprec.at:25:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+genfile --length 10240 --file file1
+echo \"separator\"
+tar cfz archive file1
+echo \"separator\"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+
+genfile --length 10240 --file file1
+echo "separator"
+tar cfz archive file1
+echo "separator"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
-en
+separator
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv02.at:31:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+              { set +x
+$as_echo "$at_srcdir/comprec.at:25:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
+genfile --length 10240 --file file1
+echo \"separator\"
+tar cfz archive file1
+echo \"separator\"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
 )"
-echo multiv02.at:31 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+
+genfile --length 10240 --file file1
+echo "separator"
+tar cfz archive file1
+echo "separator"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+separator
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comprec.at:25:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+genfile --length 10240 --file file1
+echo \"separator\"
+tar cfz archive file1
+echo \"separator\"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 10240 --file en
-genfile --length 20000 --file to
-genfile --length 20000 --file tre
-genfile --length 10240 --file fire
 
-exec <&-
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
-echo separator
-tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+genfile --length 10240 --file file1
+echo "separator"
+tar cfz archive file1
+echo "separator"
+mv file1 orig
+tar xfv archive --warning=no-timestamp
+cmp orig file1
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
-en
+separator
+file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_81
-#AT_START_82
-# 82. multiv03.at:30: MV archive & long filenames
-at_setup_line='multiv03.at:30'
-at_desc="MV archive & long filenames"
-$at_quiet $as_echo_n " 82: $at_desc                    "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_138
+#AT_START_139
+at_fn_group_banner 139 'shortfile.at:26' \
+  "short input files" "                              " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "82. multiv03.at:30: testing ..."
+  $as_echo "139. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv03.at:33:
+  { set +x
+$as_echo "$at_srcdir/shortfile.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -30575,42 +32022,11 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
-BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
-
-cat > ../experr <<EOF
-tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \\\`\$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
-
-cat > ../expout <<EOF
-\$AFILE
-separator-1
-separator-2
-EOF
-
-genfile --length 15360 --file \$AFILE
-
-exec <&-
-
-tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
-
-echo separator-1
-
-genfile --length 15360 --file \$BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
-
-echo separator-2
-mv \$BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp \$BFILE bfile
+genfile --length 511 --file foo || exit 5
+tar tf foo
 )"
-echo multiv03.at:33 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "shortfile.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -30619,91 +32035,79 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
-BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
+genfile --length 511 --file foo || exit 5
+tar tf foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: This does not look like a tar archive
+tar: Exiting with failure status due to previous errors
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/shortfile.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-cat > ../experr <<EOF
-tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
 
-cat > ../expout <<EOF
-$AFILE
-separator-1
-separator-2
-EOF
 
-genfile --length 15360 --file $AFILE
 
-exec <&-
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_139
+#AT_START_140
+at_fn_group_banner 140 'shortupd.at:31' \
+  "updating short archives" "                        " 23
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "140. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
 
-echo separator-1
 
-genfile --length 15360 --file $BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
 
-echo separator-2
-mv $BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp $BFILE bfile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+  { set +x
+$as_echo "$at_srcdir/shortupd.at:34:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
-BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
-
-cat > ../experr <<EOF
-tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
-
-cat > ../expout <<EOF
-$AFILE
-separator-1
-separator-2
-EOF
-
-genfile --length 15360 --file $AFILE
-
-exec <&-
-
-tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
-
-echo separator-1
-
-genfile --length 15360 --file $BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
-
-echo separator-2
-mv $BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp $BFILE bfile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-$at_diff experr "$at_stderr" || at_failed=:
-$at_diff expout "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
+touch foo
+tar uf archive foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv03.at:33:
+touch foo
+tar uf archive foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/shortupd.at:34:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30712,42 +32116,11 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
-BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
-
-cat > ../experr <<EOF
-tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \\\`\$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
-
-cat > ../expout <<EOF
-\$AFILE
-separator-1
-separator-2
-EOF
-
-genfile --length 15360 --file \$AFILE
-
-exec <&-
-
-tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
-
-echo separator-1
-
-genfile --length 15360 --file \$BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
-
-echo separator-2
-mv \$BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp \$BFILE bfile
+touch foo
+tar uf archive foo
 )"
-echo multiv03.at:33 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30756,115 +32129,90 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
-BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
-
-cat > ../experr <<EOF
-tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
-
-cat > ../expout <<EOF
-$AFILE
-separator-1
-separator-2
-EOF
-
-genfile --length 15360 --file $AFILE
-
-exec <&-
-
-tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
-
-echo separator-1
-
-genfile --length 15360 --file $BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
-
-echo separator-2
-mv $BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp $BFILE bfile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+touch foo
+tar uf archive foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/shortupd.at:34:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
-BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
-
-cat > ../experr <<EOF
-tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
-tar: \`$BFILE' is possibly continued on this volume: header contains truncated name
-EOF
-
-cat > ../expout <<EOF
-$AFILE
-separator-1
-separator-2
-EOF
-
-genfile --length 15360 --file $AFILE
-
-exec <&-
-
-tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
-tar -tM -f arch.1 -f arch.2 || exit 1
-
-echo separator-1
-
-genfile --length 15360 --file $BFILE
-tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
-
-echo separator-2
-mv $BFILE bfile
-tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
-cmp $BFILE bfile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-$at_diff experr "$at_stderr" || at_failed=:
-$at_diff expout "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_82
-#AT_START_83
-# 83. multiv04.at:36: split directory members in a MV archive
-at_setup_line='multiv04.at:36'
-at_desc="split directory members in a MV archive"
-$at_quiet $as_echo_n " 83: $at_desc        "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "83. multiv04.at:36: testing ..."
-  $at_traceon
-
+touch foo
+tar uf archive foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
+touch foo
+tar uf archive foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/shortupd.at:34:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
+touch foo
+tar uf archive foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
+touch foo
+tar uf archive foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv04.at:39:
+              { set +x
+$as_echo "$at_srcdir/shortupd.at:34:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -30873,28 +32221,11 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
-
-exec <&-
-
-sleep 2
-
-tar --listed-incremental=list -c -f archive.a directory
-
-sleep 2
-
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
-
-echo separator
-
-tar -MRt -f arc.1 -f arc.2)"
-echo multiv04.at:39 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+touch foo
+tar uf archive foo
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -30903,68 +32234,94 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+touch foo
+tar uf archive foo
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
 
-exec <&-
 
-sleep 2
 
-tar --listed-incremental=list -c -f archive.a directory
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_140
+#AT_START_141
+at_fn_group_banner 141 'truncate.at:29' \
+  "truncate" "                                       " 23
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "141. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-sleep 2
 
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
 
-echo separator
 
-tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+
+  { set +x
+$as_echo "$at_srcdir/truncate.at:32:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
-
-exec <&-
-
-sleep 2
-
-tar --listed-incremental=list -c -f archive.a directory
-
-sleep 2
-
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
-
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: \$?
 echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)"
+at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
 
-tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: $?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+Exit status: 1
 separator
-block 0: directory/
-block 35: ** Block of NULs **
+foo
+foo: Mod time differs
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv04.at:39:
+              { set +x
+$as_echo "$at_srcdir/truncate.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -30973,333 +32330,413 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: \$?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)"
+at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
-
-exec <&-
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: $?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+Exit status: 1
+separator
+foo
+foo: Mod time differs
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-sleep 2
+              { set +x
+$as_echo "$at_srcdir/truncate.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-tar --listed-incremental=list -c -f archive.a directory
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: \$?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)"
+at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-sleep 2
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: $?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+Exit status: 1
+separator
+foo
+foo: Mod time differs
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
+              { set +x
+$as_echo "$at_srcdir/truncate.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: \$?
 echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)"
+at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-tar -MRt -f arc.1 -f arc.2)"
-echo multiv04.at:39 >"$at_check_line_file"
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: $?
+echo separator
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+Exit status: 1
+separator
+foo
+foo: Mod time differs
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/truncate.at:32:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
-
-exec <&-
-
-sleep 2
-
-tar --listed-incremental=list -c -f archive.a directory
-
-sleep 2
-
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
-
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: \$?
 echo separator
-
-tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)"
+at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-
-mkdir directory
-awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
-
-exec <&-
-
-sleep 2
-
-tar --listed-incremental=list -c -f archive.a directory
-
-sleep 2
-
-tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
-
+genfile --file foo --length 200k
+genfile --file baz
+genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
+echo Exit status: $?
 echo separator
-
-tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+genfile --file foo --seek 195k --length 5k --pattern=zeros
+tar dvf bar)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+Exit status: 1
 separator
-block 0: directory/
-block 35: ** Block of NULs **
+foo
+foo: Mod time differs
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_83
-#AT_START_84
-# 84. multiv05.at:26: Restoring after an out of sync volume
-at_setup_line='multiv05.at:26'
-at_desc="Restoring after an out of sync volume"
-$at_quiet $as_echo_n " 84: $at_desc          "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_141
+#AT_START_142
+at_fn_group_banner 142 'grow.at:24' \
+  "grow" "                                           " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "84. multiv05.at:26: testing ..."
+  $as_echo "142. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv05.at:30:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+  { set +x
+$as_echo "$at_srcdir/grow.at:27:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-
-genfile --length 250k --file jeden
-genfile --length 250k --file dwa
-genfile --length 250k --file trzy
-genfile --length 250k --file cztery
-genfile --length 250k --file piec
-genfile --length 250k --file szesc
-
-
-echo Creating archive
-tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
-echo separator
-mkdir bak
-mv jeden dwa trzy cztery piec szesc bak
-tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
-echo Diffing jeden
-   cmp bak/jeden jeden || exit 1
-echo Diffing dwa
-   cmp bak/dwa dwa || exit 1
-echo Diffing trzy
-   cmp bak/trzy trzy || exit 1
-echo Diffing cztery
-   cmp bak/cztery cztery || exit 1
-echo Diffing piec
-   cmp bak/piec piec || exit 1
-echo Diffing szesc
-   cmp bak/szesc szesc || exit 1
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
 )"
-echo multiv05.at:30 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-
-genfile --length 250k --file jeden
-genfile --length 250k --file dwa
-genfile --length 250k --file trzy
-genfile --length 250k --file cztery
-genfile --length 250k --file piec
-genfile --length 250k --file szesc
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/grow.at:27:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
-echo Creating archive
-tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
-echo separator
-mkdir bak
-mv jeden dwa trzy cztery piec szesc bak
-tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
-echo Diffing jeden
-   cmp bak/jeden jeden || exit 1
-echo Diffing dwa
-   cmp bak/dwa dwa || exit 1
-echo Diffing trzy
-   cmp bak/trzy trzy || exit 1
-echo Diffing cztery
-   cmp bak/cztery cztery || exit 1
-echo Diffing piec
-   cmp bak/piec piec || exit 1
-echo Diffing szesc
-   cmp bak/szesc szesc || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-genfile --length 250k --file jeden
-genfile --length 250k --file dwa
-genfile --length 250k --file trzy
-genfile --length 250k --file cztery
-genfile --length 250k --file piec
-genfile --length 250k --file szesc
+              { set +x
+$as_echo "$at_srcdir/grow.at:27:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
 
-echo Creating archive
-tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
-echo separator
-mkdir bak
-mv jeden dwa trzy cztery piec szesc bak
-tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
-echo Diffing jeden
-   cmp bak/jeden jeden || exit 1
-echo Diffing dwa
-   cmp bak/dwa dwa || exit 1
-echo Diffing trzy
-   cmp bak/trzy trzy || exit 1
-echo Diffing cztery
-   cmp bak/cztery cztery || exit 1
-echo Diffing piec
-   cmp bak/piec piec || exit 1
-echo Diffing szesc
-   cmp bak/szesc szesc || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: \`trzy' is not continued on this volume
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating archive
-separator
-jeden
-dwa
-trzy
-cztery
-piec
-szesc
-Diffing jeden
-Diffing dwa
-Diffing trzy
-Diffing cztery
-Diffing piec
-Diffing szesc
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv05.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/grow.at:27:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
-
-
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_84
-#AT_START_85
-# 85. multiv06.at:27: Multivolumes with L=record_size
-at_setup_line='multiv06.at:27'
-at_desc="Multivolumes with L=record_size"
-$at_quiet $as_echo_n " 85: $at_desc                "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "85. multiv06.at:27: testing ..."
-  $at_traceon
-
-
-
-
-
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv06.at:30:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3)"
-echo multiv06.at:30 >"$at_check_line_file"
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "foo
+baz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/grow.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -31308,614 +32745,599 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating file
-Creating archive
-Testing archive
+genfile --file foo --length 50000k
+genfile --file baz
+genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating file
-Creating archive
-Testing archive
-file
+echo >>"$at_stdout"; $as_echo "foo
+baz
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/multiv06.at:30:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
-export TAR_OPTIONS
-rm -rf *
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3)"
-echo multiv06.at:30 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_142
+#AT_START_143
+at_fn_group_banner 143 'sigpipe.at:21' \
+  "sigpipe handling" "                               " 23
+at_xfail=no
+(
+  $as_echo "143. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-exec <&-
-decho Creating file
-genfile --length 20139 --file file
-decho Creating archive
-tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
-decho Testing archive
-tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating file
-Creating archive
-Testing archive
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating file
-Creating archive
-Testing archive
-file
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
+# Description: Tar 1.23 ignored sigpipe which lead to spurious "write
+# error" diagnostics when piping output to another programs.
+# Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
+# References: http://lists.gnu.org/archive/html/bug-tar/2010-03/msg00039.html
+#             <20100319184141.GC30047@wo.int.altlinux.org>
+
+{ set +x
+$as_echo "$at_srcdir/sigpipe.at:30:
+
+case \`(cat \"\$at_myself\" 2>&3 | :) 3>&1 >/dev/null\` in #(
+?*) exit 77;;
+esac
+
+
+genfile --length 2048 --file first
+genfile --length 2048 --file second
+genfile --length 2049 --file third
+
+tar cf archive first second third
+
+# Discard diagnostics that some shells generate about broken pipes.
+(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "sigpipe.at:30"
+( $at_check_trace;
+
+case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
+?*) exit 77;;
+esac
+
+
+genfile --length 2048 --file first
+genfile --length 2048 --file second
+genfile --length 2049 --file third
+
+tar cf archive first second third
+
+# Discard diagnostics that some shells generate about broken pipes.
+(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
 
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/sigpipe.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_85
-#AT_START_86
-# 86. multiv07.at:26: volumes split at an extended header
-at_setup_line='multiv07.at:26'
-at_desc="volumes split at an extended header"
-$at_quiet $as_echo_n " 86: $at_desc            "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_143
+#AT_START_144
+at_fn_group_banner 144 'remfiles01.at:28' \
+  "remove-files with compression" "                  " 24
 at_xfail=no
-      test -f \$XFAILFILE && at_xfail=yes
-      test -f $XFAILFILE && at_xfail=yes
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "86. multiv07.at:26: testing ..."
+  $as_echo "144. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-{ $at_traceoff
-$as_echo "$at_srcdir/multiv07.at:29:
+unset TAR_OPTIONS
+{ set +x
+$as_echo "$at_srcdir/remfiles01.at:32:
+
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 && exit 77
 
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-exec <&-
+case \`(cat \"\$at_myself\" 2>&3 | :) 3>&1 >/dev/null\` in #(
+?*) exit 77;;
+esac
 
-cd \$TEST_DATA_DIR
-tar -t -M -fxsplit-1.tar -fxsplit-2.tar
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+mkdir dir
+cd dir
+genfile --file a --length 0
+chmod 0 a
+genfile --file b
+mkdir c
+
+# Depending on when the SIGPIPE gets delivered, the invocation below
+# may finish with either
+#  tar: a: Cannot write: Broken pipe
+# or
+#  tar: Child returned status 2
+
+# Discard diagnostics that some shells generate about broken pipes,
+# and discard all of tar's diagnostics except for the ones saying \"(child)\".
+# Gzip's exit code is propagated to the shell.  Usually it is 141.
+# Convert all non-zero exits to 2 to make it predictable.
+(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
+EC=\$?
+sed -n '/(child)/p' err >&2
+rm err
+find . | sort
+exit \$EC
 "
-echo multiv07.at:29 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles01.at:32"
+( $at_check_trace;
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 && exit 77
 
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-exec <&-
+case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
+?*) exit 77;;
+esac
 
-cd $TEST_DATA_DIR
-tar -t -M -fxsplit-1.tar -fxsplit-2.tar
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
 
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+mkdir dir
+cd dir
+genfile --file a --length 0
+chmod 0 a
+genfile --file b
+mkdir c
+
+# Depending on when the SIGPIPE gets delivered, the invocation below
+# may finish with either
+#  tar: a: Cannot write: Broken pipe
+# or
+#  tar: Child returned status 2
 
-exec <&-
+# Discard diagnostics that some shells generate about broken pipes,
+# and discard all of tar's diagnostics except for the ones saying "(child)".
+# Gzip's exit code is propagated to the shell.  Usually it is 141.
+# Convert all non-zero exits to 2 to make it predictable.
+(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
+EC=$?
+sed -n '/(child)/p' err >&2
+rm err
+find . | sort
+exit $EC
 
-cd $TEST_DATA_DIR
-tar -t -M -fxsplit-1.tar -fxsplit-2.tar
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Archive volumes split at an extended header Volume 1
-foo
-bar
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar (child): a: Cannot open: Permission denied
+tar (child): Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo ".
+./a
+./b
+./c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv07.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 2 $at_status "$at_srcdir/remfiles01.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_86
-#AT_START_87
-# 87. multiv08.at:23: multivolume header creation
-at_setup_line='multiv08.at:23'
-at_desc="multivolume header creation"
-$at_quiet $as_echo_n " 87: $at_desc                    "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_144
+#AT_START_145
+at_fn_group_banner 145 'remfiles02.at:28' \
+  "remove-files with compression: grand-child" "     " 24
 at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "87. multiv08.at:23: testing ..."
+  $as_echo "145. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
+unset TAR_OPTIONS
+{ set +x
+$as_echo "$at_srcdir/remfiles02.at:32:
 
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-  { $at_traceoff
-$as_echo "$at_srcdir/multiv08.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 9472 --file a
-genfile --length 9984 --file b
-decho Creating
-tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
-decho Testing
-tar -tMR -f A.tar -f B.tar -f C.tar
-)"
-echo multiv08.at:26 >"$at_check_line_file"
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 9472 --file a
-genfile --length 9984 --file b
-decho Creating
-tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
-decho Testing
-tar -tMR -f A.tar -f B.tar -f C.tar
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+mkdir dir
+cd dir
+mkdir a
+genfile --file b
+mkdir c
 
-genfile --length 9472 --file a
-genfile --length 9984 --file b
-decho Creating
-tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
-decho Testing
-tar -tMR -f A.tar -f B.tar -f C.tar
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "Creating
-Testing
+tar -c -f a -z --remove-files b c 2>err
+EC=\$?
+sed -n '/(child)/p' err >&2
+rm err
+find . | sort
+exit \$EC
+"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles02.at:32"
+( $at_check_trace;
+
+cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+mkdir dir
+cd dir
+mkdir a
+genfile --file b
+mkdir c
+
+tar -c -f a -z --remove-files b c 2>err
+EC=$?
+sed -n '/(child)/p' err >&2
+rm err
+find . | sort
+exit $EC
+
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar (child): a: Cannot open: Is a directory
+tar (child): Error is not recoverable: exiting now
 " | \
   $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating
-Testing
-block 0: a
-block 21: b
-block 43: ** Block of NULs **
+echo >>"$at_stdout"; $as_echo ".
+./a
+./b
+./c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multiv08.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 2 $at_status "$at_srcdir/remfiles02.at:32"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-
-
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_87
-#AT_START_88
-# 88. old.at:23: old archives
-at_setup_line='old.at:23'
-at_desc="old archives"
-$at_quiet $as_echo_n " 88: $at_desc                                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_145
+#AT_START_146
+at_fn_group_banner 146 'remfiles03.at:28' \
+  "remove-files with symbolic links" "               " 24
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "88. old.at:23: testing ..."
+  $as_echo "146. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-unset TAR_OPTIONS
-{ $at_traceoff
-$as_echo "$at_srcdir/old.at:27:
-mkdir directory
-tar cfvo archive directory || exit 1
-tar tf archive
+{ set +x
+$as_echo "$at_srcdir/remfiles03.at:31:
+mkdir a
+mkdir a/b
+ln -s b a/c || exit 77
+tar --remove-files -cf a.tar a
+genfile --stat a
 "
-echo old.at:27 >"$at_check_line_file"
+at_fn_check_prepare_notrace 'an embedded newline' "remfiles03.at:31"
+( $at_check_trace;
+mkdir a
+mkdir a/b
+ln -s b a/c || exit 77
+tar --remove-files -cf a.tar a
+genfile --stat a
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir directory
-tar cfvo archive directory || exit 1
-tar tf archive
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir directory
-tar cfvo archive directory || exit 1
-tar tf archive
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-directory/
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "genfile: stat(a) failed: No such file or directory
 " | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/old.at:27"
-
-$at_failed && at_func_log_failure
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles03.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_88
-#AT_START_89
-# 89. recurse.at:21: recurse
-at_setup_line='recurse.at:21'
-at_desc="recurse"
-$at_quiet $as_echo_n " 89: $at_desc                                        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_146
+#AT_START_147
+at_fn_group_banner 147 'remfiles04a.at:25' \
+  "remove-files with -C:rel in -c/non-incr. mode" "  " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "89. recurse.at:21: testing ..."
+  $as_echo "147. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/recurse.at:24:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/remfiles04a.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-)"
-echo recurse.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --remove-files -C foo bar
+echo A
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04a.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --remove-files -C foo bar
+echo A
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles04a.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/recurse.at:24:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
-
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-)"
-echo recurse.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_147
+#AT_START_148
+at_fn_group_banner 148 'remfiles04b.at:33' \
+  "remove-files with -C:rel in -c/incr. mode" "      " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "148. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/recurse.at:24:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-)"
-echo recurse.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+  { set +x
+$as_echo "$at_srcdir/remfiles04b.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --incremental --remove-files -C foo bar
+echo A
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04b.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar --incremental --remove-files -C foo bar
+echo A
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles04b.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/recurse.at:24:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-)"
-echo recurse.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_148
+#AT_START_149
+at_fn_group_banner 149 'remfiles04c.at:33' \
+  "remove-files with -C:rel in -r mode" "            " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "149. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles04c.at:36:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar -C foo bar
+echo A
+find . | sort
+tar -rf foo.tar --remove-files -C foo bar
+echo B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04c.at:36"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+echo bar > bar
+echo foobar > foo/bar
+tar -cf foo.tar -C foo bar
+echo A
+find . | sort
+tar -rf foo.tar --remove-files -C foo bar
+echo B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./foo
+./foo.tar
+./foo/bar
+B
+.
+./bar
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles04c.at:36"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/recurse.at:24:
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_149
+#AT_START_150
+at_fn_group_banner 150 'remfiles05a.at:34' \
+  "remove-files with -C:rel,rel in -c/non-incr. mode" "" 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "150. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles05a.at:37:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -31924,16 +33346,21 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-)"
-echo recurse.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05a.at:37"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -31942,14 +33369,87 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles05a.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_150
+#AT_START_151
+at_fn_group_banner 151 'remfiles05b.at:25' \
+  "remove-files with -C:rel,rel in -c/incr. mode" "  " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "151. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles05b.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05b.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -31958,393 +33458,547 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-touch directory/file
-tar --create --file archive --no-recursion directory || exit 1
-tar tf archive
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "directory/
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles05b.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_89
-#AT_START_90
-# 90. same-order01.at:26: working -C with --same-order
-at_setup_line='same-order01.at:26'
-at_desc="working -C with --same-order"
-$at_quiet $as_echo_n " 90: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_151
+#AT_START_152
+at_fn_group_banner 152 'remfiles05c.at:25' \
+  "remove-files with -C:rel,rel in -r mode" "        " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "90. same-order01.at:26: testing ..."
+  $as_echo "152. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/same-order01.at:29:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/remfiles05c.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls directory|sort
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+tar -cf foo.tar -C foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
 )"
-echo same-order01.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05c.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+tar -cf foo.tar -C foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+C
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles05c.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_152
+#AT_START_153
+at_fn_group_banner 153 'remfiles06a.at:25' \
+  "remove-files with -C:rel,abs in -c/non-incr. mode" "" 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "153. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
 
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/remfiles06a.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C \$DIR/bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06a.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles06a.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order01.at:29:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_153
+#AT_START_154
+at_fn_group_banner 154 'remfiles06b.at:25' \
+  "remove-files with -C:rel,abs in -c/incr. mode" "  " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "154. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-)"
-echo same-order01.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+
+  { set +x
+$as_echo "$at_srcdir/remfiles06b.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C \$DIR/bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06b.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
-
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles06b.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order01.at:29:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_154
+#AT_START_155
+at_fn_group_banner 155 'remfiles06c.at:25' \
+  "remove-files with -C:rel,abs in -r mode" "        " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "155. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-)"
-echo same-order01.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+  { set +x
+$as_echo "$at_srcdir/remfiles06c.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+tar -cf foo.tar -C foo file -C \$DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06c.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
-
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C foo file -C $DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C ../bar file
+decho C
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+C
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles06c.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order01.at:29:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_155
+#AT_START_156
+at_fn_group_banner 156 'remfiles07a.at:25' \
+  "remove-files with -C:rel,abs in -c/non-incr. mode" "" 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "156. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-)"
-echo same-order01.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+
+  { set +x
+$as_echo "$at_srcdir/remfiles07a.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C \$DIR/bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07a.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles07a.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_156
+#AT_START_157
+at_fn_group_banner 157 'remfiles07b.at:25' \
+  "remove-files with -C:rel,abs in -c/incr. mode" "  " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "157. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order01.at:29:
+  { set +x
+$as_echo "$at_srcdir/remfiles07b.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32354,23 +34008,21 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls directory|sort
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C \$DIR/bar file
+decho B
+find . | sort
 )"
-echo same-order01.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07b.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32382,463 +34034,532 @@ rm -rf *
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles07b.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_157
+#AT_START_158
+at_fn_group_banner 158 'remfiles07c.at:25' \
+  "remove-files with -C:rel,abs in -r mode" "        " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "158. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles07c.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+tar -cf foo.tar -C foo file -C \$DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C \$DIR/bar file
+decho C
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07c.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir directory
-tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-ls directory|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C foo file -C $DIR/bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
+decho C
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+C
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles07c.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_90
-#AT_START_91
-# 91. same-order02.at:25: multiple -C options
-at_setup_line='same-order02.at:25'
-at_desc="multiple -C options"
-$at_quiet $as_echo_n " 91: $at_desc                            "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_158
+#AT_START_159
+at_fn_group_banner 159 'remfiles08a.at:25' \
+  "remove-files with -C:abs,rel in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "91. same-order02.at:25: testing ..."
+  $as_echo "159. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/same-order02.at:28:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+  { set +x
+$as_echo "$at_srcdir/remfiles08a.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=\`pwd\`
-tar -xf archive --same-order --warning=no-timestamp \\
-  -C \$HERE/en file1 \\
-  -C \$HERE/to file2 || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls en
-echo separator
-ls to
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --remove-files -C \$DIR/foo file -C ../bar file
+decho B
+find . | sort
 )"
-echo same-order02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
-
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
-
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles08a.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-separator
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles08a.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order02.at:28:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
-
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
 
-HERE=\`pwd\`
-tar -xf archive --same-order --warning=no-timestamp \\
-  -C \$HERE/en file1 \\
-  -C \$HERE/to file2 || exit 1
 
-ls en
-echo separator
-ls to
-)"
-echo same-order02.at:28 >"$at_check_line_file"
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_159
+#AT_START_160
+at_fn_group_banner 160 'remfiles08b.at:25' \
+  "remove-files with -C:abs,rel in -c/incr. mode" "  " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "160. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+  { set +x
+$as_echo "$at_srcdir/remfiles08b.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-separator
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C \$DIR/foo file -C ../bar file
+decho B
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles08b.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+decho A
+tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
+decho B
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+file
+file
+B
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles08b.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order02.at:28:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
 
-HERE=\`pwd\`
-tar -xf archive --same-order --warning=no-timestamp \\
-  -C \$HERE/en file1 \\
-  -C \$HERE/to file2 || exit 1
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_160
+#AT_START_161
+at_fn_group_banner 161 'remfiles08c.at:25' \
+  "remove-files with -C:abs,rel in -r mode" "        " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "161. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-ls en
-echo separator
-ls to
-)"
-echo same-order02.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles08c.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=\`pwd\`
+tar -cf foo.tar -C \$DIR/foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C \$DIR/foo file -C ../bar file
+decho C
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles08c.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-separator
-file2
+mkdir foo
+mkdir bar
+echo file > file
+echo foo/file > foo/file
+echo bar/file > bar/file
+DIR=`pwd`
+tar -cf foo.tar -C $DIR/foo file -C ../bar file
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
+decho C
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+C
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./bar
+./bar/file
+./file
+./foo
+./foo.tar
+./foo/file
+B
+file
+file
+C
+.
+./bar
+./file
+./foo
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles08c.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order02.at:28:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
 
-HERE=\`pwd\`
-tar -xf archive --same-order --warning=no-timestamp \\
-  -C \$HERE/en file1 \\
-  -C \$HERE/to file2 || exit 1
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_161
+#AT_START_162
+at_fn_group_banner 162 'remfiles09a.at:25' \
+  "remove-files on full directory in -c/non-incr. mode" "" 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "162. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-ls en
-echo separator
-ls to
-)"
-echo same-order02.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+  { set +x
+$as_echo "$at_srcdir/remfiles09a.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --remove-files foo
+decho B
+find .
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "remfiles09a.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --remove-files foo
+decho B
+find .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+foo/
+foo/file
+B
+.
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles09a.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-separator
-file2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_162
+#AT_START_163
+at_fn_group_banner 163 'remfiles09b.at:29' \
+  "remove-files on full directory in -c/incr. mode" "" 24
+at_xfail=yes
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "163. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-              { $at_traceoff
-$as_echo "$at_srcdir/same-order02.at:28:
+
+
+ # we expect to fail in tar 1.27
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles09b.at:34:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32847,27 +34568,19 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=\`pwd\`
-tar -xf archive --same-order --warning=no-timestamp \\
-  -C \$HERE/en file1 \\
-  -C \$HERE/to file2 || exit 1
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
-ls en
-echo separator
-ls to
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --incremental --remove-files foo
+TARSTAT=\$?
+decho B
+find .
 )"
-echo same-order02.at:28 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles09b.at:34"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32876,25 +34589,84 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
 
-mkdir en
-mkdir to
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+mkdir foo
+echo foo/file > foo/file
+decho A
+tar -cvf foo.tar --incremental --remove-files foo
+TARSTAT=$?
+decho B
+find .
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+tar: foo: Directory is new
+B
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+foo/
+foo/file
+B
+.
+./foo
+./foo.tar
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles09b.at:34"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_163
+#AT_START_164
+at_fn_group_banner 164 'remfiles09c.at:25' \
+  "remove-files on full directory in -r mode" "      " 24
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "164. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/remfiles09c.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir foo
+echo foo/file > foo/file
+tar -cf foo.tar foo
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files foo
+decho C
+find . | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles09c.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32903,62 +34675,67 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile -l 1024 -f file1
-genfile -l 1024 -f file2
-tar cf archive file1 file2
-
-mkdir en
-mkdir to
 
-HERE=`pwd`
-tar -xf archive --same-order --warning=no-timestamp \
-  -C $HERE/en file1 \
-  -C $HERE/to file2 || exit 1
+test -z "`sort < /dev/null 2>&1`" || exit 77
 
-ls en
-echo separator
-ls to
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-separator
-file2
+mkdir foo
+echo foo/file > foo/file
+tar -cf foo.tar foo
+decho A
+find . | sort
+decho B
+tar -rvf foo.tar --remove-files foo
+decho C
+find . | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "A
+B
+C
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "A
+.
+./foo
+./foo.tar
+./foo/file
+B
+foo/
+foo/file
+C
+.
+./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles09c.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_91
-#AT_START_92
-# 92. shortrec.at:25: short records
-at_setup_line='shortrec.at:25'
-at_desc="short records"
-$at_quiet $as_echo_n " 92: $at_desc                                  "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_164
+#AT_START_165
+at_fn_group_banner 165 'xattr01.at:25' \
+  "xattrs: basic functionality" "                    " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "92. shortrec.at:25: testing ..."
+  $as_echo "165. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/shortrec.at:28:
+  { set +x
+$as_echo "$at_srcdir/xattr01.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -32967,40 +34744,46 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-)"
-echo shortrec.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^\$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -33009,27 +34792,58 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurDirValue\"
+user.test=\"OurFileValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortrec.at:28:
+              { set +x
+$as_echo "$at_srcdir/xattr01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -33038,40 +34852,46 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-)"
-echo shortrec.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^\$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -33080,27 +34900,58 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurDirValue\"
+user.test=\"OurFileValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortrec.at:28:
+              { set +x
+$as_echo "$at_srcdir/xattr01.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -33109,40 +34960,46 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-)"
-echo shortrec.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^\$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -33151,27 +35008,58 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurDirValue\"
+user.test=\"OurFileValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortrec.at:28:
+              { set +x
+$as_echo "$at_srcdir/xattr01.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -33180,20 +35068,46 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-)"
-echo shortrec.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^\$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -33202,47 +35116,58 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
 
-$at_failed && at_func_log_failure
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurDirValue\"
+user.test=\"OurFileValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortrec.at:28:
+              { set +x
+$as_echo "$at_srcdir/xattr01.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -33251,40 +35176,46 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-)"
-echo shortrec.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^\$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -33293,217 +35224,202 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-mkdir directory
-(cd directory && touch a b c d e f g h i j k l m n o p q r)
-tar -c -b 1 -f - directory | tar -t -f - > /dev/null
-tar -c -b 1 -f archive directory
-tar -t -f archive > /dev/null
-tar -t -f - < archive > /dev/null
 
-rm -r directory
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurDirValue\"
+user.test=\"OurFileValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_92
-#AT_START_93
-# 93. sparse01.at:21: sparse files
-at_setup_line='sparse01.at:21'
-at_desc="sparse files"
-$at_quiet $as_echo_n " 93: $at_desc                                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_165
+#AT_START_166
+at_fn_group_banner 166 'xattr02.at:25' \
+  "xattrs: change directory with -C option" "        " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "93. sparse01.at:21: testing ..."
+  $as_echo "166. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/sparse01.at:24:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+  { set +x
+$as_echo "$at_srcdir/xattr02.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-)"
-echo sparse01.at:24 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; tee stdout <"$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-              { $at_traceoff
-$as_echo "$at_srcdir/sparse01.at:24:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-)"
-echo sparse01.at:24 >"$at_check_line_file"
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+rm -rf dir
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^\$
+getfattr -h -d file2        | grep -v -e '^#' -e ^\$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; tee stdout <"$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurFile1Value\"
+user.test=\"OurFile2Value\"
+user.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/sparse01.at:24:
+              { set +x
+$as_echo "$at_srcdir/xattr02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -33512,24 +35428,53 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^\$
+getfattr -h -d file2        | grep -v -e '^#' -e ^\$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^\$
 )"
-echo sparse01.at:24 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -33538,139 +35483,244 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 1000 -f begin
-genfile --length 1000 -f end
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive --warning=no-timestamp
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; tee stdout <"$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-$at_failed && at_func_log_failure
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurFile1Value\"
+user.test=\"OurFile2Value\"
+user.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/xattr02.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
 
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-cat >stdout.re <<'_ATEOF'
-separator
--rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
--rw-r--r-- ^ ^ *  *10344448 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
--rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
-separator
-sparsefile 10344448
-_ATEOF
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-awk '{print NR " " $0}' stdout > $$.1
-awk '{print NR " " $0}' stdout.re | join - $$.1 |
-while read NUM RE LINE
-do
-  echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
-done
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_93
-#AT_START_94
-# 94. sparse02.at:21: extracting sparse file over a pipe
-at_setup_line='sparse02.at:21'
-at_desc="extracting sparse file over a pipe"
-$at_quiet $as_echo_n " 94: $at_desc             "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "94. sparse02.at:21: testing ..."
-  $at_traceon
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-# Tar 1.14 - 1.15.1 was unable to extract sparse files to a pipe.
-# References: <16896.21739.460782.124775@jik.kamens.brookline.ma.us>
-# http://lists.gnu.org/archive/html/bug-tar/2005-02/msg00003.html
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
 
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/sparse02.at:28:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^\$
+getfattr -h -d file2        | grep -v -e '^#' -e ^\$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-)"
-echo sparse02.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurFile1Value\"
+user.test=\"OurFile2Value\"
+user.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr02.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^\$
+getfattr -h -d file2        | grep -v -e '^#' -e ^\$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -33679,523 +35729,349 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
-
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/sparse02.at:28:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-)"
-echo sparse02.at:28 >"$at_check_line_file"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
-              { $at_traceoff
-$as_echo "$at_srcdir/sparse02.at:28:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-)"
-echo sparse02.at:28 >"$at_check_line_file"
+rm -rf dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+tar --xattrs -xf archive.tar
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurFile1Value\"
+user.test=\"OurFile2Value\"
+user.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+              { set +x
+$as_echo "$at_srcdir/xattr02.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
-echo separator
 
-tar xfO archive | cat - > sparsecopy || exit 1
-cmp sparsefile sparsecopy
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_94
-#AT_START_95
-# 95. sparse03.at:21: storing sparse files > 8G
-at_setup_line='sparse03.at:21'
-at_desc="storing sparse files > 8G"
-$at_quiet $as_echo_n " 95: $at_desc                      "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "95. sparse03.at:21: testing ..."
-  $at_traceon
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-# Tar 1.15.1 incorrectly computed sparse member size if the extended
-# PAX header contained size keyword.
-# References: <87vf46nb36.fsf@penguin.cs.ucla.edu>
-# http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
 
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/sparse03.at:29:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
+rm -rf dir
 
-genfile --length 1000 --file begin
-genfile --length 1000 --file end
-genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+tar --xattrs -xf archive.tar
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
+getfattr -h -d file1        | grep -v -e '^#' -e ^\$
+getfattr -h -d file2        | grep -v -e '^#' -e ^\$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^\$
 )"
-echo sparse03.at:29 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 1000 --file begin
-genfile --length 1000 --file end
-genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 1000 --file begin
-genfile --length 1000 --file end
-genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
-tar -c -f archive --sparse begin sparsefile end || exit 1
-echo separator
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar tfv archive
-echo separator
-mkdir directory
-tar Cxf directory archive
-genfile --stat=name,size sparsefile
-cmp sparsefile directory/sparsefile
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo stdout:; tee stdout <"$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/sparse03.at:29"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
-cat >stdout.re <<'_ATEOF'
-separator
--rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
--rw-r--r-- ^ ^ *  *8589935104 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
--rw-r--r-- ^ ^ *  *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
-separator
-sparsefile 8589935104
-_ATEOF
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"OurFile1Value\"
+user.test=\"OurFile2Value\"
+user.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
 
-awk '{print NR " " $0}' stdout > $$.1
-awk '{print NR " " $0}' stdout.re | join - $$.1 |
-while read NUM RE LINE
-do
-  echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
-done
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_95
-#AT_START_96
-# 96. sparse04.at:21: storing long sparse file names
-at_setup_line='sparse04.at:21'
-at_desc="storing long sparse file names"
-$at_quiet $as_echo_n " 96: $at_desc                 "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_166
+#AT_START_167
+at_fn_group_banner 167 'xattr03.at:25' \
+  "xattrs: trusted.* attributes" "                   " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "96. sparse04.at:21: testing ..."
+  $as_echo "167. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
-# Description: Tar versions from 1.15.92 to 1.25 would incorrectly
-# store sparse file names longer than 100 characters in pax mode.
-# Namely, the `path' keyword of the produced PAX header would contain the
-# crafted name of the header itself, instead of that of the file.
-# Reported by: Kamil Dudka <kdudka@redhat.com>
-# References: <201011250026.44908.kdudka@redhat.com>,
-#             http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00099.html
-
-
 
 
-
-  { $at_traceoff
-$as_echo "$at_srcdir/sparse04.at:35:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+  { set +x
+$as_echo "$at_srcdir/xattr03.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
-tar -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar t
-)"
-echo sparse04.at:35 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
-tar -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar t
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
-tar -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar t
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparse04.at:35"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_96
-#AT_START_97
-# 97. sparsemv.at:21: sparse files in MV archives
-at_setup_line='sparsemv.at:21'
-at_desc="sparse files in MV archives"
-$at_quiet $as_echo_n " 97: $at_desc                    "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "97. sparsemv.at:21: testing ..."
-  $at_traceon
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-# Check if sparse files are correctly split between GNU multi-volume
-# archives.
-# There are two cases: the file can be split within an empty (null) block,
-# or within a data block. Since null blocks are not archived, the first
-# case means the file is split between two consecutive data blocks.
-#
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
 
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/sparsemv.at:31:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+rm -rf dir
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo \"Pass 1: Split between data blocks\"
-echo \"Create archive\"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo \"Test archive\"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo \"Compare archive\"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
 
-echo \"Pass 2: Split within a data block\"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo \"Create archive\"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo \"Test archive\"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo \"Compare archive\"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^\$
 )"
-echo sparsemv.at:31 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
-Create archive
-Test archive
-sparsefile
-Compare archive
-Pass 2: Split within a data block
-Create archive
-Test archive
-sparsefile
-Compare archive
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "trusted.test=\"OurFile1Value\"
+trusted.test=\"OurFile2Value\"
+trusted.test=\"OurDirValue\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/sparsemv.at:31:
+              { set +x
+$as_echo "$at_srcdir/xattr03.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -34204,60 +36080,61 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo \"Pass 1: Split between data blocks\"
-echo \"Create archive\"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo \"Test archive\"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo \"Compare archive\"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-echo \"Pass 2: Split within a data block\"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo \"Create archive\"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo \"Test archive\"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo \"Compare archive\"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
-)"
-echo sparsemv.at:31 >"$at_check_line_file"
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -34266,483 +36143,512 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
-echo "Test archive"
-tar --record-size=512 -t -M -f arc.1 -f arc.2
-echo "Compare archive"
-tar --record-size=512 -d -M -f arc.1 -f arc.2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
-Create archive
-Test archive
-sparsefile
-Compare archive
-Pass 2: Split within a data block
-Create archive
-Test archive
-sparsefile
-Compare archive
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_97
-#AT_START_98
-# 98. spmvp00.at:21: sparse files in PAX MV archives, v.0.0
-at_setup_line='spmvp00.at:21'
-at_desc="sparse files in PAX MV archives, v.0.0"
-$at_quiet $as_echo_n " 98: $at_desc         "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "98. spmvp00.at:21: testing ..."
-  $at_traceon
 
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
-  { $at_traceoff
-$as_echo "$at_srcdir/spmvp00.at:24:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "trusted.test=\"OurFile1Value\"
+trusted.test=\"OurFile2Value\"
+trusted.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr03.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
-echo \"Pass 1: Split between data blocks\"
-echo \"Create archive\"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo \"Pass 2: Split within a data block\"
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo \"Create archive\"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-)"
-echo spmvp00.at:24 >"$at_check_line_file"
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "trusted.test=\"OurFile1Value\"
+trusted.test=\"OurFile2Value\"
+trusted.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr03.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
-Create archive
-Test archive
-sparsefile
-Compare archive
-Pass 2: Split within a data block
-Create archive
-Test archive
-sparsefile
-Compare archive
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/spmvp00.at:24"
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_98
-#AT_START_99
-# 99. spmvp01.at:21: sparse files in PAX MV archives, v.0.1
-at_setup_line='spmvp01.at:21'
-at_desc="sparse files in PAX MV archives, v.0.1"
-$at_quiet $as_echo_n " 99: $at_desc         "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "99. spmvp01.at:21: testing ..."
-  $at_traceon
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
-  { $at_traceoff
-$as_echo "$at_srcdir/spmvp01.at:24:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
-export TAR_OPTIONS
-rm -rf *
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo \"Pass 1: Split between data blocks\"
-echo \"Create archive\"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-echo \"Pass 2: Split within a data block\"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo \"Create archive\"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-)"
-echo spmvp01.at:24 >"$at_check_line_file"
+rm -rf dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
-export TAR_OPTIONS
-rm -rf *
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
-Create archive
-Test archive
-sparsefile
-Compare archive
-Pass 2: Split within a data block
-Create archive
-Test archive
-sparsefile
-Compare archive
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/spmvp01.at:24"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_99
-#AT_START_100
-# 100. spmvp10.at:21: sparse files in PAX MV archives, v.1.0
-at_setup_line='spmvp10.at:21'
-at_desc="sparse files in PAX MV archives, v.1.0"
-$at_quiet $as_echo_n "100: $at_desc         "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "100. spmvp10.at:21: testing ..."
-  $at_traceon
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
 
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
 
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/spmvp10.at:24:
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H pax\"
-export TAR_OPTIONS
-rm -rf *
+rm -rf dir
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo \"Pass 1: Split between data blocks\"
-echo \"Create archive\"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
 
-echo \"Pass 2: Split within a data block\"
-genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
-echo \"Create archive\"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo \"Test archive\"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo \"Compare archive\"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-)"
-echo spmvp10.at:24 >"$at_check_line_file"
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "trusted.test=\"OurFile1Value\"
+trusted.test=\"OurFile2Value\"
+trusted.test=\"OurDirValue\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+              { set +x
+$as_echo "$at_srcdir/xattr03.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir pax
-(cd pax
-TEST_TAR_FORMAT=pax
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^\$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^\$
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H pax"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-exec <&-
-genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
-echo "Pass 1: Split between data blocks"
-echo "Create archive"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
 
-echo "Pass 2: Split within a data block"
-genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
-echo "Create archive"
-tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
-echo "Test archive"
-tar -t -M -f arc.1 -f arc.2 -f arc.3
-echo "Compare archive"
-tar -d -M -f arc.1 -f arc.2 -f arc.3
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks
-Create archive
-Test archive
-sparsefile
-Compare archive
-Pass 2: Split within a data block
-Create archive
-Test archive
-sparsefile
-Compare archive
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "trusted.test=\"OurFile1Value\"
+trusted.test=\"OurFile2Value\"
+trusted.test=\"OurDirValue\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/spmvp10.at:24"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_100
-#AT_START_101
-# 101. update.at:28: update unchanged directories
-at_setup_line='update.at:28'
-at_desc="update unchanged directories"
-$at_quiet $as_echo_n "101: $at_desc                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_167
+#AT_START_168
+at_fn_group_banner 168 'xattr04.at:26' \
+  "xattrs: s/open/openat/ regression" "              " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "101. update.at:28: testing ..."
+  $as_echo "168. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/update.at:31:
+  { set +x
+$as_echo "$at_srcdir/xattr04.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -34752,47 +36658,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-)"
-echo update.at:31 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=\$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^\$
+exit \$ret
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -34802,36 +36707,57 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-directory/
-directory/file1
-directory/file2
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"value\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update.at:31:
+              { set +x
+$as_echo "$at_srcdir/xattr04.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -34841,47 +36767,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-)"
-echo update.at:31 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=\$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^\$
+exit \$ret
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -34891,36 +36816,57 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-directory/
-directory/file1
-directory/file2
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"value\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update.at:31:
+              { set +x
+$as_echo "$at_srcdir/xattr04.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -34930,47 +36876,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-)"
-echo update.at:31 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=\$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^\$
+exit \$ret
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -34980,86 +36925,106 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-directory/
-directory/file1
-directory/file2
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update.at:31"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update.at:31:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-)"
-echo update.at:31 >"$at_check_line_file"
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"value\"
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+              { set +x
+$as_echo "$at_srcdir/xattr04.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=\$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^\$
+exit \$ret
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -35069,36 +37034,57 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-directory/
-directory/file1
-directory/file2
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"value\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update.at:31:
+              { set +x
+$as_echo "$at_srcdir/xattr04.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -35108,47 +37094,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-)"
-echo update.at:31 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=\$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^\$
+exit \$ret
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -35158,60 +37143,78 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir directory
-genfile --length 10240 --pattern zeros --file directory/file1
-genfile --length 10240 --pattern default --file directory/file2
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf archive directory || exit 1
-echo separator
-tar uf archive directory || exit 1
-echo separator
-tar tf archive | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-directory/
-directory/file1
-directory/file2
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "user.test=\"value\"
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update.at:31"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_101
-#AT_START_102
-# 102. update01.at:29: update directories
-at_setup_line='update01.at:29'
-at_desc="update directories"
-$at_quiet $as_echo_n "102: $at_desc                             "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_168
+#AT_START_169
+at_fn_group_banner 169 'xattr05.at:28' \
+  "xattrs: keywords with '=' and '%'" "              " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "102. update01.at:29: testing ..."
+  $as_echo "169. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/update01.at:32:
+  { set +x
+$as_echo "$at_srcdir/xattr05.at:31:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -35221,55 +37224,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir a
-genfile --file a/b
-
-tar cf arc a
 
-echo \"separator\"
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-sleep 2
-genfile --file a/c
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update01.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+mkdir dir
+mkdir output
+genfile --file dir/file
 
-echo "separator"
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
 
-sleep 2
-genfile --file a/c
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -35279,201 +37273,211 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir a
-genfile --file a/b
-
-tar cf arc a
-
-echo "separator"
-
-sleep 2
-genfile --file a/c
-
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/c
-separator
-a/
-a/b
-a/c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update01.at:32"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
-
-              { $at_traceoff
-$as_echo "$at_srcdir/update01.at:32:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo \"separator\"
 
-sleep 2
-genfile --file a/c
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update01.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr05.at:31:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir a
-genfile --file a/b
-
-tar cf arc a
-
-echo "separator"
-
-sleep 2
-genfile --file a/c
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo "separator"
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-sleep 2
-genfile --file a/c
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/c
-separator
-a/
-a/b
-a/c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update01.at:32"
+mkdir dir
+mkdir output
+genfile --file dir/file
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update01.at:32:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf arc a
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo \"separator\"
 
-sleep 2
-genfile --file a/c
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update01.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr05.at:31:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf arc a
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo "separator"
 
-sleep 2
-genfile --file a/c
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -35483,41 +37487,55 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf arc a
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo "separator"
 
-sleep 2
-genfile --file a/c
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/c
-separator
-a/
-a/b
-a/c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update01.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update01.at:32:
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xattr05.at:31:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -35527,55 +37545,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir a
-genfile --file a/b
 
-tar cf arc a
-
-echo \"separator\"
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-sleep 2
-genfile --file a/c
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update01.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+mkdir dir
+mkdir output
+genfile --file dir/file
 
-echo "separator"
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
 
-sleep 2
-genfile --file a/c
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -35585,41 +37594,55 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf arc a
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo "separator"
 
-sleep 2
-genfile --file a/c
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/c
-separator
-a/
-a/b
-a/c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update01.at:32"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update01.at:32:
+              { set +x
+$as_echo "$at_srcdir/xattr05.at:31:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -35629,55 +37652,46 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
-mkdir a
-genfile --file a/b
-
-tar cf arc a
 
-echo \"separator\"
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-sleep 2
-genfile --file a/c
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update01.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+mkdir dir
+mkdir output
+genfile --file dir/file
 
-echo "separator"
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
 
-sleep 2
-genfile --file a/c
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -35687,65 +37701,76 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
-mkdir a
-genfile --file a/b
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar cf arc a
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo "separator"
 
-sleep 2
-genfile --file a/c
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/c
-separator
-a/
-a/b
-a/c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update01.at:32"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_102
-#AT_START_103
-# 103. update02.at:26: update changed files
-at_setup_line='update02.at:26'
-at_desc="update changed files"
-$at_quiet $as_echo_n "103: $at_desc                           "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_169
+#AT_START_170
+at_fn_group_banner 170 'acls01.at:25' \
+  "acls: basic functionality" "                      " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "103. update02.at:26: testing ..."
+  $as_echo "170. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/update02.at:29:
+  { set +x
+$as_echo "$at_srcdir/acls01.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -35755,55 +37780,67 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo \"separator\"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update02.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo "separator"
+  rm -rf \$file
 
-sleep 2
-touch a/b
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/file
+setfacl -m u:\$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -35813,41 +37850,76 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo "separator"
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/b
-separator
-a/
-a/b
-a/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update02.at:29"
 
-$at_failed && at_func_log_failure
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update02.at:29:
+              { set +x
+$as_echo "$at_srcdir/acls01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -35857,55 +37929,67 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo \"separator\"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update02.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo "separator"
+  rm -rf \$file
 
-sleep 2
-touch a/b
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/file
+setfacl -m u:\$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -35915,41 +37999,76 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo "separator"
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/b
-separator
-a/
-a/b
-a/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update02.at:29"
 
-$at_failed && at_func_log_failure
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update02.at:29:
+              { set +x
+$as_echo "$at_srcdir/acls01.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -35959,55 +38078,67 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo \"separator\"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update02.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo "separator"
+  rm -rf \$file
 
-sleep 2
-touch a/b
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/file
+setfacl -m u:\$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -36017,41 +38148,76 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo "separator"
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/b
-separator
-a/
-a/b
-a/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update02.at:29"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update02.at:29:
+              { set +x
+$as_echo "$at_srcdir/acls01.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -36061,27 +38227,67 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo \"separator\"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update02.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/file
+setfacl -m u:\$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -36091,69 +38297,76 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo "separator"
+  rm -rf $file
 
-sleep 2
-touch a/b
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
+mkdir dir
+genfile --file dir/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+MYNAME=$( id -un )
 
-mkdir a
-genfile --file a/b
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
 
-tar cf arc a
+getfattr -h -m. -d dir dir/file > before
 
-echo "separator"
+tar --acls -cf archive.tar dir
+rm -rf dir
 
-sleep 2
-touch a/b
+tar --acls -xf archive.tar
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/b
-separator
-a/
-a/b
-a/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update02.at:29"
+getfattr -h -m. -d dir dir/file > after
 
-$at_failed && at_func_log_failure
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/update02.at:29:
+              { set +x
+$as_echo "$at_srcdir/acls01.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -36163,55 +38376,67 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo \"separator\"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo \"separator\"
-tar tf arc | sort || exit 1
-)"
-echo update02.at:29 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-mkdir a
-genfile --file a/b
 
-tar cf arc a
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo "separator"
+  rm -rf \$file
 
-sleep 2
-touch a/b
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/file
+setfacl -m u:\$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -36221,65 +38446,97 @@ export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-mkdir a
-genfile --file a/b
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar cf arc a
 
-echo "separator"
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-sleep 2
-touch a/b
 
-tar ufv arc a
-echo "separator"
-tar tf arc | sort || exit 1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-a/b
-separator
-a/
-a/b
-a/b
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/update02.at:29"
 
-$at_failed && at_func_log_failure
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/file
+setfacl -m u:$MYNAME:--x dir
+
+getfattr -h -m. -d dir dir/file > before
+
+tar --acls -cf archive.tar dir
+rm -rf dir
+
+tar --acls -xf archive.tar
+
+getfattr -h -m. -d dir dir/file > after
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_103
-#AT_START_104
-# 104. verify.at:25: verify
-at_setup_line='verify.at:25'
-at_desc="verify"
-$at_quiet $as_echo_n "104: $at_desc                                         "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_170
+#AT_START_171
+at_fn_group_banner 171 'acls02.at:25' \
+  "acls: work with -C" "                             " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "104. verify.at:25: testing ..."
+  $as_echo "171. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/verify.at:28:
+  { set +x
+$as_echo "$at_srcdir/acls02.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -36288,28 +38545,74 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-)"
-echo verify.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/subdir
+setfacl -m u:\$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -36318,24 +38621,83 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-Verify foo
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verify.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verify.at:28:
+              { set +x
+$as_echo "$at_srcdir/acls02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -36344,28 +38706,74 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-)"
-echo verify.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/subdir
+setfacl -m u:\$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -36374,24 +38782,83 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-Verify foo
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verify.at:28"
 
-$at_failed && at_func_log_failure
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verify.at:28:
+              { set +x
+$as_echo "$at_srcdir/acls02.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -36400,28 +38867,74 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-)"
-echo verify.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=\$( id -un )
+
+setfacl -m u:\$MYNAME:--x dir/subdir
+setfacl -m u:\$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -36430,989 +38943,657 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-Verify foo
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verify.at:28"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verify.at:28:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar -cvf archive.tar --verify foo
-)"
-echo verify.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
+
+MYNAME=$( id -un )
+
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
+
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
+
+mkdir dir
+tar --acls -xf archive.tar -C dir
+
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
+
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/acls02.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-Verify foo
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verify.at:28"
-
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/verify.at:28:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-touch foo
-tar -cvf archive.tar --verify foo
-)"
-echo verify.at:28 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar -cvf archive.tar --verify foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-Verify foo
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/verify.at:28"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_104
-#AT_START_105
-# 105. volume.at:23: volume
-at_setup_line='volume.at:23'
-at_desc="volume"
-$at_quiet $as_echo_n "105: $at_desc                                         "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "105. volume.at:23: testing ..."
-  $at_traceon
 
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
+  rm -rf \$file
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/volume.at:26:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
 
-tar -cf archive -V label -T /dev/null || exit 1
+MYNAME=\$( id -un )
 
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
+setfacl -m u:\$MYNAME:--x dir/subdir
+setfacl -m u:\$MYNAME:--x dir/subdir/file
 
-echo 1>&2 -----
-tar xfV archive lab
-test \$? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test \$? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test \$? = 2
-)"
-echo volume.at:26 >"$at_check_line_file"
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
 
-tar -cf archive -V label -T /dev/null || exit 1
+mkdir dir
+tar --acls -xf archive.tar -C dir
 
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
 
-echo 1>&2 -----
-tar xfV archive lab
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test $? = 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+diff before after
+test \"\$?\" = 0
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-tar -cf archive -V label -T /dev/null || exit 1
-
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
 
-echo 1>&2 -----
-tar xfV archive lab
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test $? = 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: Volume \`label' does not match \`lab'
-tar: Error is not recoverable: exiting now
------
-tar: Volume \`label' does not match \`bel'
-tar: Error is not recoverable: exiting now
------
-tar: Volume \`label' does not match \`babel'
-tar: Error is not recoverable: exiting now
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volume.at:26"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-              { $at_traceoff
-$as_echo "$at_srcdir/volume.at:26:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
 
-tar -cf archive -V label -T /dev/null || exit 1
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
 
-echo 1>&2 -----
-tar xfV archive lab
-test \$? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test \$? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test \$? = 2
-)"
-echo volume.at:26 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-tar -cf archive -V label -T /dev/null || exit 1
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo 1>&2 -----
-tar xfV archive lab
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test $? = 2
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-tar -cf archive -V label -T /dev/null || exit 1
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar xfV archive label || exit 1
-tar xfV archive 'la?el' || exit 1
-tar xfV archive 'l*l' || exit 1
+  rm -rf $file
 
-echo 1>&2 -----
-tar xfV archive lab
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive bel
-test $? = 2 || exit 1
-echo 1>&2 -----
-tar xfV archive babel
-test $? = 2
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "-----
-tar: Volume \`label' does not match \`lab'
-tar: Error is not recoverable: exiting now
------
-tar: Volume \`label' does not match \`bel'
-tar: Error is not recoverable: exiting now
------
-tar: Volume \`label' does not match \`babel'
-tar: Error is not recoverable: exiting now
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volume.at:26"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
 
+MYNAME=$( id -un )
 
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_105
-#AT_START_106
-# 106. volsize.at:29: volume header size
-at_setup_line='volsize.at:29'
-at_desc="volume header size"
-$at_quiet $as_echo_n "106: $at_desc                             "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "106. volsize.at:29: testing ..."
-  $at_traceon
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
 
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
 
+mkdir dir
+tar --acls -xf archive.tar -C dir
 
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
 
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  { $at_traceoff
-$as_echo "$at_srcdir/volsize.at:32:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
+              { set +x
+$as_echo "$at_srcdir/acls02.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf \$TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf \$TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf \$TEST_DATA_DIR/abc.tar
-find abc|sort
-)"
-echo volsize.at:32 >"$at_check_line_file"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  rm -rf \$file
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+MYNAME=\$( id -un )
 
-              { $at_traceoff
-$as_echo "$at_srcdir/volsize.at:32:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
+setfacl -m u:\$MYNAME:--x dir/subdir
+setfacl -m u:\$MYNAME:--x dir/subdir/file
 
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
 
+mkdir dir
+tar --acls -xf archive.tar -C dir
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
 
-echo Short Listing
-tar tf \$TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf \$TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf \$TEST_DATA_DIR/abc.tar
-find abc|sort
+diff before after
+test \"\$?\" = 0
 )"
-echo volsize.at:32 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
+at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
+  rm -rf $file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+mkdir dir
+mkdir dir/subdir
+genfile --file dir/subdir/file
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+MYNAME=$( id -un )
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+setfacl -m u:$MYNAME:--x dir/subdir
+setfacl -m u:$MYNAME:--x dir/subdir/file
 
-              { $at_traceoff
-$as_echo "$at_srcdir/volsize.at:32:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../before
+cd ..
 
+tar --acls -cf archive.tar -C dir subdir
+rm -rf dir
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+mkdir dir
+tar --acls -xf archive.tar -C dir
 
+cd dir
+getfattr -h -m. -d subdir subdir/file > ../after
+cd ..
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+diff before after
+test "$?" = 0
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-echo Short Listing
-tar tf \$TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf \$TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf \$TEST_DATA_DIR/abc.tar
-find abc|sort
-)"
-echo volsize.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_171
+#AT_START_172
+at_fn_group_banner 172 'selnx01.at:25' \
+  "selinux: basic store/restore" "                   " 25
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "172. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+
+
+  { set +x
+$as_echo "$at_srcdir/selnx01.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/volsize.at:32:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf \$TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf \$TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf \$TEST_DATA_DIR/abc.tar
-find abc|sort
-)"
-echo volsize.at:32 >"$at_check_line_file"
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  rm -rf \$file
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
 
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+# clear the directory
+rm -rf dir
 
+# ================================================
+# check if selinux contexts are correctly restored
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+tar --selinux -xf archive.tar
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32"
+# archive for later debugging
+cp archive.tar archive_origin.tar
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
+    grep -v -e '^#' -e ^\$ | cut -d: -f1
 
-              { $at_traceoff
-$as_echo "$at_srcdir/volsize.at:32:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
 
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+diff with_selinux without_selinux > diff_with_without
+if test \"\$?\" -eq \"0\"; then
+    echo \"selinux contexts probably restored while --selinux is off\"
+fi
 
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+tar -cf archive.tar dir
 
-echo Short Listing
-tar tf \$TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf \$TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf \$TEST_DATA_DIR/abc.tar
-find abc|sort
-)"
-echo volsize.at:32 >"$at_check_line_file"
+# clear the directory
+rm -rf dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test \"\$?\" -ne \"0\"; then
+    echo \"bad result\"
+fi
+
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
 
 
-test -z "$TEST_DATA_DIR" && exit 77
-tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-echo Short Listing
-tar tf $TEST_DATA_DIR/abc.tar
-echo Verbose Listing
-tar --utc -tvf $TEST_DATA_DIR/abc.tar
-echo Extracted directory
-tar xf $TEST_DATA_DIR/abc.tar
-find abc|sort
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
+  rm -rf $file
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_106
-#AT_START_107
-# 107. comprec.at:21: compressed format recognition
-at_setup_line='comprec.at:21'
-at_desc="compressed format recognition"
-$at_quiet $as_echo_n "107: $at_desc                  "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "107. comprec.at:21: testing ..."
-  $at_traceon
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
 
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
 
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
 
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
 
+# clear the directory
+rm -rf dir
 
+# ================================================
+# check if selinux contexts are correctly restored
 
-  { $at_traceoff
-$as_echo "$at_srcdir/comprec.at:25:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
-export TAR_OPTIONS
-rm -rf *
+tar --selinux -xf archive.tar
 
+# archive for later debugging
+cp archive.tar archive_origin.tar
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
 
-genfile --length 10240 --file file1
-echo \"separator\"
-tar cfz archive file1
-echo \"separator\"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-)"
-echo comprec.at:25 >"$at_check_line_file"
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
 
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
+fi
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+tar -cf archive.tar dir
 
+# clear the directory
+rm -rf dir
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stderr"
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
 fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-file1
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "security.selinux=\"system_u
+security.selinux=\"unconfined_u
+security.selinux=\"system_u
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/comprec.at:25:
+              { set +x
+$as_echo "$at_srcdir/selnx01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -37422,43 +39603,106 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo \"separator\"
-tar cfz archive file1
-echo \"separator\"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-)"
-echo comprec.at:25 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
+    grep -v -e '^#' -e ^\$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test \"\$?\" -eq \"0\"; then
+    echo \"selinux contexts probably restored while --selinux is off\"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test \"\$?\" -ne \"0\"; then
+    echo \"bad result\"
+fi
+
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -37468,32 +39712,119 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stderr"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
 fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-file1
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
+fi
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "security.selinux=\"system_u
+security.selinux=\"unconfined_u
+security.selinux=\"system_u
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/comprec.at:25:
+              { set +x
+$as_echo "$at_srcdir/selnx01.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -37503,21 +39834,106 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
 
-genfile --length 10240 --file file1
-echo \"separator\"
-tar cfz archive file1
-echo \"separator\"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-)"
-echo comprec.at:25 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
+    grep -v -e '^#' -e ^\$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test \"\$?\" -eq \"0\"; then
+    echo \"selinux contexts probably restored while --selinux is off\"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test \"\$?\" -ne \"0\"; then
+    echo \"bad result\"
+fi
+
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -37527,54 +39943,119 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+tar -cf archive.tar dir
 
+# clear the directory
+rm -rf dir
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stderr"
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
 fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-file1
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "security.selinux=\"system_u
+security.selinux=\"unconfined_u
+security.selinux=\"system_u
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/comprec.at:25:
+              { set +x
+$as_echo "$at_srcdir/selnx01.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -37584,43 +40065,106 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo \"separator\"
-tar cfz archive file1
-echo \"separator\"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-)"
-echo comprec.at:25 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
+    grep -v -e '^#' -e ^\$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test \"\$?\" -eq \"0\"; then
+    echo \"selinux contexts probably restored while --selinux is off\"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test \"\$?\" -ne \"0\"; then
+    echo \"bad result\"
+fi
+
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -37630,32 +40174,119 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stderr"
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
 fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-file1
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
+fi
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "security.selinux=\"system_u
+security.selinux=\"unconfined_u
+security.selinux=\"system_u
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/comprec.at:25:
+              { set +x
+$as_echo "$at_srcdir/selnx01.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -37665,118 +40296,106 @@ export TAR_OPTIONS
 rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo \"separator\"
-tar cfz archive file1
-echo \"separator\"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-)"
-echo comprec.at:25 >"$at_check_line_file"
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --length 10240 --file file1
-echo "separator"
-tar cfz archive file1
-echo "separator"
-mv file1 orig
-tar xfv archive --warning=no-timestamp
-cmp orig file1
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "separator
-separator
-file1
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
 
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_107
-#AT_START_108
-# 108. shortfile.at:26: short input files
-at_setup_line='shortfile.at:26'
-at_desc="short input files"
-$at_quiet $as_echo_n "108: $at_desc                              "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "108. shortfile.at:26: testing ..."
-  $at_traceon
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
 
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
 
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
 
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
 
+# clear the directory
+rm -rf dir
 
-  { $at_traceoff
-$as_echo "$at_srcdir/shortfile.at:29:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
+# ================================================
+# check if selinux contexts are correctly restored
 
-genfile --length 511 --file foo || exit 5
-tar tf foo
-)"
-echo shortfile.at:29 >"$at_check_line_file"
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
+    grep -v -e '^#' -e ^\$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test \"\$?\" -eq \"0\"; then
+    echo \"selinux contexts probably restored while --selinux is off\"
+fi
+
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test \"\$?\" -ne \"0\"; then
+    echo \"bad result\"
+fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -37785,62 +40404,141 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length 511 --file foo || exit 5
-tar tf foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length 511 --file foo || exit 5
-tar tf foo
-) ) >"$at_stdout" 2>"$at_stderr"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+genfile --file dir/file
+ln -s file dir/link
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
+
+restorecon -R dir
+chcon -h --user=system_u     dir
+chcon -h --user=unconfined_u dir/file
+chcon -h --user=system_u     dir/link
+
+# archive whole directory including selinux contexts
+tar --selinux -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# ================================================
+# check if selinux contexts are correctly restored
+
+tar --selinux -xf archive.tar
+
+# archive for later debugging
+cp archive.tar archive_origin.tar
+
+# check if selinux contexts were restored
+getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
+    grep -v -e '^#' -e ^$ | cut -d: -f1
+
+# ===========================================================================
+# check if selinux contexts are not restored when --selinux option is missing
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
+rm -rf dir
+tar -xf archive.tar
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
+
+diff with_selinux without_selinux > diff_with_without
+if test "$?" -eq "0"; then
+    echo "selinux contexts probably restored while --selinux is off"
 fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: This does not look like a tar archive
-tar: Exiting with failure status due to previous errors
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/shortfile.at:29"
 
-$at_failed && at_func_log_failure
+# =================================================================
+# check if selinux is not archived when --selinux option is missing
+
+tar -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore (with --selinux)
+tar --selinux -xf archive.tar dir
+
+getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
+diff start final > final_diff
+if test "$?" -ne "0"; then
+    echo "bad result"
+fi
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "security.selinux=\"system_u
+security.selinux=\"unconfined_u
+security.selinux=\"system_u
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_108
-#AT_START_109
-# 109. shortupd.at:29: updating short archives
-at_setup_line='shortupd.at:29'
-at_desc="updating short archives"
-$at_quiet $as_echo_n "109: $at_desc                        "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_172
+#AT_START_173
+at_fn_group_banner 173 'selacl01.at:25' \
+  "acls/selinux: special files & fifos" "            " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "109. shortupd.at:29: testing ..."
+  $as_echo "173. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/shortupd.at:32:
+  { set +x
+$as_echo "$at_srcdir/selacl01.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -37849,28 +40547,107 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar uf archive foo
-)"
-echo shortupd.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
+MINOR=\$( stat /dev/urandom --printf=\"%T\" )
+mknod dir/chartype c \$MAJOR \$MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:\$UID:--- dir/fifo
+setfacl -m u:\$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
+echo separator
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -37879,21 +40656,118 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortupd.at:32"
 
-$at_failed && at_func_log_failure
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
+echo separator
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortupd.at:32:
+              { set +x
+$as_echo "$at_srcdir/selacl01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -37902,384 +40776,227 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar uf archive foo
-)"
-echo shortupd.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortupd.at:32"
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortupd.at:32:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar uf archive foo
-)"
-echo shortupd.at:32 >"$at_check_line_file"
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortupd.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortupd.at:32:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar uf archive foo
-)"
-echo shortupd.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
+MINOR=\$( stat /dev/urandom --printf=\"%T\" )
+mknod dir/chartype c \$MAJOR \$MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:\$UID:--- dir/fifo
+setfacl -m u:\$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
+echo separator
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortupd.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
 
-              { $at_traceoff
-$as_echo "$at_srcdir/shortupd.at:32:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
-export TAR_OPTIONS
-rm -rf *
 
-touch foo
-tar uf archive foo
-)"
-echo shortupd.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-touch foo
-tar uf archive foo
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/shortupd.at:32"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
+  rm -rf $file
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_109
-#AT_START_110
-# 110. truncate.at:29: truncate
-at_setup_line='truncate.at:29'
-at_desc="truncate"
-$at_quiet $as_echo_n "110: $at_desc                                       "
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "110. truncate.at:29: testing ..."
-  $at_traceon
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-  { $at_traceoff
-$as_echo "$at_srcdir/truncate.at:32:
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H v7\"
-export TAR_OPTIONS
-rm -rf *
+  rm -rf $file
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: \$?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar)"
-echo truncate.at:32 >"$at_check_line_file"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-Exit status: 1
-separator
-foo
-foo: Mod time differs
-baz
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/truncate.at:32"
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
 
-              { $at_traceoff
-$as_echo "$at_srcdir/truncate.at:32:
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H oldgnu\"
-export TAR_OPTIONS
-rm -rf *
+tar --xattrs --selinux --acls -cf archive.tar dir
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: \$?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar)"
-echo truncate.at:32 >"$at_check_line_file"
+mv dir olddir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+tar --xattrs --selinux --acls -xf archive.tar
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-Exit status: 1
-separator
-foo
-foo: Mod time differs
-baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/truncate.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/truncate.at:32:
+              { set +x
+$as_echo "$at_srcdir/selacl01.at:28:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -38288,36 +41005,107 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: \$?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar)"
-echo truncate.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
+MINOR=\$( stat /dev/urandom --printf=\"%T\" )
+mknod dir/chartype c \$MAJOR \$MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:\$UID:--- dir/fifo
+setfacl -m u:\$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
+( $at_check_trace;
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -38326,35 +41114,118 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-Exit status: 1
-separator
-foo
-foo: Mod time differs
-baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/truncate.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/truncate.at:32:
+              { set +x
+$as_echo "$at_srcdir/selacl01.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -38363,36 +41234,107 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: \$?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar)"
-echo truncate.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
+MINOR=\$( stat /dev/urandom --printf=\"%T\" )
+mknod dir/chartype c \$MAJOR \$MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:\$UID:--- dir/fifo
+setfacl -m u:\$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
+( $at_check_trace;
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -38401,35 +41343,118 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-Exit status: 1
-separator
-foo
-foo: Mod time differs
-baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/truncate.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/truncate.at:32:
+              { set +x
+$as_echo "$at_srcdir/selacl01.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -38438,36 +41463,107 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: \$?
-echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar)"
-echo truncate.at:32 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:\$UID:rwx \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfacl \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:\$UID:rwx \$file
+  err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
+MINOR=\$( stat /dev/urandom --printf=\"%T\" )
+mknod dir/chartype c \$MAJOR \$MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:\$UID:--- dir/fifo
+setfacl -m u:\$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
+( $at_check_trace;
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -38476,59 +41572,139 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 200k
-genfile --file baz
-genfile --run --checkpoint 10 --length 195k --truncate foo -- tar --checkpoint --checkpoint-action=echo --checkpoint-action=sleep=1 -vcf bar foo baz
-echo Exit status: $?
+
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  restorecon $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  chcon -h --user=unconfined_u $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfacl -m u:$UID:rwx $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfacl $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+mkdir dir
+mkfifo dir/fifo
+MAJOR=$( stat /dev/urandom --printf="%t" )
+MINOR=$( stat /dev/urandom --printf="%T" )
+mknod dir/chartype c $MAJOR $MINOR
+
+# setup attributes
+restorecon -R dir
+chcon -h --user=system_u dir/fifo
+chcon -h --user=system_u dir/chartype
+setfacl -m u:$UID:--- dir/fifo
+setfacl -m u:$UID:rwx dir/chartype
+
+getfacl dir/fifo >> before
+getfattr -msecurity.selinux dir/chartype >> before
+
+tar --xattrs --selinux --acls -cf archive.tar dir
+
+mv dir olddir
+
+tar --xattrs --selinux --acls -xf archive.tar
+
+getfacl dir/fifo >> after
+getfattr -msecurity.selinux dir/chartype >> after
+
+diff before after
 echo separator
-genfile --file foo --seek 195k --length 5k --pattern=zeros
-tar dvf bar) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 5120 bytes; padding with zeros
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-Exit status: 1
-separator
-foo
-foo: Mod time differs
-baz
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/truncate.at:32"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_110
-#AT_START_111
-# 111. grow.at:24: grow
-at_setup_line='grow.at:24'
-at_desc="grow"
-$at_quiet $as_echo_n "111: $at_desc                                           "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_173
+#AT_START_174
+at_fn_group_banner 174 'capabs_raw01.at:25' \
+  "capabilities: binary store/restore" "             " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "111. grow.at:24: testing ..."
+  $as_echo "174. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
-  { $at_traceoff
-$as_echo "$at_srcdir/grow.at:27:
+  { set +x
+$as_echo "$at_srcdir/capabs_raw01.at:28:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -38537,30 +41713,73 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-)"
-echo grow.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir v7
-(cd v7
-TEST_TAR_FORMAT=v7
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H v7"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap \"= cap_chown=ei\" \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getcap \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+
+mkdir dir
+genfile --file dir/file
+
+setcap \"= cap_chown=ei\" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
+( $at_check_trace;
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -38569,27 +41788,84 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
+
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
+
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap "= cap_chown=ei" $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getcap $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+
+mkdir dir
+genfile --file dir/file
+
+setcap "= cap_chown=ei" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/file = cap_chown+ei
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/grow.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/grow.at:27:
+              { set +x
+$as_echo "$at_srcdir/capabs_raw01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -38598,30 +41874,73 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-)"
-echo grow.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir oldgnu
-(cd oldgnu
-TEST_TAR_FORMAT=oldgnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H oldgnu"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap \"= cap_chown=ei\" \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getcap \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+
+mkdir dir
+genfile --file dir/file
+
+setcap \"= cap_chown=ei\" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
+( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -38630,703 +41949,607 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/grow.at:27"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
 
-              { $at_traceoff
-$as_echo "$at_srcdir/grow.at:27:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-)"
-echo grow.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/grow.at:27"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-              { $at_traceoff
-$as_echo "$at_srcdir/grow.at:27:
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H posix\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-)"
-echo grow.at:27 >"$at_check_line_file"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir posix
-(cd posix
-TEST_TAR_FORMAT=posix
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H posix"
-export TAR_OPTIONS
-rm -rf *
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap "= cap_chown=ei" $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getcap $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
+
+
+mkdir dir
+genfile --file dir/file
+
+setcap "= cap_chown=ei" dir/file
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/file = cap_chown+ei
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/grow.at:27"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
-              { $at_traceoff
-$as_echo "$at_srcdir/grow.at:27:
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
+              { set +x
+$as_echo "$at_srcdir/capabs_raw01.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H gnu\"
+TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-)"
-echo grow.at:27 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir gnu
-(cd gnu
-TEST_TAR_FORMAT=gnu
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H gnu"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --file foo --length 50000k
-genfile --file baz
-genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz
-) ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar: foo: file changed as we read it
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "foo
-baz
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 1 $at_status "$at_srcdir/grow.at:27"
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_111
-#AT_START_112
-# 112. remfiles01.at:28: remove-files with compression
-at_setup_line='remfiles01.at:28'
-at_desc="remove-files with compression"
-$at_quiet $as_echo_n "112: $at_desc                  "
-at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "112. remfiles01.at:28: testing ..."
-  $at_traceon
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-unset TAR_OPTIONS
-{ $at_traceoff
-$as_echo "$at_srcdir/remfiles01.at:32:
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap \"= cap_chown=ei\" \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getcap \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
+
+
+mkdir dir
+genfile --file dir/file
+
+setcap \"= cap_chown=ei\" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
 
 echo "test" > $$
 chmod 0 $$
 cat $$ > /dev/null 2>&1
 result=$?
 rm -f $$
-test $result -eq 0 && exit 77
+test $result -eq 0 || exit 77
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
+
+
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap "= cap_chown=ei" $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+
+  getcap $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
+
+  rm -rf $file
 
 
 mkdir dir
-cd dir
-genfile --file a --length 0
-chmod 0 a
-genfile --file b
-mkdir c
+genfile --file dir/file
 
-# Depending on when the SIGPIPE gets delivered, the invocation below
-# may finish with either
-#  tar: a: Cannot write: Broken pipe
-# or
-#  tar: Child returned status 2
+setcap "= cap_chown=ei" dir/file
 
-# Discard diagnostics that some shells generate about broken pipes,
-# and discard all of tar's diagnostics except for the ones saying \"(child)\".
-# Gzip's exit code is propagated to the shell.  Usually it is 141.
-# Convert all non-zero exits to 2 to make it predictable.
-(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
-EC=\$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit \$EC
-"
-echo remfiles01.at:32 >"$at_check_line_file"
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+# clear the directory
+rm -rf dir
 
-echo "test" > $$
-chmod 0 $$
-cat $$ > /dev/null 2>&1
-result=$?
-rm -f $$
-test $result -eq 0 && exit 77
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
 
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/file = cap_chown+ei
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+              { set +x
+$as_echo "$at_srcdir/capabs_raw01.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
+
+
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+
+  setcap \"= cap_chown=ei\" \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+
+  getcap \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
+
+  rm -rf \$file
 
 
 mkdir dir
-cd dir
-genfile --file a --length 0
-chmod 0 a
-genfile --file b
-mkdir c
+genfile --file dir/file
 
-# Depending on when the SIGPIPE gets delivered, the invocation below
-# may finish with either
-#  tar: a: Cannot write: Broken pipe
-# or
-#  tar: Child returned status 2
+setcap \"= cap_chown=ei\" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
+
+# clear the directory
+rm -rf dir
+
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
+
+getcap dir/file
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
 
-# Discard diagnostics that some shells generate about broken pipes,
-# and discard all of tar's diagnostics except for the ones saying "(child)".
-# Gzip's exit code is propagated to the shell.  Usually it is 141.
-# Convert all non-zero exits to 2 to make it predictable.
-(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
-EC=$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit $EC
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
 
 echo "test" > $$
 chmod 0 $$
 cat $$ > /dev/null 2>&1
 result=$?
 rm -f $$
-test $result -eq 0 && exit 77
+test $result -eq 0 || exit 77
 
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-mkdir dir
-cd dir
-genfile --file a --length 0
-chmod 0 a
-genfile --file b
-mkdir c
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-# Depending on when the SIGPIPE gets delivered, the invocation below
-# may finish with either
-#  tar: a: Cannot write: Broken pipe
-# or
-#  tar: Child returned status 2
 
-# Discard diagnostics that some shells generate about broken pipes,
-# and discard all of tar's diagnostics except for the ones saying "(child)".
-# Gzip's exit code is propagated to the shell.  Usually it is 141.
-# Convert all non-zero exits to 2 to make it predictable.
-(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
-EC=$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit $EC
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar (child): a: Cannot open: Permission denied
-tar (child): Error is not recoverable: exiting now
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo ".
-./a
-./b
-./c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/remfiles01.at:32"
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  setcap "= cap_chown=ei" $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_112
-#AT_START_113
-# 113. remfiles02.at:28: remove-files with compression: grand-child
-at_setup_line='remfiles02.at:28'
-at_desc="remove-files with compression: grand-child"
-$at_quiet $as_echo_n "113: $at_desc     "
-at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "113. remfiles02.at:28: testing ..."
-  $at_traceon
+  getcap $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
+  rm -rf $file
 
 
-unset TAR_OPTIONS
-{ $at_traceoff
-$as_echo "$at_srcdir/remfiles02.at:32:
+mkdir dir
+genfile --file dir/file
+
+setcap "= cap_chown=ei" dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+# clear the directory
+rm -rf dir
 
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/file = cap_chown+ei
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/capabs_raw01.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
-mkdir dir
-cd dir
-mkdir a
-genfile --file b
-mkdir c
 
-tar -c -f a -z --remove-files b c 2>err
-EC=\$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit \$EC
-"
-echo remfiles02.at:32 >"$at_check_line_file"
+echo \"test\" > \$\$
+chmod 0 \$\$
+cat \$\$ > /dev/null 2>&1
+result=\$?
+rm -f \$\$
+test \$result -eq 0 || exit 77
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
 
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  setfattr -n user.test -v test \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
 
-mkdir dir
-cd dir
-mkdir a
-genfile --file b
-mkdir c
+  getfattr \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-tar -c -f a -z --remove-files b c 2>err
-EC=$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit $EC
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
 
-cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj \$file
+  # check whether tar fails to store xattrs
+  err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
+  if test \"\$err\" != \"0\"; then
+    exit 77
+  fi
 
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+  file=\$(TMPDIR=. mktemp fiXXXXXX)
 
+  setcap \"= cap_chown=ei\" \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-mkdir dir
-cd dir
-mkdir a
-genfile --file b
-mkdir c
 
-tar -c -f a -z --remove-files b c 2>err
-EC=$?
-sed -n '/(child)/p' err >&2
-rm err
-find . | sort
-exit $EC
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "tar (child): a: Cannot open: Is a directory
-tar (child): Error is not recoverable: exiting now
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo ".
-./a
-./b
-./c
-" | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 2 $at_status "$at_srcdir/remfiles02.at:32"
+  getcap \$file &> /dev/null
+  if test \"\$?\" != 0; then
+    exit 77
+  fi
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+  rm -rf \$file
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_113
-#AT_START_114
-# 114. remfiles03.at:28: remove-files with symbolic links
-at_setup_line='remfiles03.at:28'
-at_desc="remove-files with symbolic links"
-$at_quiet $as_echo_n "114: $at_desc               "
-at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "114. remfiles03.at:28: testing ..."
-  $at_traceon
+mkdir dir
+genfile --file dir/file
 
+setcap \"= cap_chown=ei\" dir/file
 
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
 
-{ $at_traceoff
-$as_echo "$at_srcdir/remfiles03.at:31:
-mkdir a
-mkdir a/b
-ln -s b a/c || exit 77
-tar --remove-files -cf a.tar a
-genfile --stat a
-"
-echo remfiles03.at:31 >"$at_check_line_file"
+# clear the directory
+rm -rf dir
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
-mkdir a
-mkdir a/b
-ln -s b a/c || exit 77
-tar --remove-files -cf a.tar a
-genfile --stat a
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-mkdir a
-mkdir a/b
-ln -s b a/c || exit 77
-tar --remove-files -cf a.tar a
-genfile --stat a
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-echo >>"$at_stderr"; $as_echo "genfile: stat(a) failed: No such file or directory
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/remfiles03.at:31"
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
 
-$at_failed && at_func_log_failure
-$at_traceon; }
+getcap dir/file
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
 
 
-  $at_traceoff
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_114
-#AT_START_115
-# 115. sigpipe.at:19: sigpipe handling
-at_setup_line='sigpipe.at:19'
-at_desc="sigpipe handling"
-$at_quiet $as_echo_n "115: $at_desc                               "
-at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
-(
-  $as_echo "115. sigpipe.at:19: testing ..."
-  $at_traceon
+echo "test" > $$
+chmod 0 $$
+cat $$ > /dev/null 2>&1
+result=$?
+rm -f $$
+test $result -eq 0 || exit 77
 
 
 
-# Description: Tar 1.23 ignored sigpipe which lead to spurious "write
-# error" diagnostics when piping output to another programs.
-# Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
-# References: http://lists.gnu.org/archive/html/bug-tar/2010-03/msg00039.html
-#             <20100319184141.GC30047@wo.int.altlinux.org>
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-{ $at_traceoff
-$as_echo "$at_srcdir/sigpipe.at:28:
+  setfattr -n user.test -v test $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
 
+  getfattr $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-genfile --length 2048 --file first
-genfile --length 2048 --file second
-genfile --length 2049 --file third
 
-tar cf archive first second third
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    exit 77
+  fi
 
-# Discard diagnostics that some shells generate about broken pipes.
-(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
-"
-echo sigpipe.at:28 >"$at_check_line_file"
 
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+  file=$(TMPDIR=. mktemp fiXXXXXX)
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
+  setcap "= cap_chown=ei" $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
 
-genfile --length 2048 --file first
-genfile --length 2048 --file second
-genfile --length 2049 --file third
+  getcap $file &> /dev/null
+  if test "$?" != 0; then
+    exit 77
+  fi
 
-tar cf archive first second third
+  rm -rf $file
 
-# Discard diagnostics that some shells generate about broken pipes.
-(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
 
-case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
-?*) exit 77;;
-esac
+mkdir dir
+genfile --file dir/file
 
+setcap "= cap_chown=ei" dir/file
 
-genfile --length 2048 --file first
-genfile --length 2048 --file second
-genfile --length 2049 --file third
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar dir
 
-tar cf archive first second third
+# clear the directory
+rm -rf dir
 
-# Discard diagnostics that some shells generate about broken pipes.
-(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
-at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/sigpipe.at:28"
+# restore _all_ xattrs (not just the user.* domain)
+tar --xattrs --xattrs-include='*' -xf archive.tar
 
-$at_failed && at_func_log_failure
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/file = cap_chown+ei
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+
+
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_115
-#AT_START_116
-# 116. gtarfail.at:21: gtarfail
-at_setup_line='gtarfail.at:21'
-at_desc="gtarfail"
-$at_quiet $as_echo_n "116: $at_desc                                       "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_174
+#AT_START_175
+at_fn_group_banner 175 'gtarfail.at:21' \
+  "gtarfail" "                                       " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "116. gtarfail.at:21: testing ..."
+  $as_echo "175. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/gtarfail.at:26:
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
 tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail.tar
 "
-echo gtarfail.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:26"
+( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
 tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
 
 
 tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
-
-
-tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "-rw-r--r-- jes/glone       518 2001-05-25 14:41 vedpowered.gif
 -rw-r--r-- jes/glone      6825 1997-04-29 00:19 cd.gif
 -rw-r--r-- jes/glone     33354 1999-06-22 12:17 DSCN0049c.JPG
@@ -39335,64 +42558,48 @@ echo >>"$at_stdout"; $as_echo "-rw-r--r-- jes/glone       518 2001-05-25 14:41 v
 -rw-rw-rw- jes/glone    148753 1998-09-15 13:08 billyboy.jpg
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/gtarfail.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_116
-#AT_START_117
-# 117. gtarfail2.at:21: gtarfail2
-at_setup_line='gtarfail2.at:21'
-at_desc="gtarfail2"
-$at_quiet $as_echo_n "117: $at_desc                                      "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_175
+#AT_START_176
+at_fn_group_banner 176 'gtarfail2.at:21' \
+  "gtarfail2" "                                      " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "117. gtarfail2.at:21: testing ..."
+  $as_echo "176. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/gtarfail2.at:26:
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail2.tar
 "
-echo gtarfail2.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:26"
+( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
 tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
 
 tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
 
-tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "-rwxr-xr-x jes/glone       214 2001-09-21 14:08 .clean
 lrwxrwxrwx jes/cats          0 1998-05-07 12:39 RULES -> makefiles/RULES
 drwxr-sr-x jes/glone         0 2001-12-10 00:00 build/
@@ -39405,51 +42612,44 @@ lrwxrwxrwx jes/glone         0 2001-08-29 10:53 build/psmake/archconf.c -> ../ar
 lrwxrwxrwx jes/glone         0 2001-08-29 10:54 build/psmake/astoi.c -> ../../lib/astoi.c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/gtarfail2.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_117
-#AT_START_118
-# 118. multi-fail.at:21: multi-fail
-at_setup_line='multi-fail.at:21'
-at_desc="multi-fail"
-$at_quiet $as_echo_n "118: $at_desc                                     "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_176
+#AT_START_177
+at_fn_group_banner 177 'multi-fail.at:21' \
+  "multi-fail" "                                     " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "118. multi-fail.at:21: testing ..."
+  $as_echo "177. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/multi-fail.at:26:
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
 tar --utc -tvM -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \\
                -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
 "
-echo multi-fail.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:26"
+( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
 tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
@@ -39461,26 +42661,11 @@ tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 $STA
 
 tar --utc -tvM -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \
                -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
-
-
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
 
-
-tar --utc -tvM -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \
-               -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "drwxrwsr-x joerg/bs          0 2003-10-11 14:32 OBJ/i386-sunos5-gcc/
 -rw-r--r-- joerg/bs          1 2003-10-11 14:32 OBJ/i386-sunos5-gcc/Dnull
 -rw-r--r-- joerg/bs       1743 2003-10-10 18:06 OBJ/i386-sunos5-gcc/star.d
@@ -39535,49 +42720,42 @@ echo >>"$at_stdout"; $as_echo "drwxrwsr-x joerg/bs          0 2003-10-11 14:32 O
 -rw-r--r-- joerg/bs       2756 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.o
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/multi-fail.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_118
-#AT_START_119
-# 119. ustar-big-2g.at:21: ustar-big-2g
-at_setup_line='ustar-big-2g.at:21'
-at_desc="ustar-big-2g"
-$at_quiet $as_echo_n "119: $at_desc                                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_177
+#AT_START_178
+at_fn_group_banner 178 'ustar-big-2g.at:21' \
+  "ustar-big-2g" "                                   " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "119. ustar-big-2g.at:21: testing ..."
+  $as_echo "178. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/ustar-big-2g.at:26:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
 "
-echo ustar-big-2g.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-2g.at:26"
+( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -39587,31 +42765,17 @@ tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 $STAR_TESTS
 
 
 tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
-
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
-
-
-tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
 echo stderr:; tee stderr <"$at_stderr"
 echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 2147483647 2002-06-15 14:53 big
 -rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 done
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_119
-#AT_START_120
-# 120. ustar-big-8g.at:21: ustar-big-8g
-at_setup_line='ustar-big-8g.at:21'
-at_desc="ustar-big-8g"
-$at_quiet $as_echo_n "120: $at_desc                                   "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_178
+#AT_START_179
+at_fn_group_banner 179 'ustar-big-8g.at:21' \
+  "ustar-big-8g" "                                   " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "120. ustar-big-8g.at:21: testing ..."
+  $as_echo "179. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/ustar-big-8g.at:26:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
 "
-echo ustar-big-8g.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-8g.at:26"
+( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -39674,31 +42832,17 @@ tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f $STAR_TESTS
 
 
 tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
-
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
-
-
-tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
 echo stderr:; tee stderr <"$at_stderr"
 echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 8589934591 2002-06-15 15:08 8gb-1
 -rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
 done
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_120
-#AT_START_121
-# 121. pax-big-10g.at:21: pax-big-10g
-at_setup_line='pax-big-10g.at:21'
-at_desc="pax-big-10g"
-$at_quiet $as_echo_n "121: $at_desc                                    "
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_179
+#AT_START_180
+at_fn_group_banner 180 'pax-big-10g.at:21' \
+  "pax-big-10g" "                                    " 26
 at_xfail=no
-echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "121. pax-big-10g.at:21: testing ..."
+  $as_echo "180. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 unset TAR_OPTIONS
 
-{ $at_traceoff
+{ set +x
 $as_echo "$at_srcdir/pax-big-10g.at:26:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
+test -z \"\$STAR_TESTSCRIPTS\" && exit 77
+tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
 "
-echo pax-big-10g.at:26 >"$at_check_line_file"
-
-if { echo 'Not enabling shell tracing (command contains an embedded newline)'
-   false; }; then
-  ( $at_traceon;
+at_fn_check_prepare_notrace 'an embedded newline' "pax-big-10g.at:26"
+( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -39761,31 +42899,17 @@ tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff $STAR_TESTSC
 
 
 tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
- ) >"$at_stdout" 2>"$at_stder1"
-  at_func_filter_trace $?
-else
-  ( :;
-
-cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
-
 
-test -z "$STAR_TESTSCRIPTS" && exit 77
-tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
-
-
-tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
- ) >"$at_stdout" 2>"$at_stderr"
-fi
-at_status=$?
-at_failed=false
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
 echo stderr:; tee stderr <"$at_stderr"
 echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 10737418240 2002-06-15 21:18 10g
 -rw-r--r-- jes/glone           0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:26"
-
-$at_failed && at_func_log_failure
+at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:26"
+$at_failed && at_fn_log_failure
 $at_traceon; }
 
 
@@ -39802,8 +42926,8 @@ do
 done
 
 
-  $at_traceoff
+  set +x
   $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 | eval $at_tee_pipe
-at_status=`cat "$at_status_file"`
-#AT_STOP_121
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_180
index a62e79f6ac3e1ee5e0798310b6cc521d747797db..1aab6f72a275d856e467afca070b4888db98972c 100644 (file)
@@ -1,23 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright 2004-2008, 2010-2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # We need a recent Autotest.
 m4_version_prereq([2.52g])
@@ -103,10 +102,79 @@ rm -f $[]$
 test $result -eq 0 && AT_SKIP_TEST
 ])
 
+dnl AT_PRIVILEGED_PREREQ - Skip test if not running at root privileges
+m4_define([AT_PRIVILEGED_PREREQ],[
+echo "test" > $[]$
+chmod 0 $[]$
+cat $[]$ > /dev/null 2>&1
+result=$?
+rm -f $[]$
+test $result -eq 0 || AT_SKIP_TEST
+])
+
 m4_define([AT_TAR_MKHIER],[
 install-sh -d $1 >/dev/null dnl
 m4_if([$2],,,&& genfile --file [$1]/[$2]) || AT_SKIP_TEST])
 
+dnl Skip test when utlity does not return expected return value
+m4_define([AT_CHECK_UTIL],[
+  $1 &> /dev/null
+  if test "$?" != $2; then
+    AT_SKIP_TEST
+  fi
+])
+
+m4_define([AT_XATTRS_UTILS_PREREQ],[
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  AT_CHECK_UTIL(setfattr -n user.test -v test $file,0)
+  AT_CHECK_UTIL(getfattr $file,0)
+])
+m4_define([AT_SELINUX_UTILS_PREREQ],[
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  AT_CHECK_UTIL(restorecon $file, 0)
+  AT_CHECK_UTIL(chcon -h --user=unconfined_u $file,0)
+  rm -rf $file
+])
+m4_define([AT_ACLS_UTILS_PREREQ],[
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  AT_CHECK_UTIL(setfacl -m u:$UID:rwx $file,0)
+  AT_CHECK_UTIL(getfacl $file,0)
+  rm -rf $file
+])
+m4_define([AT_CAPABILITIES_UTILS_PREREQ],[
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  AT_CHECK_UTIL(setcap "= cap_chown=ei" $file,0)
+  AT_CHECK_UTIL(getcap $file,0)
+  rm -rf $file
+])
+m4_define([AT_XATTRS_PREREQ],[
+  AT_XATTRS_UTILS_PREREQ
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfattr -n user.test -v ahoj $file
+  # check whether tar fails to store xattrs
+  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    AT_SKIP_TEST
+  fi
+])
+m4_define([AT_SELINUX_PREREQ],[
+  AT_SELINUX_UTILS_PREREQ
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    AT_SKIP_TEST
+  fi
+])
+m4_define([AT_ACLS_PREREQ],[
+  AT_ACLS_UTILS_PREREQ
+  file=$(TMPDIR=. mktemp fiXXXXXX)
+  setfacl -m u:$UID:rwx $file
+  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
+  if test "$err" != "0"; then
+    AT_SKIP_TEST
+  fi
+])
+
 m4_include([sparsemvp.at])
 
 AT_INIT
@@ -120,20 +188,47 @@ m4_include([pipe.at])
 m4_include([options.at])
 m4_include([options02.at])
 
+AT_BANNER([Option compatibility])
+m4_include([opcomp01.at])
+m4_include([opcomp02.at])
+m4_include([opcomp03.at])
+m4_include([opcomp04.at])
+m4_include([opcomp05.at])
+m4_include([opcomp06.at])
+
+AT_BANNER([The -T option])
+m4_include([T-mult.at])
+m4_include([T-nest.at])
+m4_include([T-rec.at])
+m4_include([T-cd.at])
 m4_include([T-empty.at])
 m4_include([T-null.at])
+m4_include([T-zfile.at])
+m4_include([T-nonl.at])
 
+AT_BANNER([Various options])
 m4_include([indexfile.at])
 m4_include([verbose.at])
+m4_include([gzip.at])
+m4_include([recurse.at])
+m4_include([shortrec.at])
+
+AT_BANNER([The --same-order option])
+m4_include([same-order01.at])
+m4_include([same-order02.at])
 
+AT_BANNER([Append])
 m4_include([append.at])
 m4_include([append01.at])
 m4_include([append02.at])
 m4_include([append03.at])
+m4_include([append04.at])
 
+AT_BANNER([Transforms])
 m4_include([xform-h.at])
 m4_include([xform01.at])
 
+AT_BANNER([Exclude])
 m4_include([exclude.at])
 m4_include([exclude01.at])
 m4_include([exclude02.at])
@@ -141,13 +236,25 @@ m4_include([exclude03.at])
 m4_include([exclude04.at])
 m4_include([exclude05.at])
 m4_include([exclude06.at])
-
+m4_include([exclude07.at])
+m4_include([exclude08.at])
+m4_include([exclude09.at])
+m4_include([exclude10.at])
+m4_include([exclude11.at])
+m4_include([exclude12.at])
+m4_include([exclude13.at])
+m4_include([exclude14.at])
+m4_include([exclude15.at])
+m4_include([exclude16.at])
+
+AT_BANNER([Deletions])
 m4_include([delete01.at])
 m4_include([delete02.at])
 m4_include([delete03.at])
 m4_include([delete04.at])
 m4_include([delete05.at])
 
+AT_BANNER([Extracting])
 m4_include([extrac01.at])
 m4_include([extrac02.at])
 m4_include([extrac03.at])
@@ -165,17 +272,18 @@ m4_include([extrac14.at])
 m4_include([extrac15.at])
 m4_include([extrac16.at])
 m4_include([extrac17.at])
+m4_include([extrac18.at])
+m4_include([extrac19.at])
+m4_include([backup01.at])
 
+AT_BANNER([Volume label operations])
 m4_include([label01.at])
 m4_include([label02.at])
 m4_include([label03.at])
 m4_include([label04.at])
 m4_include([label05.at])
 
-m4_include([backup01.at])
-
-m4_include([gzip.at])
-
+AT_BANNER([Incremental archives])
 m4_include([incremental.at])
 m4_include([incr01.at])
 m4_include([incr02.at])
@@ -183,14 +291,20 @@ m4_include([listed01.at])
 m4_include([listed02.at])
 m4_include([listed03.at])
 m4_include([listed04.at])
+m4_include([listed05.at])
 m4_include([incr03.at])
 m4_include([incr04.at])
 m4_include([incr05.at])
 m4_include([incr06.at])
+m4_include([incr07.at])
+m4_include([incr08.at])
+m4_include([incr09.at])
 
+AT_BANNER([Files removed while archiving])
 m4_include([filerem01.at])
 m4_include([filerem02.at])
 
+AT_BANNER([Renames])
 m4_include([rename01.at])
 m4_include([rename02.at])
 m4_include([rename03.at])
@@ -198,19 +312,26 @@ m4_include([rename04.at])
 m4_include([rename05.at])
 m4_include([chtype.at])
 
+AT_BANNER([Ignore failing reads])
 m4_include([ignfail.at])
 
+AT_BANNER([Link handling])
 m4_include([link01.at])
 m4_include([link02.at])
 m4_include([link03.at])
 m4_include([link04.at])
 
+AT_BANNER([Specific archive formats])
 m4_include([longv7.at])
 m4_include([long01.at])
 m4_include([lustar01.at])
 m4_include([lustar02.at])
 m4_include([lustar03.at])
+m4_include([old.at])
 
+m4_include([time01.at])
+
+AT_BANNER([Multivolume archives])
 m4_include([multiv01.at])
 m4_include([multiv02.at])
 m4_include([multiv03.at])
@@ -220,15 +341,10 @@ m4_include([multiv06.at])
 m4_include([multiv07.at])
 m4_include([multiv08.at])
 
-m4_include([old.at])
-
-m4_include([recurse.at])
-
-m4_include([same-order01.at])
-m4_include([same-order02.at])
-
-m4_include([shortrec.at])
+AT_BANNER([Owner and Groups])
+m4_include([owner.at])
 
+AT_BANNER([Sparse files])
 m4_include([sparse01.at])
 m4_include([sparse02.at])
 m4_include([sparse03.at])
@@ -238,28 +354,66 @@ m4_include([spmvp00.at])
 m4_include([spmvp01.at])
 m4_include([spmvp10.at])
 
+AT_BANNER([Updates])
 m4_include([update.at])
 m4_include([update01.at])
 m4_include([update02.at])
 
+AT_BANNER([Verifying the archive])
 m4_include([verify.at])
 
+AT_BANNER([Volume operations])
 m4_include([volume.at])
 m4_include([volsize.at])
 
+AT_BANNER()
 m4_include([comprec.at])
 m4_include([shortfile.at])
 m4_include([shortupd.at])
 
 m4_include([truncate.at])
 m4_include([grow.at])
+m4_include([sigpipe.at])
 
+AT_BANNER([Removing files after archiving])
 m4_include([remfiles01.at])
 m4_include([remfiles02.at])
 m4_include([remfiles03.at])
-
-m4_include([sigpipe.at])
-
+m4_include([remfiles04a.at])
+m4_include([remfiles04b.at])
+m4_include([remfiles04c.at])
+m4_include([remfiles05a.at])
+m4_include([remfiles05b.at])
+m4_include([remfiles05c.at])
+m4_include([remfiles06a.at])
+m4_include([remfiles06b.at])
+m4_include([remfiles06c.at])
+m4_include([remfiles07a.at])
+m4_include([remfiles07b.at])
+m4_include([remfiles07c.at])
+m4_include([remfiles08a.at])
+m4_include([remfiles08b.at])
+m4_include([remfiles08c.at])
+m4_include([remfiles09a.at])
+m4_include([remfiles09b.at])
+m4_include([remfiles09c.at])
+
+AT_BANNER([Extended attributes])
+m4_include([xattr01.at])
+m4_include([xattr02.at])
+m4_include([xattr03.at])
+m4_include([xattr04.at])
+m4_include([xattr05.at])
+
+m4_include([acls01.at])
+m4_include([acls02.at])
+
+m4_include([selnx01.at])
+m4_include([selacl01.at])
+
+m4_include([capabs_raw01.at])
+
+AT_BANNER([Star tests])
 m4_include([star/gtarfail.at])
 m4_include([star/gtarfail2.at])
 
diff --git a/tests/time01.at b/tests/time01.at
new file mode 100644 (file)
index 0000000..3a63dbc
--- /dev/null
@@ -0,0 +1,70 @@
+# Test time stamps for GNU tar.  -*- Autotest -*-
+#
+# Copyright 2012-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, 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
+
+AT_SETUP([time: tricky time stamps])
+AT_KEYWORDS([time time01])
+
+AT_TAR_CHECK([
+export TZ=UTC0
+mkdir dir
+
+# Test files with time stamps that are near common sources of error,
+# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
+# Use GNU-style @ notation for very large time stamps, since they
+# typically don't render into years correctly due to int overflow.
+for s in \
+  @-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \
+  0000-01-01T00:00:00 0000-01-01T00:00:01 \
+  0000-01-02T00:00:00 \
+  1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \
+  1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \
+  1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \
+  1901-12-14T20:45:51 \
+  1969-12-31T23:59:58 1969-12-31T23:59:59 \
+  1970-01-01T00:00:00 1970-01-01T00:00:01 \
+  2038-01-18T03:14:07 \
+  2038-01-19T03:14:07 2038-01-19T03:14:08 \
+  2106-02-07T06:28:15 2106-02-07T06:28:16 \
+  2242-03-16T12:56:31 2242-03-16T12:56:32 \
+  9999-12-31T23:59:58 9999-12-31T23:59:59 \
+  @9223372036854775807 @9223372036854775808
+do
+  # Skip a time stamp $s if it's out of range for this platform,
+  # of if it uses a notation that this platform does not recognize.
+  touch -d $s dir/f$s >/dev/null 2>&1 || continue
+
+  # Likewise for $s.1.  If $s is the most negative time stamp and
+  # time stamps are signed, then $s.1 is out of range.
+  touch -d $s.1 dir/f$s.$ns >/dev/null 2>&1 || continue
+
+  for frac in   01 001 00001 000001 0000001 00000001 000000001 0000000001 \
+             9 99 999 99999 999999 9999999 99999999 999999999 9999999999
+  do
+    touch -d $s.$frac dir/f$s.$frac
+  done
+done
+
+tar -c -f archive.tar dir
+tar -d -f archive.tar dir
+],
+[0],
+[], [], [], [],
+[pax])
+
+AT_CLEANUP
index 973cbc16b083fb368bf4a72eea45b8fe08f28cd1..3c99c7efbd37711ed4213051d0b6f1d82a5f7baf 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+# Copyright 2005, 2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Tar 1.15.1 incorrectly padded archive members that were truncated during
 # archiving.
index 6e6e5aaa25be96319df2b5c6a40dba382c5a9390..8a1194e4457d9b51855df992a2d55104d8ee61d6 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2005-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check that tar --update does not add non-changed directories to the
 # archive.
index 374b971b7c5581307e96c1d739a57ab873fde8ab..134f69ea4ea19eacdb7dd0a8f0d36471a8ead1c6 100644 (file)
@@ -1,26 +1,26 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: If dir is a directory and arc is a tar archive which
 # contains that directory, and dir contains some modifications added
-# after adding it to the archive, then `tar -u dir' would add dir/ to
+# after adding it to the archive, then 'tar -u dir' would add dir/ to
 # the archive.
 # Last-Affected-Version: 1.22.90
 # References: <4AD4E703.80500@teclabs.eu>
index 09b7f0b63013000bce7ccda600e0934423082223..f6c2d604b2ca9e826fd0cee70ce305d67cdc7612 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright 2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: See update01.at
 # Last-Affected-Version: 1.22.90
index b2bd6adebf2da7367321570704dcfdd8b1d97a62..a013e36ee2bb53057e5dcf404875a10a575690ae 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Version 1.15.92 sent verbose output to the archive when invoked
 # as  tar cvf - foo.txt > foo.tar
index 98ba22b673791f8d6afb51f525f3fe4f9f73b893..6d62a805350b3a8d7b9896ecbd434fcd371c97cf 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Check that tar --verify works.
 # Problem reported by Gilles Espinasse in
index 60da2c0332db4e2c9729c12572d16c7988ad6dd2..5fc9c5d8a8926fdb8e5deb588a9a18911419051e 100644 (file)
@@ -1,20 +1,20 @@
 # Checking tar version                              -*- Autotest -*-
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 AT_SETUP([tar version])
 
index 282e03ac978ec3449356700850f5541a2edd0c56..24ac55bb6286b195b7d754f5cf60478b4e0e27be 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright 2006-2009, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Description: The size field of a volume header was ignored when listing,
 # but taken into account when extracting. Thus it was possible to hide
index 87a910b88e1ea1fe93c20d7b663bfe1adea32338..33fa3f6fb21abe2c85ab341933aced6b6da9b119 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright 2004, 2006-2007, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Volume labels are checked on read by fnmatch.
 
@@ -43,13 +43,13 @@ test $? = 2
 [0],
 [],
 [-----
-tar: Volume `label' does not match `lab'
+tar: Volume 'label' does not match 'lab'
 tar: Error is not recoverable: exiting now
 -----
-tar: Volume `label' does not match `bel'
+tar: Volume 'label' does not match 'bel'
 tar: Error is not recoverable: exiting now
 -----
-tar: Volume `label' does not match `babel'
+tar: Volume 'label' does not match 'babel'
 tar: Error is not recoverable: exiting now
 ],
 [],[],[gnu, oldgnu])
diff --git a/tests/xattr01.at b/tests/xattr01.at
new file mode 100644 (file)
index 0000000..e692634
--- /dev/null
@@ -0,0 +1,49 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# This is basic test for support of extended attributes.
+
+AT_SETUP([xattrs: basic functionality])
+AT_KEYWORDS([xattrs xattr01])
+
+AT_TAR_CHECK([
+AT_XATTRS_PREREQ
+mkdir dir
+genfile --file dir/file
+
+setfattr -n user.test -v OurDirValue dir
+setfattr -n user.test -v OurFileValue dir/file
+
+tar --xattrs -cf archive.tar dir
+
+rm -rf dir
+tar --xattrs -xf archive.tar
+
+getfattr -h -d dir         | grep -v -e '^#' -e ^$
+getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
+],
+[0],
+[user.test="OurDirValue"
+user.test="OurFileValue"
+])
+
+AT_CLEANUP
diff --git a/tests/xattr02.at b/tests/xattr02.at
new file mode 100644 (file)
index 0000000..8ae4207
--- /dev/null
@@ -0,0 +1,57 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2011, 2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# Cooperation of the '-C' option and storing/restoring extended attributes.
+
+AT_SETUP([xattrs: change directory with -C option])
+AT_KEYWORDS([xattrs xattr02])
+
+AT_TAR_CHECK([
+AT_XATTRS_PREREQ
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n user.test -v OurFile1Value dir/file1
+setfattr -n user.test -v OurFile2Value dir/subdir/file2
+setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs -xf archive.tar
+
+getfattr -h -d file1        | grep -v -e '^#' -e ^$
+getfattr -h -d file2        | grep -v -e '^#' -e ^$
+getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
+],
+[0],
+[user.test="OurFile1Value"
+user.test="OurFile2Value"
+user.test="OurDirValue"
+])
+
+AT_CLEANUP
diff --git a/tests/xattr03.at b/tests/xattr03.at
new file mode 100644 (file)
index 0000000..19d0172
--- /dev/null
@@ -0,0 +1,58 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:
+#
+# Setup of the trusted.* domain under privileged user.
+
+AT_SETUP([xattrs: trusted.* attributes])
+AT_KEYWORDS([xattrs xattr03])
+
+AT_TAR_CHECK([
+AT_PRIVILEGED_PREREQ
+AT_XATTRS_PREREQ
+
+mkdir dir
+mkdir dir/subdir
+mkdir dir/subdir/subsubdir
+genfile --file dir/file1
+genfile --file dir/subdir/file2
+
+setfattr -n trusted.test -v OurFile1Value dir/file1
+setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
+setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir
+
+tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
+
+rm -rf dir
+
+tar --xattrs --xattrs-include=trusted* -xf archive.tar
+
+getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
+getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
+],
+[0],
+[trusted.test="OurFile1Value"
+trusted.test="OurFile2Value"
+trusted.test="OurDirValue"
+])
+
+AT_CLEANUP
diff --git a/tests/xattr04.at b/tests/xattr04.at
new file mode 100644 (file)
index 0000000..fb6ce0e
--- /dev/null
@@ -0,0 +1,50 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:  Test for the regression caused by tar update from 1.23 to
+# 1.26, Red Hat xattr patch was not ready for open->openat conversion.
+#
+# Related commit 4bde4f3.  See the bug: https://bugzilla.redhat.com/717684
+
+AT_SETUP([xattrs: s/open/openat/ regression])
+AT_KEYWORDS([xattrs xattr04])
+
+AT_TAR_CHECK([
+AT_XATTRS_PREREQ
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.test -v value dir/file
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+ret=$?
+getfattr -h -d output/file | grep -v -e '^#' -e ^$
+exit $ret
+],
+[0],
+[user.test="value"
+])
+
+AT_CLEANUP
diff --git a/tests/xattr05.at b/tests/xattr05.at
new file mode 100644 (file)
index 0000000..adc1b58
--- /dev/null
@@ -0,0 +1,51 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# 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.
+
+# GNU tar 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/>.
+#
+# Test description:  Test for archiving/extracting of extended attributes
+# having the '=' character in its keyword.
+#
+# Relevant mailing list thread:
+#
+# http://lists.gnu.org/archive/html/bug-tar/2012-10/msg00017.html
+
+AT_SETUP([xattrs: keywords with '=' and '%'])
+AT_KEYWORDS([xattrs xattr05])
+
+AT_TAR_CHECK([
+AT_XATTRS_PREREQ
+
+mkdir dir
+mkdir output
+genfile --file dir/file
+
+setfattr -n user.=NAME%3D= -v value dir/file
+getfattr -d dir/file | grep -v '# ' > before
+
+# archive whole directory including binary xattrs
+tar --xattrs -cf archive.tar -C dir .
+
+tar --xattrs -xf archive.tar -C output
+getfattr -d output/file | grep -v '# ' > after
+diff before after
+],
+[0],
+[])
+
+AT_CLEANUP
index d51a0a60604abe476411f46a5e3584c0d214ac7b..6a011692877f3228f3d1484711e80eb447a3b706 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# Copyright 2009-2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # When creating archives, tar 1.22 did not apply the --transform option
 # to hard links.
@@ -58,4 +58,4 @@ m4_popdef([xformtest])
 
 AT_CLEANUP
 
-# End of xform-h.at
\ No newline at end of file
+# End of xform-h.at
index 71dcc43ef7dbbea7b4eccc6e48722027dbd3dc9b..ff8bff0966e4694cf7b2383c0b67a833170281e6 100644 (file)
@@ -1,22 +1,22 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU tar.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright 2010, 2013 Free Software Foundation, Inc.
 
-# This program is free software; you can redistribute it and/or modify
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute 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.
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 
-# This program is distributed in the hope that it will be useful,
+# GNU tar 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Transformations should not apply to GNU volume labels.
 # Reported by: Thomas Graf <hausmeister@askja.de>